从零啃透机器学习:用“挑西瓜”讲透机器学习第三章
📖《机器学习》第3章·通俗解读 | 线性模型:简单又强大的“直线思维”
这一章的主角是线性模型。别被名字吓到,它的核心思想非常朴素:
用一条直线(或一个平面)来预测结果。
它简单、好懂、有解释性,而且很多复杂模型都是它的“升级版”。
1. 线性模型长什么样?
回忆一下初中的一元一次方程:y = kx + b
-
x是输入(比如西瓜的色泽) -
y是输出(比如好瓜的程度) -
k是斜率(权重),b是截距(偏置)
如果西瓜有多个特征(色泽、根蒂、敲声),就变成:y = w1×色泽 + w2×根蒂 + w3×敲声 + b
w1, w2, w3叫权重,表示每个特征的重要性。
权重越大,说明这个特征对结果影响越大。
一个例子:
学到的模型可能是:好瓜分数 = 0.2×色泽 + 0.5×根蒂 + 0.3×敲声 + 1
👉 根蒂最重要,敲声次之,色泽影响最小。
2. 线性回归:预测一个数值
最简单的任务:给你一个西瓜的特征,预测它的含糖量(一个具体的数字)。
-
输入:密度、色泽、根蒂……
-
输出:0.3、0.5、0.7 这样的数值
怎么做?找一条直线(或超平面),让所有训练样本到这条直线的距离之和最短。
这种方法叫最小二乘法。
通俗理解:你画一条线,然后把每个真实数据点垂直拉到线上,把所有拉线的长度平方加起来,让这个总和最小。
3. 对数几率回归:虽然叫“回归”,其实是分类
如果你要判断“是不是好瓜”(是/否),就不能直接输出数值了。
这时候需要一个“开关函数”,把任意实数映射成 0 或 1。
理想的开关:阶跃函数(小于0就是坏瓜,大于0就是好瓜)。

但它不光滑,不好训练。
于是用一个平滑的S形曲线代替,这就是Sigmoid函数。

这个函数的输出介于 0 和 1 之间,可以理解为“是好瓜的概率”。
比如模型输出 0.9,意思是“90%可能是好瓜”。
最后定一个阈值(通常是0.5),大于0.5判为好瓜,否则坏瓜。
为什么叫“对数几率回归”?
“几率” = 好瓜概率 / 坏瓜概率,取对数后,正好是线性模型的结果。
所以它本质是用线性模型来逼近概率的对数。
4. 线性判别分析(LDA):找一条线把两类分开
LDA 的思路非常直观:
-
把数据点投影到一条直线上
-
希望同一类点尽可能靠近(类内方差小)
-
不同类的中心点尽可能远离(类间距离大)
就像你把红色豆子和绿色豆子往一条线上扔,希望红的一堆、绿的一堆,而且两堆离得远远的。

LDA 不仅能分类,还能降维:如果原来有100个特征,投影后可能只需几个维度的组合。
5. 多分类学习:一次分多个类别
现实任务往往不止“好瓜/坏瓜”,可能还有“合格瓜”“优秀瓜”等等。
怎么用二分类器解决多分类?主要有三种策略:
| 方法 | 做法 | 例子 |
|---|---|---|
| 一对一 | 每两个类别之间训练一个分类器 | 好瓜 vs 坏瓜、好瓜 vs 合格、坏瓜 vs 合格 |
| 一对其余 | 每次把一个类当正例,其余当反例 | 好瓜 vs 其他、坏瓜 vs 其他、合格 vs 其他 |
| 纠错输出码 | 用一组“编码”来表示每个类别,每个分类器负责一位编码的预测 | 类似用多个判断题来定位正确答案 |
一对一训练的分类器多(N(N-1)/2个),但每个只用两类数据,训练快;
一对其余只训练 N 个,但每个分类器要用全部数据,训练慢。
实际中两者效果差不多。

6. 类别不平衡:正例太少怎么办?
假如训练集里 998 个坏瓜,只有 2 个好瓜。
模型随便猜“全是坏瓜”,准确率也有 99.8%,但它根本学不会找好瓜。
怎么解决?
-
过采样:把好瓜复制几份,或者“插值”生成新样本
-
欠采样:从坏瓜里随机丢弃一些,让两类数量接近
-
阈值移动:不改变数据,而是调整判断阈值(比如原来0.5,现在改成0.1)
插值 = 在两个真实样本中间“猜”一个新样本,让少数类的样本更丰富、更多样,模型学得更好。
一个技巧:训练集里好瓜:坏瓜 = 1:10,那么你判断时,只有模型觉得“是好瓜的概率 > 1/(1+10) ≈ 0.09”就判为好瓜,而不是 0.5。
📌 第三章总结(背下这5句就够了)
-
线性模型 = 给每个特征配一个权重,加权求和(加偏置)
-
线性回归预测数值(如含糖量),用最小二乘法找最佳直线
-
对数几率回归(逻辑回归)是分类模型,输出概率,用S形曲线把任意值映射到0~1
-
线性判别分析(LDA)找一条线,让同类近、异类远,还能降维
-
类别不均衡时,可以通过过采样、欠采样、调阈值来补救
👇 下章预告
第四章讲决策树——一种像“流程图”一样的模型,
每一步都在问一个问题(如“根蒂蜷缩吗?”),一路走到叶子节点得出答案。
非常直观、非常好懂!
用“挑西瓜”讲透《机器学习》-- 决策树-CSDN博客
更多推荐

所有评论(0)