预测 class 概率时检查 GradientBoostingClassifier 的准确性

Checking Accuracy of GradientBoostingClassifier when predicting class probabilities

在使用 GradientBoostingClassifier 时,我试图获得模型预测的 类 概率,我使用 "predict_proba(X)" 方法。 但是我想知道如何检查这个预测的准确性。

P = np.array(D1.drop(['Class'], axis = 1))
q = np.array(D1['Class'])
P_train, P_test, q_train, q_test = train_test_split(P, q)

qst = GradientBoostingClassifier(criterion='friedman_mse', init=None,
              learning_rate=0.08, loss='deviance', max_depth=None,
              max_features=None, max_leaf_nodes=None,
              min_samples_leaf=1,
              min_samples_split=2, min_weight_fraction_leaf=0.0,
              n_estimators=400, presort='auto', random_state=None,
              subsample=0.8, verbose=0, warm_start=False).fit(P_train, q_train)

总数据集为 (17520x24) - 24 个特征,包括 "Class" 特征 上面的代码有3个类

pred_prob_P_test = qst.predict_proba(P_test)

这给出了目标属于每个 Class

的百分比概率

我想检查一下这个预测概率的准确性。

您可以这样做:

from sklearn.metrics import accuracy_score

pred_prob_P_test = qst.predict(P_test)
accuracy_score(q_test, pred_prob_P_test)

如果您只是为了报告任何人都可以理解的内容而需要它,那么使用 accuracy 作为指标就可以了。但是,您应该使用其他一些指标(例如多类对数损失)来优化您的模型。

编辑:

pred_prob_P_test = qst.predict_proba(P_test)
preds = np.argmax(pred_prob_P_test, axis=1)
accuracy_score(q_test, preds)