当前课程知识点:深度学习基础 >  第八讲 生成式神经网络 >  附:8.4程序 >  附:1.6程序

返回《深度学习基础》慕课在线视频课程列表

附:1.6程序资料文件与下载

附:1.6程序

  1. #coding=utf-8

  2. """

  3. #演示目的:利用鸢尾花数据集画出P-R曲线

  4. """

  5. print(__doc__)

  6.  

  7. import matplotlib.pyplot as plt

  8. import numpy as np

  9. from sklearn import svm, datasets

  10. from sklearn.metrics import precision_recall_curve

  11. from sklearn.metrics import average_precision_score

  12. from sklearn.preprocessing import label_binarize

  13. from sklearn.multiclass import OneVsRestClassifier

  14.  

  15. #from sklearn.cross_validation import train_test_split  #适用于anaconda 3.6及以前版本

  16. from sklearn.model_selection import train_test_split#适用于anaconda 3.7

  17.  

  18. #以iris数据为例,画出P-R曲线

  19. iris = datasets.load_iris()

  20. = iris.data

  21. = iris.target

  22.  

  23. # 标签二值化,将三个类转为001, 010, 100的格式.因为这是个多类分类问题,后面将要采用

  24. #OneVsRestClassifier策略转为二类分类问题

  25. = label_binarize(y, classes=[012])

  26. n_classes = y.shape[1]

  27. print (y)

  28.  

  29. # 增加了800维的噪声特征

  30. random_state = np.random.RandomState(0)

  31. n_samples, n_features = X.shape

  32.  

  33. = np.c_[X, random_state.randn(n_samples, 200 * n_features)]

  34.  

  35. # Split into training and test

  36. X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=.5, random_state=random_state) #随机数,填0或不填,每次都会不一样

  37.  

  38. # Run classifier probability : boolean, optional (default=False)Whether to enable probability estimates. This must be enabled prior to calling fit, and will slow down that method.

  39. classifier = OneVsRestClassifier(svm.SVC(kernel='linear', probability=True, random_state=random_state))

  40. y_score = classifier.fit(X_train, y_train).decision_function(X_test)

  41.  

  42. # Compute Precision-Recall and plot curve  

  43. #下面的下划线是返回的阈值。作为一个名称:此时“_”作为临时性的名称使用。

  44. #表示分配了一个特定的名称,但是并不会在后面再次用到该名称。

  45. precision = dict()

  46. recall = dict()

  47. average_precision = dict()

  48. for in range(n_classes):

  49.     precision[i], recall[i], _ = precision_recall_curve(y_test[:, i],  y_score[:, i]) #The last precision and recall values are 1. and 0. respectively and do not have a corresponding threshold. This ensures that the graph starts on the x axis.

  50.     average_precision[i] = average_precision_score(y_test[:, i], y_score[:, i])#切片,第i个类的分类结果性能

  51.  

  52. # Compute micro-average curve and area. ravel()将多维数组降为一维

  53. precision["micro"], recall["micro"], _ = precision_recall_curve(y_test.ravel(),  y_score.ravel())

  54. average_precision["micro"= average_precision_score(y_test, y_score, average="micro"#This score corresponds to the area under the precision-recall curve.

  55.  

  56. # Plot Precision-Recall curve for each class

  57. plt.clf()#clf 函数用于清除当前图像窗口

  58. plt.plot(recall["micro"], precision["micro"],

  59.          label='micro-average Precision-recall curve (area = {0:0.2f})'.format(average_precision["micro"]))

  60. for in range(n_classes):

  61.     plt.plot(recall[i], precision[i],

  62.              label='Precision-recall curve of class {0} (area = {1:0.2f})'.format(i, average_precision[i]))

  63.  

  64. plt.xlim([0.01.0])

  65. plt.ylim([0.01.05]) #xlim、ylim:分别设置X、Y轴的显示范围。

  66. plt.xlabel('Recall', fontsize=16)

  67. plt.ylabel('Precision',fontsize=16)

  68. plt.title('Extension of Precision-Recall curve to multi-class',fontsize=16)

  69. plt.legend(loc="lower right")#legend 是用于设置图例的函数

  70. plt.show()


返回《深度学习基础》慕课在线视频列表

深度学习基础课程列表:

第一讲 深度学习概述

-1.1 深度学习的引出

-1.2 数据集及其拆分

-1.3 分类及其性能度量

-1.4 回归问题及其性能评价

-1.5 一致性的评价方法

-1.6 程序讲解:使用Sklearn进行精确率-召回率曲线的绘制

-第一讲讲义

-第一讲 作业

-附:1.6程序

第二讲 特征工程概述

- 2.1 特征工程

-2.2 向量空间模型及文本相似度计算

-2.3 特征处理(特征缩放、选择及降维)

-2.4 程序讲解:使用sklearn对文档进行向量化的实例

-2.5 程序讲解:使用sklearn进行量纲缩放的实例

- 第二讲 讲义

-第二讲 作业

-附:2.4程序

-附:2.5程序

第三讲 回归问题及正则化

-3.1 线性回归模型及其求解方法

-3.2 多元回归与多项式回归

-3.3 损失函数的正则化

- 3.4 逻辑回归

-3.5 程序讲解:使用sklearn进行线性回归和二次回归的比较的程序示例

-第三讲讲义

-第三讲 作业

-附:3.5程序

第四讲 信息熵及梯度计算

-4.1 信息熵

-4.2 反向传播中的梯度

-4.3 感知机

-4.4 程序讲解:正向传播和反向传播的程序示例

-4.5 程序讲解:信息熵和互信息的计算程序示例

-第四讲讲义

-第四讲 作业

-附:4.5程序

第五讲 循环神经网络及其变体

-5.1 循环神经网络

-5.2 长短时记忆网络

-5.3 双向循环神经网络和注意力机制

-5.4 程序讲解:循环神经网络的程序示例

-第五讲 讲义

-第五讲 作业

-附:5.4程序

第六讲 卷积神经网络

-6.1 卷积与卷积神经网络

-6.2 LeNet-5 模型分析

-6.3 程序讲解:卷积神经网络的程序示例

-第六讲 讲义

-第六讲 作业

-附:6.3程序

第七讲 递归神经网络

-7.1 情感分析及传统求解方法

-7.2 词向量

-7.3 递归神经网络及其变体

-第七讲 讲义

-第七讲 作业

第八讲 生成式神经网络

-8.1 自动编码器

-8.2 变分自动编码器

-8.3 生成对抗网络

-8.4 程序讲解:自动编码器程序示例

-第八讲 作业

-第八讲 讲义

-附:8.4程序

附:1.6程序笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。