系列文章目录
第二章 【机器学习】【监督学习】- 逻辑回归算法 (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. 狗)。
二、 CatBoost
(一)、定义
CatBoost是由俄罗斯搜索引擎巨头Yandex开发的一种梯度提升决策树(Gradient Boosting Decision Tree, GBDT)框架。它主要设计用于处理分类特征,能够在训练过程中自动处理类别变量而无需预处理,如编码转换。CatBoost通过引入有序类别特征处理和去除目标编码偏差的技术,显著提高了模型的预测能力与泛化性能,特别是在处理具有大量类别特征的数据集上表现突出。
(二)、基本概念
-
梯度提升:CatBoost基于梯度提升算法,通过迭代方式构建一系列弱学习器(通常是决策树),并将它们组合成一个强大的预测模型。每个新树的学习目标是修正前一棵树的残差。
-
自动处理分类特征:这是CatBoost的一大特色,它能够直接接受分类特征作为输入,而不需要手动进行one-hot编码或标签编码等预处理步骤。
-
目标编码:CatBoost使用了一种称为“目标统计”(Target Statistics)的方法,这是一种目标编码的变体,用于估计类别特征的数值表示,以供决策树使用。
-
去偏策略:为了避免目标编码带来的过拟合和信息泄露问题,CatBoost在计算目标统计时采用了留一法(Leave-One-Out)和随机化策略,确保了模型的泛化能力。
-
损失函数:CatBoost支持多种损失函数,包括但不限于平方损失、对数损失、交叉熵损失等,适用于回归和分类任务。
(三)、训练过程
CatBoost的训练过程类似于其他GBDT算法,但有其独特的步骤:
-
初始化:设置初始预测值,通常为数据集的目标均值。
-
迭代训练:逐个添加决策树到模型中,每棵树都学习前一棵树的残差,以逐步减少损失函数的值。
-
特征选择:在每个分裂点,选择最佳特征和分裂点以最小化损失函数。
-
目标编码:对于分类特征,使用目标统计方法将其转换为数值表示。
-
正则化:引入L2正则化项,以防止过拟合。
-
评估:在验证集上评估模型性能,决定是否继续添加新的树。
(四)、特点与适用场景
- 高效性:CatBoost利用了多线程并行计算,可以快速处理大规模数据集。
- 准确性:在许多公开数据集上的基准测试显示,CatBoost在预测准确性方面表现出色。
- 灵活性:支持多种损失函数和评估指标,适用于各种监督学习任务。
- 易用性:提供了丰富的API和界面,支持Python、R等多种编程语言。
CatBoost适用于需要处理大量分类特征的场景,例如推荐系统、金融风控、医疗诊断等领域,尤其当数据集中存在稀疏或高基数的分类特征时,CatBoost的优势更为明显。
(五)、扩展
除了核心的GBDT算法,CatBoost还提供了以下扩展功能:
- 集成学习:支持与其他模型(如神经网络)结合使用。
- 分布式计算:可以部署在分布式系统中,以加速大规模数据集的处理。
- GPU加速:利用GPU硬件加速计算密集型操作,进一步提高训练速度。
- 模型解释:提供了特征重要性分析等功能,帮助理解模型决策过程。
- 超参数优化:内置了网格搜索、随机搜索等超参数优化工具,简化模型调优过程。
三、总结
综上所述,CatBoost是一种强大且灵活的机器学习框架,特别适合处理包含复杂分类特征的数据集,在众多领域都有广泛的应用前景。