机器学习中的集成算法与 k 均值聚类算法概述
在机器学习领域,集成算法与聚类算法是两类重要的技术方法。前者通过组合多个学习器提升模型性能,后者则专注于无监督场景下的数据分析与分组。以下结合相关 PPT 内容,对这两类算法进行详细梳理。
一、集成算法:组合多个学习器的协同学习
集成算法(集成学习)的核心思想源于 “集体智慧”—— 将多个个体学习器的判断进行综合,往往能得到比单一学习器更优的结果。其本质是通过构建并结合多个学习器完成学习任务,关键在于如何有效 “结合” 个体学习器的输出。
1. 集成学习的结合策略
集成结果的生成主要依赖三种策略:
简单平均法:直接对多个个体学习器的输出取平均值(适用于回归任务)。
加权平均法:为不同学习器分配权重(权重非负且总和为 1),通过加权求和得到最终结果,更重视表现优异的学习器。
投票法:针对分类任务,采用 “少数服从多数” 原则,即多个学习器对样本的预测中,占比最高的类别为最终结果。
2. 集成算法的分类
根据个体学习器的生成方式,集成算法可分为三类:
(1)Bagging:并行化的集成方法
Bagging(全称 bootstrap aggregation)通过并行训练多个分类器,最终取平均或投票结果。其核心是 “bootstrap 抽样”—— 有放回地从训练集中采样,为每个学习器构建不同的训练数据,降低个体学习器的相关性。 随机森林是 Bagging 的典型代表,其 “随机” 体现在两方面:数据采样随机、特征选择随机;“森林” 则指由多个决策树并行组成。 随机森林的优势包括:能处理高维数据且无需特征选择、可评估特征重要性、支持并行计算、结果易可视化。在 sklearn 中,通过RandomForestClassifier
(分类)和RandomForestRegressor
(回归)实现,关键参数有树的数量(n_estimators
)、是否采用袋外评估(oob_score
)等。
(2)Boosting:串行化的集成方法
Boosting 通过串行生成个体学习器,后一个学习器会基于前一个的表现调整训练数据权重(错分样本权重提高),最终按学习器的准确性分配权重并组合。 AdaBoost是 Boosting 的典型代表,步骤为:
- 初始化样本权重(所有样本权重相同);
- 训练弱分类器,根据分类结果调整权重(正确分类样本权重降低,错误分类样本权重提高);
- 重复训练新的弱分类器,直至满足停止条件;
- 组合所有弱分类器,准确性高的学习器权重更大。
(3)Stacking:分阶段的聚合方法
Stacking 是一种 “暴力聚合” 策略,可整合多种分类器(如 KNN、SVM、随机森林等)。其核心是分阶段训练:第一阶段用不同分类器对数据预测,得到中间结果;第二阶段以中间结果为输入,训练新的模型生成最终输出。
二、k 均值算法:无监督的聚类方法
k 均值算法是聚类算法的经典代表,属于无监督学习(无标签数据),核心是将相似数据分到同一组(簇),实现数据的自然分组。
1. 聚类的核心概念
无监督学习:无需人工标注标签,模型自动从数据中发现规律。
聚类目标:使同一簇内数据相似度高(类内紧密),不同簇数据相似度低(类间分散)。
难点:聚类结果的评估(无标签参考)、参数调优(如簇数量 k 的确定)。
2. 距离度量:判断数据相似度的标准
聚类中常用两种距离度量:
欧式距离:衡量多维空间中两点的绝对距离,如二维空间中为\(\sqrt{(x_1-x_2)^2+(y_1-y_2)^2}\),n 维空间中为各维度差值平方和的平方根。
曼哈顿距离:衡量两点在标准坐标系上的绝对轴距总和,如二维空间中为\(|x_1-x_2|+|y_1-y_2|\)。
3. k 均值算法的步骤
- 初始化:随机选择 k 个样本作为初始簇中心;
- 聚类分配:计算每个样本到 k 个簇中心的距离,将样本分配到最近的簇;
- 更新中心:计算每个簇内所有样本的均值,作为新的簇中心;
- 迭代收敛:重复步骤 2-3,直至簇中心稳定(或达到最大迭代次数),输出最终聚类结果。
4. 算法评估与优缺点
CH 指标:用于评估聚类效果,通过计算类内紧密度(样本与簇中心的距离平方和)和类间分离度(簇中心与全局中心的距离平方和),值越大说明聚类效果越好(类内越紧密、类间越分散)。
优点:原理简单、计算快速,适合常规数据集,复杂度与样本量呈线性关系。
缺点:k 值需人工预设(难确定最优值)、对初始簇中心敏感、难以处理非凸形状的簇。
5. 实现与参数
在 sklearn 中,可通过make_blobs
生成聚类数据集,关键参数包括样本数(n_samples
)、特征数(n_features
)、类别数(centers
)等;通过KMeans
实现聚类,核心参数有簇数量(n_clusters
)、最大迭代次数(max_iter
)等。
总结
集成算法通过组合多个学习器提升性能,Bagging、Boosting、Stacking 分别以并行、串行、分阶段方式实现;k 均值算法则通过距离度量和迭代优化,实现无监督数据的聚类分组。两类算法在机器学习中应用广泛,前者适用于分类、回归等监督任务,后者适用于数据探索、分组等无监督场景,理解其原理与特性有助于更好地选择和应用算法。