本文将从以下几个方面详细阐述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,以便更好地计算混淆矩阵的各类指标。