本文共 2052 字,大约阅读时间需要 6 分钟。
无论利用机器学习算法进行回归、分类或者聚类时,评价指标,即检验机器学习模型效果的定量指标,都是一个不可避免且十分重要的问题。因此,结合上的介绍,以及网上大神整理的一些资料,对常用的评价指标及其实现、应用进行简单介绍。
有两种调用方式
from sklearn.metrics import 评价指标函数名称
例如:
from sklearn.metrics import mean_squared_errorfrom sklearn.metrics import r2_score
调用方式为:直接使用函数名调用
from sklearn import metrics
调用方式为:metrics.评价指标函数名称(parameter)
均方误差(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=1∑n(y^i−yi)2范围[0,+∞),当预测值与真实值完全吻合时等于0,即完美模型;误差越大,该值越大。from sklearn.metrics import mean_squared_error # 均方误差mse = mean_squared_error(y_test, y_pre)
均方根误差(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=1∑n(y^i−yi)2范围[0,+∞),当预测值与真实值完全吻合时等于0,即完美模型;误差越大,该值越大。rmse = mse**0.5
平均绝对误差(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=1∑n∣y^i−yi∣范围[0,+∞),当预测值与真实值完全吻合时等于0,即完美模型;误差越大,该值越大。
from sklearn.metrics import mean_absolute_error # 平均绝对误差mae = mean_absolute_error(y_test, y_pre)
决定系数(拟合优度),反映因变量的全部变异能通过回归关系被自变量解释的比例。
R 2 = 1 − S S E S S T R^2=1-\frac{SSE}{SST} R2=1−SSTSSE即, 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=1−∑i=1n(yi−yˉ)2∑i=1n(yi−y^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=1−i∑(yi−y^)2/ni∑(yi−yi)2/n=1−VarRMSE 这样,分子就变成了常用的评价指标均方误差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/