zoukankan      html  css  js  c++  java
  • 非均衡分类问题

    非均衡分类问题:

    1、样本正反例数量差距大;

    2、不同类别的分类代价不相等。

    除了分类错误率,还有以下分类性能度量指标:正确率、召回率和ROC曲线

    正确率:预测为正例的样本中真正正例的比例。

    召回率:预测为正例的真实正例占所有真实正例的比例。

    正确率和召回率很难同时达到很高。

    ROC曲线:横轴为伪正例的比例(假阳率),纵轴为真正例的比例(真阳率)。

    def plotROC(predStrengths,classLabels):
        import matplotlib.pyplot as plt
        plt.rcParams['font.sans-serif'] = ['SimHei']
        plt.rcParams['axes.unicode_minus'] = False
        cur = (1.0, 1.0) 
        ySum = 0.0  # variable to calculate AUC
        numPosClas = sum(array(classLabels) == 1.0)
        yStep = 1 / float(numPosClas)
        xStep = 1 / float(len(classLabels) - numPosClas)
        sortedIndicies = predStrengths.argsort()
        fig = plt.figure()
        fig.clf()
        ax = plt.subplot(111)
        # print(type(sortedIndicies))
        # print(sortedIndicies.tolist())
        for index in sortedIndicies.tolist()[0]:
            if classLabels[index] == 1.0:
                delX = 0
                delY = yStep
            else:
                delX = xStep
                delY = 0
                ySum += cur[1]
            ax.plot([cur[0], cur[0] - delX], [cur[1], cur[1] - delY], c='y')
            cur = (cur[0] - delX, cur[1] - delY)
        ax.plot([0, 1], [0, 1], 'r--')
        plt.xlabel('假阳率')
        plt.ylabel('真阳率')
        plt.title('AdaBoost马疝病检测系统的ROC曲线')
        ax.axis([0, 1, 0, 1])
        plt.show()
        print("the Area Under the Curve is: ", ySum * xStep)
    

     测试输出:

    if __name__=='__main__':
        dataArr,labelArr=loadDataSet('horseColicTraining2.txt')
        classifyArray,aggClassEst=adaBoostTrainDS(dataArr,labelArr,10)
        plotROC(aggClassEst.T,labelArr)
    

     

    the Area Under the Curve is:  0.8582969635063604
    
  • 相关阅读:
    12.16省选模拟t2 消防
    12.17省选模拟t3 围豆豆
    12.17省选模拟t1 生日礼物
    CF1322D Reality Show
    winform拖动无边框窗体
    关于ToolTip控件在XP系统中问题
    JDK源代码里面的一个for循环
    IIS5.1 无法运行asp.net网站但可访问静态页的解决方案
    winform窗体去掉标题头部的两种方式
    C# 语法之泛型
  • 原文地址:https://www.cnblogs.com/zhhy236400/p/9926162.html
Copyright © 2011-2022 走看看