欢迎关注笔者的微信公众号
之前的分类模型写完后同学问我有没有回归的模型评价方法,现在,它来了
刚开始,我直接搜索回归模型的评价方法有哪些,但是突然想起来之前学习线性回归模型的时候有用到均方误差计算损失,于是猜想sklearn中十有八九有提供相应的损失评价方法,于是
一共提供有11种方法
接下来对每个方法简单介绍,最后给出相关示例代码。
之前介绍的最小二乘法用来计算拟合误差是一个理论上的方法,在实际情况中有很大的局限性:
∑ i = 1 m ( y t e s t ( i ) − y ^ t e s t ( i ) ) 2 \sum_{i=1}^m (y_{test}^{(i)} - \hat y_{test}^{(i)})^2 i=1∑m(ytest(i)−y^test(i))2
值的大小和样本数量 m 有密切关系,这样的结果是无法衡量模型好坏的。
举个例子,假设建立了两个模型,一个模型使用了 10 个样本,计算出的上式值是 100;另一个模型使用了 50 个样本,计算出的值是 200,很难判断两个模型哪个更好。
下面的几种方法其实都是建立在最小二乘法的基础上,不断改进的。
MSE(均方误差)
M S E ( M e a n S q u a r e d E r r o r ) MSE (Mean Squared Error) MSE(MeanSquaredError) 的原理就是将上式除以m以消除样本数量的影响
M S E = 1 m ∑ i = 1 m ( y t e s t ( i ) − y ^ t e s t ( i ) ) 2 MSE = \frac{1}{m} \sum_{i=1}^m (y_{test}^{(i)} - \hat y_{test}^{(i)})^2 MSE=m1i=1∑m(ytest(i)−y^test(i))2
RMSE
M S E MSE MSE 公式有一个问题是会改变量纲。因为公式平方了,比如说 y 值的单位是万元, M S E MSE MSE 计算出来的是万元的平方,对于这个值难以解释它的含义。所以为了消除量纲的影响,我们可以对这个 M S E MSE MSE 开方,得到的结果就第二个评价指标:均方根误差 R M S E ( R o o t M e a n S q u a r e d E r r o r ) RMSE(Root Mean Squared Error) RMSE(RootMeanSquaredError)
1 m ∑ i = 1 m ( y test ( i ) − y ^ test ( i ) ) 2 = M S E = R M S E \sqrt{\frac{1}{m}\sum_{i=1}^{m}\left(y_{\text {test}}^{(i)}-\hat{y}_{\text {test}}^{(i)}\right)^{2}}=\sqrt{M S E}= RMSE m1i=1∑m(ytest(i)−y^test(i))2=