分类问题使用accuracy来评价分类结果。
1最好,0最差。
即使分类的问题不同,也能很容易的比较它们之间的优劣。
但RMSE和MAE无些特性。
解决方法:R Squared
R Squared
R2=1−SSresidualSStotal=1−∑i(ˆy(i)−y(i))2∑i(ˉy−y(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)