系列文章目录
第一章 【机器学习】初识机器学习
第二章 【机器学习】【监督学习】- 逻辑回归算法 (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)
二、 XGBoost
(一)、定义
(二)、基本概念
(三)、训练过程
(四)、特点
(五)、适用场景
(六)、扩展
三、总结
一、基本定义
(一)、监督学习
监督学习(Supervised Learning)是机器学习中的一种主要方法,其核心思想是通过已知的输入-输出对(即带有标签的数据集)来训练模型,从而使模型能够泛化到未见的新数据上,做出正确的预测或分类。在监督学习过程中,算法“学习”的依据是这些已标记的例子,目标是找到输入特征与预期输出之间的映射关系。
(二)、监督学习的基本流程
数据收集:获取包含输入特征和对应正确输出标签的训练数据集。
数据预处理:清洗数据,处理缺失值,特征选择与转换,标准化或归一化数据等,以便于模型学习。
模型选择:选择合适的算法,如决策树、支持向量机、神经网络等。
训练:使用训练数据集调整模型参数,最小化预测输出与实际标签之间的差距(损失函数)。
验证与调优:使用验证集评估模型性能,调整超参数以优化模型。
测试:最后使用独立的测试集评估模型的泛化能力,确保模型不仅在训练数据上表现良好,也能在未见过的新数据上做出准确预测。
(三)、监督学习分类算法(Classification)
定义:分类任务的目标是学习一个模型,该模型能够将输入数据分配到预定义的几个类别中的一个。这是一个监督学习问题,需要有一组已经标记好类别的训练数据,模型会根据这些数据学习如何区分不同类别。
例子:垃圾邮件检测(垃圾邮件 vs. 非垃圾邮件)、图像识别(猫 vs. 狗)。
二、 XGBoost
(一)、定义
XGBoost是一种优化的分布式梯度提升决策树算法,由天池(Tianqi Chen)和卡洛斯·戈麦斯(Carlos Guestrin)在2014年提出。它是在梯度提升框架下构建的,专门设计用于提高计算效率和模型性能,尤其在处理大规模数据集时表现优异。
(二)、基本概念
- 梯度提升:一种迭代的机器学习技术,通过逐步添加新的模型(通常是弱学习器,如决策树)来修正现有模型的残差,从而提高整体模型的预测能力。
- 决策树:XGBoost使用决策树作为基础模型,通过构建多棵决策树并进行加权组合,形成最终的强学习器。
- 正则化:XGBoost引入了L1和L2正则化,以防止过拟合,使模型更加稳定。
- 列块和缓存意识:XGBoost采用了列块的存储方式和缓存意识的访问模式,以优化内存访问,提高计算效率。
- 并行处理:虽然单个决策树的训练是顺序的,但XGBoost可以在树的层次结构中并行处理节点分裂,加速训练过程。
(三)、训练过程
XGBoost的训练过程是基于梯度提升框架的,它通过迭代地添加决策树来逐步优化模型的预测能力。下面是对XGBoost训练过程的细化说明:
初始化
- 初值设定:模型的预测从一个常数值开始,通常为训练集中响应变量的平均值或对数几率(对于分类问题)。
迭代训练
-
目标函数分解:XGBoost的目标函数是可分解的,意味着它能够将目标函数表示为预测值的函数,通常包含损失函数和正则化项。损失函数用于衡量预测值与真实值之间的差距,正则化项用于惩罚模型的复杂度,防止过拟合。
-
梯度计算:在每一轮迭代中,计算损失函数关于当前预测值的一阶导数(梯度)和二阶导数(Hessian)。这些梯度和Hessian值将被用于后续的树构建过程。
-
决策树构建:
- 特征选择:XGBoost使用贪心算法进行特征选择,通过计算每个特征的增益(gain)来决定分裂点。增益是基于梯度和Hessian值计算的,它衡量了分裂带来的预测误差的减少量。
- 节点分裂:每个内部节点都将尝试分裂成两个子节点,分裂的标准是最大化增益。分裂过程会受到正则化项的约束,避免生成过于复杂的树结构。
- 叶子节点预测值计算:对于每个叶子节点,计算基于梯度和Hessian的加权预测值,这个值将被用于后续的预测。
-
树的正则化:在树构建完成后,XGBoost会对树进行正则化,包括剪枝和叶子节点权重的正则化,以防止过拟合。
-
加权更新:将新构建的决策树的预测值加权添加到当前模型的预测值中,权重通常是一个学习率(learning rate),用于控制每次迭代对模型更新的影响程度。
-
重复迭代:重复上述过程,直到达到预设的迭代次数或满足停止条件(如模型性能不再提升)。
特殊处理
- 处理缺失值:XGBoost能够自动处理缺失值,通过学习缺失值的最佳方向,使缺失值也能参与到分裂决策中。
- 并行计算:虽然单棵树的训练是顺序的,但XGBoost通过并行处理树的层次结构和特征选择,加速了训练过程。
- 正则化项:XGBoost的正则化项包括对树的深度、叶子节点数和叶子节点权重的正则化,有助于控制模型复杂度,提高泛化能力。
结束
- 最终模型:经过多次迭代,XGBoost将构建出一个由多棵决策树组成的集成模型,这个模型能够对新数据进行预测。
XGBoost的训练过程是高度优化的,它通过一系列的技术创新,如列块存储、缓存意识访问和并行计算,显著提高了训练速度和模型性能,使其成为处理大规模数据集和复杂问题的有力工具。
(四)、特点
- 高性能:通过高度优化的算法和并行计算,XGBoost能够在较短的时间内处理大规模数据集。
- 正则化:内置的L1和L2正则化有助于防止过拟合,提高模型的泛化能力。
- 自动处理缺失值:XGBoost能够自动学习如何处理缺失值,无需预处理即可直接使用。
- 灵活的目标函数:支持多种损失函数,可以轻松应对分类、回归和排序等多种问题。
- 内置交叉验证:提供了内置的交叉验证功能,方便模型调参和验证。
- 可解释性:尽管模型复杂,但通过SHAP(SHapley Additive exPlanations)等工具,仍然可以解释模型的预测逻辑。
(五)、适用场景
XGBoost因其优秀的性能和稳定性,被广泛应用于各种场景,包括但不限于:
- 分类和回归:从金融风控到医学诊断,XGBoost能够处理各种分类和回归问题。
- 推荐系统:通过分析用户行为和偏好,XGBoost可以提高推荐系统的准确性和个性化程度。
- 时间序列预测:在经济预测、能源管理等领域,XGBoost可以预测未来趋势。
- 自然语言处理:在文本分类、情感分析等任务中,XGBoost可以处理高维稀疏数据。
- 计算机视觉:在图像识别和目标检测中,XGBoost可以作为特征选择或模型融合的一部分。
(六)、扩展
- DART (Dropout Regularization in Boosted Trees):一种正则化技术,通过随机丢弃部分树来减少过拟合。
- 线性模型:除了决策树之外,XGBoost也支持线性模型,适用于特征较少或数据规模较大时。
- 分布式计算:XGBoost支持在多台机器上进行分布式训练,加速大型数据集的处理。
- GPU加速:利用GPU的并行计算能力,XGBoost可以进一步加快训练速度。
三、总结
XGBoost因其卓越的性能和广泛的适用性,已成为数据科学和机器学习领域中最受欢迎的算法之一。