数据挖掘模型效果评估方法汇总

来源:互联网 发布:桌面美化软件哪个好 编辑:程序博客网 时间:2024/05/16 12:08

1、 基于损失函数的标准

1.1、 混淆矩阵

混淆矩阵用在分类器中,是对每一类样本的统计,包括正确分类和错误分类的个数。对于m类样本,可能的错误种类有m2m个。
对于2分类问题存在4种可能的情况:

实际的类 预测的类 c+ c c+ TurePositive FalseNegative c FalsePositive TureNegative 总计 TurePositive+FalsePositive FalseNegative+TureNegative

多分类问题类似,只是情况更多。

1.2、 准确率及误差率的度量

为了度量预测的精确度,隐含假设每一个错误分类的样本成本相同,引入误差率和准确率两个指标作为这种成本的度量。
误差率:错误分类的样本数(E)与检测样本总数(S)的比值
R=E/S
准确率:正确分类的样本数与检测样本总数(S)的比值
A=1R=SES
我们也可以引入更全面的指标:
pos表示真实正例的样本数,neg表示真实负例的样本数,tpos表示正确预测的正例样本数,fpos表示负例被当成正例的样本数,tneg表示正确预测的负例样本数,fneg表示正例被当成负例的样本数。以下括号中的文字有些是自己给取的名字,不要跟其他地方混淆了。
灵敏度(真正率):Sensitivity=tpospos,即正例中被准确预测的比例(有点查全的感觉,真的有这么多正例,有多少被挑出来了)
召回率(查全率R):计算方法同灵敏度,相同东西在不同场合下的叫法。
特异性(真负率):Specificity=tnegneg,即负债中被准确预测的比例(有点查全的感觉,真的有这么多负例,有多少被挑出来了)
精度(正例检出率):Precision=tpostpos+fpos,即在预测结果的正例里真实正例的比例(有点查准的感觉,预测了这么多,多少预测对了)
准确率(查准率P):与精度计算方法相同
错误正例(假正率):FalsePositiveRate=1tnegneg,即正例被当成负例的样本数占预测结果的负例样本数的比例
错误负例(假负率):FalseNegetiveRate=1tpospos,即负例被错误当成正例的样本数占预测结果的正例样本数的比例
最终
准确率A=tpos+tnegpos+neg=tpospospospos+neg+tnegnegnegpos+neg
F_1值:F1=2PRP+R,更一般的形式为F1=(1+β2)PR(β2P)+R
β=1退化为F1;β>1查全率有更大影响;β<1查准率有更大影响。
宏平均(macro-average):一般用在文本分类器,是先对每一个类统计指标值,然后在对所有类求算术平均值。宏平均指标相对微平均指标而言受小类别的影响更大。
微平均(micro-average):一般用在文本分类器,是对数据集中的每一个实例不分类别进行统计建立全局混淆矩阵,然后计算相应指标。
平均准确率(Average Per-class Accuracy):为了应对每个类别下样本的个数不一样的情况,计算每个类别下的准确率,然后再计算它们的平均值。
对数损失函数(Log-loss):在分类输出中,若输出不再是0-1,而是实数值,即属于每个类别的概率,那么可以使用Log-loss对分类结果进行评价。这个输出概率表示该记录所属的其对应的类别的置信度。比如如果样本本属于类别0,但是分类器则输出其属于类别1的概率为0.51,那么这种情况认为分类器出错了。该概率接近了分类器的分类的边界概率0.5。Log-loss是一个软的分类准确率度量方法,使用概率来表示其所属的类别的置信度。

1.3、 评价模型成本的可视化工具

1.3.1、 lift图

lift叫提升指数,也就是运用模型比不运用模型精度的提升倍数。
lift=tpostpos+fpos/tpos+fnegtpos+fneg+fpos+tneg
也可以表示为
lift=
结论是:提升指数越高,模型的准确率越高。
对准确率进行提升的例子:

假设根据以往的经验,问卷调查的回应率为20%,即发出100份问卷收回的有20份,但是通过对历史数据的分析发现特定人群的回应率会更高(数据分析的过程即为建模),然后对特定人群进行发放整个回应率就得到提升。

用在数据挖掘模型里也是一样,利用模型能对准确率提升越多,单方面来讲模型效果就越好。
具体做法如下:
I、计算出测试样本中正例的百分比,即为平均精度;
II、利用模型对测试样本进行预测,按预测得分降序将样本排序,将排序好的样本分成10份,即按10分位数操作;
III、计算第1份样本中的预测精度,然后利用预测精度/平均精度,得到第1份数据的提升指数;
IV、计算至第2份样本处的累计预测精度,然后利用累计预测精度/平均精度,得到至第2份样本处的提升指数;
VI、依次得到10个节点处的提升指数;
VI、画出基线(各节点处均为1)及不同模型提升指数的曲线图;
VII、进行模型效果对比,图形越高越好;
这里写图片描述

