机器学习模型评估综述-二分多分回归聚类稳定性评分卡特征重要性
泰格:
采菊东篱下,悠然现南山,误入机器歧途,无丝竹案牍渐渐远。盼钟鼓馔玉不足贵之境,望可长醉不复醒之日!
概述
模型的评估对于做机器学习是一个很重要的一个领域,所有的模型要想进行评价,必须要有相应的评估指标,这些评估指标经过业务的千锤百炼沉淀了好几十年的!最常见的评估指标,就是准确率、精准率、召回率等,很早之前不懂机器学习的时候,听到别人讲到模型召回率多少,提升了多少,感觉很牛逼,现在听到这些,哇,感觉还是很牛逼。所以有必要详细总结下所有模型评估的方法。
模型评估方法综述表
模型类型 | 评估指标 | 评估指标名称 | 备注 |
二分类 | Confusionmatri | 混淆矩阵 | 可以根据阈值变化 |
accuracy | 准确率 | 可以根据阈值变化 | |
precision | 精准率 | 可以根据阈值变化 | |
recall | 召回率 | 可以根据阈值变化 | |
F1 | 精准率和召回率的均衡值 | 可以根据阈值变化 | |
PR | PR图 | 必须有概率值 | |
ROC | ROC图 | 必须有概率值 | |
AUC | ROC曲线面积 | 必须有概率值 | |
KS曲线 | 真阳率和假阳率曲线 | 必须有概率值 | |
KS值 | 真阳率和假阳率最大差值 | 必须有概率值 | |
Lift曲线 | Lift曲线 | 必须有概率值 | |
多分类 | Confusionmatri | 混淆矩阵 | 正方形矩阵 |
accuracy | 加权准确率 | 整体计算 | |
precision | 加权精准率 | ||
recall | 加权召回率 | ||
F1 | 加权精准率和召回率的均衡值 | ||
如果输入次预测每个分类的概率值,可以每个分类当成二分类,可以算每个分类关于二分类的指标,也可以最终做一个平均,算出一个综合的多分类结果,称之为micro | |||
聚类 | 轮廓系数 | 轮廓系数 | 开发阶段用,迭代评估多少个分类 |
Calinski-Harabaz | Calinski-Harabaz | 开发阶段用,迭代评估多少个分类 | |
中心距离 | 计算每个点到聚类中心的距离 | 无标签使用 | |
聚类纯度 | 计算个预测类最大正确个数之和 | 有标签使用 | |
兰德指数 | 排列组合选择 | 有标签使用 | |
互信息 | 互信息 | 有标签使用 | |
回归 | MAE | 绝对平均误差 | 没什么特别 |
MSE | 绝对平均方差 | 没什么特别 | |
RMSE | 根号绝对平均方差 | 没什么特别 | |
R2 | R2分数 | 消除了量纲的影响 | |
explainedVariance | 解释系数 | 没什么特别 | |
模型稳定性 | PSI | 模型稳定性 | 0.1-0.2较好 0.2-0.25一般,大于0.25有问题 |
评分评级模型 | cap曲线 | 根据基尼系数画的统计曲线 | 预测为分数或者为评级,结果为一个二分类标签 |
AR值 | 根据CAP计算面积 | ||
ROC曲线 | 根据精准率和召回率 | ||
KS值 | 根据真阳率和假阳率 | ||
特征重要性评估 | 相关系数 | 计算特征和标签的相关系数 | 没什么特别 |
WOE | 计算每个分箱跟标签的分布关系 | 没什么特别 | |
IV | 根据WOE结合数据分布 | 没什么特别 | |
随机森林 | 根据模型计算出特征重要性 | 没什么特别 |
二分类模型评估
scala版本代码参考:https://blog.****.net/xiefu5hh/article/details/106135738
所有的模型评估中,最最最基础也是用的最多的就是二分类的混淆矩阵了,其他的指标也都是通过这个混淆矩阵算出来的,
混淆矩阵的图:
这个图看起来非常简单,但是其实理解起来并不是一帆风顺的,我花了很久的时间理解(也可能本人智商问题)
一定要彻底完全理解这个图的每个值代表的含义,否则后面很多的指标都会混乱
具体的指标:
真正(True Positive , TP):被模型预测为正的正样本。
假正(False Positive , FP):被模型预测为正的负样本。
假负(False Negative , FN):被模型预测为负的正样本。
真负(True Negative , TN):被模型预测为负的负样本。
真正率(True Positive Rate,TPR):TPR=TP/(TP+FN),即被预测为正的正样本数 /正样本实际数。
假正率(False Positive Rate,FPR) :FPR=FP/(FP+TN),即被预测为正的负样本数 /负样本实际数。
假负率(False Negative Rate,FNR) :FNR=FN/(TP+FN),即被预测为负的正样本数 /正样本实际数。
真负率(True Negative Rate,TNR):TNR=TN/(TN+FP),即被预测为负的负样本数 /负样本实际数/2
准确率(Accuracy)
准确率是最常用的分类性能指标。
Accuracy = (TP+TN)/(TP+FN+FP+TN)
即正确预测的正反例数 /总数
精确率(Precision)
精确率容易和准确率被混为一谈。其实,精确率只是针对预测正确的正样本而不是所有预测正确的样本。表现为预测出是正的里面有多少真正是正的。可理解为查准率。
Precision = TP/(TP+FP)
即正确预测的正例数 /预测正例总数
召回率(Recall)
召回率表现出在实际正样本中,分类器能预测出多少。与真正率相等,可理解为查全率。
Recall = TP/(TP+FN),即正确预测的正例数 /实际正例总数
F1 score
F值是精确率和召回率的调和值,更接近于两个数较小的那个,所以精确率和召回率接近时,F值最大。很多推荐系统的评测指标就是用F值的。
2/F1 = 1/Precision + 1/Recall
ROC曲线
真正率即判定为正样本且实际为正样本的样本数/所有的正样本数,假正率为判定为正样本实际为负样本的样本数/所有的负样本数。每选定一个阈值,就能得到一对真正率和假正率,由于判定为正样本的概率值区间为[0,1],那么阈值必然在这个区间内选择,因此在此区间内不停地选择不同的阈值,重复这个过程,就能得到一系列的真正率和假正率,以这两个序列作为横纵坐标,即可得到ROC曲线了。而ROC曲线下方的面积,即为AUC值。
PR曲线
PR曲线的横坐标是精确率P,纵坐标是召回率R。评价标准和ROC一样,先看平滑不平滑(蓝线明显好些)。一般来说,在同一测试集,上面的比下面的好(绿线比红线好)。当P和R的值接近时,F1值最大,此时画连接(0,0)和(1,1)的线,线和PRC重合的地方的F1是这条线最大的F1(光滑的情况下),此时的F1对于PRC就好像AUC对于ROC一样。一个数字比一条线更方便调型。
KS曲线
KS曲线的横坐标是阈值,是两条曲线的组合,一条是真阳率、一条是假阳率。
多分类模型评估
所有的指标参考二分类的评估
回归模型评估
拟合(回归)问题比较简单,所用到的衡量指标也相对直观。假设yiyi是第ii个样本的真实值,ŷ iy^i是对第ii个样本的预测值。
平均绝对误差(MAE)
平均绝对误差MAE(Mean Absolute Error)又被称为l1范数损失(l1-norm loss):
平均平方误差(MSE)
平均平方误差MSE(Mean Squared Error)又被称为l2范数损失(l2-norm loss):
均方根误差(RMSE)
RMSE虽然广为使用,但是其存在一些缺点,因为它是使用平均误差,而平均值对异常点(outliers)较敏感,如果回归器对某个点的回归值很不理性,那么它的误差则较大,从而会对RMSE的值有较大影响,即平均值是非鲁棒的。
解释变异
解释变异( Explained variance)是根据误差的方差计算得到的:
决定系数
决定系数(Coefficient of determination)又被称为R2
聚类模型评估
聚类指标计算scala代码:https://blog.****.net/xiefu5hh/article/details/106392459
模型稳定性评估
评分卡模型评估
特征重要性评估