一:引言
最近由于本人开始转向机器学习方向的研究,所以打算做一个新专栏。
以下是今天我们主要讲解的内容,大家先看一下:

机器学习在上个世纪60年代非常流行,最初只是用于一些简单的任务。
机器学习核心思想: 将宇宙演化、机器学习视为零一事件或概率论事件。
博弈论思路:零和博弈、丛林法则、非黑即白。
概率论思路:连续分布:连续分布。
机器学习按学习方式分类 分为:监督学习,无监督学习,强化学习。
二:监督学习(有标签)
给模型输入+标准答案训练,用来预测结果。
1.分类(区别于无监督学习的聚类)
分类指已知类别再进行分类。(如:苹果、梨、香蕉→水果)
2.回归
大家高中的时候应该都讲过最小二乘法 ,那么最小二乘法讲了个什么事?大家可以先回忆一下。
最小二乘法是一种最优化估计方法,用来在一堆观测数据里找出一条(最合适)的曲线(最常见的是直线),使得这条曲线与所有数据点之间的误差平方和最小。
最小二乘的目标就是最小化代价函数。
那么我们再来谈谈线性回归与非线性回归。线性回归就是拟合过程中出现一次函数 的情况;非线性回归就是出现不是一次函数的情况。
那么还有一个重要的点:当我们出现回归效果不好的情况,通常是出现了欠拟合 与过拟合 的情况。欠拟合:样本量不足,导致对整体规律估计错误(如采样少,未发现线性关系)
过拟合:泛化能力差,模型对训练数据过度拟合,引入新样本时预测失效(如点偏离线性模型)
3.SVM(支持向量机)
SVM是经典的分类算法,核心思想一句话:在两类数据之间画一条线(或面),让这条线离两边都尽可能远。
离分界线最近的这几个点,就是支持向量(support vector)------它们是决定这条线位置的关键,其余的点其实不影响。
关键概念:间隔(Margin)
间隔 = 分界线到最近数据点的距离。
SVM 的目标 = 最大化这个间隔。
可能出现的情况:
(1)线性可分:能直接画直线/平面分开 → 用「硬间隔」,要求所有点都分对。
(2)线性不可分 / 有噪声:画不出完美的直线 → 引入:软间隔(soft margin):允许少数点分错或落在间隔内,用惩罚系数控制「容忍度」。惩罚系数越大越不容忍错误(容易过拟合),惩罚系数越小越宽容。
(3)完全非线性 :直线根本没法分 → 用核技巧(kernel trick)。
我们重点来介绍一下核技巧。
核技巧:通过核函数(线性核、RBF核、多项式核)将线性不可分数据映射到高维空间。
优点:高维小样本数据表现好(如文本分类、基因数据)
缺点:大数据量训练慢,对参数C、gamma敏感,需特征标准化,可解释性差
4.Random Forest(随机森林)
基础:基于决策树的集成。(说的地道点,就是种很多棵决策树,让它们投票,最后少数服从多数。)
随机森林的解法很朴素:(三个臭皮匠,顶个诸葛亮)
一棵树可能学偏了、记住了噪声,但如果种 100棵树,每棵都稍微不一样,再把它们的结果平均/投票,那些「跑偏」的错误会被互相抵消,剩下的是稳定的、真正的规律。
原理:Bootstrap抽样生成不同训练集,节点分裂时随机选特征,最终投票/平均输出。
其实,随机森林(Random Forest)之所以效果好,一个核心原因是:它在两个地方主动引入随机性,使每棵决策树都具有一定差异性。
(1). 样本随机:行抽样
随机森林使用 Bootstrap 自助采样。
具体来说:
从原始的 n 个样本中,有放回地随机抽取 n 次,形成一棵决策树的训练集。
由于是"有放回"抽样,因此:
- 有些样本可能被重复抽到;
- 有些样本可能一次都没有被抽到;
- 每棵决策树得到的训练数据都不完全相同。
平均来看,一棵树大约只能看到原始数据的 63.2% ,剩下约 36.8% 的样本没有被抽中。
这些没有被抽中的样本叫做:
袋外样本(OOB,Out-of-Bag Samples)
OOB 样本可以直接作为这棵树的"免费测试集",用于估计模型的泛化性能,因此不需要额外划分验证集。
(2)特征随机:列抽样
除了样本随机,随机森林还会进行特征随机。
在决策树的每个节点进行分裂时:
不是从全部特征中寻找最优特征,而是先随机选择一部分特征,然后只在这些特征中寻找最优划分。
例如:
- 总共有 d 个特征;
- 分类任务中通常可以随机选择约 d 个特征作为候选特征。
这样做的好处是:
- 不会让所有决策树都过度依赖同一个强特征;
- 不同决策树会从不同的特征角度进行决策;
- 增强树与树之间的差异性(多样性);
- 降低决策树之间的相关性,从而提高随机森林整体的泛化能力。
优点:不易过拟合,鲁棒性好,无需过多调参,适用于非线性、高维数据,可并行训练。
缺点:模型大,预测速度慢。
5.梯度提升树(GBDT)与 XGBoost
GBDT,也就是梯度提升树。
它属于 Boosting 集成方法 。简单来说,GBDT不是一下子训练出很多棵互相独立的树,而是一棵接一棵地训练。
第一棵树可能做得不太好,那么第二棵树就专门去学习第一棵树没有预测好的部分, 也就是前面模型留下的残差。后面的树不断重复这个过程,一点一点把前面模型的错误纠正掉。
从数学角度来说,更准确地讲,就是让后面的树去拟合当前模型损失函数的负梯度方向。
所以你可以把GBDT理解成:
前一棵树犯错,后一棵树负责"擦屁股",一棵一棵地把错误降下来。
它最大的优点就是预测精度通常很高,尤其是在结构化数据上表现非常好。
但它也有一个比较明显的问题:因为后一棵树要依赖前面的结果,所以这些树之间存在串行关系,训练的时候不太容易完全并行,因此训练速度会受到影响。另外,GBDT对异常值也相对比较敏感。
XGBoost
然后我们再来看 XGBoost。
你可以把它理解成:
XGBoost不是重新发明了一套算法,而是在GBDT的基础上做了大量工程和数学上的优化。
它比较重要的改进包括:
第一,使用损失函数的二阶泰勒展开。
普通GBDT主要利用一阶梯度,而XGBoost进一步利用了一阶梯度和二阶梯度的信息,因此在优化过程中能够更加准确地判断应该往哪个方向调整。
第二,加入了显式正则化。
也就是说,它不只是追求训练集上的预测准确,还会主动限制树的复杂度,从而降低过拟合的风险。
第三,可以自动处理缺失值。
数据里出现一些缺失特征时,XGBoost可以自动学习缺失值应该往哪个分支走,不需要我们事先把所有缺失值处理掉。
所以综合来看,XGBoost最大的特点就是:
在GBDT本身已经很强的基础上,把精度、正则化和工程效率进一步做了优化。
因此它通常具有很高的预测精度和不错的训练效率。
当然,它也不是没有缺点。最大的一个问题就是:
参数比较多,而且参数之间还会互相影响,所以调参比较复杂。
最后怎么理解它们的关系?
如果把它们放在一起理解,可以记成:
GBDT:一棵树接一棵树,不断纠正前面的错误。
XGBoost:在GBDT的基础上,把优化、正则化和工程实现进一步加强。
所以在传统机器学习,尤其是表格数据(Tabular Data)任务中,XGBoost长期以来都是一个非常强的 baseline(基线模型)。
三:无监督学习(无标签,只有数据)
只给原始数据,模型自动挖掘内在规律。
无监督学习最大的区别就是:
没有人告诉模型"正确答案是什么",模型自己去数据里寻找规律。
1.聚类(区别于监督学习的分类)
聚类是观察出有相似特征 群体,然后把有相似特点的放在一起去,但是实际上这个时候还并没有类。(如:猫、老虎、狮子有毛→近亲)
2.K-Means
我们先来讲讲无监督学习中的K-Means算法。
比如有一堆用户:

