我有这三个指标来完成分类任务。有人能用通俗易懂的英语告诉我,区别是什么,使用哪一种和什么时候使用?
谢谢
for name, model in fitted_models.items():
print(name, model.best_score_)l1
0.8493863035326624
l2
0.8493863035326624
射频
0.9796513913558318
gb
0.9752980461811722
///////////////////////////////////////////////
for name, model in fitted_models.items():
pred = model.predict(X_test)
print(name, accuracy_score(y_test, pred))l1
0.8603411513859275
l2
0.8603411513859275
射频
0.9790334044065387
gb
0.9758351101634684
///////////////////////////////////////////////
for name, model in fitted_models.items():
pred = model.predict_proba(X_test)
pred = [p[1] for p in pred]
print(name, roc_auc_score(y_test, pred))l1
0.9015388373737675
l2
0.9015381433597084
射频
0.9915194952019338
gb
0.988678201643009
发布于 2022-10-11 15:32:20
1.首先:
model.best_score_请返回列车数据的准确性,但本问题中的另外两种方法适用于测试数据
2.model.best_score_ & accuracy_score(y_test,pred)返回到您的意思是:
accuracy = (tp + tn) / (tp + fp + fn + tn)但是roc_auc_score(y_test,pred)计算auc时,每个类的概率点是分开的,当然是用ROC曲线下的面积计算的。
3.当我们可以使用predict_proba()时,列车数据的精度不是很好的度量参数,而roc auc的精度要好于精度。
4.最后,精度和召回是比精度更好的参数,我们必须根据需要在两者之间做出明智的选择。
我向您提供classification_report,此方法返回每个类的所有参数,并对它们进行平均值:
from sklearn.metrics import classification_report
print(classification_report(y_pred=y_pred, y_true=y_test))https://stackoverflow.com/questions/73965844
复制相似问题