首页
技术小册
AIGC
面试刷题
技术文章
MAGENTO
云计算
视频课程
源码下载
PDF书籍
「涨薪秘籍」
登录
注册
4.1 分类变量
4.1.1 One-Hot 编码(虚拟变量)
4.1.2 数字可以编码分类变量
4.2 分箱、离散化、线性模型与树
4.3 交互特征与多项式特征
4.4 单变量非线性变换
4.5 自动化特征选择
4.5.1 单变量统计
4.5.2 基于模型的特征选择
4.5.3 迭代特征选择
4.6 利用专家知识
5.1 交叉验证
5.1.1 scikit-learn 中的交叉验证
5.1.2 交叉验证的优点
5.1.3 分层k 折交叉验证和其他策略
5.2 网格搜索
5.2.1 简单网格搜索
5.2.2 参数过拟合的风险与验证集
5.2.3 带交叉验证的网格搜索
5.3 评估指标与评分
5.3.1 牢记目标
5.3.2 二分类指标
5.3.3 多分类指标
5.3.4 回归指标
5.3.5 在模型选择中使用评估指标
6.1 用预处理进行参数选择
6.2 构建管道
6.3 在网格搜索中使用管道
6.4 通用的管道接口
6.4.1 用make_pipeline 方便地创建管道
6.4.2 访问步骤属性
6.4.3 访问网格搜索管道中的属性
6.5 网格搜索预处理步骤与模型参数
6.6 网格搜索选择使用哪个模型
7.1 用字符串表示的数据类型
7.2 示例应用:电影评论的情感分析
7.3 将文本数据表示为词袋
7.3.1 将词袋应用于玩具数据集
7.3.2 将词袋应用于电影评论
7.4 停用词
7.5 用tf-idf 缩放数据
7.6 研究模型系数
7.7 多个单词的词袋(n元分词)
7.8 分词、词干提取与词形还原
7.9 主题建模与文档聚类
8.1 处理机器学习问题
8.2 从原型到生产
8.3 测试生产系统
8.4 构建你自己的估计器
8.5 下一步怎么走
8.5.1 理论
8.5.2 其他机器学习框架和包
8.5.3 排序、推荐系统与其他学习类型
8.5.4 概率建模、推断与概率编程
8.5.5 神经网络
8.5.6 推广到更大的数据集
当前位置:
首页>>
技术小册>>
Python机器学习基础教程(下)
小册名称:Python机器学习基础教程(下)
### 5.3.2 二分类指标 在机器学习领域,尤其是处理二分类问题时,评估模型的性能至关重要。二分类任务涉及将数据集中的样本划分为两个互斥的类别,如邮件是否为垃圾邮件、图像中是否包含特定对象等。为了准确衡量模型的预测效果,我们需要一系列的评价指标。本章将深入探讨二分类任务中常用的评估指标,帮助读者理解如何根据业务需求选择合适的指标来评估模型。 #### 5.3.2.1 混淆矩阵 在讨论具体指标之前,首先引入混淆矩阵(Confusion Matrix)这一基本概念。混淆矩阵是一个表格,用于描述分类模型性能的可视化工具,其行代表实际类别,列代表预测类别。对于二分类问题,混淆矩阵通常包含四个部分: - **真正例(True Positives, TP)**:模型正确地将正类预测为正类的数量。 - **假正例(False Positives, FP)**:模型错误地将负类预测为正类的数量,也称误报(Type I Error)。 - **真负例(True Negatives, TN)**:模型正确地将负类预测为负类的数量。 - **假负例(False Negatives, FN)**:模型错误地将正类预测为负类的数量,也称漏报(Type II Error)。 混淆矩阵不仅直观展示了模型在各个类别上的表现,而且是计算其他评估指标的基础。 #### 5.3.2.2 准确率(Accuracy) 准确率是最直观也是最容易理解的分类性能指标,它定义为正确预测的样本数占总样本数的比例: $$ \text{Accuracy} = \frac{TP + TN}{TP + TN + FP + FN} $$ 然而,准确率在数据不平衡(即正类样本和负类样本数量差异大)的情况下可能会产生误导。例如,在一个极端不平衡的数据集中,即使模型将所有样本都预测为多数类,准确率也可能很高,但这显然不是我们期望的模型性能。 #### 5.3.2.3 精确率(Precision)与召回率(Recall) 为了更精确地评估模型性能,特别是在不平衡数据集上,我们引入了精确率和召回率两个指标。 - **精确率(Precision)**:在所有被模型预测为正类的样本中,真正为正类的比例。它衡量了模型预测正类的准确性。 $$ \text{Precision} = \frac{TP}{TP + FP} $$ - **召回率(Recall)**(也称真正率、灵敏度):在所有实际为正类的样本中,被模型正确预测为正类的比例。它衡量了模型找出所有正类样本的能力。 $$ \text{Recall} = \frac{TP}{TP + FN} $$ 精确率和召回率之间往往存在一种权衡关系,即提高其中一个指标可能会以牺牲另一个指标为代价。在实际应用中,需要根据业务需求来平衡这两个指标。 #### 5.3.2.4 F1分数(F1 Score) 为了同时考虑精确率和召回率,人们提出了F1分数的概念,它是精确率和召回率的调和平均数,用于综合评估模型性能: $$ \text{F1 Score} = 2 \times \frac{\text{Precision} \times \text{Recall}}{\text{Precision} + \text{Recall}} $$ F1分数越高,说明模型在精确率和召回率上的表现都越好,是评估二分类模型性能的常用指标之一。 #### 5.3.2.5 真正例率(TPR)与假正例率(FPR) 除了精确率和召回率,真正例率(True Positive Rate, TPR)和假正例率(False Positive Rate, FPR)也是重要的评估指标,它们分别对应于召回率和FP占所有负类样本的比例。 - **真正例率(TPR)**:与召回率相同,表示在所有实际为正类的样本中,被模型正确预测为正类的比例。 - **假正例率(FPR)**:在所有实际为负类的样本中,被模型错误预测为正类的比例。 $$ \text{FPR} = \frac{FP}{FP + TN} $$ 这两个指标常用于绘制ROC曲线(Receiver Operating Characteristic Curve),ROC曲线下的面积(Area Under the ROC Curve, AUC)是衡量模型分类能力的一个综合指标,AUC值越大,说明模型的分类性能越好。 #### 5.3.2.6 对数损失(Log Loss) 对于某些二分类问题,特别是当模型的输出是概率形式时,对数损失(也称为对数似然损失、交叉熵损失)是一个常用的评估指标。它衡量了模型预测的概率分布与真实概率分布之间的差异: $$ \text{Log Loss} = -\frac{1}{N} \sum_{i=1}^{N} \left[ y_i \log(p_i) + (1 - y_i) \log(1 - p_i) \right] $$ 其中,$N$ 是样本总数,$y_i$ 是第 $i$ 个样本的真实标签(0或1),$p_i$ 是模型预测第 $i$ 个样本为正类的概率。对数损失越小,表示模型的预测概率分布越接近真实分布,模型性能越好。 #### 5.3.2.7 选择合适的评估指标 在实际应用中,选择合适的评估指标至关重要。以下是一些建议: - **数据平衡性**:如果数据集是平衡的,准确率可以作为初步评估指标;但如果数据集不平衡,应优先考虑精确率、召回率、F1分数等指标。 - **业务需求**:根据具体业务场景选择指标。例如,在医疗诊断中,假负例(漏报疾病)的代价可能远高于假正例(误诊),因此召回率或F1分数可能更为重要。 - **模型输出类型**:如果模型输出的是概率值,对数损失等概率相关的指标可能更合适。 综上所述,二分类指标的选择和应用需要根据数据特性、业务需求和模型输出类型综合考虑。通过深入理解这些指标的含义和计算方法,我们可以更加准确地评估模型的性能,并据此进行模型优化和选择。
上一篇:
5.3.1 牢记目标
下一篇:
5.3.3 多分类指标
该分类下的相关小册推荐:
Python高性能编程与实战
Python与办公-玩转PPT
Python编程轻松进阶(四)
Python合辑12-面向对象
Python编程轻松进阶(五)
Python与办公-玩转Excel
Python合辑6-字典专题
Python高并发编程与实战
Python数据分析与挖掘实战(下)
Python爬虫入门与实战开发(下)
Python合辑8-变量和运算符
剑指Python(磨刀不误砍柴工)