我知道这个问题在某种程度上是重复的,但是我所看到的答案都没有清楚地解决我的问题,因此我想再次询问有关混淆矩阵和此处classification_report
所特有的问题。
通常,我使用随机森林分类器来预测用户是否返回我的网页,或者返回1 =“返回”并且0 =“不返回”
print('Precision score: {:.2f}'.format(precision_score(y_test, y_pred)))
print('Recall_score score: {:.2f}'.format(recall_score(y_test, y_pred)))
print('AUC.ROC score: {:.2f}'.format(roc_auc_score(y_test, y_pred)))
精度得分:0.63
Recall_score得分:0.16
AUC.ROC评分:0.56
在这一点上,我的理解是,结果代表了“返回”(值= 1)的观点,因此recall = 0.16
表示正确识别了返回用户的百分比。
所以我的第一个问题是:到目前为止我的理解正确吗?
classification_report
以确认上述结果: print(confusion_matrix(y_test, y_pred))
[[99981 3250]
[28799 5447]]
从此混淆矩阵输出中,计算Precision和Recall会返回不同的值(分别为0.97和0.78)。
对于classification_report
:
print(classification_report(y_test, y_pred))
precision recall f1-score support
0 0.78 0.97 0.86 103231
1 0.63 0.16 0.25 34246
从分类报告中,我的假设是我对问题(1)的理解是正确的,并且上面的混淆矩阵结果表示“无回报”用户。
所以我的第二个问题是:以上结论正确吗?如果是,那么为什么混淆矩阵返回“不返回”用户的值而不是“返回”,我如何为“返回”用户计算相似的混淆矩阵?