【问题标题】:classification_report using confusion matrix使用混淆矩阵的分类报告
【发布时间】:2020-04-11 11:05:02
【问题描述】:

我的机器学习模型有一个混淆矩阵。

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?标准函数而不是编码,以确保一致性。

【问题讨论】:

    标签: python scikit-learn data-science


    【解决方案1】:

    我建议你在这里阅读这篇文章 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 
    

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

    【讨论】:

      猜你喜欢
      • 2020-08-21
      • 2019-05-26
      • 2019-07-26
      • 2021-07-29
      • 2022-10-20
      • 2015-08-25
      • 2020-07-06
      • 2018-10-21
      • 2021-11-11
      相关资源
      最近更新 更多