gpt4 book ai didi

python - 使用混淆矩阵的分类报告

转载 作者:行者123 更新时间:2023-12-01 06:42:11 24 4
gpt4 key购买 nike

我们的 ML 模型有一个混淆矩阵。

array([[508,  12],
[ 78, 36]])

我们还有classification_report

              precision    recall  f1-score   support

0 0.83 0.98 0.90 123
1 0.85 0.31 0.45 36

accuracy 0.83 159
macro avg 0.84 0.64 0.67 159
weighted avg 0.83 0.83 0.80 159

为了了解此机器学习解决方案的功效,我们为传统构建的系统生成了一个混淆矩阵

array([[305,  62],
[ 108, 50]])

有没有办法从中生成classification_report?标准函数而不是编码,以确保一致性。

最佳答案

我建议您在这里阅读这篇文章https://towardsdatascience.com/beyond-accuracy-precision-and-recall-3da06bea9f6c 。根据混淆矩阵中的值,您可以计算真阳性、真阴性、假阳性和假阴性。之后,您可以计算使用它们的任何指标。

我找到了一个代码示例 ( source )

def evaluate(self, dataset):
predictions = self.predict(dataset[:,0])
confusion_matrix = sklearn_confusion_matrix(dataset[:,1], predictions, labels=self.__classes)

precisions = []
recalls = []
accuracies = []

for gender in self.__classes:
idx = self.__classes_indexes[gender]
precision = 1
recall = 1
if np.sum(confusion_matrix[idx,:]) > 0:
precision = confusion_matrix[idx][idx]/np.sum(confusion_matrix[idx,:])
if np.sum(confusion_matrix[:, idx]) > 0:
recall = confusion_matrix[idx][idx]/np.sum(confusion_matrix[:, idx])
precisions.append(precision)
recalls.append(recall)

precision = np.mean(precisions)
recall = np.mean(recalls)
f1 = (2*(precision*recall))/float(precision+recall)
accuracy = np.sum(confusion_matrix.diagonal())/float(np.sum(confusion_matrix))

return precision, recall, accuracy, f1

在代码中,您可以看到如何创建混淆矩阵以及如何导出分数。我知道您已经有了矩阵,所以也许您可以看一下第二部分并尝试了解如何仅使用矩阵计算分数。

关于python - 使用混淆矩阵的分类报告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59399744/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com