系列文章目录
第二章 【机器学习】【监督学习】- 逻辑回归算法 (Logistic Regression)
第四章【机器学习】【监督学习】- K-近邻算法 (K-NN)
第五章【机器学习】【监督学习】- 决策树 (Decision Trees)
第六章【机器学习】【监督学习】- 梯度提升机 (Gradient Boosting Machine, GBM)
第七章 【机器学习】【监督学习】-神经网络 (Neural Networks)
第十一章【机器学习】【监督学习】-局部加权线性回归 (Locally Weighted Linear Regression, LWLR)
第十二章【机器学习】【监督学习】- 岭回归 (Ridge Regression)
十三、【机器学习】【监督学习】- Lasso回归 (Least Absolute Shrinkage and Selection Operator)
十四、【机器学习】【监督学习】- 弹性网回归 (Elastic Net Regression)
十七、【机器学习】【非监督学习】- K-均值 (K-Means)
十八、【机器学习】【非监督学习】- DBSCAN (Density-Based Spatial Clustering of Applications with Noise)十九、【机器学习】【非监督学习】- 层次聚类 (Hierarchical Clustering)二十、【机器学习】【非监督学习】- 均值漂移 (Mean Shift)
二十一、【机器学习】【非监督学习】- 谱聚类 (Spectral Clustering)
目录
一、基本定义
(一)、监督学习
监督学习(Supervised Learning)是机器学习中的一种主要方法,其核心思想是通过已知的输入-输出对(即带有标签的数据集)来训练模型,从而使模型能够泛化到未见的新数据上,做出正确的预测或分类。在监督学习过程中,算法“学习”的依据是这些已标记的例子,目标是找到输入特征与预期输出之间的映射关系。
(二)、监督学习的基本流程
数据收集:获取包含输入特征和对应正确输出标签的训练数据集。
数据预处理:清洗数据,处理缺失值,特征选择与转换,标准化或归一化数据等,以便于模型学习。
模型选择:选择合适的算法,如决策树、支持向量机、神经网络等。
训练:使用训练数据集调整模型参数,最小化预测输出与实际标签之间的差距(损失函数)。
验证与调优:使用验证集评估模型性能,调整超参数以优化模型。
测试:最后使用独立的测试集评估模型的泛化能力,确保模型不仅在训练数据上表现良好,也能在未见过的新数据上做出准确预测。
(三)、监督学习分类算法(Classification)
定义:分类任务的目标是学习一个模型,该模型能够将输入数据分配到预定义的几个类别中的一个。这是一个监督学习问题,需要有一组已经标记好类别的训练数据,模型会根据这些数据学习如何区分不同类别。
例子:垃圾邮件检测(垃圾邮件 vs. 非垃圾邮件)、图像识别(猫 vs. 狗)。
二、 AdaBoost
(一)、定义
AdaBoost是一种集成学习方法,最初由Yoav Freund和Robert Schapire在1995年提出。它是一种迭代的算法,用于提升弱分类器的表现,将其组合成一个强分类器。弱分类器是指那些仅比随机猜测略好的分类器,而AdaBoost通过加权组合这些弱分类器,可以得到一个表现显著优于单个弱分类器的强分类器。
(二)、基本概念
- 弱分类器:能够对数据集进行分类,但是准确率略高于随机猜测的分类器。
- 强分类器:由多个弱分类器组合而成,能够对数据集进行更准确的分类。
- 样本权重:在AdaBoost中,每个训练样本都有一个权重,错误分类的样本权重会被提高,以便后续的弱分类器更加关注这些样本。
- 弱分类器权重:每个弱分类器在最终强分类器中的贡献程度,是由其在训练集上的分类错误率决定的。
(三)、训练过程概要
- 初始化样本权重:最初,所有训练样本的权重相等。
- 训练弱分类器:在每一轮中,使用当前的样本权重训练一个弱分类器。
- 计算弱分类器误差率:评估弱分类器在带权重训练集上的分类错误率。
- 更新弱分类器权重:根据分类器的误差率,计算其在强分类器中的权重。
- 更新样本权重:分类错误的样本权重增加,正确分类的样本权重降低,以便下一轮训练时更多关注错误分类的样本。
- 迭代训练:重复上述过程T次(T是预设的迭代次数或直到达到某个停止条件),每次迭代都会产生一个新的弱分类器。
- 组合弱分类器:最终,所有弱分类器按照其权重被组合成一个强分类器。
(四)、训练过程详细解释
1、 初始化样本权重
- 开始时,给定训练数据集 D={(x1,y1),(x2,y2),...,(xN,yN)},其中 xi 是特征向量,yi是对应的类标。
- 每个样本 i 的初始权重
设为
,这意味着所有样本在第一轮中具有相同的权重。
2、迭代训练弱分类器
对于 t=1,2,...,T(T是预设的迭代次数或弱分类器的数量):
- 训练弱分类器:使用当前的样本权重 wi(t),训练一个弱分类器 ht(x)。弱分类器的目标是使加权训练误差最小。
- 计算分类器错误率:计算弱分类器 htht 在带权重的训练数据集上的错误率 ϵt:
其中,2 是指示函数,如果条件成立返回1,否则返回0。
3. 计算分类器权重:基于分类器的错误率 ϵt,计算分类器 htht 的权重 αt:
如果 ϵt≥0.5,则舍弃该分类器,因为其性能不优于随机猜测。
3、更新样本权重
根据弱分类器 ht的性能,更新下一个迭代中每个样本的权重:
其中,Zt 是规范化因子,确保所有样本权重之和为1:
4、构建强分类器
当所有 T 个弱分类器都被训练完毕,最终的强分类器 H(x) 为:
(五)、特点
- 自适应性:AdaBoost能够自动调整训练样本的权重,使分类器更关注难以分类的样本。
- 鲁棒性:对异常值和噪声有较好的抵抗能力,因为它会自动减少异常值的权重。
- 易于实现:基于简单的弱分类器,如决策树桩,易于实现和应用。
- 潜在过拟合:在迭代次数过多时,AdaBoost可能会过度拟合训练数据,需要适当控制迭代次数或采用其他正则化技术。
(六)、适用场景
- 二分类问题:AdaBoost最初设计用于解决二分类问题,但也可以通过One-vs-One或One-vs-All策略扩展到多分类问题。
- 特征选择:由于AdaBoost能够突出重要特征,因此它也被用于特征选择。
- 数据不平衡问题:通过调整样本权重,AdaBoost能够处理类别不平衡的数据集。
(七)、扩展
- 多类AdaBoost:通过扩展AdaBoost到多类分类问题,如AdaBoost.M1、AdaBoost.MH和AdaBoost.MR。
- 回归问题:AdaBoost可以被修改以解决回归问题,如AdaBoost.R1和AdaBoost.R2。
- 其他集成学习方法:AdaBoost启发了其他集成学习方法,如Gradient Boosting Machine(GBM)和XGBoost,这些方法在AdaBoost的基础上进行了改进,以提高性能和处理更复杂的数据。
三、总结
AdaBoost因其简单、有效和适应性强的特点,在机器学习领域得到了广泛的应用和研究。