【发布时间】: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