首页 > 试题广场 >

生成二元分类的混淆矩阵

[编程题]生成二元分类的混淆矩阵
  • 热度指数:529 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
实现一个函数来生成二元分类问题的混淆矩阵(Confusion Matrix)。混淆矩阵是机器学习中评估分类模型性能的重要工具,它展示了模型预测结果与真实标签之间的对应关系。

对于二元分类,混淆矩阵是一个 2 \times 2 的矩阵:
```
[[TP, FN],
[FP, TN]]
```
其中:
- TP (True Positive): 正确预测为正类的样本数
- FN (False Negative): 错误预测为负类的样本数
- FP (False Positive): 错误预测为正类的样本数
- TN (True Negative): 正确预测为负类的样本数

输入描述:
输入为一个列表,其中每个元素是一个包含两个值的列表[y_true, y_pred]:
- y_true:真实标签(0或1)
- y_pred:预测标签(0或1)


输出描述:
输出一个 2 \times 2 的列表,表示混淆矩阵:
示例1

输入

[[1,1], [0,1], [1,0], [1,1], [0,0]]

输出

[[2, 1], [1, 1]]

备注:
1. Python3对应的输入、输出已给出,您只用实现核心功能函数即可
2. 支持numpy、scipy、pandas、scikit-learn库
def confusion_matrix(data):
    import numpy as np
    data=np.array(data)
    Y=data.reshape(-1,2)
    y_true=Y[:,0]
    y_pred=Y[:,1]
    TP=np.sum((y_true==1)&(y_pred==1))
    FN=np.sum((y_true==1)&(y_pred==0))
    FP=np.sum((y_true==0)&(y_pred==1))
    TN=np.sum((y_true==0)&(y_pred==0))
    return [[TP, FN], [FP, TN]]
简单好看懂,和F1-Score的计算类似,只是输入的数据需要简单转换一下。
发表于 2026-06-09 14:04:40 回复(0)