线性回归中Accuracy指标无法使用,求回归任务的准确率计算方法
为啥线性回归里用Accuracy指标不行?该用啥?
嘿,我刚接触回归任务的时候也犯过这个错!咱们先把核心问题说清楚:
accuracy_score是给分类任务设计的——比如你预测一张图是猫还是狗,它算的是预测对的样本占比。但线性回归是回归任务,预测的是连续数值(比如你的例子里的薪资),几乎不可能有预测值和真实值完全一模一样的情况,所以用accuracy肯定得不到合理结果,甚至会返回0,完全没参考价值。
那回归任务该用啥指标评估呢?给你几个最常用的,附代码示例,直接替换你原来的accuracy部分就行:
1. 均方误差(MSE)
计算预测值和真实值差值的平方的平均值,数值越小说明模型拟合得越好:
from sklearn.metrics import mean_squared_error mse = mean_squared_error(y_test, y_predict) print(f"均方误差(MSE): {mse}")
2. 根均方误差(RMSE)
MSE的平方根,它的单位和你的目标变量(薪资)一致,结果更直观:
import numpy as np rmse = np.sqrt(mean_squared_error(y_test, y_predict)) print(f"根均方误差(RMSE): {rmse}")
3. 平均绝对误差(MAE)
计算预测值和真实值差值的绝对值的平均值,对异常值的敏感度比MSE低:
from sklearn.metrics import mean_absolute_error mae = mean_absolute_error(y_test, y_predict) print(f"平均绝对误差(MAE): {mae}")
4. R²分数(决定系数)
衡量模型能解释数据变异的比例,范围在0到1之间,越接近1说明模型对数据的拟合程度越好:
from sklearn.metrics import r2_score r2 = r2_score(y_test, y_predict) print(f"R²分数: {r2}")
另外,sklearn的LinearRegression模型自带score方法,默认返回的就是R²分数,用起来更省事:
r2_score = SimpleLinearRegression.score(X_test, y_test) print(f"模型自带R²分数: {r2_score}")
下次做回归任务的时候,记得避开分类任务的指标,选上面这些就对啦!
内容的提问来源于stack exchange,提问作者Ashish.k
相关产品推荐
相关产品推荐

