机器学习核心算法全解(回归/SVM/决策树/集成/聚类)-w2
承接第一周AI基础与Numpy/Pandas入门,本周深入机器学习核心算法体系,从基础回归模型到经典分类器,再到集成学习与无监督聚类,完整覆盖机器学习主流算法原理与评估方法。
🤖 一、机器学习核心基础与价值
人工智能(AI)包含机器学习(ML),机器学习包含深度学习(DL)。机器学习的核心在于利用数据训练模型,让计算机自动寻找规律,而非传统的硬编码规则。
📌 1. 算法核心分类
- 有监督学习:数据带有“标准答案”(标签)
- 回归:预测连续值(如体重、房价、销售额)
- 分类:预测离散值(如0/1二分类、多分类)
- 无监督学习:数据无标签,目的是发现数据内在结构(如聚类、降维)
- 半监督学习:介于两者之间,利用少量有标签数据+大量无标签数据,降低标注成本
- 强化学习:通过“试错”和奖惩机制学习最优策略(如AlphaGo、自动驾驶、扫地机器人避障)
核心金句:数据决定模型的上限,算法和特征工程决定逼近这个上限的程度。
✅ 补充:数据噪声定义:有问题的数据被称为“噪声”,不仅包含错误标注、异常值等错误数据,也包含数据中无法被模型解释的固有随机波动,噪声会严重干扰模型学习真实规律。
📈 二、回归算法:线性回归与逻辑回归
1. 线性回归
- 原理:通过拟合一个线性方程来描述特征与目标值之间的线性关系
- 一元线性:$y = wx + b$
- 多元线性:$y = w_1x_1 + w_2x_2 + … + w_nx_n + b$
- 目标:最小化预测值与真实值之间的误差,常用损失函数为均方误差(MSE)
- 过拟合与欠拟合核心问题:
- 欠拟合:模型太简单,无法捕捉数据规律(如用直线拟合抛物线),训练集和测试集误差都很高
- 过拟合:模型太复杂,把训练数据中的噪声也学进去了,泛化能力极差,表现为训练集准确率极高,测试集准确率骤降
- ✅ 补充:过拟合通用解决方法:
- 正则化:在损失函数中加入惩罚项,限制模型参数大小,是线性/逻辑回归最核心的手段
- L1正则化(Lasso):产生稀疏权重,可同时用于特征选择
- L2正则化(Ridge):让所有参数趋近于0,防止参数过大导致过拟合
- 剪枝(针对树模型)
- 增加训练数据量
- 提前停止训练(Early Stopping)
- 正则化:在损失函数中加入惩罚项,限制模型参数大小,是线性/逻辑回归最核心的手段
2. 逻辑回归
- 本质:虽然名字叫“回归”,但它是经典二分类算法
- 核心:引入Sigmoid函数 $\sigma(z) = \frac{1}{1+e^{-z}}$,将线性回归的输出映射到[0,1]区间,表示样本属于正类的概率
- 决策边界:通常设定阈值(如0.5),大于0.5判为1类,小于0.5判为0类
- ✅ 补充:损失函数:使用对数损失(交叉熵损失),而非线性回归的均方误差——均方误差在逻辑回归中会导致非凸优化问题,难以找到全局最优解
⚖️ 三、支持向量机(SVM)
SVM是一种强大的二分类模型,其核心思想是寻找一个超平面,能够将不同类别的样本分开,并且使得间隔最大化。
1. 核心概念
- 超平面:二维空间是直线,三维空间是平面,高维空间是超平面
- 支持向量:离超平面最近的那些点,它们唯一决定了超平面的位置和间隔大小
- 最大间隔:SVM试图找到最宽的“马路”来分隔两类数据,这样模型的泛化能力最强
- ✅ 补充:软间隔:实际数据中往往存在噪声,无法实现完全线性可分。SVM引入软间隔,允许部分样本落在间隔内甚至被错误分类,通过惩罚错误样本的方式,在“间隔最大化”和“分类错误最少”之间取得平衡
2. 处理非线性问题:核函数
当数据线性不可分时(如圆圈套圆圈、月牙形数据),SVM通过核函数将数据映射到高维空间,使其在高维空间变得线性可分。
- 通俗理解:把桌子拍一下,散落在桌面上的豆子(数据)飞起来,中间插一张纸(超平面)就能把它们分开
- 常用核函数:线性核(适用于线性可分数据)、高斯核(RBF,适用于大部分非线性场景)、多项式核
📊 四、模型评估核心指标
1. 分类任务:混淆矩阵与核心指标
混淆矩阵是所有分类模型评估的基础,核心是四个基础指标:
| 真实 \ 预测 | 负类 (0) | 正类 (1) |
|---|---|---|
| 负类 (0) | TN (真负例) | FP (假正例 - 误报) |
| 正类 (1) | FN (假负例 - 漏报) | TP (真正例) |
基于混淆矩阵衍生出三大核心指标:
- 准确率:$(TP+TN) / (TP+TN+FP+FN)$,整体预测正确的比例
- 精确率:$TP/(TP+FP)$,预测为正例的样本中真正为正例的比例,关注“不误报”(如癌症筛查避免误诊)
- 召回率:$TP/(TP+FN)$,真正为正例的样本中被正确预测的比例,关注“不漏报”(如欺诈检测避免漏过风险)
- F1-score:精确率和召回率的调和平均数 $F1=2*(Precision*Recall)/(Precision+Recall)$,综合衡量模型性能
2. 回归任务核心指标
- 均方误差(MSE):$MSE = \frac{1}{n}\sum(y_{pred} - y_{true})^2$,对误差进行平方,放大了较大误差的影响
- **决定系数 ($R^2$)**:反映模型拟合优度,取值范围通常在[0,1]之间
- 公式:$R^2 = 1 - \frac{\sum(y_i - \hat{y}_i)^2}{\sum(y_i - \bar{y})^2}$
- 含义:模型解释了因变量多少比例的方差,越接近1说明拟合效果越好
🌳 五、决策树:基于规则的分类器
决策树是一种树形结构的模型,通过一系列“是/否”规则对数据进行分类或回归,是所有集成学习模型的基础。
1. 核心原理:信息熵与划分准则
- 熵:衡量系统的混乱程度。熵越高,数据越混乱(纯度越低)
- 信息增益:划分数据前后熵的减少量,ID3算法倾向于选择信息增益最大的特征进行划分
2. 三大经典算法对比
| 算法 | 划分准则 | 支持任务 | 核心缺点 | 剪枝策略 |
|---|---|---|---|---|
| ID3 | 信息增益 | 仅分类 | 只能处理离散数据;偏向选择取值多的特征 | 无 |
| C4.5 | 信息增益率 | 仅分类 | 计算复杂度稍高 | 悲观剪枝 |
| CART | 基尼系数 | 分类+回归 | - | 代价复杂度剪枝 |
补充:CART(分类回归树)是目前应用最广泛的决策树算法,采用二叉树结构,是随机森林、GBDT、XGBoost等所有主流集成模型的基础。
3. 过拟合与剪枝策略
决策树天生容易过拟合(会生长得过于茂盛,记住所有训练数据),必须通过剪枝控制模型复杂度:
- 预剪枝:在树生长过程中提前停止(如限制最大深度、叶子节点最小样本数)
- 后剪枝:先让树完全生长,再自底向上剪掉对泛化能力没有提升的分支
🤝 六、集成学习:群体智慧的力量
集成学习通过构建并结合多个弱学习器(通常是简单的决策树)来完成学习任务,核心思想是“好而不同”——弱模型之间要有差异性,组合后效果通常远好于单一模型。
1. 三大集成范式对比
| 范式 | 训练方式 | 核心思想 | 代表算法 | 解决问题 | 核心特点 |
|---|---|---|---|---|---|
| Bagging | 并行训练 | 多个独立模型投票/平均 | 随机森林 | 降低方差(防过拟合) | 对异常值不敏感,训练速度快 |
| Boosting | 串行训练 | 后一个模型修正前一个的错误 | GBDT、XGBoost、AdaBoost | 降低偏差(提拟合能力) | 精度更高,但训练时间长,对噪声敏感 |
| Stacking | 分层训练 | 上层模型学习下层模型的输出 | 各类堆叠模型 | 综合多模型优势 | 效果最好,但复杂度最高,容易过拟合 |
2. Bagging与随机森林
- Bagging核心:基于自助采样法,从原始数据中有放回地抽取多个子集,每个子集训练一个独立的模型,最终结果取平均(回归)或投票(分类)
- 随机森林:在Bagging基础上进一步引入特征随机选择——每次划分节点时,从所有特征中随机选择一个子集,再从中选择最优特征,进一步降低了模型之间的相关性,大幅提升泛化能力
3. Boosting系列算法
- 核心逻辑:串行训练,每次迭代都给被前一个模型错误分类的样本赋予更高的权重,让后一个模型重点关注这些难分样本
- 代表算法:GBDT(梯度提升树)、XGBoost(工业界最常用的集成算法)、LightGBM
4. Stacking
- 核心逻辑:分层结构。第一层多个模型训练出的预测结果,作为第二层模型的输入特征,最终由第二层模型输出结果
🔍 七、无监督学习:聚类算法
聚类是将物理或抽象对象的集合分组成为由类似对象组成的多个类的过程。与分类不同,聚类的类别(Label)是未知的,目标是“物以类聚”。
1. K-Means算法
- 核心原理:
- 随机选择K个样本作为初始中心点
- 计算每个样本到所有中心点的距离,将其归入最近的簇
- 重新计算每个簇的中心点(簇内所有样本的均值)
- 重复步骤2-3,直到中心点不再变化或达到最大迭代次数
- 优缺点:
- 优点:简单高效,时间复杂度低,适合处理大数据集
- 缺点:需要预先指定K值;对初始中心点敏感,容易陷入局部最优
- ✅ 关键注意事项:
- 对异常值极度敏感:因为K-Means基于均值计算中心点,极端离群点会严重拉偏中心点位置,导致聚类结果失真,聚类前必须先做异常值检测与处理
- 必须做数据标准化/归一化:数值范围大的特征会主导距离计算,导致其他特征的作用被完全忽略
2. 层次聚类
- 原理:通过计算样本间的距离,构建树状的聚类结构(树状图)
- 两种类型:
- 凝聚型:自底向上,每个样本先自成一类,然后不断合并距离最近的两个类
- 分裂型:自顶向下,所有样本先归为一类,然后不断分裂为两个距离最远的子类
- 特点:不需要预先指定K值,可以通过树状图灵活选择切割点,但计算复杂度较高,不适合大数据集
3. 聚类效果评估:轮廓系数
- 轮廓系数(Silhouette Coefficient):综合衡量样本的簇内相似度和簇间相似度,取值范围为[-1, 1]
- 越接近1:说明样本与所在簇的相似度越高,与其他簇的相似度越低,聚类效果越好
- 接近0:说明样本在簇的边界上,聚类效果一般
- 接近-1:说明样本被错误分类
✅ 八、模型验证与泛化能力
1. 为什么需要交叉验证
单次将数据集划分为训练集和测试集具有很大的偶然性,划分方式不同可能导致评估结果差异巨大。交叉验证通过多次划分数据集,更可靠地评估模型的真实泛化能力。
2. K-折交叉验证
- 核心步骤:
- 将数据集随机分为K份(通常K=5或10)
- 每次取其中1份作为测试集,其余K-1份作为训练集
- 重复K次,取K次评估结果的平均值作为最终模型性能
- 特殊情况:留一法(LOO):K等于样本总数,每次用1个样本作为测试集,其余作为训练集。适合极小数据集,但计算复杂度极高。
3. 回归模型评估补充
- 均方误差(MSE):对大误差惩罚更重,适合对预测精度要求高的场景
- **决定系数 ($R^2$)**:
- $R^2=1$ 表示模型完美拟合数据
- $R^2=0$ 表示模型并不比直接用均值预测更好
- $R^2<0$ 表示模型拟合效果极差,不如随机猜测
📚 学习心得
- 算法演进的核心逻辑:所有机器学习算法的本质都是在“拟合能力”和“泛化能力”之间找平衡。简单模型容易欠拟合,复杂模型容易过拟合,集成学习通过组合多个弱模型实现了两者的最优平衡。
- 数据预处理的优先级:无论是监督学习还是无监督学习,数据预处理(标准化、异常值处理、特征工程)都是决定模型效果的第一要素,其重要性远高于算法本身的选择。
- 算法选型原则:没有最好的算法,只有最适合的算法。小数据集优先用简单模型(线性回归、决策树),大数据集可以尝试集成模型;对解释性要求高的场景用线性模型或决策树,对精度要求高的场景用XGBoost等集成模型。
