原版:http://www.jianshu.com/p/15185f0ecb57
例如:一个产品生产的不合格产品数量会远低于合格产品数量。信用卡欺诈的检测中,合法交易远远多于欺诈交易。
这时候,准确率的度量会出现一些问题,因为她把每个类都看得同等重要。
例如,1%的信用卡交易是欺诈行为,则预测每个交易都是合法的模型有99%的准确率,它也可能检测不到任何欺诈交易。
在不平衡数据中,稀有类比较有意义,对于二元分类,稀有类通常记为正类,而多数类被认为是负类。下面显示了混淆矩阵:
真正(true positive,TP):++
假正(false positive,FP):-+
真负(true negative,TN):–
假负(false negative,FN):+-
真正率(true positive rate,TPR)或灵敏度(sensitivity):
是真正率和假正率取折中的一种图形化方法。真正率为 y 轴,假正率为 x 轴。
ROC的几个关键点:
(TPR=0,FPR=0):把所有的都预测为负
(TPR=1,FPR=1):把所有的都预测为正
(TPR=1,FPR=0):理想模型。只要是正的,都预测为正。
一个好的分类器,尽量靠近左上角,随机猜想为对角线。
产生ROC曲线方法:
模型 M 的代价:
如下是一个代价矩阵:
它可以把决策边界扩展:
对于代价矩阵,若 C(+,+)=C(-,-)=0 的情况,分类正确不需要代价,则:
求解可以得到决策边界。
对于样本进行处理,假设有100个正样本和1000个负样本。
不充分抽样(udersampling):取和正样本一样数量的负样本,取100个负样本,形成训练集。
过分抽样(oversampling):将正样本复制,或者重复抽样,使得正样本的数量和负样本一样1000个。
1、one-vs-rest 方法。将多类问题分解为 K 个二类问题,将属于yi的归为正类,而其他类被分为负类,依次进行。
2、one-vs-one 方法。它构建K(K-1)/2 个二分类器,每一个分类器用来区分一对类 (yi,yj) ,当为类 (yi,yj) 建立分类器的时候,将不属于 (yi,yj) 的样本忽略掉。
例子:
使用上述两种方法建模后,可能出现分类平局。另一种方法,将输出转变为概率估计,将实例给予高概率的类。
纠错输出编码(error-correcting output coding,ECOC):一种处理多分类更加鲁棒的方法,给予每个类一个代码字,对于每个可能预测错误的,选取距离代码字最近的那一类。