混淆矩阵及confusion_matrix函数的使用

这篇博客详细解释了混淆矩阵的概念,特别是在样本类别为0511,预测类别包含多个值的情况下,如何以最大类别作为基准构建混淆矩阵。混淆矩阵是评估分类模型性能的重要工具,它显示了模型预测的真实类别与实际类别之间的对应关系。
### 构建二分类混淆矩阵 为了创建一个用于二分类问题的混淆矩阵,可以利用 `sklearn` 库中的 `confusion_matrix` 函数。此函数接收两个列表作为输入参数:一个是真实标签(ground truth),另一个是预测标签(predicted labels)。对于二分类情况,这两个列表只应含两类标签,通常表示为 0 和 1。 下面是一个简单的例子,展示了如何使用 Python 编写一个自定义版本的 `confusion_matrix` 函数来计算二分类混淆矩阵: ```python def binary_confusion_matrix(y_true, y_pred): """ 计算并返回给定的真实标签和预测标签之间的二元混淆矩阵 参数: y_true (list): 真实标签序列 y_pred (list): 预测标签序列 返回: tuple: 含四个元素的元组 (TN, FP, FN, TP),分别代表真阴性、假阳性、假阴性和真阳性数量 """ TN = sum((p == 0 and t == 0) for p, t in zip(y_pred, y_true)) FP = sum((p == 1 and t == 0) for p, t in zip(y_pred, y_true)) FN = sum((p == 0 and t == 1) for p, t in zip(y_pred, y_true)) TP = sum((p == 1 and t == 1) for p, t in zip(y_pred, y_true)) return TN, FP, FN, TP # 测试案例 y_true = [0, 1, 0, 1, 1, 0] y_pred = [0, 1, 1, 1, 0, 0] tn, fp, fn, tp = binary_confusion_matrix(y_true, y_pred) print(f"True Negatives: {tn}") print(f"False Positives: {fp}") print(f"False Negatives: {fn}") print(f"True Positives: {tp}") # 使用 sklearn 的 confusion_matrix 进行验证 from sklearn.metrics import confusion_matrix as sk_confusion_matrix cm_sklearn = sk_confusion_matrix(y_true, y_pred).ravel() print("\nSklearn Confusion Matrix:") print(cm_sklearn.reshape(2, 2)) # 将一维数组转换成二维形式以便于阅读 ``` 上述代码实现了手动构建二分类混淆矩阵的功能,并通过调用 `sklearn` 中同名方法进行了结果对比验证[^1]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值