ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

第7章 模型评估

2019-09-01 17:01:24  阅读:294  来源: 互联网

标签:AUC Network pred 模型 Nural part score 评估


7.1 分类模型评估

1、二分类

  混淆矩阵中对角线的元素代表正确分类的数量;

  非对角线元素代表错误分类的数量。

所以最为理想的模型(拿测试集来看),应该是一个对角阵。若无法得到对角阵,对角线上的数字之和如果占统治地位也是可以的。

片面的追求查准率可能会降低召回率

 

 2、多分类

 recall参数中的average()的取值:

  binary表示二分类

  micro表示多元混淆矩阵中的第一种方法

  macro表示的是一种不加权的平均

  weighted表示加权的平均

3、 反应分类效果的图及ROC曲线阈值的选取

(1)ROC、AUC

 

 选取标准:让TPR尽可能的大,FPR尽可能的小,所以选取其拐点

AUC表示的是ROC曲线下的面积,可以直接反应ROC曲线像左上方靠近的程度。

 

如何做ROC曲线?

 

https://scikit-learn.org/stable/modules/generated/sklearn.metrics.roc_curve.html#sklearn.metrics.roc_curve

xy_lst = [(X_train, Y_train), (X_validation, Y_validation), (X_test, Y_test)]

import matplotlib.pyplot as plt
from sklearn.metrics import roc_curve,auc,roc_auc_score
f = plt.figure()

for i in range(len(xy_lst)):
    X_part = xy_lst[i][0]
    Y_part = xy_lst[i][1]
    Y_pred = mdl.predict(X_part)
    # Y_pred = mdl.predict_classes(X_part)#用predict()时输出的是连续值,使用predict_classes()时输出的是分类标注
    # print(i)
    print(Y_pred)
    Y_pred = np.array(Y_pred[:,1]).reshape((1,-1))[0]
    # from sklearn.metrics import accuracy_score, recall_score, f1_score
    # print(i, '---:', 'Nural Network', '准确率:', accuracy_score(Y_part, Y_pred),
    #       '召回率:', recall_score(Y_part, Y_pred),
    #       'F1分数:', f1_score(Y_part, Y_pred))
    f.add_subplot(1,3,i+1)
    fpr,tpr,thresholds = roc_curve(Y_part,Y_pred)
    plt.plot(fpr,tpr)
    plt.shaow()
    #这两个函数功能一样
    print('Nural Network','AUC',auc(fpr,tpr))
    print('Nural Network','AUC Score',roc_auc_score(Y_part,Y_pred))
    '''
    Nural Network AUC 0.9610879734019506
    Nural Network AUC Score 0.9610879734019506
    Nural Network AUC 0.961721658936862
    Nural Network AUC Score 0.961721658936862
    Nural Network AUC 0.9637020039792525
    Nural Network AUC Score 0.9637020039792525
    '''

(2)增益图与KS图

其中KS图中关注的是,TPR曲线与FPR曲线的差距,这个差距反映了对正类样本的区分度。

 

 

 

 

 

 

标签:AUC,Network,pred,模型,Nural,part,score,评估
来源: https://www.cnblogs.com/Cheryol/p/11442812.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有