目录
一、绪论
1.1机器学习
经典定义:利用经验改善系统自身的性能
经验在计算机系统中的直观体现为数据,而机器学习的核心在于利用这些数据中的模式和规律,通过算法和模型来学习并做出预测或决策。
1.2 典型机器学习过程
-
数据采集和预处理:获取和准备数据,确保数据质量和一致性。
-
模型训练:选择适当的机器学习算法,并使用已准备好的数据对模型进行训练。
-
模型评估:通过测试数据集评估模型的性能和准确性。
-
预测或决策:使用经过训练的模型对新数据进行预测或做出决策。
1.3 基本术语
-
特征(Feature):特征是描述数据集中每个实例的属性或输入变量。在机器学习中,特征通常表示为数据中的列,可以是数值、分类或其他类型的数据。
-
标签(Label) 或 目标变量(Target Variable): 在监督学习中,标签是我们希望预测或分类的输出变量。例如,在房价预测中,标签可能是房屋的实际销售价格。
-
属性空间(Attribute Space)/样本空间(Sample Space):由多个属性组成的多维空间,每个样本都可以在这个空间中用一个点来表示。
-
特征向量(Feature Vector):由一组特征(feature)组成的向量,每个特征都是数据的一个属性。
-
特征维数(Feature Dimensionality): 每个样本的特征向量的维度,即特征空间中每个样本点的坐标数。例如,如果一个样本有3个特征(比如长度、宽度、高度),那么这个样本的特征维数就是3。
-
训练集(Training Set):训练集是用来训练机器学习模型的数据集。它包含了输入特征和对应的标签,模型通过学习这些数据来调整自己的参数。
-
测试集(Test Set):测试集是用来评估模型性能的数据集。它与训练集分开,用来检验模型在未见过的数据上的预测或分类能力。
-
泛化能力(generalization ability):泛化能力指的是模型在面对新的、以前未见过的数据时的表现能力。
-
过拟合(Overfitting):模型在训练数据上表现过于优越,学习到了训练数据中的噪声和细节,导致在未知数据上表现不佳。
-
欠拟合(Underfitting):模型在训练数据上表现不佳,未能充分学习到数据的潜在规律,导致在未知数据上表现也较差。
1.4三大问题
- 如何获得测试结果?---------->评估方法
- 如何评估性能优劣?---------->性能度量
- 如何判断实质差别?----------->比较检验
1.4.1评估方法
关键:获取“测试集(Test Set)
- 留出法(Holdout Method)
留出法将数据集划分为训练集和测试集,比例通常为7:3或者8:2
+-------------------+
| 数据集 |
+---------+---------+
| 训练集 | 测试集 |
+---------+---------+
- 交叉验证法(Cross-Validatin)
交叉验证法通常采用 k 折交叉验证,例如将数据集分成10折:
注: 当k=样本总数时 也可称为 ”留一法“
交叉验证法特别适用于数据量不大或者需要更可靠评估的情况
- 自助法(Bootstrap Method)
自助法通过有放回地抽样生成自助样本集,用于训练和测试:
+-------------------+
| 数据集 |
+-------------------+
| 自助样本集(训练) |
+-------------------+
| 未被抽取(测试) |
+-------------------+
自助样本集由原始数据集中有放回地抽取样本组成,可能包含重复的样本,其余未被抽取的数据作为测试集。
1.4.2性能度量
- 回归任务
均方误差(Mean Squared Error,MSE):
- 分类任务
1.错误率(Error Rate)
错误率是分类任务中的基本性能度量,表示被错误分类的样本比例。
(error:错误分类的样本数;m:样本总数)
2.精度(Accuracy)
精度是分类任务中最直观的性能度量,表示模型正确分类的样本比例。
(correct:正确分类的样本数;m:样本总数)
3.召回率 (Recall)和精确率(Precision)
召回率衡量实际为正例的样本中被模型预测为正例的比例。
精确率衡量被模型预测为正例的样本中实际为正例的比例
4.F1分数 (F1 Score)
F1 分数是精却率和召回率的调和平均值,用于综合评估模型的分类性能。
1.4.3 比较检验
-
交叉验证(Cross-validation):
K折交叉验证:将数据集分成K个子集,依次将每个子集作为验证集,其余作为训练集进行训练和验证。通过比较不同模型在不同折验证集上的表现来评估它们的性能。 -
贝叶斯统计方法(Bayesian methods):
使用贝叶斯统计方法来比较不同模型或算法的性能,提供更为灵活的假设测试和参数估计。
二、线性模型
2.1 线性回归
线性回归是一种用于建立变量之间线性关系的统计模型,通常用于预测或解释因变量(目标变量)与一个或多个自变量(特征)之间的关系。
2.2 单变量线性回归
在单变量情况下,假设我们有一个解释变量 ( x ) 和一个目标变量 ( y ),我们的目标是找到一个线性函数,即一条直线,来描述它们之间的关系。
数学形式:
注:
是误差项,代表了模型无法解释的因素。
- 误差项
是独立同分布的,且服从正态分布
2.3 多变量线性回归
数学形式:
注:
是误差项,代表了模型无法解释的因素。
- 误差项
是独立同分布的,且服从正态分布
2.4 广义线性模型(GLM)
广义线性模型(Generalized Linear Model, GLM)是线性回归模型的一种扩展,旨在通过使用非线性链接函数和指数分布族来处理更多类型的数据分布。
主要组成部分:
1.线性预测部分
2.链接函数(Link Function)
GLM使用链接函数 )将线性预测
转换为目标变量
)的期望
。
而函数 ( )的选择取决于目标变量的性质和分布,例如:
- 对于二分类问题(如逻辑回归),常用的链接函数是logit函数:
- 对于计数数据(如泊松回归),常用的链接函数是对数函数:
- 对于连续正数数据(如指数分布),可能使用恒等函数 :
3.指数分布族
GLM假设目标变量 属于指数分布族中的某个分布,如正态分布、泊松分布、二项分布等。每种分布族都对应着一个合适的链接函数和方差函数(方差与均值之间的关系),使得模型的参数估计更为稳健和准确。
2.5 线性判别分析(LDA)
线性判别分析(Linear Discriminant Analysis, LDA)是一种经典的监督学习算法,用于特征提取和分类任务。
线性判别分析(LDA)基本思想是通过降维将数据投影到一个低维空间,同时最大化不同类别之间的类内距离,最小化同一类别内部的方差,以此来实现数据的有效分类。
LDA的工作原理如下:
- 计算类别均值向量: 对于每个类别,计算其特征向量的均值。
- 计算类内散布矩阵: 计算每个类别内特征向量的协方差矩阵。
- 计算类间散布矩阵: 计算不同类别均值向量之间的散布矩阵。
- 求解特征值问题: 解决广义特征值问题以找到投影方向,使得类间散布矩阵尽可能大,类内散布矩阵尽可能小。
LDA的结果是一个投影向量,可以用来进行数据降维,同时也可以作为分类器的基础进行分类。
2.6 多分类基本任务
将二分类任务扩展到多分类任务,常见的策略有“一对一”(OvO)和 “一对多”(OvR)策略
- 一对一(OvO):将N个类别两两配对,生成N(N-1)/2个二分类任务。在测试时,新样本同时交给所有分类器,将预测结果最多的类别作为最终分类结果。
- 一对多(OvR):每次将一个类别的样例作为正例,其他所有类别的样例作为反例,训练出N个分类器。在测试时,若只有一个分类器预测为正例,则对应的类别标记作为最终分类结果;若有多个分类器预测为正例,则通常考虑各分类器预测的置信度,将置信度最大的类别标记作为最终分类结果。
注: 正类 vs 反类
- 正类:正类指在二分类或多分类问题中,我们感兴趣的特定标签或类别。
- 反类:反类是指分类问题中除了正类以外的所有其他类别或标签。
举例:在垃圾邮件过滤中,正类可代表邮件是垃圾邮件,则反类代表邮件是正常的邮件
2.7 类别不平衡
2.7.1 出现原因
类别不平衡问题指的是数据集中某些类别的样本数量远远超过其他类别,这可能导致训练出来的模型在少数类别上表现不佳。主要原因包括样本采集偏差、样本收集成本高昂等。
2.7.2 影响
- 分类器偏向性: 模型更倾向于预测出现频率较高的类别。
- 性能度量失真: 使用准确率等度量可能无法很好地反映模型在少数类别上的表现。
2.7.3 解决办法
- 重采样(Resampling):包括过采样少数类样本或者欠采样多数类样本,使得不同类别的样本数量更加平衡。
- 基于代价的方法(Cost-sensitive Learning):为不同类别的样本分配不同的误分类成本,使得模型在训练过程中更加关注少数类别的样本。这可以通过调整损失函数中的权重来实现,使得误分类少数类别样本的损失更大。
三、决策树
3.1决策树基本流程
1.选择根节点
决策树构建的第一步是选择最佳的特征作为根节点。选择的依据通常是能够以最佳方式分割数据集,使得每个分支节点包含尽可能同类别的数据或使得数据集的不确定性最小化
2.节点分裂
一旦选择了根节点,算法会根据该节点的特征将数据集分成更小的子集。
这个过程是通过评估每个可能的特征来进行的,选择那个能够最大程度地减少数据集的混乱度的特征来进行数据分裂。
这个过程是递归的,即在每个分裂的子集上重复进行,直到达到停止条件。
3.停止条件
决策树的构建过程会在满足以下任一条件时停止:
- 节点中的所有样本都属于同一类别(即达到“纯净”状态)
- 节点中的样本数量低于预设的阈值
- 树的深度达到了预设的最大值
- 进一步的分裂不能带来显著的信息增益
4.确定叶节点
每个叶节点最终会对应一个类别(分类任务)或一个预测值(回归任务),这个类别或预测值是基于到达该节点的所有样本的统计结果得出的。
3.2 划分准则
在决策树算法中,划分准则决定了在每个节点如何选择最佳的属性进行分裂,常见的几种划分准则包括信息增益、增益率和基尼指数等。
3.2.1 信息增益划分
3.2.1.1 信息熵(Entropy)
信息熵(Entropy)是衡量随机变量不确定性的度量,用于衡量数据集的纯度。
数学形式:
给定数据集 D ,其信息熵 H(D) 的计算公式为:
其中 c 是类别的数量, 是类别 i 在数据集 D 中出现的概率。
3.2.1.2 信息增益
在决策树中,对于每个候选分裂属性,算法会计算分裂前后的信息熵之差,即信息增益。信息增益越大,表示使用该属性进行分裂后,类别的不确定性减少得越多,因此该属性被认为是更好的分裂选择。
对于一个属性 A ,其可能取值为
其中
指选择属性 A 后所获得的信息增益
- H(D) 是父节点 D 的熵
- V 是属性 A 的取值个数
- |
| 是属性 A 取值为
的样本数
- |D| 是父节点 D 的样本总数,
-
是在属性 A 取值为
的情况下,子节点
的熵
3.2.2 增益率
增益率是信息增益的一种扩展,它主要解决了信息增益对取值较多属性的偏好问题。
增益率=信息增益/属性的熵
3.2.3 基尼指数
基尼指数衡量了节点中样本在类别上的混乱程度。基尼指数的值越小,说明节点中的样本越倾向于属于同一类别。
给定一个节点t,假设该节点包含的样本集合为,该集合包含|
|个样本
假设有c个类别
其中是属于类别 i 的样本在节点 t 中的比例,
3.3 剪枝
剪枝是决策树算法中的一种策略,旨在防止模型在训练集上过度拟合,以提高在未见数据上的泛化能力。
剪枝策略:
1.预剪枝(Pre-pruning):在树构建的过程中进行剪枝,即在决策树生长过程中,在每个节点判断是否进行分裂之前先评估是否进行剪枝。
预剪枝常见策略:
- 节点样本数阈值: 如果一个节点的样本数小于设定的阈值,则不再分裂。
- 信息增益阈值: 如果分裂后的信息增益低于预设的阈值,则停止分裂。
- 叶子节点最小样本数: 如果一个叶子节点的样本数小于设定的阈值,则停止分裂。
2.后剪枝(Post-pruning):
在决策树构建完成后进行剪枝,即首先构建完整的决策树,然后再通过一些准则来剪去一些节点或子树。
后剪枝常见策略:
- 验证集剪枝: 将数据集划分为训练集和验证集,在验证集上评估剪枝前后模型的性能,选择泛化能力最强的模型。
3.4 缺失值的处理
常见处理方法:
-
忽略样本: 忽略包含缺失值的样本,即在构建决策树时不考虑这些样本。这种方法适用于数据集中缺失值比例较低的情况,但会损失部分数据信息。
-
替代值填充: 另一种常见的方法是用替代值(如平均值、中位数或者众数)填充缺失值。这种方法可以保持数据集的完整性,并且不影响其他特征的统计性质。