精华内容
下载资源
问答
  • 分类与预测算法评价指标 分类与预测模型对训练集进行预测而得出的准确率并不能很好地反应预测模型未来的性能,为了有效判断一个预测模型的性能表现,需要一组没有参与预测模型建立的数据集,并在该数据集上评价预测...

    分类与预测算法评价指标

    分类与预测模型对训练集进行预测而得出的准确率并不能很好地反应预测模型未来的性能,为了有效判断一个预测模型的性能表现,需要一组没有参与预测模型建立的数据集,并在该数据集上评价预测模型的准确率,这组独立的数据集叫做测试集。

    模型预测效果评价,通常用这样一些指标来衡量;

    • 相对/绝对误差(E为绝对误差:Absolute Error,e 为相对误差 Relative Error)
    • 平均绝对误差(Mean Absolute Error,MAE)
    • 均方误差 (Mean Squared Error,MSE)
    • 均方根误差 (Root Mean Squared Error,RMSE)
    • 平均绝对百分误差(Mean Absolution Percentage Error,MAPE)
    • Kappa统计
    • 识别准确度(Accuracy,通过 TP、TN、FP、FN计算)
    • 识别精确率(Precision)
    • 召回率(Recall)
    • ……

    很好的两篇参考文章:

    https://baijiahao.baidu.com/s?id=1603857666277651546&wfr=spider&for=pc

    https://nbviewer.jupyter.org/github/groverpr/Machine-Learning/blob/master/notebooks/05_Loss_Functions.ipynb

     

     

    展开全文
  • 具体更详细的可以查阅周志华的西瓜书第二章,写的...准确率是我们最常见的评价指标,而且很容易理解,就是被对的样本数除以所有的样本数,通常说,正确率越高,分类器越好。 准确率确实是一个很好很直观的评价...

    参考链接:https://www.cnblogs.com/Zhi-Z/p/8728168.html

    具体更详细的可以查阅周志华的西瓜书第二章,写的非常详细~

    一、机器学习性能评估指标

    这里写图片描述

    1.准确率(Accurary)

     

    准确率是我们最常见的评价指标,而且很容易理解,就是被分对的样本数除以所有的样本数,通常来说,正确率越高,分类器越好。

    准确率确实是一个很好很直观的评价指标,但是有时候准确率高并不能代表一个算法就好。比如某个地区某天地震的预测,假设我们有一堆的特征作为地震分类的属性,类别只有两个:0:不发生地震、1:发生地震。一个不加思考的分类器,对每一个测试用例都将类别划分为0,那那么它就可能达到99%的准确率,但真的地震来临时,这个分类器毫无察觉,这个分类带来的损失是巨大的。为什么99%的准确率的分类器却不是我们想要的,因为这里数据分布不均衡,类别1的数据太少,完全错分类别1依然可以达到很高的准确率却忽视了我们关注的东西。再举个例子说明下。在正负样本不平衡的情况下,准确率这个评价指标有很大的缺陷。比如在互联网广告里面,点击的数量是很少的,一般只有千分之几,如果用acc,即使全部预测成负类(不点击)acc也有 99% 以上,没有意义。因此,单纯靠准确率来评价一个算法模型是远远不够科学全面的。

    2、错误率(Error rate)

    错误率则与准确率相反,描述被分类器错分的比例,对某一个实例来说,分对与分错是互斥事件,所以accuracy =1 - error rate。

    3、查准率(Precision)

    查准率(precision)定义为: 

    表示被分为正例的示例中实际为正例的比例。

    4、查全率(召回率)(recall)

     

    召回率是覆盖面的度量,度量有多个正例被分为正例,recall=TP/(TP+FN)=TP/P=sensitive,可以看到召回率与灵敏度是一样的。

    5、综合评价指标(F-Measure)

     P和R指标有时候会出现的矛盾的情况,这样就需要综合考虑他们,最常见的方法就是F-Measure(又称为F-Score)。 F-Measure是Precision和Recall加权调和平均: 
     

    当参数α=1时,就是最常见的F1,也即 
    这里写图片描述 
    可知F1综合了P和R的结果,当F1较高时则能说明试验方法比较有效。

    6、灵敏度(sensitive)

    sensitive = TP/P,表示的是所有正例中被分对的比例,衡量了分类器对正例的识别能力。

    7、特效度(sensitive)

    specificity = TN/N,表示的是所有负例中被分对的比例,衡量了分类器对负例的识别能力。

     8、其他评价指标

    8.1 ROC曲线

    ROC(Receiver Operating Characteristic)曲线是以假正率(FP_rate)和真正率(TP_rate)为轴的曲线,ROC曲线下面的面积我们叫做AUC,如下图所示

     

    (1)曲线与FP_rate轴围成的面积(记作AUC)越大,说明性能越好,即图上L2曲线对应的性能优于曲线L1对应的性能。即:曲线越靠近A点(左上方)性能越好,曲线越靠近B点(右下方)曲线性能越差。 
    (2)A点是最完美的performance点,B处是性能最差点。 
    (3)位于C-D线上的点说明算法性能和random猜测是一样的,如C、D、E点;位于C-D之上(曲线位于白色的三角形内)说明算法性能优于随机猜测,如G点;位于C-D之下(曲线位于灰色的三角形内)说明算法性能差于随机猜测,如F点。 
    (4)虽然ROC曲线相比较于Precision和Recall等衡量指标更加合理,但是其在高不平衡数据条件下的的表现仍然不能够很好的展示实际情况

    8.2、PR曲线: 
    即,PR(Precision-Recall),以查全率为横坐标,以查准率为纵坐标的曲线。 
    举个例子(例子来自Paper:Learning from eImbalanced Data): 

    假设N>>P(即Negative的数量远远大于Positive的数量),就算有较多N的sample被预测为P,即FP较大为9,但是由于N很大,FP_rate的值仍然可以很小0.9%,TP_rate=90%(如果利用ROC曲线则会判断其性能很好,但是实际上其性能并不好),但是如果利用PR,P=50%,R=90%,因此在极度不平衡的数据下(Positive的样本较少),PR曲线可能比ROC曲线更实用

     

    转载于:https://www.cnblogs.com/simpleDi/p/10085356.html

    展开全文
  • 喵:Python与机器学习:逻辑回归​zhuanlan.zhihu.com对于分类算法评价比对回归算法评价复杂得多准确率的陷阱和混淆矩阵我们习惯于用分类准确率来评价分类结果的好坏,但是对于极度偏斜(Skewed Data)的数据,...

    5733fd52178cf778c962e57a53f11619.png

    上一节我们讲了一个非常常见的分类算法逻辑回归,那么如何去评价分类结果的好坏呢?

    Mr.喵:Python与机器学习:逻辑回归zhuanlan.zhihu.com
    f87cf291499fcd9a73f6ae36a02ede70.png

    对于分类算法的评价比对回归算法的评价复杂得多

    准确率的陷阱和混淆矩阵

    我们习惯于用分类准确率来评价分类结果的好坏,但是对于极度偏斜(Skewed Data)的数据,只使用分类准确度是远远不够的,需要使用混淆矩阵来进一步分析

    混淆矩阵 Confusion Matrix

    2672e81d628e0987295faa9652afedbe.png

    精准率和召回率

    7c540320b8c73ce8e87b2881771c607b.png

    精准率: 是指对于我们预测为正例(positive)的样本中,正确预测为正例的占比

    e.g. 精准率 = 8/(8+12) = 40%

    e4f26109b916fa340f1847acac0a27ef.png

    召回率:是指对于真实发生为正例(positive)的样本中,正确预测为正例的占比

    e.g. 召回率 = 8/(8+2) = 80%

    433e6109dc0370863550b31c23adc94b.png

    虽然PrecisionRecall的值我们预期是越高越好,但是这两个值在某些场景下却是存在互斥的,对于使用精准率还是使用召回率的选择,我们需要视具体使用场景而定,有的场景更注重精准率,有的场景更注重召回率。但也有场景更希望获得精准率和召回率两者之间的平衡。

    F1 Score

    F1 Score是precision和recall二者都兼顾的指标,是precision和recall的调和平均值

    Scikit-learn中的precision & recall & F1 Score

    from sklearn import datasets
    
    digits = datasets.load_digits()
    X = digits.data
    y = digits.target.copy()
    
    y[digits.target==9] = 1
    y[digits.target!=9] = 0
    
    from sklearn.model_selection import train_test_split
    X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=666)
    
    from sklearn.linear_model import LogisticRegression
    log_reg = LogisticRegression()
    log_reg.fit(X_train, y_train)
    log_reg.score(X_test, y_test) # 准确率
    0.9755555555555555
    y_predict = log_reg.predict(X_test)
    from sklearn.metrics import confusion_matrix
    confusion_matrix(y_test, y_predict)
    array([[403, 2],
    [ 9, 36]], dtype=int64)
    from sklearn.metrics import precision_score
    precision_score(y_test, y_predict) # 精准率
    0.9473684210526315
    from sklearn.metrics import recall_score
    recall_score(y_test, y_predict)
    0.8
    from sklearn.metrics import f1_score
    f1_score(y_test, y_predict) # F1 Score
    0.8674698795180723

    精准率-召回率的平衡

    我们知道逻辑回归的决策边界为:

    并且PrecisionRecall的趋势相反,所以可以通过调节threshold,来控制precision-recall之间的平衡。

    精准率-召回率曲线

    f58f205193b7f5642aeba6b8ba19f2f1.png

    从图中可以看到,拐点处就是precision-recall两者的平衡点,我们可以通过精准率-召回率曲线找到最佳的threshold

    Scikit-learn 中的Precision-Recall Curve

    from sklearn.metrics import precision_recall_curve
    precisions, recalls, thresholds = precision_recall_curve(y_test, decision_scores)
    plt.plot(thresholds, precisions[:-1])
    plt.plot(thresholds, recalls[:-1])

    3661c7a7884a46f8727344fe5ca4d32c.png
    plt.plot(precisions, recalls)

    dfddefab4b1bc41c028f9f3761fc569f.png

    ROC曲线

    ROC曲线是描述TPRFPR之间的关系的曲线,

    TPR:是指对于真实发生为正例(positive)的样本中,正确预测为正例的占比,跟Recall一样

    433e6109dc0370863550b31c23adc94b.png

    FPR:是指对于真实发生为负例(Negative)的样本中,错误预测为正例的占比

    4189ac600c9fd6fe549c9c69657ef1a7.png

    TPR和FPR的趋势一致

    ROC可以反映模型分类效果的好坏,但是无法直接从图中识别出分类最好的阈值,事实上最佳阈值是视具体的场景而定的,特别是对于极度偏斜的数据,查看precision和recall非常有必要

    ROC对应的AUC越大,说明模型效果分类越好

    Scikit-learn中的ROC

    import numpy as np
    import matplotlib.pyplot as plt
    %matplotlib inline
    import seaborn as sns
    sns.set(font='SimHei',style='ticks')
    
    from sklearn import datasets
    digits = datasets.load_digits()
    X = digits.data
    y = digits.target.copy()
    y[digits.target==9] = 1
    y[digits.target!=9] = 0
    
    from sklearn.model_selection import train_test_split
    X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=666)
    
    from sklearn.linear_model import LogisticRegression
    log_reg = LogisticRegression()
    log_reg.fit(X_train, y_train)
    decision_scores = log_reg.decision_function(X_test)
    
    from sklearn.metrics import roc_curve
    fprs, tprs, thresholds = roc_curve(y_test, decision_scores)
    plt.plot(fprs, tprs)

    462398d4534c254dd0bf2f09a4e8796a.png
    from sklearn.metrics import roc_auc_score
    roc_auc_score(y_test, decision_scores) #AUC
    0.9830452674897119
    展开全文
  • 机器学习是借助算法模型解析数据,并从中学习,然后对真实世界中事件作出决策或预测的方法。根据是否提供数据的分类结果(数据的标签),可将机器学习方法分为两大类:监督学习(如分类和回归方法),无监督学习...

    一、各类学习器评价指标

    机器学习是借助算法模型来解析数据,并从中学习,然后对真实世界中事件作出决策或预测的方法。根据是否提供数据的分类结果(数据的标签),可将机器学习方法分为两大类:监督学习(如分类和回归方法),无监督学习(如聚类方法)。
    在利用机器学习方法对问题作出决策和预测后,我们需要对结果进行评价,此时我们应选择合适的评价指标,不同的学习器相应的指标体系也有差异:
    分类模型:准确率、ROC-AUC、混淆矩阵及其相关的一系列指标;
    回归模型:误差平方和以及决定系数R2等;
    聚类算法:(Given Label)准确率、兰德指数、互信息等,(Not Given Label)紧密性,间隔性,邓恩指数等。

    二、分类模型评价指标

    2.1混淆矩阵
    在这里插入图片描述
    这里只要记住True、False描述的是分类器是否判断正确,Positive、Negative是分类器的分类结果。

    • TP(true positive):表示样本的真实类别为正,最后预测得到的结果也为正;
    • TN(true negative):表示样本的真实类别为负,最后预测得到的结果也为负;
    • FP(false positive):表示样本的真实类别为负,最后预测得到的结果却为正;
    • FN(false negative):表示样本的真实类别为正,最后预测得到的结果却为负。

    根据以上几个指标,可以分别计算出Accuracy、Precision、Recall(Sensitivity,SN),Specificity(SP)。
    在这里插入图片描述
    P(实际为正例)=TP+FN;
    N(实际为负例)=TN+FP

    • Accuracy:表示预测结果的精确度,预测正确的样本数除以总样本数,accuracy = (TP+TN)/(P+N)。
    • Precision,准确率(查准率),表示预测结果中,预测为正样本的样本中,正确预测为正样本的概率,precision=TP/(TP+FP);
    • Recall,召回率(查全率),表示在原始样本的正样本中,最后被正确预测为正样本的概率,recall=TP/(TP+FN)=TP/P;
    • Specificity,常常称作特异性,它研究的样本集是原始样本中的负样本,表示的是在这些负样本中最后被正确预测为负样本的概率,specificity = TN/N。

    关于Accuracy和Recall两个指标比较:以地震预测为例,没有谁能准确预测地震的发生,但我们能容忍一定程度的误报,假设1000次预测中,有5次预测为发现地震,其中一次真的发生了地震,而其他4次为误报,那么正确率从原来的999/1000=99.9%下降到996/1000=99.6,但召回率从0/1=0%上升为1/1=100%,这样虽然谎报了几次地震,但真的地震来临时,我们没有错过,这样的分类器才是我们想要的,在一定正确率的前提下,我们要求分类器的召回率尽可能的高。

    2.2 ROC曲线
    ROC受试者工作特征曲线(receiver operating characteristic)亦称感受性曲线(sensitivity curve),平面的横坐标是false positive rate(FPR)假正率,纵坐标是true positive rate(TPR)真正率。ROC计算过程如下:

    1. 给定 m+个正例和 n-个反例,根据学习器预测结果(score)对样例进行排序,然后将分类阈值设置为最大,即所有样例均预测为反例,此时真正例率和假正例率均为0,即在坐标(0,0)处标记一个点;
    2. 然后,将分类阈值依次设为每个样例的预测值,即依次将每个样例划分为正例。设前一个标记点坐标为 (x,y)
      ,当前若为真正例,则对应标记点坐标为
      在这里插入图片描述
      若当前为假正例,则对应标记点坐标为
      在这里插入图片描述
      然后用线段连接相邻点即得。
      在这里插入图片描述
      ROC曲线作用
    • 有助于选择最佳阈值:ROC曲线越靠近左上角,模型查全率越高,最靠近左上角的ROC曲线上的点是分类错误最少的最好阈值,其假正例和假反例总数最少;
    • 可以比较不同学习器的性能:将各个学习器的ROC曲线绘制在同一坐标中,直观比较,越靠近左上角的ROC曲线代表的学习器准确性越高。

    2.3 AUC值
    AUC(area under the curve)即ROC曲线下方的面积,取值在0.5到1之间,因为随机猜测的AUC就是0.5。面积如下图所示,阴影部分即为AUC面积,AUC越大,诊断准确性越高。
    在这里插入图片描述

    三、回归模型评价指标

    3.1 SSE(误差平方和)
    观测值与预估值的离差平方和,计算公式为:
    在这里插入图片描述
    同样的数据集的情况下,SSE越小,误差越小,模型效果越好。
    缺点:
    SSE数值大小本身没有意义,随着样本增加,SSE必然增加,也就是说,不同的数据集的情况下,SSE比较没有意义。

    3.2 决定系数R-square
    回归平方和与总平方和的商,评估得到的回归方程是否较好拟合样本数据的统计量。
    总平方和:
    总的平方和
    三个平方和之间关系:
    在这里插入图片描述
    决定系数:在这里插入图片描述

    在这里插入图片描述
    分母理解为原始数据的离散程度,分子为预测数据和原始数据的误差,二者相除可以消除原始数据离散程度的影响。

    决定系数与相关系数对比:

    • 决定系数表示回归线拟合程度,即有多少百分比的y波动可以被回归线描述;相关系数表示变量间的相关关系。
    • 决定系数大小:R平方越高,回归模型越精确,取值为[0,1];相关系数等于 (相关性方向符号+or-)决定系数开方,取值为[-1,1]。
    • 决定系数越大则拟合优度越好,但具体问题要具体分析;相关系数绝对值越大说明变量相关性越强。

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

    3.3 校正决定系数Adjusted R-Square
    消除了样本数量和特征数量的影响。
    在这里插入图片描述
    n为样本数量,p为特征数量。

    四、聚类算法评价指标

    根据是否提供数据标签,将模型评价指标分两类:
    4.1 Not Given Label
    4.1.1 Compactness(CP紧密性)
    计算每一个类中各点到聚类中心的平均距离。
    在这里插入图片描述
    CP越小说明类内聚类聚类越近
    缺点: 没有考虑类间效果

    4.1.2 Separation(SP间隔性)
    计算各聚类中心两两之间平均距离。
    在这里插入图片描述
    SP越高说明类间距离越远
    缺点: 未考虑类内效果

    4.1.3 Davies-Bouldin Index(DB分类适确性指标)
    任意两类别的类内距离平均距离(CP)之和除以两聚类中心聚类,求最大值。
    在这里插入图片描述
    DB越小越好,说明类内距离小,同时类间距离大
    缺点: 因使用欧式聚类,因此对于环状分布的聚类评估较差。

    4.2 Given Label
    4.2.1 Cluster Accuracy(CA准确度)
    计算聚类正确的百分比
    在这里插入图片描述
    此外还有Rand index(RI兰德系数)、Normalized Mutual Information(NMI标准互信息)等指标可以衡量聚类结果与真实情况的吻合程度。

    参考:
    https://blog.csdn.net/weixin_39541558/article/details/80705006;
    https://blog.csdn.net/Dream_angel_Z/article/details/50867951;
    https://blog.csdn.net/liuliuzi_hz/article/details/53909436;
    https://zhuanlan.zhihu.com/p/48981694;
    https://zhuanlan.zhihu.com/p/48266768;
    https://blog.csdn.net/sinat_33363493/article/details/52496011

    展开全文
  • 而分类算法可以给出预测概率,那么通过设置不同的阈值,获得更好的结果,此时混淆矩阵就是分类问题评价指标的基础。 混淆矩阵 假设二分类问题,P代表正类,N代表负类。 正类 负类 正类 TP(真正类) FP...
  • 准确率是我们常见的评价指标之一,一般定义是,分类正确的样本数占总样本的比例数。 但是准确率在数据不均衡的数据集上会缺少一定的说服力,比如一个数据集,有990正样本,10个负样本,现在模型把样本全部都...
  • 3. 综合评价指标F-measure 4. ROC曲线和AUC 考虑一个二问题,即将实例分成正类(positive)或负类(negative)。对一个二问题说,会出现四种情况。如果一个实例是正类并且也被 预测成正类,即为真正类(True...
  • 回归评价指标 回归类算法的模型评估一直都是回归算法中的一个难点,但不像无监督学习算法中的轮廓系数等等评估指标,回归类与分类型算法的模型评估其实是相似的法则——找真实标签和预测值的差异。只不过在分类型...
  • 机器学习的回归评价指标 回归类算法的模型评估一直都是回归算法中的一个难点,但不像无监督学习算法中的轮廓系数等等评估指标,回归类与分类型算法的模型评估其实是相似的法则——找真实标签和预测值的差异。只不过...
  • 聚类算法:无监督学习,用来对数据对象进行分组,将相似的对象划分到同一个组或者类别中。聚类产生的类别标签是未知的,与分类不同。聚类是一种探索性数据分析方法,跟分类不同,聚类没有预测功能,是根据对象的不同...
  •  正确率是我们最常见的评价指标,accuracy = (TP+TN)/(P+N),这个很容易理解,就是被对的样本数除以所有的样本数,通常说,正确率越高,分类器越好;  2)错误率(error rate)  错误率则与正确率相反,描述...
  • 系统学习机器学习算法评估

    万次阅读 2015-12-29 11:21:02
    一、引言  分类算法有很多,不同分类算法又用很多不同的变种。不同的分类算法有不同的特定,... 正确率确实是一个很好很直观的评价指标,但是有时候正确率高并不能代表一个算法就好。比如某个地区某天地震的预测,假
  • 一、分类算法评价指标 1.分类准确度的问题 分类算法如果用分类准确度衡量好坏将会存在问题。例如一个癌症预测系统,输入体检信息,可以判断是否有癌症,预测准确度可以达到99.9%,看起来预测系统还可以,但是...
  • 机器学习常用评价指标、混淆矩阵、ROC曲线、AUC 1.混淆矩阵 1.1 什么是混淆矩阵? 也叫误差矩阵,是表示精度评价的一种标准格式,可以用来评价监督算法性能。 用n行n列的矩阵形式表示,可以直观的看出模型对各个...
  • 分类性能量度(Classification-Performance-Measures) 一、准确度的陷阱和混淆矩阵 1、准确度的陷阱 对于回归任务,我们前面介绍了均方误差,均方根误差,平均绝对误差,R²误差。...对于一个分类算法来说,
  • 传统的机器学习分类一般按照有监督和无监督进行区分,有监督主要是各种分类和回归的算法,无监督主要是聚类。新的机器学习方法主要包括:深度学习和强化学习。深度学习中可以做分类和回归的无监督算法,在无监督...
  • 机器学习:评估指标

    2020-10-18 23:21:03
    在使用机器学习算法的过程中,针对不同场景需要不同的评价指标,如在网格搜索GridSearchCV或交叉验证中cross_val_score中,不同的问题,scoring参数可以取不同的值。 ---- 在学习评估指标之前,我还总结了一些...
  • 这一周主要是围绕两个主题展开,一个是机器学习的基本概念和KNN算法的基本逻辑。我们先谈谈机器学习方面。机器学习的概念与用途及分类。1.概念,主要区分两个对比,主要参考两个图,但是这个两个概念之间没有...
  • 机器学习--评估指标

    2021-03-16 08:05:02
    机器学习算法的评估指标: 分类 其实多分类的评价指标的计算方式与二分类完全一样,只不过我们计算的是针对于每一类说的召回率、精确度、准确率和 F1分数。 1、混淆矩阵(Confuse Matrix) (1)若一个实例是正...
  • 使用准确度这个指标在通常情况下是可以的,但是对我们的一些极度偏斜的数据,却会产生问题: 比如说 我们有一个癌症预测系统,预测准确度达到了99.9%,如果我们只是用score看,这个系统算是非常好的系统了 但是...
  • 机器学习的过程中,建立的模型都会有好坏之,到底如何判断一个模型的好坏? 以 kNN算法为例,现在我们已经训练好一个模型,我们需要自己测试下。我们可以这样操作,将原始数据中的一部分作为训练数据、另一...
  • 分类器模型评价指标

    千次阅读 2018-09-15 20:51:19
    Spark mllib 自带了许多机器学习算法,它能够用来进行模型的训练和预测。当使用这些算法来构建模型的时候,我们需要一些指标来评估这些模型的性能,这取决于应用和和其要求的性能。Spark mllib 也提供一套指标用来...
  • 分类器模型评价指标之ROC曲线

    千次阅读 2017-10-15 22:00:10
    Spark mllib 自带了许多机器学习算法,它能够用来进行模型的训练和预测。当使用这些算法来构建模型的时候,我们需要一些指标来评估这些模型的性能,这取决于应用和和其要求的性能。Spark mllib 也提供一套指标用来...

空空如也

空空如也

1 2 3
收藏数 55
精华内容 22
关键字:

机器学习分来算法评价指标