所以我正在研究一个有6个结果类的多类问题。我正在使用OneVsRest分类器,并尝试使用.predict_proba检索每个类的预测概率。
我期望所有类别对每个观测的预测概率之和为一个,但事实并非如此。
predictor = OneVsRestClassifier(xgb.XGBClassifier)
predictor.fit(X_train, y_train)
y_pred = predictor.predict_proba(X_test)
print(y_pred[1])
我的输出是:[0.11484083 0.02525082 0.02969465 0.58868223 0.09889702 0.03193117]
这是正确的吗?
来自OneVsRestClassifier的文档,this strategy consists in fitting one classifier per class. For each classifier, the class is fitted against all the other classes.
。例如,如果你想用OneVsRestClassifier分类狗、猫和鸟,它将训练3个模型。
- 第一个模型将被训练来检查你的数据是否为狗。
- 第二个模型将被训练来检查你的数据是否为鸟类。
- 第三个模型将被训练来检查你的数据是否为cat。
三个模型将作为二分类独立训练。因此,三个模型的概率之和不等于1。