scikit_learn学习笔记五——机器学习度量指标

metrics.png
wiki.png

机器学习度量指标

分类评估指标

TN TP FN FP

TP:预测为正向(P),实际上预测正确(T),即判断为正向的正确率
TN:预测为负向(N),实际上预测正确(T),即判断为负向的正确率
FP:预测为正向(P),实际上预测错误(F),误报率,即把负向判断成了正向
FN:预测为负向(N),实际上预测错误(F),漏报率,即把正向判断称了负向

Positive Negative
True True Positive(TP) 真阳性 True Negative(TN) 真阴性
False False Positive(FP) 假阳性 False Negative(FN) 假阴性

准确率(Accuracy)

ACC= \frac{TP+TN}{TP+TN+FP+FN}

【注意】当分类问题是平衡(blanced)的时候,准确率可以较好地反映模型的优劣程度,但不适用于数据集不平衡的时候。

例如:分类问题的数据集中本来就有97% 示例是属于X,只有另外3%不属于X,所有示例都被分类成X的时候,准确率仍然高达97%,但这没有任何意义。

精确率Precision

Precision = \frac{TP}{TP+FP}

查准率 即在预测为正向的数据中,有多少预测正确。【预测结果为真的数据】

召回率Recall

Recall = \frac{TP}{TP+TN}

查全率 即在所有正向的数据中,有多少预测正确。【样本原来真的数据】

F1-Score

F1 = \frac{2*Precision*Recall}{Precision+Recall}

F1值为精确率和召回率的调和均值。

ROC(Receiver Operating Characteristic)曲线

先了解以下几个概念

真正率(True Positive Rate, TPR),又名灵敏度(Sensitivity):分类正确的正样本个数占整个正样本个数的比例。

TPR = \frac{TP}{TP+FN}

假负率(False Negative Rate, FNR):分类错误的正样本的个数占正样本的个数的比例。

FNR = \frac{FN}{TP+FN}

假正率(False Positive Rate, FPR):分类错误的负样本个数占整个负样本个数的比例。

FPR = \frac{FP}{FP+TN}

真负率(True Negative Rate, TNR):分类正确的负样本的个数占负样本的个数的比例。

TNR = \frac{TN}{FP+TN}


ROC曲线是以假正率(FP_rate)和真正率(TP_rate)为轴的曲线,ROC曲线下面的面积我们叫做AUC。
AUC(Area Under Curve) 被定义为ROC曲线下的面积,显然这个面积的数值不会大于1。
如下图所示:

ROC-AUC

曲线与FP_rate轴围成的面积(记作AUC)越大,说明性能越好,即图上L2曲线对应的性能优于曲线L1对应的性能。即:曲线越靠近A点(左上方)性能越好,曲线越靠近B点(右下方)曲线性能越差。

PR(precision recall)曲线

表现的是precision和recall之间的关系。

回归评估指标

测试数据集中的点,距离模型的平均距离越小,该模型越精确。

使用平均距离,而不是所有测试样本的距离和,因为距离和受样本数量的影响

平均绝对误差 MAE

平均绝对误差MAE(Mean Absolute Error)又被称为 范数损失(l1-norm loss)。

MSE = \frac{1}{m}\sum_{i=1}^{m}\left | y^{i}-\bar{y} \right|

平均平方误差 MSE

平均平方误差 MSE(Mean Squared Error)又被称为 范数损失(l2-norm loss)。

MSE = \frac{1}{m}\sum_{i=1}^{m}\left ( y^{i}-\bar{y} \right )^2

RMSE:均方根误差

均方根误差RMSE(Root Mean Squared Error)
RMSE = \sqrt{\frac{1}{m}\sum_{i=1}^{m}\left ( y^{i}-\bar{y} \right )^2}

RMSE和MAE有局限性:同一个算法模型,解决不同的问题,不能体现此模型针对不同问题所表现的优劣。因为不同实际应用中,数据的量纲不同,无法直接比较预测值,因此无法判断模型更适合预测哪个问题。

R-squared

  • 原始数据和均值之差的平方和
    SS_{tot} = \frac{1}{m}\sum_{i=1}^{m}\left ( y^{i}-\bar{y} \right )^2

  • 预测数据与原始数据均值之差的平方和
    SS_{res} = \sum_{i=1}^{m}(y^i-f(x^i))^2

R^2 = 1 - \frac{SS_{res}}{SS_{tot}}

上面公式中SS_{tot}表示测试数据真实值的方差(内部差异);SS_{res}代表回归值与真实值之间的平方差异(回归差异),因此R-squared既考量了回归值与真实值的差异,也兼顾了问题本身真实值的变动。【模型对样本数据的拟合度】

R-squared 取值范围(-\infty, 1],值越大表示模型越拟合训练数据;最优解是1;当模型 预测为随机值的时候,有可能为负;若预测值恒为样本期望,R2为0。

from sklearn.metrics import mean_squared_error #均方误差
from sklearn.metrics import mean_absolute_error #平方绝对误差
from sklearn.metrics import r2_score#R square

聚类性能指标

ARI (Adjusted Rand index)

若样本数据本身带有正确的类别信息,可用ARI指标进行评估。

from sklearn.metrics import adjusted_rand_score()

轮廓系数 Silhouette Cofficient

若样本数据没有所属类别,可用轮廓系数来度量聚类结果的质量。

from sklearn.metrics import silhouette_score

sklearn里的常见评测指标

Scoring(得分) Function(函数) Comment(注解)
Classification(分类)
‘accuracy’ metrics.accuracy_score
‘average_precision’ metrics.average_precision_score
‘f1’ metrics.f1_score for binary targets(用于二进制目标)
‘f1_micro’ metrics.f1_score micro-averaged(微平均)
‘f1_macro’ metrics.f1_score macro-averaged(微平均)
‘f1_weighted’ metrics.f1_score weighted average(加权平均)
‘f1_samples’ metrics.f1_score by multilabel sample(通过 multilabel 样本)
‘neg_log_loss’ metrics.log_loss requires predict_proba support(需要 predict_proba 支持)
‘precision’ etc. metrics.precision_score suffixes apply as with ‘f1’(后缀适用于 ‘f1’)
‘recall’ etc. metrics.recall_score suffixes apply as with ‘f1’(后缀适用于 ‘f1’)
‘roc_auc’ metrics.roc_auc_score
Clustering(聚类)
‘adjusted_mutual_info_score’ metrics.adjusted_mutual_info_score
‘adjusted_rand_score’ metrics.adjusted_rand_score
‘completeness_score’ metrics.completeness_score
‘fowlkes_mallows_score’ metrics.fowlkes_mallows_score
‘homogeneity_score’ metrics.homogeneity_score
‘mutual_info_score’ metrics.mutual_info_score
‘normalized_mutual_info_score’ metrics.normalized_mutual_info_score
‘v_measure_score’ metrics.v_measure_score
Regression(回归)
‘explained_variance’ metrics.explained_variance_score
‘neg_mean_absolute_error’ metrics.mean_absolute_error
‘neg_mean_squared_error’ metrics.mean_squared_error
‘neg_mean_squared_log_error’ metrics.mean_squared_log_error
‘neg_median_absolute_error’ metrics.median_absolute_error
‘r2’ metrics.r2_score
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,539评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,594评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 165,871评论 0 356
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,963评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,984评论 6 393
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,763评论 1 307
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,468评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,357评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,850评论 1 317
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,002评论 3 338
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,144评论 1 351
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,823评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,483评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,026评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,150评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,415评论 3 373
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,092评论 2 355

推荐阅读更多精彩内容