所以,我正在尝试建立一个线性回归模型来预测汽车价格,我有以下数据集: 数据集
由于分类特征的唯一值很多,我对分类特征进行标记编码并像这样转换数据集:Modified Data Set
此后,我像这样缩放连续特征(引擎、功率):
# Scaling continuous features (No scaling for categorical variables)
X_train[['Engine', 'Power']] = scale.fit_transform(X_train[['Engine', 'Power']])
est = sm.OLS(y_train,X_train).fit()
print(est.summary())
X_test[['Engine', 'Power']] = scale.transform(X_test[['Engine', 'Power']])
y_predicted = est.predict(X_test)
y_predicted.sort_values()
# R2 value for y_test and y_predictions
from sklearn.metrics import r2_score
r2 = r2_score(y_test, y_predicted)
print(r2)
如果我还缩放标签编码特征,则 R2 值为 84.8%,相比之下,R2 值为 33.5%。我想知道为什么会这样?此外,我在测试数据上使用此模型的预测值也会导致负价格,并且这些价格中的大多数都没有很好地预测,预测数据和真实数据的 R2 得分为 68%。