Processing math: 100%

分类问题使用accuracy来评价分类结果。
1最好,0最差。
即使分类的问题不同,也能很容易的比较它们之间的优劣。

但RMSE和MAE无些特性。
解决方法:R Squared

R Squared

R2=1SSresidualSStotal=1i(ˆy(i)y(i))2i(ˉyy(i))2

说明:

SSresidual: 使用模型预测产生的错误
SStotal: 把所有样本都预测为ˉy产生的错误
ˉy:y的平均值
ˆy(i):第i个样本的模型预测值

R Squared代表我们的模型拟合住的数据

R Squared的性质:

  • R Squared <= 1
  • R Squared越大越好。当我们的预测模型不犯任何错误时,R Squared达到最大值1
  • 当我们的模型等于基准模型时,R Squared = 0
  • 如果R Squared < 0,说明我们的模型还不如基准模型。此时很有可能数据不存在任何线性关系。

R Squared也可以写成这种形式: 其中Var(y)代表方差

编程实现R Squared

继续使用5-4中的数据和训练结果

1 - mean_squared_error(y_test, y_predict)/np.var(y_test)

from sklearn.metrics import r2_score r2_score(y_test, y_predict)