非均衡分类问题

通常情况下,我们直接使用分类结果的错误率就可以做为该分类器的评判标准了,但是当在分类器训练时正例数目和反例数目不相等时,这种评价标准就会出现问题。这种现象也称为非均衡分类问题。此时有以下几个衡量标准。

下面首先通过一副图来说明TP,FP,FN和TN的概念:


从图中可以看出形象的解释就是TP为预测为1而真实情况也为1的样本数量,FP为预测为1而真实情况为0的样本数量,FN为预测为0而真实情况为1的样本数量,TN为预测为0而真实情况为0的样本数量。

(1)   正确率<precise>和召回率<Recall>

              如下图所示:其中准确率指预测的真实正例占所有真实正例的比例,等于TP/(TP+FP),而召回率指预测的真实正例占所有真实正例的比例,等于TP/(TP+FN)。通常我们可以很容易的构照一个高正确率或高召回率的分类器,但是很难同时保证两者成立。如果任何样本都被判为了正例,那么召回率达到百分之百而此时准确率很低。构建一个同时使正确率和召回率最大的分类器是具有挑战性的。此时我们可以用F-Score =precise*recall/(precise+ recall) 这个量来衡量,越大越好。

(2)   ROC曲线



AUC计算工具:

http://mark.goadrich.com/programs/AUC/

[python]  view plain copy print ? 在CODE上查看代码片 派生到我的代码片
  1. def plotROC(predStrengths, classLabels):  
  2.     import matplotlib.pyplot as plt  
  3.     cur = (1.0,1.0#cursor  
  4.     ySum = 0.0 #variable to calculate AUC  
  5.     numPosClas = sum(array(classLabels)==1.0)  
  6.     yStep = 1/float(numPosClas); xStep = 1/float(len(classLabels)-numPosClas)  
  7.     sortedIndicies = predStrengths.argsort()#get sorted index, it's reverse  
  8.     fig = plt.figure()         #这三行代码用于构建画笔  
  9.     fig.clf()  
  10.     ax = plt.subplot(111)  
  11.     #loop through all the values, drawing a line segment at each point  
  12.     for index in sortedIndicies.tolist()[0]:  
  13.         if classLabels[index] == 1.0:  
  14.             delX = 0; delY = yStep;  
  15.         else:  
  16.             delX = xStep; delY = 0;  
  17.             ySum += cur[1]  
  18.         #draw line from cur to (cur[0]-delX,cur[1]-delY)  
  19.         ax.plot([cur[0],cur[0]-delX],[cur[1],cur[1]-delY], c='b')  
  20.         cur = (cur[0]-delX,cur[1]-delY)  
  21.     ax.plot([0,1],[0,1],'b--')  
  22.     plt.xlabel('False positive rate'); plt.ylabel('True positive rate')  
  23.     plt.title('ROC curve for AdaBoost horse colic detection system')  
  24.     ax.axis([0,1,0,1])  
  25.     plt.show()  
  26.     print "the Area Under the Curve is: ",ySum*xStep  


参考ROC文档:1:http://blog.csdn.net/abcjennifer/article/details/7359370

2:http://zh.wikipedia.org/wiki/ROC%E6%9B%B2%E7%BA%BF

作者:小村长  出处:http://blog.csdn.net/lu597203933 欢迎转载或分享,但请务必声明文章出处。 (新浪微博:小村长zack, 欢迎交流!)


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值