gpt4 book ai didi

python - 如何在 Xgboost 中修复此警​​告?

转载 作者:行者123 更新时间:2023-12-04 14:44:13 25 4
gpt4 key购买 nike

我有一个包含 53987 行、32 列和 8 个类的不平衡数据集。我正在尝试执行多类分类。这是我的代码和相应的输出:

from sklearn.metrics import classification_report, accuracy_score
import xgboost
xgb_model = xgboost.XGBClassifier(num_class=7, learning_rate=0.1, num_iterations=1000, max_depth=10, feature_fraction=0.7,
scale_pos_weight=1.5, boosting='gbdt', metric='multiclass')
hr_pred = xgb_model.fit(x_train, y_train).predict(x_test)
print(classification_report(y_test, hr_pred))


[10:03:13] WARNING: C:/Users/Administrator/workspace/xgboost-win64_release_1.3.0/src/learner.cc:541:
Parameters: { boosting, feature_fraction, metric, num_iterations, scale_pos_weight } might not be used.

This may not be accurate due to some parameters are only used in language bindings but
passed down to XGBoost core. Or some parameters are not used but slip through this verification. Please open an issue if you find above cases.

[10:03:13] WARNING: C:/Users/Administrator/workspace/xgboost-win64_release_1.3.0/src/learner.cc:1061: Starting in XGBoost 1.3.0, the default evaluation metric used with the objective 'multi:softprob' was changed from 'merror' to 'mlogloss'. Explicitly set eval_metric if you'd like to restore the old behavior.
precision recall f1-score support

1.0 0.84 0.92 0.88 8783
2.0 0.78 0.80 0.79 4588
3.0 0.73 0.59 0.65 2109
4.0 1.00 0.33 0.50 3
5.0 0.42 0.06 0.11 205
6.0 0.60 0.12 0.20 197
7.0 0.79 0.44 0.57 143
8.0 0.74 0.30 0.42 169

accuracy 0.81 16197
macro avg 0.74 0.45 0.52 16197
weighted avg 0.80 0.81 0.80 16197
max_depth_list = [3,5,7,9,10,15,20,25,30]

for max_depth in max_depth_list:
xgb_model = xgboost.XGBClassifier(max_depth=max_depth, seed=777)
xgb_pred = xgb_model.fit(x_train, y_train).predict(x_test)
xgb_f1_score_micro = f1_score(y_test, xgb_pred, average='micro')

xgb_df = pd.DataFrame({'tree depth':max_depth_list,
'accuracy':xgb_f1_score_micro})
xgb_df

WARNING: C:/Users/Administrator/workspace/xgboost-win64_release_1.3.0/src/learner.cc:1061: Starting in XGBoost 1.3.0, the default evaluation metric used with the objective 'multi:softprob' was changed from 'merror' to 'mlogloss'. Explicitly set eval_metric if you'd like to restore the old behavior.
如何修复这些警告?

最佳答案

如果您不想更改任何行为,只需设置 eval_metric='mlogloss'如下。

xgb_model = xgboost.XGBClassifier(num_class=7,
learning_rate=0.1,
num_iterations=1000,
max_depth=10,
feature_fraction=0.7,
scale_pos_weight=1.5,
boosting='gbdt',
metric='multiclass',
eval_metric='mlogloss')
从警告日志,你会知道什么 eval_metric设置以删除警告的算法。大多数情况下 mloglosslogloss .

关于python - 如何在 Xgboost 中修复此警​​告?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66097701/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com