首页 > 编程知识 正文

metrics.confusion_matrix与pandas_ml confusionmatrix区别

时间:2023-11-22 14:16:58 阅读:293834 作者:OVWN

本文将从以下几个方面详细阐述metrics.confusion_matrix与pandas_ml confusionmatrix的区别:

  • 1. 作用
  • 2. 代码实现
  • 3. 参数输入
  • 4. 数据类型
  • 5. 输出结果

1. 作用

两者的作用都是评估分类模型的预测准确性,但是具体的应用场景有所不同。

metrics.confusion_matrix适用于简单分类任务的评估,例如二分类任务,其可以计算真正例(True Positive)、假正例(False Positive)、真负例(True Negative)和假负例(False Negative)。

from sklearn.metrics import confusion_matrix
y_true = [0, 1, 0, 1]
y_pred = [1, 1, 0, 0]
confusion_matrix(y_true, y_pred)

输出结果为:
array([[1, 1],
       [1, 1]])

pandas_ml confusionmatrix适用于更加复杂的分类任务的评估,例如多分类任务或者多标签分类任务,其可以计算混淆矩阵的各类指标,如准确率(Precision)、召回率(Recall)、F1-score等。

from pandas_ml import ConfusionMatrix
y_true = [0, 1, 0, 1]
y_pred = [1, 1, 0, 0]
confusion_matrix = ConfusionMatrix(y_true, y_pred)
print("Confusion matrix:n%s" % confusion_matrix)
confusion_matrix.print_stats()

输出结果为:
Confusion matrix:
Predicted  False  True  __all__
Actual                         
False          0     2        2
True           2     0        2
__all__        2     2        4

population: 4
P: 2
N: 2
PositiveTest: 2
NegativeTest: 2
TP: 0
TN: 0
FP: 2
FN: 2
Accuracy: 0.0
TPR: 0.0
TNR: 0.0
PPV: 0.0
NPV: 0.0
FPR: 1.0
FDR: 1.0
FNR: 1.0
ACC: 0.0
F1_score: 0.0
MCC: nan
informedness: 0.0
markedness: 0.0
prevalence: 0.5
LRP: 0.0
LRN: 1.0
DOR: 0.0
FOR: 1.0

2. 代码实现

两者的代码实现方式不同,metrics.confusion_matrix是通过调用sklearn库中的confusion_matrix方法实现的,而pandas_ml confusionmatrix则需要导入pandas_ml库中的ConfusionMatrix类。

from sklearn.metrics import confusion_matrix
from pandas_ml import ConfusionMatrix

3. 参数输入

metrics.confusion_matrix方法的输入参数是分类模型的真实标签和预测标签,两者的长度必须一致;

y_true = [0, 1, 0, 1]
y_pred = [1, 1, 0, 0]
confusion_matrix(y_true, y_pred)

pandas_ml confusionmatrix的输入参数与metrics.confusion_matrix相同,也是分类模型的真实标签和预测标签,但是在输入时需要将两者转化为pandas中的DataFrame格式,同时还可以附加列名。

y_true = [0, 1, 0, 1]
y_pred = [1, 1, 0, 0]
df_y_true = pd.DataFrame(y_true, columns=["true_label"])
df_y_pred = pd.DataFrame(y_pred, columns=["pred_label"])
confusion_matrix = ConfusionMatrix(df_y_true, df_y_pred)

4. 数据类型

metrics.confusion_matrix方法的输入数据类型必须为一维数组或者列表,其元素类型可以是数字、字符串、布尔值等简单类型;

pandas_ml confusionmatrix方法的输入数据类型必须为pandas中的DataFrame格式。

5. 输出结果

两者的输出结果不尽相同,metrics.confusion_matrix输出的结果是二维数组,其行列分别对应真实标签和预测标签,矩阵中的每个元素表示对应标签的样本个数。

pandas_ml confusionmatrix输出的结果是DataFrame格式,其中包含混淆矩阵的各种度量指标信息。

总结

本文从作用、代码实现、参数输入、数据类型和输出结果几个方面详细阐述了metrics.confusion_matrix与pandas_ml confusionmatrix的区别。需要注意的是,两者的应用场景不同,选取合适的方法可以更好地评估分类模型的准确性。在多分类任务或者多标签分类任务中,建议使用pandas_ml confusionmatrix,以便更好地计算混淆矩阵的各类指标。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。