XGBoost - XGBClassifier predict_proba (python) 的奇怪结果

XGBoost - Strange results with XGBClassifier predict_proba (python)

我正在使用 XBGClassifier 进行多 class 预测并得到奇怪的概率结果(显然不是我们可以预期的结果,例如与 SVM.SVC 的结果非常不同)。

代码:

 clf = XGBClassifier( learning_rate=0.00005, objective='multi:softprob')
[...]
 clf.fit(X, Y, eval_metric='mlogloss')
[...]
clf.predict_proba( data)

所有提供的概率都很奇怪:

INFO:root:[[0.16740549 0.16724858 0.16669136 0.1662821  0.16619198 0.16618045]]
INFO:root:[[0.16658343 0.16709101 0.16700828 0.16666834 0.16638225 0.16626666]]
INFO:root:[[0.16706458 0.16723593 0.16682376 0.16645898 0.16622521 0.16619155]]
INFO:root:[[0.1670872  0.16725858 0.16679683 0.16641934 0.16624773 0.16619037]]
INFO:root:[[0.16655219 0.1669247  0.16697693 0.16680391 0.1664368  0.16630547]]
INFO:root:[[0.16774052 0.16720766 0.16651934 0.1662414  0.16615131 0.16613977]]
INFO:root:[[0.16740549 0.16724858 0.16669136 0.1662821  0.16619198 0.16618045]]
INFO:root:[[0.16658343 0.16709101 0.16700828 0.16666834 0.16638225 0.16626666]]

有什么想法吗?

谢谢

添加到@bhaskarc 的相关评论中。

您的模型似乎没有在学习,因为它为所有 类 预测相同的概率。

另一个原因可能是您的学习率太小。

尝试将其更改为更大的值并重新检查预测:

learning_rate=0.001

您也可以尝试使用其他参数(max_depth、n_estimators、gamma、...)