预测 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)
在使用 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)