嗨,我是数据科学的初学者,目前正在尝试使用 Gradient Boost Regressor 根据机器容量、汽车品牌、汽车类型等多个属性来预测汽车价格。
我正在关注本教程:https ://github.com/PaacMaan/cars-price-predictor/blob/master/cars_price_predictor.ipynb
我得到了一个低 R2 分数并绘制了残差与预测值,我感到困惑的是,即使我的残差值接近于零(如图所示),我的 r2_score 也很低。任何人都可以向我解释一下吗?
这是我的 r2 分数
r2_score:0.38
和我正在使用的代码
car_df_encoded = pd.get_dummies(car_df_encoded, columns=['Store_Loc','Brand','Type','Transmission'], prefix = ['Store_Loc','Brand','Type','Transmission'])
price= car_df_encoded.pop('Price')
x_train, x_test, y_train, y_test = train_test_split(car_df_encoded, harga, test_size=0.25)
gbr = GradientBoostingRegressor(loss='huber', max_depth=5, max_features=None,min_samples_leaf=8, min_samples_split=6, n_estimators=150,random_state=42)
gbr.fit (x_train, y_train)
predicted = gbr.predict(x_test)
residual = y_test - predicted
也尝试使用交叉验证
scores = cross_val_score(gbr, car_df_encoded, harga, cv=4, scoring='r2')
print('\nMean Score:')
print(scores.mean())
我的平均 r2 分数是
Cross Validation Scores:
[0.76621245 0.41771035 0.35744057 0.73955563]
Mean Score:
0.5702297501214788