建模的评估一般可以分为回归、分类和聚类的评估,本文主要介绍回归和分类的模型评估:
一、回归模型的评估
主要有以下方法:
指标 | 描述 | metrics方法 |
---|---|---|
Mean Absolute Error(MAE) | 平均绝对误差 | from sklearn.metrics import mean_absolute_error |
Mean Square Error(MSE) | 平均方差 | from sklearn.metrics import mean_squared_error |
R-Squared | R平方值 | from sklearn.metrics import r2_score |
#sklearn的调用
from sklearn.metrics import mean_absolute_error
from sklearn.metrics import mean_squared_error
from sklearn.metrics import r2_score
mean_absolute_error(y_test,y_predict)
mean_squared_error(y_test,y_predict)
r2_score(y_test,y_predict)
(一)平均绝对误差(Mean Absolute Error,MAE)
平均绝对误差就是指预测值与真实值之间平均相差多大 :
平均绝对误差能更好地反映预测值误差的实际情况.
(二)均方误差(Mean Squared Error,MSE)
观测值与真值偏差的平方和与观测次数的比值:
这也是线性回归中最常用的损失函数,线性回归过程中尽量让该损失函数最小。那么模型之间的对比也可以用它来比较。
MSE可以评价数据的变化程度,MSE的值越小,说明预测模型描述实验数据具有更好的精确度。
(三)R-square(决定系数)
数学理解: 分母理解为原始数据的离散程度,分子为预测数据和原始数据的误差,二者相除可以消除原始数据离散程度的影响
其实“决定系数”是通过数据的变化来表征一个拟合的好坏。
理论上取值范围(-∞,1], 正常取值范围为[0 1] ------实际操作中通常会选择拟合较好的曲线计算R²,因此很少出现-∞
越接近1,表明方程的变量对y的解释能力越强,这个模型对数据拟合的也较好
越接近0,表明模型拟合的越差
经验值:>0.4, 拟合效果好
缺点:数据集的样本越大,R²越大,因此,不同数据集的模型结果比较会有一定的误差
(四)Adjusted R-Square (校正决定系数)
n为样本数量,p为特征数量
- 消除了样本数量和特征数量的影响
(五)交叉验证(Cross-Validation)
交叉验证,有的时候也称作循环估计(Rotation Estimation),是一种统计学上将数据样本切割成较小子集的实用方法,该理论是由Seymour Geisser提出的。在给定的建模样本中,拿出大部分样本进行建模型,留小部分样本用刚建立的模型进行预报,并求这小部分样本的预报误差,记录它们的平方加和。这个过程一直进行,直到所有的样本都被预报了一次而且仅被预报一次。把每个样本的预报误差平方加和,称为PRESS(predicted Error Sum of Squares)。
交叉验证的基本思想是把在某种意义下将原始数据(dataset)进行分组,一部分做为训练集(train set),另一部分做为验证集(validation set or test set)。首先用训练集对分类器进行训练,再利用验证集来测试训练得到的模型(model),以此来做为评价分类器的性能指标。
无论分类还是回归模型,都可以利用交叉验证,进行模型评估,示例代码:
from sklearn.cross_validation import cross_val_score
prin