【问题标题】:Root Mean Squared Error vs Accuracy Linear Regression均方根误差与精度线性回归
【发布时间】:2020-09-07 12:27:07
【问题描述】:

我使用此数据集https://archive.ics.uci.edu/ml/datasets/Student+Performance 构建了一个简单的线性回归模型来预测学生的最终成绩。

虽然我的准确性非常好,但错误似乎很大。

我不确定是我没有正确理解错误的含义,还是我在代码中犯了一些错误。我认为对于 92 的准确度,误差应该更小,更接近于 0。

这是我的代码:

data = pd.read_csv("/Users/.../student/student-por.csv", sep=";")

X = np.array(data.drop([predict], 1))
y = np.array(data[predict]) 

x_train, x_test, y_train, y_test = sklearn.model_selection.train_test_split(X, y, test_size = 0.1, random_state=42)

linear = linear_model.LinearRegression()

linear.fit(x_train, y_train)

linear_accuracy = round(linear.score(x_test, y_test) , 5)

linear_mean_abs_error = metrics.mean_absolute_error(y_test, linear_prediction)
linear_mean_sq_error = metrics.mean_squared_error(y_test, linear_prediction)
linear_root_mean_sq_error = np.sqrt(metrics.mean_squared_error(y_test, linear_prediction))

我是否在代码中犯了任何错误,或者在这种情况下错误确实有意义?

【问题讨论】:

  • 0.78 的 RMSE 是好的。这就是您获得 92% 准确度的 RMSE。
  • @vbhargav875 准确率仅用于分类问题,在回归问题中没有意义。与准确度(百分比)相反,没有办法说 RMSE、MSE 或 MAE 的特定值本身是否“好”,因为它们总是严重依赖于因变量的规模.

标签: python machine-learning scikit-learn linear-regression


【解决方案1】:

sklearn 线性回归中的准确度指标是 R^2 指标。它基本上告诉您模型预测变量解释的因变量变化的百分比。 0.92 是一个很好的分数,但这并不意味着您的错误将为 0。我查看了您的工作,似乎您使用了所有数字变量作为预测变量,而您的目标是 G3。代码看起来很好,结果也很准确。在回归任务中,很难得到 0 个错误。请让我知道,如果你有任何问题。干杯

【讨论】:

猜你喜欢
  • 2019-03-09
  • 2018-09-24
  • 2020-06-22
  • 1970-01-01
  • 2020-12-24
  • 1970-01-01
  • 2020-03-29
  • 2018-12-05
  • 1970-01-01
相关资源
最近更新 更多