python模型评估_1.机器学习之模型评估详解

Apple iPhone 11 (A2223) 128GB 黑色 移动联通电信4G手机 双卡双待

4999元包邮

去购买 >

模型评价是指对于已经建立的一个或多个模型,根据其模型的类别,使用不同的指标评价其性能优劣的过程。常用的聚类模型评价指标有ARI评价法(兰德系数)、AMI评价法(互信息)、V-measure评分、FMI评价法和轮廓系数等。常用的分类模型评价指标有准确率(Accuracy)、精确率(Precision)、召回率(Recall)、F1值(F1 Value)、ROC和AUC等。常用的回归模型评价指标有平均绝对误差、均方根误差、中值绝对误差和可解释方差值等。

线性回归解决的是连续型数值的预测问题,例如预测房价,产品销量等。

逻辑回归解决的是分类问题,从分类数量上看,有二项分类和多项分类。

sklearn库的metrics模块提供各种评估方法,包括分类评估、回归评估、聚类评估和交叉验证等,评估分类是判断预测值时否很好的与实际标记值相匹配。正确的鉴别出正样本(True Positives)或者负样本(True Negatives)都是True。同理,错误的判断正样本(False Positive,即一类错误)或者负样本(False Negative,即二类错误)。

注意:True和False是对于评价预测结果而言,也就是评价预测结果是正确的(True)还是错误的(False)。而Positive和Negative则是样本分类的标记。

metrics模块分类度量有6种方法,如下表所示:

指标

描述

metrics方法

Accuracy

准确度

from sklearn.metrics import accuracy_score

Precision

查准率

from sklearn.metrics import precision_score

Recall

查全率

from sklearn.metrics import recall_score

F1

F1值

from sklearn.metrics import f1_score

Classification Report

分类报告

from sklearn.metrics import classification_report

Confusion Matrix

混淆矩阵

from sklearn.metrics import confusion_matrix

ROC

ROC曲线

from sklearn.metrics import roc_curve

AUC

ROC曲线下的面积

from sklearn.metrics import auc

1 '''

2 from sklearn.metrics import accuracy_score, precision_score,3 recall_score, f1_score, classification_report, confusion_matrix4 accuracy_score(y_test, y_pred)5 precision_score(y_test, y_pred)6 recall_score(y_test, y_pred)7 f1_score(y_test,y_pred)8 classification_report(y_test,y_pred)9 confusion_matrix(y_test, y_pred)10 '''

准确度(accuracy)

准确度是预测正确的数(包括正样本和负样本)占所有数的比例。利用accuracy_score函数对预测数据进行模型评估,其中第一个参数是测试标记,第二个参数是预测标记值

ACC = (TP+TN)/(TP+TN+FP+FN)

查准率/精确度(Precision)和查全率/召回率(Recall)

sklearn的metrics模块分别提供了precision_score和recall_score函数用来评估分类模型的查全率和查准率。

精确度:precision,正确预测为正的,占全部预测为正的比例,TP / (TP+FP)

召回率:recall,正确预测为正的,占全部实际为正的比例,TP / (TP+FN)

假设有一个大小为1000的带布尔标签数据集,里面的“真”样本只有100不到,剩下都是假样本。假设训练一个模型,不管输入什么数据,它只给出“假”的预测,那么正确率依旧是90%以上,很明显,这个时候准确率accuracy就失去它的作用。因此,查全率和查准率一般用在倾斜数据集的时候。

F1值(F1-Measure)

Precision和Recall指标有的时候是矛盾的,F-Measure综合这二者指标的评估指标,用于综合反映整体的指标。F-Measure是Precision和Recall加权调和平均,a为权重因子,当a = 1时,F值变为最常见的F1了,代表精确率和召回率的权重一样(fl_score)

分类报告(Classification Report)

metrics模块的classification_report方法,综合提供了查准率(precision)、查全率(recall)和f1值三种评估指标。

混淆矩阵(Confusion Matrix)

混淆矩阵是一个N X N矩阵,N为分类的个数。假如我们面对的是一个二分类问题,也就是N=2,我们就得到一个2 X 2矩阵。在学习这个矩阵之前,我们需要知道一些简单的定义。Accuracy(准确度):预测正确的数占所有数的比例。Positive Predictive Value(阳性预测值)

or Precision(查准率):阳性预测值被预测正确的比例。Negative Predictive Value(阴性预测值):阴性预测值被预测正确的比例。Sensity(灵敏度) or Recall(查全率):在阳性值中实际被预测正确所占的比例。Specificity(特异度):在阴性值中实现被预测正确所占的比例。

ROC(receiver operating

characteristic curve)

曲线指受试者工作特征曲线或者是接收器操作特性曲线,虑一个二分问题,即将实例分成正类(positive)或负类(negative)。对一个二分问题来说,会出现四种情况。如果一个实例是正类并且也被预测成正类,即为真正类(True positive),如果实例是负类被预测成正类,称之为假正类(False positive)。相应地,如果实例是负类被预测成负类,称之为真负类(True negative),正类被预测成负类则为假负类(false negative)。

TP:正确肯定的数目;

FN:漏报,没有正确找到的匹配的数目;

FP:误报,给出的匹配是不正确的;

TN:正确拒绝的非匹配对数;

从列联表引入两个新名词。其一是真正类率(true positive

rate ,TPR),计算公式为TPR=TP/ (TP+

FN),刻画的是分类器所识别出的正实例占所有正实例的比例。另外一个是假正类率(false

positive rate, FPR),计算公式为FPR= FP / (FP + TN),计算的是分类器错认为正类的负实例占所有负实例的比例。还有一个真负类率(True Negative

Rate,TNR),也称为specificity,计算公式为TNR=TN/ (FP+

TN) = 1-FPR。

FPR = FP/(FP +

TN)负样本中的错判率(假警报率)

你可能感兴趣的:(python模型评估)