1.首先升级xgboost的版本
我的是1.5.2
查看版本代码:
import xgboost
xgboost.__version__
2.其次查看可以使用的metric:https://xgboost.readthedocs.io/en/latest/parameter.html#learning-task-parametershttps://xgboost.readthedocs.io/en/latest/parameter.html#learning-task-parameters
另外可以自己写metric函数:
3.怎么设置
代码如下,其中顺便查看了r方的值:
evalset = [(X_train_0328_651990, y_train_0328_651990), (X_test_0328_651990,y_test_0328_651990)]
my_model_0328_651990 = XGBRegressor(n_estimators=100, max_depth=5, min_child_weight=1,learning_rate=0.1,gpu_id='0',seed=42)#(n_estimators=1000, learning_rate=0.05,gpu_id='0')
my_model_0328_651990.fit(X_train_0328_651990, y_train_0328_651990,eval_set=evalset,eval_metric='mae')
y_pred = my_model_0328_651990.predict(X_test_0328_651990)
mse = mean_absolute_error(y_test_0328_651990, y_pred)
r2=r2_score(y_true=y_test_0328_651990, y_pred=y_pred)
print(mse,r2)
results = my_model_0328_651990.evals_result()
# plot learning curves
print(results.keys(),results['validation_0'].keys())
plt.plot(results['validation_0']['mae'], label='train')
plt.plot(results['validation_1']['mae'], label='test')
# show the legend
plt.legend()
# show the plot
plt.show()