一、模型评估
当评估机器学习模型时,我们希望了解模型的性能和预测能力。以下是一些常见的机器学习模型评估指标:
1. 准确率(Accuracy):模型正确预测的样本数占总样本数的比例。
2. 精确率(Precision):模型预测为正例的样本中,实际为正例的比例。
3. 召回率(Recall):实际为正例的样本中,模型预测为正例的比例。
4. F1 分数(F1 Score):精确率和召回率的加权平均值,用于综合评估模型的性能。
5. ROC 曲线(Receiver Operating Characteristic curve):以真正例率(True Positive Rate)为纵轴,假正例率(False Positive Rate)为横轴,绘制的曲线。
6. AUC(Area Under the Curve):ROC 曲线下的面积,用于评估分类器的性能。
7. 混淆矩阵(Confusion Matrix):展示模型预测结果与实际结果的对比,包括真正例、假正例、真反例和假反例。
二、ROC曲线绘制
1、什么是ROC曲线
ROC曲线,即受试者工作特征曲线,主要用来评价某个指标对两类被试的效果,以及寻找最佳的指标临界值使得分类效果最好。
2、绘制ROC曲线代码
3、图像结果
三、PR曲线绘制
1、什么是PR曲线
召回率是指模型正确预测出的正样本占总正样本的比例,计算公式为:召回率 = TP / (TP + FN),其中FN表示假负例(模型预测为负样本的样本中实际为正样本的数量)。
PR曲线通过改变分类模型的阈值,计算出一系列准确率和召回率的值,并以准确率为横坐标,召回率为纵坐标进行绘制。PR曲线越靠近左上角,表示模型性能越好。
2、绘制PR曲线代码
3、图像结果
4、说明
其中,y_true为样本实际的类别,1为正例,0为反例;y_scores为阈值。precision_recall_curve函数可以计算出不同阈值下的精确率和召回率,返回的precision、recall和thresholds分别为精确率、召回率和阈值。最后使用matplotlib.pyplot库中的plot函数绘制PR曲线图并显示。
四、ROC曲线和PR曲线的区别
-
纵坐标不同:ROC曲线以真正例率为纵坐标,以假正例率为横坐标;PR曲线以查准率为纵坐标,以召回率为横坐标。
-
数据不平衡问题:如果正负样本严重不平衡,ROC曲线可以更好地衡量分类器的性能,因为ROC曲线主要关注的是假正例率。相比之下,PR曲线能更好地反映分类器在正例的识别上的性能。
-
相对性能评估:如果要比较不同分类器的性能,ROC曲线更具优势。ROC曲线上的AUC值可以用来比较不同模型的分类能力;而在PR曲线上,AUC值比较时可能会受到样本不平衡的影响,使得评估变得复杂。
总而言之,ROC曲线主要适用于样本不平衡的问题和相对性能评估,而PR曲线则更适合于处理正负样本不平衡的问题和更关注正例识别性能的情况。在具体应用中,选择使用哪种曲线取决于具体问题和关注的性能指标。