K-Means会尝试把它们分成 K 个簇。
比如最后我们发现:
第1类:高消费用户
第2类:低消费用户
第3类:中等消费用户
需要注意 的是:这些类别不是我们提前告诉它的。 模型只是根据数据之间的距离和相似程度,自己把它们分开。
3.降维
假设你的数据有1000个特征,直接处理可能非常麻烦,而且很多特征可能存在冗余。所以,我们希望:尽可能保留数据的重要信息,同时把特征数量降下来。
其中,最经典的算法就是:PCA(主成分分析)
4.PCA(主成分分析)
我们举个简单的例子方便大家理解,比如:
原始数据
100维
↓
PCA
↓
2维
那么,原来100个特征,最后可能只用2个主成分来表示。
这样我们甚至可以把数据轻松地画出来了:

你会发现:原来高维数据里面隐藏的结构,被我们压缩到低维空间里了。
四:强化学习(通过试错学习最优策略)
现实很多问题没有标准答案(机器人走路、游戏 AI、自动驾驶),无法列出所有正确行为,于是需要强化学习(RL)。
1. 强化学习的核心思想
强化学习的核心思想:智能体(Agent)通过不断与环境(Environment)交互,根据环境反馈的奖励(Reward)信号,通过试错学习一个能够获得最大长期收益的策略(Policy)。
简单来说:
监督学习:老师告诉你答案,你学习怎么预测。
强化学习:老师不给答案,你自己不断尝试,做得好就奖励,做得不好就调整。
2. 强化学习基本流程
状态 State → 选择动作 Action → 获得奖励 Reward → 更新策略 Policy → 新的状态。
3. 强化学习中的核心概念
目标不是当前奖励最大,而是未来累计奖励最大。
4.数学模型:MDP(马尔科夫决策过程)
五个要素:
-
状态空间 S
-
动作空间 A
-
奖励函数 R
-
状态转移概率 P
-
折扣因子 γ(越大越重视长期,越小越重视眼前)
最终目标:找到最优策略 π∗,使期望累计奖励最大。
5. 回报(Return)与贝尔曼方程
RL 关注的是未来所有奖励的累计,即回报(Return),γ 控制未来奖励的重要程度。
核心思想:**当前价值 = 当前奖励 +未来状态价值,**这就是贝尔曼方程。
6. 强化学习算法分类
强化学习算法主要可以分为几类:

