Binary classification 二分类和混淆矩阵的概念

本文介绍了二分类的概念,包括FN、FP、TN和TP四种情况,并解释了如何记忆这些术语。此外,还讨论了查准率(Precision)和查全率(Recall)的计算方法,查准率是正确预测的正样本占比,查全率是实际正样本被正确预测的比例。

本文参考:http://www.cnblogs.com/rainduck/archive/2012/11/11/2765395.html

最近在coursera学习《Mastering Data Analysis in Excel》课程,第一周还很简单,第二周开始学习Binary classification,从没接触过的概念,又是英语授课,所以有点蒙了,赶紧网上补充学习下:

FN:False Negative,被判定为负样本,但事实上是正样本。

### XGBoost 二分类中的混淆矩阵生成与解读 在机器学习领域,混淆矩阵是一个重要的工具,用于评估分类模型的性能。对于二分类问题,混淆矩阵通常由四个部分组成:真正类(True Positive, TP)、假正类(False Positive, FP)、真负类(True Negative, TN)以及假负类(False Negative, FN)。以下是关于如何在 XGBoost 中生成解读混淆矩阵的具体说明。 #### 使用 Python Scikit-Learn 实现混淆矩阵 为了生成混淆矩阵,可以借助 `scikit-learn` 库的功能来完成这一任务。以下是一段完整的代码示例: ```python import xgboost as xgb from sklearn.metrics import confusion_matrix, ConfusionMatrixDisplay import matplotlib.pyplot as plt # 假设已经划分好训练集测试集 (X_train, y_train), (X_test, y_test) # 初始化并训练 XGBoost 模型 model = xgb.XGBClassifier() model.fit(X_train, y_train) # 对测试集进行预测 y_pred = model.predict(X_test) # 计算混淆矩阵 cm = confusion_matrix(y_test, y_pred) # 可视化混淆矩阵 disp = ConfusionMatrixDisplay(confusion_matrix=cm) disp.plot(cmap=plt.cm.Blues) plt.title('Confusion Matrix of XGBoost Binary Classification') plt.show() print("Confusion Matrix:") print(cm) ``` 上述代码展示了如何使用 `confusion_matrix()` 函数计算混淆矩阵,并通过 `ConfusionMatrixDisplay` 将其可视化[^3]。 #### 混淆矩阵的组成部分及其含义 混淆矩阵的核心在于理解以下几个指标: 1. **TP (True Positives)**: 被正确识别为正类的样本数量。 2. **FP (False Positives)**: 错误地被识别为正类的样本数量。 3. **TN (True Negatives)**: 被正确识别为负类的样本数量。 4. **FN (False Negatives)**: 错误地被识别为负类的样本数量。 这些值可以通过如下方式提取: ```python tn, fp, fn, tp = cm.ravel() print(f'TN: {tn}, FP: {fp}, FN: {fn}, TP: {tp}') ``` #### 性能指标的计算方法 基于混淆矩阵的结果,还可以进一步计算一些常用的性能指标,例如准确率、精确率、召回率 F1 分数等。 1. **Accuracy (准确率)** 表示整体预测正确的比例。 \[ Accuracy = \frac{TP + TN}{TP + TN + FP + FN} \] 2. **Precision (精确率)** 表示实际为正类的比例。 \[ Precision = \frac{TP}{TP + FP} \] 3. **Recall (召回率)** 表示成功检测到的正类比例。 \[ Recall = \frac{TP}{TP + FN} \] 4. **F1 Score** 是精确率召回率的加权平均。 \[ F1\text{-}Score = 2 \cdot \frac{\text{Precision} \cdot \text{Recall}}{\text{Precision} + \text{Recall}} \] 以上公式可以直接应用到混淆矩阵的数据中进行计算。 --- ### 示例输出解释 假设得到的混淆矩阵为: ``` [[90, 10], [5, 85]] ``` 则对应的各部分数值为: - \( TN = 90 \),\( FP = 10 \) - \( FN = 5 \),\( TP = 85 \) 由此可得: - 准确率为 \( \frac{90 + 85}{90 + 10 + 5 + 85} = 0.925 \) - 精确率为 \( \frac{85}{85 + 10} = 0.895 \) - 召回率为 \( \frac{85}{85 + 5} = 0.944 \) - F1 分数为 \( 2 \cdot \frac{0.895 \cdot 0.944}{0.895 + 0.944} = 0.919 \) ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值