1. 准确率
2. 精准率和召回率
混淆矩阵
confusion_matrix(y_train_5, y_train_pred)
对分类器来说,一个好得多的性能评估指标是混淆矩阵。
真正例(true positive)、假正例(false positive)、真反例(true negative)、假反例(false negative)四种情形。分类结果的 混淆矩阵 如下表所示:
预测反例 | 预测正例 | |
---|---|---|
真实反例 | TN (真反例) | FP (假正例) |
真实正例 | FN (假反例) | TP (真正例) |
分类器常用评价指标是精准率(precision)和召回率(recall):
precision_score(y_train_5, y_pred) #精准率
recall_score(y_train_5, y_train_pred) #召回率
精准率和召回率表示的意义:(以图片分类问题为例)
当它声明某张图片是 5 的时候,它只有 80% 的可能性是正确的。而且,它也只检测出“是 5”类图片当中的 70%。
3. F1值
f1_score()
F1 值是准确率和召回率的调和平均。
SGDClassifier(随机梯度下降分类器)是如何做分类决策的。对于每个样例,它根据决策函数计算分数,如果这个分数大于一个阈值,它会将样例分配给正例,否则它将分配给反例。
4. ROC
ROC全称是“受试者工作特征”(Receiver Operating Characteristic)曲线。
根据学习器的预测结果对样例进行排序,按此排序逐个把样本作为正例进行预测,每次计算出两个重要量的值,分别以它们为横、纵坐标作图,就得到了“ROC”曲线。
ROC曲线的纵轴是真正例率(True Positive Rate , TPR),横轴是“假正例率” (False Positive Rate,FPR)。
真正例/真实正例
假正例/真实反例
from sklearn.metrics import roc_curve
fpr, tpr, thresholds = roc_curve(y_train_5, y_scores)
roc_auc_score(y_train_5, y_scores_forest)
plt.plot(fpr, tpr, linewidth=2, label=label)
5. AUC
ROC曲线下的面积:AUC
Auc体现出容忍样本倾斜的能力,只反应模型对正负样本排序能力的强弱,而其直观含以上是任意取一个正样本和负样本,正样本的得分大于负样本的概率。
参考链接:
相比于准确率、召回率、F1值等依赖于判决阈值的评估指标,AUC则没有这个问题。
AUC可以看做随机从正负样本中选取一对正负样本,其中正样本的得分大于负样本的概率!
随机取一对正负样本,负样本得分为t且正样本大于t!
AUC实际上在说一个模型把正样本排在负样本前面的概率!
画ROC曲线,依照曲线上某点解释意义;
AUC、ROC的定义、实际意义、画法;
6. 多分类
创建一个可以将图片分成 10 类(从 0 到 9)的系统的一个方法是:训练10个二分类器,每一个对应一个数字(分类器 0,分类器 1,分类器 2,以此类推)。然后当你想对某张图片进行分类的时候,让每一个分类器对这个图片进行分类,选出决策分数最高的那个分类器。这叫做“一对所有”(OvA)策略(也被叫做“一对其他”)。
转载:https://blog.csdn.net/u014128608/article/details/97135427