Q-learning 按下一状态最大 Q 值更新(离线策略);SARSA 按实际执行动作更新(在线策略)。
7. 探索与利用(Exploration vs Exploitation)
强化学习中的经典问题:是继续使用已经有效的方法,还是尝试新的方法?
常用解决方法:
(1)ε-贪心:大部分选最优,小部分随机探索;
(2)熵正则化:损失加策略熵,鼓励探索;
(3)内在奖励:对新颖状态给额外奖励;
(4)UCB:选置信上界最大的动作;
(5)汤普森采样:按价值概率分布采样。
8. 强化学习的主要挑战
交互成本高、训练不稳定、奖励稀疏、安全性与泛化不足。
9. 强化学习应用领域
(1)大语言模型:RLHF(基于人类反馈的强化学习)优化输出质量与人类偏好一致性;
(2)游戏:AlphaGo、Dota AI;
(3)金融:交易策略、风控;
(4)具身智能:机器人感知、决策、执行。
五:总结
机器学习按照学习方式主要分为:
监督学习:
有标签,学习输入到输出的映射。
无监督学习:
无标签,发现数据内部结构。
强化学习:
无标准答案,通过不断试错和奖励反馈,学习最优决策策略。
强化学习的核心过程:状态 → 动作 → 奖励 → 更新策略 → 最大化长期收益
它解决的问题本质是:在复杂环境中,智能体如何通过不断学习,做出长期收益最大的决策。
