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

时间:2018-04-13 07:26:37

标签: python machine-learning classification prediction gbm

在使用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) - 包括" Class"特征 上面的代码有3个类

pred_prob_P_test = qst.predict_proba(P_test)

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

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

1 个答案:

答案 0 :(得分:0)

您可以执行以下操作:

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)