1.3.2、 ROC曲线

ROC曲线是利用真正率为纵轴,假正率为横轴画出的曲线,用来评估模型预测准确率。很明显,当真正率大越近1,假正率越接近0是模型越好。
对于给定的一组样本,我们只能得到一个真正率和一个假正率(对应图上的一个点),那如何画ROC曲线呢?
通过设置不同的阈值,比如逻辑回归中可以设定概率>0.5的点为正例,在此阈值下可以得到ROC曲线上的一个点;更改阈值,如概率>0.6的点为正例,同样可以得到ROC曲线上的一个点;不同的阈值可以得到一组点,即得到了ROC曲线;
这里写图片描述
真正率大越近1,假正率越接近0是模型越好,在图上的表现就是ROC曲线越靠近(0,1)点,越远离45o对角线;
评价模型有很多指标,为什么还要使用ROC和AUC呢?因为ROC曲线有个很好的特性:当测试集中的正负样本的分布变换的时候,ROC曲线能够保持不变。在实际的数据集中经常会出现样本类不平衡,即正负样本比例差距较大,而且测试数据中的正负样本也可能随着时间变化。

1.3.3、 AUC曲线

AUC(area under curve):即ROC曲线下的面积。
若一个学习器的ROC曲线被另一个包住,后者的性能能优于前者;若交叉,判断ROC曲线下的面积,即AUC。

1.4、 评估分类器的准确率

上面讲的评价模型的指标或曲线都是在测试集中进行的,也就是我们需要将数据集分为训练集和测试集,训练集用于训练模型参数,测试集用于检验模型在数据中的预测效果。这就是我们评估分类器大的方法。下面介绍将数据划分为训练集和测试集的方法。

1.4.1、 再替换方法

所有的数据即用于训练模型也用于检验模型

1.4.2、 保持方法和随机子抽样

保持方法(hold out):按一定比例随机地从数据集中抽取一部分样本作训练集,剩下的样本为测试集,通训练集在2/3~4/5之间;
随机子抽样(random subsampling):抽取一定比例样本做为训练集,剩下的样本为测试集;然后在第1次的训练集重复该操作;重复n次,评论指标的平均值作为最终的评价值;这是一种无放回抽样;

1.4.2、 交叉验证法

K折交叉验证(K-fold cross-validation):将样本分成K份,每份数量大致相等,然后用其他的某一份作为测试,其他样本作为训练集,得到一个模型和一组预测值及模型评估值;循环这个过程K次,得到K组模型评估值,对其取平均值即得到最终的评估结果;
留一(leave-one-out):是K-fold cross-validation的特征形式,每次只取一个样本作为测试样本,其余样本作为训练样本,重复该过程K次(假如样本总数为K)。

1.4.2、 自助法

自助法(bootstrap method):在数据集中采用有放回的方式抽样,产生训练集和测试集;重复该过程n次。

2、 基于统计检验的标准

2.1、 统计模型之间的距离

距离是典型的相似性指标。
欧氏距离
熵距离
卡方距离
0-1距离
我并不认为用距离评估模型的效果是一种好的做法,只有不同类样本在样本内扎堆,类间分离的时候这种检测才是一致的。

2.2、 统计模型的离差

离差即误差的统称:如标准差,方差都为这一类
欧氏离差即为平均误差和。

3、 基于记分函数的标准

4、 贝叶斯标准

5、计算标准

5.1、 交叉检验标准

利用交叉检验的处理方法,再配合其他指标如离差进行检验。

5.2、 自展标准

5.3、 遗传算法

6、其他评价指标

计算速度:分类器训练和预测需要的时间;
鲁棒性:处理缺失值和异常值的能力;
可扩展性:处理大数据集的能力;
可解释性:分类器的预测标准的可理解性,像决策树产生的规则就是很容易理解的,而神经网络的一堆参数就不好理解,我们只好把它看成一个黑盒子。

7、回归模型评估指标

RMSE(root mean square error,平方根误差):其又被称为RMSD(root mean square deviation),RMSE对异常点(outliers)较敏感,如果回归器对某个点的回归值很不理性,那么它的误差则较大,从而会对RMSE的值有较大影响,即平均值是非鲁棒的。其定义如下:
Quantiles of Errors: 为了改进RMSE的缺点,提高评价指标的鲁棒性,使用误差的分位数来代替,如中位数来代替平均数。假设100个数,最大的数再怎么改变,中位数也不会变,因此其对异常点具有鲁棒性。

原创粉丝点击