精华内容
下载资源
问答
  • 对OSI参考模型评价 无论是OSI参考模型与协议,还是TCP/IP参考模型与协议都是不完美的。造成OSI参考模型不能流行的主要原因是之一是其自身的缺陷。会话层在大多数应用中很少用到,表示层几乎是空的。在数据链路层...
    整理下两种网络参考模型,主要学习两个模型的分层思想。
    OSI参考模型的评价
    
      无论是OSI参考模型与协议,还是TCP/IP参考模型与协议都是不完美的。造成OSI参考模型不能流行的主要原因是之一是其自身的缺陷。会话层在大多数应用中很少用到,表示层几乎是空的。在数据链路层与网络层之间有很多的子层插入,每个子层有不同的功能。OSI模型将“服务”与“协议”的定义结合起来,使得参考模型变得格外复杂,将它的实现起是困难的。同时,寻址、流控与差错控制在每一层里都重复出现,必然降低系统效率。虚拟终端协议最初安排在表示层,现在安排在应用层。关于数据安全性,加密与网络管理等方面的问题也在参考模型的设计初期被忽略了。参考模型的设计更多是被通信思想所支配,很多选择不适合于计算机与软件的工作方式。很多“原语“在软件的很多高级语言中实现起来很容易,但严格按照层次模型编程的软件效率很低。
    
    TCP/IP模型的评价
    
      TCP/IP参考模型与协议也有它自身的缺陷
    
      1) 它在服务、接口与协议的区别上不清楚。一个好的软件工程应该将功能与实现方法区分开来,TCP/IP恰恰没有很好的做到这点,这就使得TCP/IP参考模型对于使用新技术的指导意义不够。
    
      2) TCP/IP的主机-网络层本身并不是实际的一层,它定义了网络层与数据链路层的接口。物理层与数据链路层的划分是必要和合理的,一个好的参考模型应该将它们区分开来,而TCP/IP参考模型却没有做到这点。
    
    

    ISO 7层模型

    1.物理层:主要定义物理设备标准,如网线的接口类型、光纤的接口类型、各种传输介质的传输速率等。它的主要作用是传输比特流(就是由1、0转化为电流强弱来进行传输,到达目的地后再转化为1、0,也就是我们常说的数模转换与模数转换)。这一层的数据叫做比特。
    2.数据链路层:定义了如何让格式化数据以进行传输,以及如何让控制对物理介质的访问。这一层通常还提供错误检测和纠正,以确保数据的可靠传输。(基于帧的可靠性传输)
    3.网络层:在位于不同地理位置的网络中的两个主机系统之间提供连接和路径选择。Internet的发展使得从世界各站点访问信息的用户数大大增加,而网络层正是管理这种连接的层。
    4.传输层:定义了一些传输数据的协议和端口号(WWW端口80等),如:TCP(传输控制协议,传输效率低,可靠性强,用于传输可靠性要求高,数据量大的数据),UDP(用户数据报协议,与TCP特性恰恰相反,用于传输可靠性要求不高,数据量小的数据,如QQ聊天数据就是通过这种方式传输的)。 主要是将从下层接收的数据进行分段和传输,到达目的地址后再进行重组。常常把这一层数据叫做段。(基于数据包的可靠性传输)
    5.会话层:通过传输层(端口号:传输端口与接收端口)建立数据传输的通路。主要在你的系统之间发起会话或者接受会话请求(设备之间需要互相认识可以是IP也可以是MAC或者是主机名)。(传输中断,重发,断点控制)
    6.表示层:可确保一个系统的应用层所发送的信息可以被另一个系统的应用层读取。例如,PC程序与另一台计算机进行通信,其中一台计算机使用扩展二一十进制交换码(EBCDIC),而另一台则使用美国信息交换标准码(ASCII)来表示相同的字符。如有必要,表示层会通过使用一种通格式来实现多种数据格式之间的转换。
    7.应用层:是最靠近用户的OSI层。这一层为用户的应用程序(例如电子邮件文件传输终端仿真)提供网络服务。

    TCP/IP参考模型
    TCP/IP是一组用于实现网络互连的通信协议。Internet网络体系结构以TCP/IP为核心。基于TCP/IP的参考模型将协议分成四个层次,它们分别是:网络访问层、网际互连层、传输层主机到主机)、和应用层
    应用层对应于OSI参考模型的高层,为用户提供所需要的各种服务,例如:FTP、Telnet、DNS、SMTP等.
    传输层对应于OSI参考模型的传输层,为应用层实体提供端到端的通信功能,保证了数据包的顺序传送及数据的完整性。该层定义了两个主要的协议:传输控制协议(TCP)和用户数据报协议(UDP).
    TCP协议提供的是一种可靠的、面向连接的数据传输服务;而UDP协议提供的则是不可靠的、无连接的数据传输服务.
    3.网际互联层
    网际互联层对应于OSI参考模型的网络层,主要解决主机到主机的通信问题。它所包含的协议设计数据包在整个网络上的逻辑传输。注重重新赋予主机一个IP地址来完成对主机的寻址,它还负责数据包在多种网络中的路由。该层有三个主要协议:网际协议(IP)、互联网组管理协议(IGMP)和互联网控制报文协议(ICMP)。
    IP协议是网际互联层最重要的协议,它提供的是一个可靠、无连接的数据报传递服务。
    4.网络接入层(即主机-网络层)
    网络接入层与OSI参考模型中的物理层数据链路层相对应。它负责监视数据在主机和网络之间的交换。事实上,TCP/IP本身并未定义该层的协议,而由参与互连的各网络使用自己的物理层数据链路层协议,然后与TCP/IP的网络接入层进行连接。地址解析协议(ARP)工作在此层,即OSI参考模型的数据链路层。
    展开全文
  • 模型评估函数的优缺点、选择举例

    千次阅读 2018-11-20 20:32:38
     局限性:对于样本类别之间数量差距很大的数据,运用准确率作为评价标准,很容易让模型得到‘满足’,但是,我们关注的可能往往是数量较少的呢一个类别,比如免费玩家和充值玩家,对于游戏公司希望对模型对充值玩家...

    参考书籍《百面机器学习》

    1.评估指标的局限性

    涉及到的评估指标(Accuracy,precision,recall,rmse)

     

    (1)准确率的局限性

        局限性:对于样本类别之间数量差距很大的数据,运用准确率作为评价标准,很容易让模型得到‘满足’,但是,我们关注的可能往往是数量较少的呢一个类别,比如免费玩家和充值玩家,对于游戏公司希望对模型对充值玩家的分类性能更好一点。

        解决方案:针对这种问题,我们可以考虑使用平均准确率(每个类别的样本准确率的算术平均)将其代替

     

    (2)精确率与召回率的权衡

        首先介绍精确率和召回率的定义:

    精确率:是指分类正确的样本中正样本的个数占模型判断正样本个数的比例。

    召回率:是指分类正确的样本中正样本的个数占原始数据中真正的正样本的个数。

     

        局限性:单纯的以精确率为评价标准会导致模型过于‘保守’,不会轻易将样本归类为正样本即划分的阈值设置的很高,导致很多正样本被归为负样本,召回率急剧下降。相反,单纯的以召回率为评价标准也会导致模型过于‘开放’,精确率急剧下降。

        解决方法:P-R(precision-recall)曲线、F1-score,roc代替

        pr曲线的横轴是召回率,纵轴是精确率,通过改变当前的同一个模型阈值的方式来画出精确率和召回率范围分别在0-1之间的曲线。

        F1 score是精确率和召回率的调和平均值.   公式:F1 = (2*precision*recall)/(precision + recall)

    调和平均数的应用:

        调和平均数可以用在相同距离但速度不同时,平均速度的计算;如一段路程,前半段时速60公里,后半段时速30公里〔两段距离相等〕,则其平均速度为两者的调和平均数时速40公里。

     

    (3)平方根误差(RMSE)的缺陷

      局限性:平方根误差对于呢些偏离程度非常大的离群点很敏感,即便是这种离群点的数量非常少,也会让评价指标变得非常差。这种情况常常发生在短时变化比较大的数据上面(风电预测,访问量预测等)。

      解决方法:    1.过滤掉这些噪声点(如果我们认为这些离群点是噪声点的话)。

                             2.提升模型预测效果,学习这些离群点的规律。

                             3.用mape平均绝对百分比误差代替。

    未完待续-------

    展开全文
  • 精确率、召回率、F1、AUC和ROC曲线其实都是评价模型好坏的指标,而且相互之间是有关系的,只是侧重点不同,题主如果理解了各指标的定义就能找出他们的区别与联系,下面就用一个例子解释这些指标。 以白...

    转自:https://www.zhihu.com/question/30643044/answer/222274170

    来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

    精确率、召回率、F1、AUC和ROC曲线其实都是评价模型好坏的指标,而且相互之间是有关系的,只是侧重点不同,题主如果理解了各指标的定义就能找出他们的区别与联系,下面就用一个例子解释这些指标。
    以白条的逾期预测模型为例,这是一个有监督的二分类模型,模型对每个样本的预测结果为一个概率值,我们需要从中选取一个阈值来区分好用户和坏用户。
    如果我们已经定好了一个阈值,超过此阈值定义为坏用户(1),低于此阈值定义为好用户(0),就可以计算出混淆矩阵(Confusion matrix)。

    根据混淆矩阵我们可以得到TP,FN,FP,TN四个值,TP即为预测正确的坏用户的个数,FN为预测错误(预测为好用户)的坏用户个数,根据这四个值即可计算精确率、召回率和F1。

    精确率(Precision)为TP/(TP+FP),即为在预测为坏人的人中,预测正确(实际为坏人)的人占比。
    召回率(Recall)为TP/(TP+FN),即为在实际为坏人的人中,预测正确(预测为坏人)的人占比。
    F1值是精确率和召回率的调和均值,即F1=2PR/(P+R),相当于精确率和召回率的综合评价指标。

    另外还有Fα值,为F1值的变体,Fα=(α^2+1)PR/(α^2 P+R),利用α给P和R赋予不同的权重,若α=1则为F1值。
    接着来说ROC曲线(Receiver operating characteristic curve),ROC曲线其实是多个混淆矩阵的结果组合,如果在上述模型中我们没有定好阈值,而是将模型预测结果从高到低排序,将每个概率值依次作为阈值,那么就有多个混淆矩阵。

    对于每个混淆矩阵,我们计算两个指标TPR(True positive rate)和FPR(False positive rate),TPR=TP/(TP+FN)=Recall,TPR就是召回率。FPR=FP/(FP+TN),FPR即为实际为好人的人中,预测为坏人的人占比。我们以FPR为x轴,TPR为y轴画图,就得到了ROC曲线。

     

                                                            

     

                                                            

    在画ROC曲线的过程中,若有一个阈值,高于此阈值的均为坏人,低于此阈值的均为好人,则认为此模型已完美的区分开好坏用户。此时坏用户的预测准确率(TPR)为1,同时好用户的预测错误率(FPR)为0,ROC曲线经过(0,1)点。
    AUC(Area Under Curve)的值为ROC曲线下面的面积,若如上所述模型十分准确,则AUC为1。
    但现实生活中尤其是工业界不会有如此完美的模型,一般AUC均在0.5到1之间,AUC越高,模型的区分能力越好,上图AUC为0.81。

    若AUC=0.5,即与上图中红线重合,表示模型的区分能力与随机猜测没有差别。若AUC真的小于0.5,请检查一下是不是好坏标签标反了,或者是模型真的很差。
    也有人会用Gini系数来评价模型,其实Gini系数与AUC所表示的意义相同,只是计算方式不同。Gini系数指ROC曲线与中线(上图红线)围成的面积和中线(上图红线)之上的面积(0.5)的比例,两者之间换算公式为Gini=2*AUC-1。

    除此之外,在评价模型时还会用到KS(Kolmogorov-Smirnov)值,KS=max(TPR-FPR),即为TPR与FPR的差的最大值,KS值可以反映模型的最优区分效果,此时所取的阈值一般作为定义好坏用户的最优阈值。

    上图ROC曲线的KS值为0.45,此时TPR=0.79,FPR=0.34。

    当然,阈值的选取还要考虑应用场景及业务要求,对于FPR不敏感而对TPR敏感的场景,可以适当增加阈值以增加TPR。

    如精准营销领域的商品推荐模型,模型目的是尽量将商品推荐给感兴趣的用户,若用户对推荐的商品不感兴趣,也不会有很大损失,因此此时TPR相对FPR更重要。

    再比如反欺诈领域的欺诈预测模型,由于模型结果会对识别的坏人进行一定的处置措施,FPR过高会对好人有一定干扰,造成误杀,影响客户体验,因此模型需保证在低于一定FPR的基础上尽量增加TPR。

    了解了这些指标定义后可以发现,对于分类模型,AUC、KS、ROC曲线是综合评价模型区分能力和排序能力的指标,而精确率、召回率和F1值是在确定最佳阈值之后计算得到的指标。
    当然,PR曲线(Precision-Recall curve)和ROC曲线类似,ROC曲线是FPR和TPR的点连成的线,PR曲线是准确率和召回率的点连成的线,如下图所示。

     

                                                                   

     

                                                                   

    我们又知道,Recall=TPR,因此PRC的横坐标为ROC的纵坐标。
    TPR、FPR、Precision、Recall的定义来对比,TPR、Recall的分母为样本中坏客户的个数,FPR的分母为样本中好客户的个数,样本一旦确定分母即为定值,因此三个指标的变化随分子增加单调递增。
    但是Precision的分母为预测为坏客户的个数,会随着阈值的变化而变化,因此Precision的变化受TP和FP的综合影响,不单调,变化情况不可预测。
    而且TP和FP的值分别受样本中好坏客户个数的制约,若样本极不均衡,比如好客户过多,则随Recall的增加,FP会远大于TP的值,Precision会变化很大。
    相对来讲ROC曲线会稳定很多,在正负样本量都足够的情况下,ROC曲线足够反映模型的判断能力。
    因此,对于同一模型,PRC和ROC曲线都可以说明一定的问题,而且二者有一定的相关性,如果想评测模型效果,也可以把两条曲线都画出来综合评价。
    对于有监督的二分类问题,在正负样本都足够的情况下,可以直接用ROC曲线、AUC、KS评价模型效果。在确定阈值过程中,可以根据Precision、Recall或者F1来评价模型的分类效果。

    对于多分类问题,可以对每一类分别计算Precision、Recall和F1,综合作为模型评价指标。
    当然,评价模型的指标不止以上几种,同时对于不同的应用场景及业务要求会有不同的侧重,根本上需要根据建模目的进行具体分析。



    作者:yz_wang
    链接:https://www.jianshu.com/p/55b17fe758e4
    來源:简书
    简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

    展开全文
  • 机器学习模型评价指标大概有 1、回归的:RMSE(平方根误差)、MAE(平均绝对误差)、MSE(平均平方误差)、Coefficient of determination (决定系数R2)、 MAPE(平均绝对百分误差)、MSLE(均方根对数误差)等。 2、...

    机器学习模型评价指标大概有

    1、回归的:RMSE(平方根误差)、MAE(平均绝对误差)、MSE(平均平方误差)、Coefficient of determination (决定系数R2)、 MAPE(平均绝对百分误差)、MSLE(均方根对数误差)等

    2、分类的:混淆矩阵、精确率、召回率、准确率、F1值、ROC-AUC 、PRC、G-MEAN等。

    3、聚类的:兰德指数、互信息、轮廓系数等。

    本篇主要记录回归模型的评估指标,为什么先写回归?因为上个项目使用了回归模型,就近。在学习python,算法等技能的过程中,站在前辈们的肩膀上明白了很多知识的应用。待时间如丝线缓缓,攒起幸福的模样,学习是个积累的过程,接下来我会慢慢的整理出笔记本里的要点及部分项目 (习惯本地保存文件)。若有不正之处,尽请指教。


    目录

    1评估指标

    绝对误差与相对误差

    Mean absolute error  MAE(平均绝对误差)

    Mean squared error  MSE(均方误差)

    Root Mean squared error  RMSE(均方根误差)

    Mean squared logarithmic error  MSLE(均方根对数误差)

    Mean Absolute Percentage Error   MAPE(平均绝对百分误差)

    R-square(决定系数) Coefficient of determination                                                                               

    Adjusted R-Square (校正决定系数)

    Median absolute error(中位数绝对误差)

    explained_variance_score(解释方差分)

    2 解决评估指标鲁棒性问题

    3 参考文档



    变量解释:Y 真实值,Ypredict  预测值,Ymean  目标数据均值,  n 样本数  ,p 特征数

    以下为一元变量和二元变量的线性回归示意图:

     

    首先了解下回归分析3种误差

    SSR(回归平方和)  The sum of squares for regression   ,是估计值与平均值的误差

                                                                           SSR=\sum \left ( Ypredict -Ymean\right )^{2}

    SSE(误差平方和)    The sum of squares for  error ,估计值与真实值的误差,随着样本增加,SSE必然增加,也就是说,不同的数据集的情况下,SSE比较没有意义,所以需要有前提条件。同样的数据集的情况下,SSE越小,误差越小,模型效果越好。

                                                                           SSE=\sum \left ( Y- Ypredict \right )^{2}

    SST(总离差平方和)  The sum of squares for total ,平均值与真实值的误差,它反映了与数学期望的偏离程度,样本分散程度

                                                                           SSR=\sum \left ( Y- Ymean\right )^{2}

    回归问题衡量的是预测出Y对于真实Y的差距。通过差距辅助判断预测结果的准确性。预测值和真实值2组数据,利用均值之差进行统计推断,背后的原理 ,是方差分析的思想。绝对误差指标衡量了一组数据 与 另外一组数据的均值  差的绝对值 之和,我们南方妹子平均身高165cm(可能还稍低一些,捂脸),另外一组175cm 左右样本,差值之和,不用算,根据之前的经验,结果显而易见,她们就是一组小仙女和一组高仙女,不一样不一样。

    1评估指标

    • 绝对误差与相对误差

                                                                          绝对误差= Y - Ypredict 

                                                                          相对误差 =\frac{Y-Ypredict}{Y}

     绝对误差是从极差发展而来的。极差是最大值-最小值,最初用极差来评价一组数据的离散度。因为由两个数据来评判一组数据是不科学的,所以从极差进行改进,改用绝对误差之和。

    (1)为避免出现绝对误差总和为零,所以对绝对误差 求绝对值求平方。
    (2)而为避免指标受样本含量的影响,所以除以样本数,求平均值。

    • Mean absolute error  MAE(平均绝对误差)

    平均绝对误差(Mean Absolute Error,MAE),又称为L1范数损失。用于评估预测结果和真实数据集的接近程度,其值越小说明拟合效果越好。可以更好地反映预测值误差的实际情况。

                                                                         MAE=  \frac{1}{n}  ∑ |Y - Ypredict|

    优点:可以把绝对误差和相对误差里面正负相互抵消的问题去掉。

    缺点:绝对值的存在导致函数不光滑,在某些点上不能求导

    #mean_absolute_error
    from sklearn.metrics import mean_absolute_error
    y_true=[3,0.5,2,7]
    y_pred=[2.5,0.0,2,8]
    print(mean_absolute_error(y_true,y_pred))
    
    y_true=[[0.5,1],[-1,1],[7,-6]]
    y_pred=[[0,2],[-1,2],[8,-5]]
    print(mean_absolute_error(y_true,y_pred))
    print(mean_absolute_error(y_true,y_pred,multioutput="raw_values"))
    print(mean_absolute_error(y_true,y_pred,multioutput=[0.3,0.7]))
    
    #结果
    #0.5
    #0.75
    #[ 0.5  1. ]
    #0.85
    
    • Mean squared error  MSE(均方误差)

    均方差(Mean squared error,MSE)L2范数损失,该指标计算的是拟合数据和原始数据对应样本点的误差的平方和的均值,其值越小说明拟合效果越好。常被用作线性回归的损失函数

                                                                         MSE=  \frac{1}{n}\sum \left ( Y- Ypredict \right )^{2}  

    优点:解决了不光滑的问题(即不可导问题)。

    缺点:MSE与我们的目标变量的量纲不一致,为了保证量纲一致性,我们需要对MSE进行开方,得到RMSE。

    #mean_squared_error
    from sklearn.metrics import mean_squared_error
    y_true=[3,-0.5,2,7]
    y_pred=[2.5,0.0,2,8]
    print(mean_squared_error(y_true,y_pred))
    y_true=[[0.5,1],[-1,1],[7,-6]]
    y_pred=[[0,2],[-1,2],[8,-5]]
    print(mean_squared_error(y_true,y_pred))
    
    #结果
    #0.375
    #0.708333333333
    
    • Root Mean squared error  RMSE(均方根误差)

    常用来作为机器学习模型预测结果衡量的标准。MSE加了个根号,这样数量级上比较直观,比如RMSE=10,可以认为回归效果相比真实值平均相差10。

                                                                        RMSE=  \sqrt{\frac{1}{n}\sum \left ( Y- Ypredict \right )^{2}} =\sqrt{MSE}  

    优点:解决了上述的缺点。

    缺点:它是使用平均误差,而平均值对异常点(outliers)较敏感,如果回归器对某个点的回归值很不理想,那么它的误差则较大,从而会对RMSE的值有较大影响,即平均值是非鲁棒的。受到量纲化影响

     RMSE与MAE对比:RMSE相当于L2范数,MAE相当于L1范数。次数越高,计算结果就越与较大的值有关,而忽略较小的值,所以这就是为什么RMSE针对异常值更敏感的原因(即有一个预测值与真实值相差很大,那么RMSE就会很大)。

    from sklearn.metrics import mean_squared_error
    import numpy as np
     
    y_true = [3, -0.5, 2, 7]
    y_pred = [2.5, 0.0, 2, 8]
    MSE = mean_squared_error(y_true, y_pred)
    RMSE = np.sqrt(MSE )
    print(RMSE)
    

     

    • Mean squared logarithmic error  MSLE(均方根对数误差)

    当目标实现指数增长时,例如人口数量、一种商品在几年时间内的平均销量等,这个指标最适合使用。请注意,这个指标惩罚的是一个被低估的估计大于被高估的估计。

                                                                            

    from sklearn.metrics import mean_squared_log_error
    y_true = [3, 5, 2.5, 7]
    y_pred = [2.5, 5, 4, 8]
    mean_squared_log_error(y_true, y_pred)  
    0.039...
    y_true = [[0.5, 1], [1, 2], [7, 6]]
    y_pred = [[0.5, 2], [1, 2.5], [8, 8]]
    mean_squared_log_error(y_true, y_pred)  
    0.044...
    

     

    • Mean Absolute Percentage Error   MAPE(平均绝对百分误差)

                                                                            MAPE=\frac{1}{n} \sum |\frac{Y-Ypredict}{Y}| *100

    MAPE相比于MSE和RMSE,不易受个别离群点影响,鲁棒性更强。                                                                

    import numpy as np 
    def mape(y_true, y_pred): """
        参数:
        y_true -- 测试集目标真实值
        y_pred -- 测试集目标预测值
        
        返回:
        mape -- MAPE 评价指标
        """ 
        n = len(y_true) 
        mape = sum(np.abs((y_true - y_pred)/y_true))/n*100 
        return mape
    
    • R-square(决定系数) Coefficient of determination                                                                               

                                                                    R^{_{2}}=\frac{SSR}{SST} =\frac{SST-SSE}{SST} =1-\frac{SSE}{SST}

                                                                     R^{^{2}}=1-\frac{\sum \left (Y-Ypredict \right )^{2}}{\sum \left (Y-Ymean \right )^{2}}            

       R方一个综合评估的指标,可以理解为因变量y中的变异性能能够被估计的多元回归方程解释的比例,它衡量各个自变量对因变量变动的解释程度,分母理解为原始数据的离散程度,分子为预测数据和原始数据的误差,二者相除可以消除原始数据离散程度的影响.其取值在0与1之间,其值越接近1,则变量的解释程度就越高,其值越接近0,其解释程度就越弱。

    理论上取值范围(-∞,1], 正常取值范围为[0 1] ------实际操作中通常会选择拟合较好的曲线计算R²,因此很少出现-∞

    越接近1,表明方程的变量对y的解释能力越强,这个模型对数据拟合的也较好

    越接近0,表明模型拟合的越差

    经验值:>0.4, 拟合效果好

    优点:既考虑了预测值与真值之间的差异,也考虑了问题本身真值之间的差异,是一个归一化的度量标准。

    缺点: 数据集的样本越大,R²越大,因此,不同数据集的模型结果比较会有一定的误差

    #r2_score
    from sklearn.metrics import r2_score
    y_true=[3,-0.5,2,7]
    y_pred=[2.5,0.0,2,8]
    print(r2_score(y_true,y_pred))
    
    y_true=[[0.5,1],[-1,1],[7,-6]]
    y_pred=[[0,2],[-1,2],[8,-5]]
    print(r2_score(y_true,y_pred,multioutput="variance_weighted"))
    
    y_true=[[0.5,1],[-1,1],[7,-6]]
    y_pred=[[0,2],[-1,2],[8,-5]]
    print(r2_score(y_true,y_pred,multioutput="uniform_average"))
    print(r2_score(y_true,y_pred,multioutput="raw_values"))
    print(r2_score(y_true,y_pred,multioutput=[0.3,0.7]))
    
    #结果
    #0.948608137045
    #0.938256658596
    #0.936800526662
    #[ 0.96543779  0.90816327]
    #0.92534562212
    
    • Adjusted R-Square (校正决定系数)

    一般来说,增加自变量的个数,回归平方和会增加,残差平方和会减少,所以R方会增大;反之,减少自变量的个数,回归平方和减少,残差平方和增加。

    为了消除自变量的数目的影响,引入了调整的R方,消除了样本数量和特征数量的影响

                                                                  R_{adj}^{2}=1- \frac{(1-R^{2})(n-1)}{n-p-1}

    import numpy as np
    from sklearn.metrics import r2_score
     
    y_true = [[0.5, 1], [0.1, 1], [7, 6], [7.5, 6.5]]
    y_pred = [[0, 2], [0.1, 2], [8, 5], [7.2, 6.2]]
    y_true_array = np.array([[0.5, 1], [0.1, 1], [7, 6], [7.5, 6.5]])
    n=y_true_array.shape[0]         #样本数量
    p=y_true_array.shape[1]         #特征数量
    print(n,p)
    r2_score01 = r2_score(y_true, y_pred, multioutput='variance_weighted')
    print(r2_score01)
    Adj_r2_score01 = 1-( (1-r2_score01)*(n-1) ) / (n-p-1)
    print(Adj_r2_score01) 
    

     

    • Median absolute error(中位数绝对误差)

    中位数绝对误差适用于包含异常值的数据的衡量。先计算出数据与它们的中位数之间的残差(偏差),MedAE就是这些偏差的绝对值的中位数。

                                                                  MedAE= median (|Yi - Yi predict|) i=0.1.2.....n

    绝对中位差是一种统计离差的测量。而且,是一种鲁棒统计量,比标准差更能适应数据集中的异常值。对于标准差,使用的是数据到均值的距离平方,所以大的偏差权重更大,异常值对结果也会产生重要影响。对于绝对中位差,少量的异常值不会影响最终的结果。

    由于绝对中位差是一个比样本方差或者标准差更鲁棒的度量,它对于不存在均值或者方差的分布效果更好,比如柯西分布。

    #median_absolute_error
    from sklearn.metrics import median_absolute_error
    y_true=[3,-0.5,2,7]
    y_pred=[2.5,0.0,2,8]
    print(median_absolute_error(y_true,y_pred))
    
    #结果
    #0.5
    

     

    • explained_variance_score(解释方差分)

    解释回归模型的方差得分,这个指标用来衡量我们模型对数据集波动的解释程度,其值取值范围是[0,1],越接近于1说明自变量越能解释因变量的方差变化,值越小说明效果越差。

                                                                      

    #explained_variance_score
    from sklearn.metrics import explained_variance_score
    y_true=[3,-0.5,2,7]
    y_pred=[2.5,0.0,2,8]
    print(explained_variance_score(y_true,y_pred))
    y_true=[[0.5,1],[-1,1],[7,-6]]
    y_pred=[[0,2],[-1,2],[8,-5]]
    print(explained_variance_score(y_true,y_pred,multioutput="raw_values"))
    print(explained_variance_score(y_true,y_pred,multioutput=[0.3,0.7]))
    
    #结果
    #0.957173447537
    #[ 0.96774194  1.        ]
    #0.990322580645
    

     

    2 解决评估指标鲁棒性问题

     MAE,MSE,RMSE,决定系数等评估指标是基于误差的均值对进行评估的,均值对异常点(outliers)较敏感,如果样本中有一些异常值出现,会对以上指标的值有较大影响,即均值是非鲁棒的。

    通常用一下两种方法解决评估指标的鲁棒性问题:

    • 剔除异常值                设定一个相对误差 ,当该值超过一定的阈值时,则认为其是一个异常点,剔除这个异常点,将异常点剔除之后。再计算平均误差来对模型进行评价。
    • 使用误差的分位数来代替                 如利用中位数来代替平均数。例如 MAPE,MAPE是一个相对误差的中位数,根据数据情况用别的分位数也行。

    3 参考文档

    https://blog.csdn.net/shy19890510/article/details/79375062

    https://blog.csdn.net/Monk_donot_know/article/details/86614558#1__1

    https://blog.csdn.net/weixin_39541558/article/details/80705006#%EF%BC%884%EF%BC%89%C2%A0Mean%20squared%20logarithmic%20error

    https://www.cnblogs.com/nolonely/p/7009001.html

    https://yunyaniu.blog.csdn.net/article/details/91531343

    https://www.cnblogs.com/wj-1314/p/9400375.html

     

     

    展开全文
  • RNNLM,循环神经网络的基本结构与训练过程、优缺点;语言模型评价指标说明。
  • 【快速索引】【】相关链接【】学习笔记、要点整理分类... ROC、AUC等评价指标的优缺点 ROC曲线+mean_tpr在mean_fpr处进行插值 【】学习笔记、要点整理 分类模型评价指标: Accuracy准确率【正确预测的】、 Pr...
  • 本文将对这三个任务的相关技术进行回顾,并就每种技术的理论和实证研究的主要优缺点进行讨论。文章还将就机器学习算法中的超参数调优给出尽可能的建议,用以实现最佳的算法效果。文中内容涉及很多常用方法,比如模型...
  • 本文将对这三个任务的相关技术进行回顾,并就每种技术的理论和实证研究的主要优缺点进行讨论。文章还将就机器学习算法中的超参数调优给出尽可能的建议,用以实现最佳的算法效果。文中内容涉及很多常用方法,比如模型...
  • KNN的优缺点 KNN代表着"投票类"的算法,一直广泛受到业界的欢迎。不过KNN也有自己的缺点,那就是它的计算非常缓慢,因为KNN必须对每一个测试点来计算到每一个训练数据点的距离,并且这些距离点涉及到所有的特征,当...
  • 伴随企业产品的生产,一些有害副产品也随之被生产出来,传统的DEA...文章比较了非期望产出处理的相关DEA模型优缺点,引入了一个非径向和非角度的SBM模型处理非期望产出问题,并对43家企业进行了环境效率的实证分析。
  • 在介绍地下水质量评价方法优缺点的基础上,分析了建立可拓评价模型的一般方法,探讨了该模型在水环境评价中的应用.根据简单关联法的多前提性,提出层次分析法的可拓评价的改进方法.结合榆神府矿区的水环境的实际资料,对...
  • 对比分析了各种供应商评价方法的优缺点,针对数据包络分析(Data Envelopment Analysis,简称DEA)模型评价供应商存在多个有效决策单元的问题,采用在DEA模型中添加虚拟决策单元的方法对有效决策单元进行排序,并...
  • 作者:京东白条 ... 来源:知乎 ...精确率、召回率、F1、AUC和ROC曲线其实都是评价模型好坏的指标,而且相互之间是有关系的,只是侧重点不同,题主如果理解了各指标的定义就能找出他们的区别与联系,下面就
  • 在分析研究了现有目标视图需求分析方法的优缺点后,对AGORA目标视图模型进行了扩展,提出了一种基于开发成本以及正确性、一致性、可变性等多可信属性的需求方案综合满意度评价选择方法。该方法解决了需求分析设计...
  • 通过对几种评价模型的分析,对它们的优缺点进行比较,最终选定Logistic模型对企业信用进行评估.以97家上市公司连续四年的财务数据为研究对象,运用SPSS软件对指标进行相关性分析,并结合Mann-Whitney U检验法进行...
  • 作者在分析传统风险评价方法的优缺点、剖析偏最小二乘法和最大熵法优势的基础上,首次提出了偏最小二乘一最大熵(PLSME)风险分析模型。偏最小二乘法较好地实现了多元线性回归、主成分分析和典型相关分析的有效综合...
  • 目录 1ELMo(Embedding from Language Models) 1.1结构 1.2 评价 2 OpenAI GPT(Generative Pre-training) 2.1 Unsupervised pre-training...2.3 模型评价优缺点 3Bert(Bidirectional Encoder Representa...
  • 主要融合了对称密码算法、非对称密码算法、哈希函数等技术方法,分析了各种算法的优缺点,结合非对称密码算法和对称密码算法保证电子印鉴计算的安全,同时通过使用哈希函数和数字签名技术保证了所签电子印鉴的不可...
  • Task4 模型调参

    2021-03-25 22:39:35
    Task4 建模与调参 此部分为零基础入门数据挖掘之心电图分类的 Task4 建模调参部分,带你来了解各种模型以及模型评价和调参策略,欢迎大家后续多多交流。 赛题:零基础入门数据挖掘 - 心电图...树模型优缺点; 集
  • 本文将道路交通噪声预测模型大致划分为统计模型、经验模型、理论模型和宏观评价模型4类,对各类模型的基本建模思想、代表模型模型发展以及模型缺点进行了分析,最后展望了道路交通噪声预测模型的发展趋势。
  • 企业估值DCF模型

    2019-03-14 20:43:33
    DCF法的优缺点 优点: 比其他常用的建议评价模型涵盖更完整的评价模型,框架最严谨但相对较复杂的评价模型。 需 要的信息量更多,角度更全面, 考虑公司发展的长期性。 较为详细,预测时间较长,而且考虑较多的变数,...
  • 本文先根据材料提供的模型与数据较为扼要地分析了附件1的模型优缺点,全面地评价了该模型的合理性与实用性。而后在对问题进行较为全面评价的基础上引入更为全面合理的假设和建立系统分析模型
  • 讨论了最近几十年发展起来的最具代表性的10种NETD模型优缺点,在对它们进行综合分析的基础上建立起了新的适用于扫描热成像系统的NETD数学模型,得到的模型消除了光学系统大的f/#影响,增加了两个可供选择的光谱滤波...
  • 介绍了我国船舶工业的现状,回顾并总结了目前国际竞争力的评价方法及其优缺点。在此基础上,提出基于技术与成本曲面积分的船舶工业国际竞争力模型模型中提出竞争力密度函数的概念,用于描述竞争力分布强度。用算例对...
  • 文中对层次分析——模糊数学综合评价方法进行了介绍,阐述了该方法在滑坡稳定性评价中的步骤及优缺点;建立了天水市黄土滑坡稳定性评价的层次分析结构模型;确定了影响滑坡稳定性因子权重;建立了天水市黄土滑坡稳定性...
  • 随机波动(SV)模型是研究金融收益率波动性的一种重要模型,但该模型没有精确的似然函数表达式,对其进行研究具有...将近十几年来国内外学者提出的不同参数估计方法分为2类,讨论了各种方法的优缺点,并对其给予了评价
  • 分析了现有主要灰色聚类模型优缺点,论证了灰色聚类原模型的机理.针对一些灰聚类模型的不足,提出了一种改进的灰聚类模型--灰色规划聚类.将灰色规划聚类模型应用于油气盖层评价,从而导出了基于灰聚类分析的盖层...
  • 本文研究了当前一些主流元胞自动机交通流...通过计算机数值模拟各种模型,探索模拟结果中出现的非线性现象,并结合实测交通现象,验证模型的适用性,对各种元胞自动机交通流模型的特性及各自的优缺点进行了分析和讨论。
  • 第二章 模型评估

    2019-07-16 19:08:00
    摘自《百面机器学习》第二章 模型评估内容 第一节 评估指标的局限性 ...接下来来讲讲各个评估指标的优缺点: Accuracy:分类问题中最简单最直观的评价指标,缺点在于,当不同类别的样本比例非常不均...
  • 在梳理可诊断性概念、评价流程与功能的基础上, 从定量模型、定性模型以及数据驱动这3个方面对连续系统可诊断性评价方法进行分类综述, 归纳和评析了各方法的原理与特点, 并比较了定性评价与量化评价结果的优缺点....

空空如也

空空如也

1 2 3 4 5 ... 10
收藏数 190
精华内容 76
关键字:

模型评价优缺点