博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Sklearn机器学习(3)——各种指标评价
阅读量:3959 次
发布时间:2019-05-24

本文共 2052 字,大约阅读时间需要 6 分钟。

Python Sklearn.metrics

无论利用机器学习算法进行回归、分类或者聚类时,评价指标,即检验机器学习模型效果的定量指标,都是一个不可避免且十分重要的问题。因此,结合上的介绍,以及网上大神整理的一些资料,对常用的评价指标及其实现、应用进行简单介绍。

调用方法

有两种调用方式

方式一:

from sklearn.metrics import 评价指标函数名称

例如:

from sklearn.metrics import mean_squared_errorfrom sklearn.metrics import r2_score

调用方式为:直接使用函数名调用

方式二:

from sklearn import metrics

调用方式为:metrics.评价指标函数名称(parameter)

指标函数

简介

MSE

均方误差(Mean Square Error)

M S E = 1 n ∑ i = 1 n ( y ^ i − y i ) 2 \mathit MSE = \frac{1}{n} \sum_{i=1}^n (\hat y_i-y_i)^2 MSE=n1i=1n(y^iyi)2范围[0,+∞),当预测值与真实值完全吻合时等于0,即完美模型;误差越大,该值越大。

from sklearn.metrics import mean_squared_error  # 均方误差mse = mean_squared_error(y_test, y_pre)

RMSE

均方根误差(Root Mean Square Error),其实就是MSE加了个根号,这样数量级上比较直观,比如RMSE=10,可以认为回归效果相比真实值平均相差10。

R M S E = 1 n ∑ i = 1 n ( y ^ i − y i ) 2 \mathit RMSE = \sqrt{\frac{1}{n} \sum_{i=1}^n (\hat y_i-y_i)^2} RMSE=n1i=1n(y^iyi)2 范围[0,+∞),当预测值与真实值完全吻合时等于0,即完美模型;误差越大,该值越大。

rmse = mse**0.5

MAE

平均绝对误差(Mean Absolute Error)

M A E = 1 n ∑ i = 1 n ∣ y ^ i − y i ∣ \mathit MAE = \frac{1}{n} \sum_{i=1}^n |\hat y_i-y_i| MAE=n1i=1ny^iyi

范围[0,+∞),当预测值与真实值完全吻合时等于0,即完美模型;误差越大,该值越大。

from sklearn.metrics import mean_absolute_error  # 平均绝对误差mae = mean_absolute_error(y_test, y_pre)

R2_score

决定系数(拟合优度),反映因变量的全部变异能通过回归关系被自变量解释的比例。

R 2 = 1 − S S E S S T R^2=1-\frac{SSE}{SST} R2=1SSTSSE即,
R 2 = 1 − ∑ i = 1 n ( y i − y ^ i ) 2 ∑ i = 1 n ( y i − y ˉ ) 2 R^2 = 1 - \frac{\sum_{i=1}^{n} (y_i - \hat{y}_i)^2}{\sum_{i=1}^{n} (y_i - \bar{y})^2} R2=1i=1n(yiyˉ)2i=1n(yiy^i)2再简化得,
R 2 = 1 − ∑ i ( y i − y i ) 2 / n ∑ i ( y i − y ^ ) 2 / n = 1 − R M S E V a r R^2 = 1 - \frac{\sum\limits_i(y_i - y_i)^2 / n}{\sum\limits_i(y_i - \hat{y})^2 / n} = 1 - \frac{RMSE}{Var} R2=1i(yiy^)2/ni(yiyi)2/n=1VarRMSE
这样,分子就变成了常用的评价指标均方误差MSE,分母就变成了方差。

对于 R 2 R^2 R2可以通俗地理解为使用均值作为误差基准,看预测误差是否大于或者小于均值基准误差。

R2_score = 1,样本中预测值和真实值完全相等,没有任何误差,表示回归分析中自变量对因变量的解释越好。

R2_score = 0。此时分子等于分母,样本的每项预测值都等于均值。
R2_score不是r的平方,也可能为负数(分子>分母),模型等于盲猜,还不如直接计算目标变量的平均值。

r2→1:模型越好

r2→0:模型越差

from sklearn.metrics import r2_score  # 决定系数r2 = r2_score(y_test, y_pre)

转载地址:http://uumzi.baihongyu.com/

你可能感兴趣的文章
杭电ACM——humble numbers(DP)
查看>>
杭电ACM——6467,简单数学题(思维)
查看>>
杭电ACM——天上掉馅饼(DP)
查看>>
杭电ACM——1086,You can Solve a Geometry Problem too(思维)
查看>>
杭电ACM——2057,A + B Again(思维)
查看>>
codeforces——1097B,Petr and a Combination Lock(搜索)
查看>>
杭电ACM——2069,Coin Change(DP)
查看>>
杭电ACM——2110,Crisis of HDU(母函数)
查看>>
杭电AM——2152,Fruit(母函数)
查看>>
杭电ACM——2566,统计硬币(DP)
查看>>
堆栈(数据结构)
查看>>
队列(数据结构)
查看>>
Mule ESB-Basic Studio Tutorial
查看>>
Mule ESB-Content-Based Routing Tutorial(1)
查看>>
Mule ESB-Content-Based Routing Tutorial(2)
查看>>
Mule ESB-Content-Based Routing Tutorial(3)
查看>>
年末项目经验总结
查看>>
做事情要放下面子,拿起责任
查看>>
敏捷开发实践(1)-故事工作量估算导致的问题
查看>>
记一次解决jenkins持续构建,自动部署的问题
查看>>