系列文章目录
第一章 【机器学习】初识机器学习
第二章 【机器学习】【监督学习】- 逻辑回归算法 (Logistic Regression)
第三章 【机器学习】【监督学习】- 支持向量机 (SVM)
第四章【机器学习】【监督学习】- K-近邻算法 (K-NN)
第五章【机器学习】【监督学习】- 决策树 (Decision Trees)
第六章【机器学习】【监督学习】- 梯度提升机 (Gradient Boosting Machine, GBM)
第七章 【机器学习】【监督学习】-神经网络 (Neural Networks)
第八章【机器学习】【监督学习】-卷积神经网络 (CNN)
第九章【机器学习】【监督学习】-循环神经网络 (RNN)
第十章【机器学习】【监督学习】-线性回归
第十一章【机器学习】【监督学习】-局部加权线性回归 (Locally Weighted Linear Regression, LWLR)
第十二章【机器学习】【监督学习】- 岭回归 (Ridge Regression)
十三、【机器学习】【监督学习】- Lasso回归 (Least Absolute Shrinkage and Selection Operator)
十四、【机器学习】【监督学习】- 弹性网回归 (Elastic Net Regression)
十五、【机器学习】【监督学习】- 神经网络回归
十六、【机器学习】【监督学习】- 支持向量回归 (SVR)
十七、【机器学习】【非监督学习】- K-均值 (K-Means)
十八、【机器学习】【非监督学习】- DBSCAN (Density-Based Spatial Clustering of Applications with Noise)十九、【机器学习】【非监督学习】- 层次聚类 (Hierarchical Clustering)二十、【机器学习】【非监督学习】- 均值漂移 (Mean Shift)
二十一、【机器学习】【非监督学习】- 谱聚类 (Spectral Clustering)
目录
系列文章目录
一、基本定义
(一)、监督学习
(二)、监督学习的基本流程
(三)、监督学习分类算法(Classification)
二、 Bagging
(一)、定义
(二)、基本概念
(三)、训练过程
Bagging的训练过程详解
1. 数据准备:Bootstrap Sampling
2. 模型训练
3. 预测阶段
4. 聚合策略
5. 结果评估与应用
(四)、特点与适用场景
(五)、扩展
三、总结
一、基本定义
(一)、监督学习
监督学习(Supervised Learning)是机器学习中的一种主要方法,其核心思想是通过已知的输入-输出对(即带有标签的数据集)来训练模型,从而使模型能够泛化到未见的新数据上,做出正确的预测或分类。在监督学习过程中,算法“学习”的依据是这些已标记的例子,目标是找到输入特征与预期输出之间的映射关系。
(二)、监督学习的基本流程
数据收集:获取包含输入特征和对应正确输出标签的训练数据集。
数据预处理:清洗数据,处理缺失值,特征选择与转换,标准化或归一化数据等,以便于模型学习。
模型选择:选择合适的算法,如决策树、支持向量机、神经网络等。
训练:使用训练数据集调整模型参数,最小化预测输出与实际标签之间的差距(损失函数)。
验证与调优:使用验证集评估模型性能,调整超参数以优化模型。
测试:最后使用独立的测试集评估模型的泛化能力,确保模型不仅在训练数据上表现良好,也能在未见过的新数据上做出准确预测。
(三)、监督学习分类算法(Classification)
定义:分类任务的目标是学习一个模型,该模型能够将输入数据分配到预定义的几个类别中的一个。这是一个监督学习问题,需要有一组已经标记好类别的训练数据,模型会根据这些数据学习如何区分不同类别。
例子:垃圾邮件检测(垃圾邮件 vs. 非垃圾邮件)、图像识别(猫 vs. 狗)。
二、 Bagging
(一)、定义
Bagging,全称为Bootstrap Aggregating,是一种集成学习方法,旨在通过构建多个不同的模型并将其结果进行汇总,以提高预测的准确性和模型的稳定性。Bagging的核心思想是通过有放回地从原始数据集中抽取多个子样本,然后在每个子样本上独立训练不同的模型,最后将这些模型的结果进行平均或投票,以得到最终的预测结果。
(二)、基本概念
-
Bootstrap Sampling:Bagging中的“Bootstrap”指的是从原始数据集中有放回地抽取相同大小的样本集,这意味着每个样本在子集中可能被多次选中,也可能完全不被选中。
-
多样性:由于每个子样本集都是独立抽取的,因此在每个子样本上训练的模型也会有所不同,这种多样性是Bagging能够提高模型稳定性的关键。
-
Aggregation:训练完成后,Bagging通过聚合所有模型的预测结果来做出最终预测。对于分类问题,通常采用多数投票的方式;对于回归问题,则是取平均值。
(三)、训练过程
Bagging的训练过程可以概括为以下几步:
-
数据准备:从原始数据集中通过Bootstrap Sampling抽取多个子样本集。
-
模型训练:在每个子样本集上独立训练一个基学习器(如决策树)。由于数据集的随机性,每个基学习器都会有所不同。
-
预测阶段:对于一个新的输入实例,所有基学习器都会给出自己的预测,然后根据问题类型(分类或回归)进行投票或平均,得到最终的预测结果。
Bagging的训练过程详解
Bagging(Bootstrap Aggregating)是一种强大的集成学习技术,用于提高预测模型的性能,尤其是减少模型的方差,使其更加稳定和可靠。下面是Bagging训练过程的详细步骤:
1. 数据准备:Bootstrap Sampling
- 数据集划分:首先,从原始训练数据集 ( D ) 中,通过Bootstrap Sampling(自助抽样法)随机抽取 ( N ) 个样本(( N ) 通常是原始数据集的大小),形成一个新的样本集 ( D_i )。这一过程是有放回地进行的,意味着同一个样本可能在新的样本集中出现多次,而有些样本可能一次也不出现。
- •重复抽样:这一过程会重复进行 ( B ) 次,生成 ( B ) 个不同的样本集 ( D_1, D_2, ..., D_B ),每个样本集的大小都大致等于原始数据集的大小。
2. 模型训练
- 独立建模:对于每个样本集 ( D_i ),独立地训练一个基学习器 ( h_i(x) )。基学习器的选择可以是任何机器学习模型,但通常选择的是决策树,因为它们容易过拟合并能从中受益于Bagging带来的稳定性提升。
- 并行训练:这些基学习器可以在不同的样本集上并行训练,因为它们之间没有依赖关系,这使得Bagging非常适合于并行计算环境。
3. 预测阶段
- 单个模型预测:对于一个新输入 ( x ),每个基学习器 ( h_i(x) ) 将给出一个预测结果。
- 结果汇总:根据问题的类型(分类或回归),汇总所有基学习器的预测结果。对于分类问题,通常采用多数投票(Majority Voting)的方式决定最终预测类别;对于回归问题,则是计算所有基学习器预测值的平均值作为最终预测。
4. 聚合策略
- 分类问题:如果基学习器是分类器,那么对于新样本 ( x ),每个分类器 ( h_i(x) ) 都会给出一个类别标签。最终的预测类别是所有分类器预测类别中出现次数最多的那个。
- 回归问题:如果基学习器是回归器,那么每个回归器 ( h_i(x) ) 都会给出一个数值预测。最终的预测值是所有回归器预测值的算术平均。
5. 结果评估与应用
- 模型评估:可以通过交叉验证或保留的测试集来评估Bagging模型的性能。通常,Bagging模型的性能优于单一基学习器的性能,尤其是在减少过拟合和提高预测稳定性方面。
- 模型应用:一旦训练完成,Bagging模型就可以用于对新的未见数据进行预测。
通过上述步骤,Bagging能够有效减少模型的方差,提高预测的稳定性,同时保持甚至增强模型的准确性,特别是在处理高方差模型和复杂数据集时表现尤为突出。
(四)、特点与适用场景
-
减少方差:Bagging通过多样化基学习器来减少模型的方差,提高预测稳定性,尤其适用于高方差的模型,如决策树。
-
提高准确性:由于模型的多样性,Bagging通常能够提高整体的预测准确性,尤其是在处理具有噪声或复杂分布的数据集时。
-
处理不平衡数据:Bagging可以有效地处理类别不平衡的问题,因为在Bootstrap抽样中,少数类别的样本有更多的机会被多次选中,从而在训练集中得到更好的表示。
-
特征选择:可以结合特征重要性分析,帮助识别哪些特征对预测结果影响最大。
(五)、扩展
Bagging的概念可以扩展到多种模型和算法中,以下是一些常见的扩展:
-
Random Forest:在Bagging的基础上,Random Forest进一步引入了特征随机选择的概念,即在每次分裂时只考虑一部分特征,这增加了模型的多样性和泛化能力。
-
AdaBoost:虽然AdaBoost和Bagging都是集成学习方法,但AdaBoost侧重于加权调整,给那些被前一个模型错误分类的样本更高的权重,以使后续模型更加关注这些困难样本。
-
Stacking:Stacking是一种更复杂的集成学习策略,它不仅使用Bagging或其他集成方法生成多个模型,还会使用一个元模型来学习如何最好地组合这些模型的输出。
三、总结
Bagging是一种非常实用的集成学习方法,特别适用于处理高方差模型、减少过拟合风险以及提高模型在复杂数据集上的表现。通过与不同类型的基学习器结合,Bagging可以适应多种机器学习任务和应用场景。