在预测类概率时检查梯度提升分类器的准确性



在使用GradientBoostingClassifiers时,我试图获得模型预测的类的概率,我使用"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 个要素,包括"类"要素上面的代码有 3 个类

pred_prob_P_test = qst.predict_proba(P_test)

这给出了属于每个类的目标的百分比概率

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

你可以执行以下操作:

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)

最新更新