zoukankan      html  css  js  c++  java
  • 数据分析第七篇:模型性能评价及选择

    1. 模型性能评价及选择

    看下sklearn中支持哪些机器学习的评估指标:

    from sklearn.metrix import SCORERS
    SCORERS

    1.1回归模型性能评价及选择

     

    1.1.1Mean Absolute Error 平均绝对误差(MAE)

    损失函数没有用这个,是因为绝对值不方便求导

     

    1.1.2Mean Squared Error 均方误差(MSE)

    1.1.3Root Mean Squared Error:均方根误差(RMS)

     

    https://zhuanlan.zhihu.com/p/36326966

    优缺点:在不同的物品中无法衡量好坏

    1.1.4Coefficient of determination 决定系数(R2和调整R2)

    R2方法是将预测值跟只使用均值的情况下相比,看能好多少。其区间通常在(0,1)之间。0表示还不如什么都不预测,直接取均值的情况,而1表示所有预测跟真实结果完美匹配的情况。 

     

    R方的意义:

     

    注意:

    1. R^2<=1
    2. R^2越大越好,当我们的模型不犯任何错误,R^2=1
    3. 当我们的模型等于基模型的时候,R^2=0
    4. 如果R^2<0 ,说明我们学习到的模型还不如基模型,很有可能我们的数据不存在任何线性关系

     

    1.2分类模型性能评价及选择

    给你一个癌症检测的数据集。你已经建好了分类模型,取得了96%的精度。为什么你还是不满意你的模型性能?你可以做些什么呢? https://zhuanlan.zhihu.com/p/43926232

    衡量分类器的好坏?https://zhuanlan.zhihu.com/p/43088612

    机器学习和统计里面的auc的物理意义是啥?https://zhuanlan.zhihu.com/p/43088612

    1.2.1准确率 Accuracy

    # same to accuracy
    print("score", KNN_classifier.score(X_test, y_test))
    
    # must predict the result before use the function
    print("accuracy_score:",accuracy_score(y_test, y_predict))

    1.2.2准确率悖论 Accuracy Paradox

    这个图是我们用分类器模型预测出来的结果得到的准确率:

     

    下面这个是我们用一个傻瓜式的分类,将所有的结果预测为0得到的精确度

     

    1.2.3伪阳性和伪阴性 False Positive 和 False Negative

    伪阳性(第一类错误):预测某类事情会发生但是实际并没有发生

    伪阴性(第二类错误):预测某类事情不会发生但是实际发生

    一般来说第二类错误比第一类错误严重得多。比如说艾滋病检测

    你怎么理解第一类和第二类错误?https://zhuanlan.zhihu.com/p/44483185

    1.2.4混淆矩阵 Confusion Matrix

     

     

    1.2.5精准率(查准率) Precision

    有时候我们会更加注重精准率,比如说股票预测

    Precison = TP/(TP+FP)

    1.2.6召回率(查全率)Recall

    有时候更加注重召回率,比如说病人诊断,比如说地震预测

    Recall = TP/(TP+FN)

    真阳性率和召回有什么关系?写出方程式。https://zhuanlan.zhihu.com/p/44200970

    1.2.7 F1 Score

    有些情况下并没有上面两个这么极端,我们希望能同时关注精准率和召回率,这种时候我们使用F1 score ,同时使用精准率和召回率。

    F1 score使用的是precision和recall的调和平均值,调和平均值的特点是两者中有一个特别低整个值也就特别低,只有这两个都同时很高,结果才会很高

     

    F1=2PR/(P+R)取值范围为(0,1)

    1.2.8 AUC Area Under Curve

    AUC 值为 ROC 曲线所覆盖的区域面积,显然,AUC越大,分类器分类效果越好。

    AUC = 1,是完美分类器。

    0.5 < AUC < 1,优于随机猜测。有预测价值。

    AUC = 0.5,跟随机猜测一样(例:丢铜板),没有预测价值。

    AUC < 0.5,比随机猜测还差;但只要总是反预测而行,就优于随机猜测。

    注:对于AUC小于 0.5 的模型,我们可以考虑取反(模型预测为positive,那我们就取negtive),这样就可以保证模型的性能不可能比随机猜测差。

    1.2.9 累计准确曲线 CAP Curve(ROC)

    蓝色的曲线:使用随机模型联系客户

    红色的曲线:使用模型预测概率之后有选择的联系客户

    黑色的线:最好的曲线

     

    那么如何量化曲线的好与不好?

    AR比值越接近1,说明模型的效果越好,比值越接近0,说明模型的效果越差

     

    但是计算面积比较复杂,那如何用一个简单的方法去判断?

    这个时候我们可以选择X轴的50%的点,去看y的值

  • 相关阅读:
    浅析软件开发项目的前期沟通工作
    .net core 和 WPF 开发升讯威在线客服系统:实现对 IE8 的完全完美支持 【干货】
    产品的定价策略(一):想通过产品挣钱,首先你产品的目标客户得不差钱
    .net core 和 WPF 开发升讯威在线客服系统:使用线程安全的 BlockingCollection 实现高性能的数据处理
    .net core 和 WPF 开发升讯威在线客服系统:使用 TCP协议 实现稳定的客服端
    .net core 和 WPF 开发升讯威在线客服系统:使用 WebSocket 实现访客端通信
    Centos上配置两层nginx转发,把请求转发到外网
    真实字节二面:什么是伪共享?
    关于MVCC,我之前写错了,这次我改好了!
    从家庭主妇到格力老总,董明珠的大女主逆袭之路
  • 原文地址:https://www.cnblogs.com/leijing0607/p/7814693.html
Copyright © 2011-2022 走看看