在使用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)
这给出了属于每个类的目标的百分比概率
我想检查这个预测概率的准确性。
答案 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)