首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用混淆矩阵的classification_report

使用混淆矩阵的classification_report
EN

Stack Overflow用户
提问于 2019-12-19 04:45:39
回答 1查看 91关注 0票数 1

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

代码语言:javascript
复制
array([[508,  12],
       [ 78,  36]])

我们还有classification_report

代码语言:javascript
复制
              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

为了了解此ML解决方案的有效性,我们有一个为传统构建的系统生成的混淆矩阵

代码语言:javascript
复制
array([[305,  62],
       [ 108,  50]])

有没有一种方法可以从中生成classification_report?标准功能而不是编码,以确保一致性。

EN

回答 1

Stack Overflow用户

发布于 2019-12-19 04:56:26

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

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

代码语言:javascript
复制
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 

在代码中,您可以看到如何创建混淆矩阵以及如何派生分数。我知道你已经有了矩阵,所以也许你可以看看第二部分,试着理解分数是如何只使用矩阵来计算的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59399744

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档