机器学习重点(面试/期末)
机器学习概述
什么是机器学习
通俗的讲,给了机器一堆数据和一个目标,让机器朝向目标(loss function),让损失逼近0的方向学习。
1 回归问题
1.1 线性回归
1.1.1 定义
回归:机器学习里用来预测连续数值的任务。
线性:自变量和预测目标之间,满足一次函数关系,图像是直线 / 平面 / 超平面,没有曲线、弯折。线性回归,就是用线性函数,根据已知特征,预测一个连续型数值。
1.1.2 案例(银行贷款额度)
1. 问题设定
目标:银行根据年龄(X1X_1X1)、月工资(X2X_2X2),预测可发放的贷款额度(YYY),这就是二元线性回归(2个特征、1个预测值)。
- 自变量(特征):
X1X_1X1 = 年龄
X2X_2X2 = 月工资 - 因变量(预测目标):
YYY = 银行贷款额度
2. 多元线性回归公式
二元线性回归通用方程:
Y=w0+w1X1+w2X2 Y = w_0 + w_1 X_1 + w_2 X_2 Y=w0+w1X1+w2X2
符号解释(结合贷款场景):
- w0w_0w0:偏置项,基础贷款额度(所有人默认的基准额度)
- w1w_1w1:年龄权重
- w2w_2w2:工资权重
3. 几何理解
一元线性回归是二维直线,二元线性回归是三维空间中的一个平面。
(1) 坐标轴定义(三维图)
三维坐标系三个轴:
- X轴 (X1X_1X1):年龄(横向轴)
- Y轴 (X2X_2X2):月工资(纵深轴)
- Z轴 (YYY):贷款额度(垂直高度轴)
(2) 图形含义
- 每一组
(年龄, 工资, 贷款额)就是三维空间里一个散点; - 线性回归的目标:找到一个平面,让所有真实散点尽量贴近这个平面;
- 这个平面方程就是:Z=w0+w1X1+w2X2\boldsymbol{Z = w_0 + w_1 X_1 + w_2 X_2}Z=w0+w1X1+w2X2。

3. 模型训练逻辑(简单版)
银行手里有大量历史客户数据:(年龄, 工资, 实际放款额)
- 随机初始化 w0,w1,w2w_0,w_1,w_2w0,w1,w2,得到一个初始平面;
- 计算预测贷款额和真实贷款额的差距(损失/误差);
- 不断调整 w0,w1,w2w_0,w_1,w_2w0,w1,w2,让误差越来越小;
- 误差最小时,平面固定,模型训练完成,即可用来给新客户预估贷款。
1.1.3 理解误差
1. 独立同分布(i.i.d.)
- 独立:每个样本的误差互不影响,一个样本的误差大小,不会改变另一个样本的误差。(张三和李四一起来贷款,他俩没关系)
- 同分布:所有样本的误差,都来自同一个概率分布(均值、方差完全一致)。(他俩都得来自我们假定的这家银行)
2. 误差服从高斯(正态)分布(Likelihood Function)
高斯分布形态是中间高、两边低:
- 绝大多数误差很小(预测值和真实值接近);
- 大误差出现概率极低;
- 误差正负对称,偏大、偏小的情况概率相等。
3. 似然函数 L(θ)L(\theta)L(θ)
θ\thetaθ 为模型参数,样本相互独立,联合概率为各样本概率乘积:
L(θ)=∏i=1np(εi∣θ) L(\theta) = \prod_{i=1}^n p(\varepsilon_i\mid \theta) L(θ)=i=1∏np(εi∣θ)
代入高斯分布公式:
L(θ)=∏i=1n12πσexp(−(yi−y^i)22σ2) L(\theta) = \prod_{i=1}^n \frac{1}{\sqrt{2\pi}\sigma}\exp\left(-\frac{(y_i-\hat{y}_i)^2}{2\sigma^2}\right) L(θ)=i=1∏n2πσ1exp(−2σ2(yi−y^i)2)
含义:给定参数 θ\thetaθ,观测到当前这批数据的联合可能性。训练目标:max L(θ)\boldsymbol{\max\, L(\theta)}maxL(θ)(最大化似然)。
4. 对数似然 ℓ(θ)=lnL(θ)\ell(\theta) = \ln L(\theta)ℓ(θ)=lnL(θ)
对似然取自然对数,利用对数性质 ln(ab)=lna+lnb\ln(ab)=\ln a+\ln bln(ab)=lna+lnb,连乘变连加,优化目标不变,乘法转加法,求导、计算更简便:
ℓ(θ)=lnL(θ)=∑i=1nln[12πσexp(−(yi−y^i)22σ2)] \ell(\theta) = \ln L(\theta) = \sum_{i=1}^n \ln\left[ \frac{1}{\sqrt{2\pi}\sigma}\exp\left(-\frac{(y_i-\hat{y}_i)^2}{2\sigma^2}\right) \right] ℓ(θ)=lnL(θ)=i=1∑nln[2πσ1exp(−2σ2(yi−y^i)2)]
5. 对数似然和损失函数关系
式子中 n、σn、\sigman、σ 都是常数,不影响参数优化方向。
最大化对数似然,等价于最小化平方误差和:
min∑i=1n(yi−y^i)2 \min \sum_{i=1}^n (y_i-\hat{y}_i)^2 mini=1∑n(yi−y^i)2
这就是线性回归中 MSE损失 的理论来源。
6. 梯度下降
梯度下降,目标函数:
J(θ)=12m∑i=1m(yi−hθ(xi))2J(\theta) = \frac{1}{2m} \sum_{i=1}^{m} (y^i - h_\theta(x^i))^2J(θ)=2m1i=1∑m(yi−hθ(xi))2
(1)批量梯度下降:
∂J(θ)∂θj=−1m∑i=1m(yi−hθ(xi))xji\frac{\partial J(\theta)}{\partial \theta_j} = -\frac{1}{m} \sum_{i=1}^{m} (y^i - h_\theta(x^i))x_j^i∂θj∂J(θ)=−m1i=1∑m(yi−hθ(xi))xji
θj′=θj+1m∑i=1m(yi−hθ(xi))xji\theta_j' = \theta_j + \frac{1}{m} \sum_{i=1}^{m} (y^i - h_\theta(x^i))x_j^iθj′=θj+m1i=1∑m(yi−hθ(xi))xji
(容易得到最优解,但是由于每次考虑所有样本,速度很慢)
(2)随机梯度下降:
θj′=θj+(yi−hθ(xi))xji\theta_j' = \theta_j + (y^i - h_\theta(x^i))x_j^iθj′=θj+(yi−hθ(xi))xji
(每次找一个样本,迭代速度快,但不一定每次都朝着收敛的方向)
(3)小批量梯度下降法:
θj:=θj−α110∑k=ii+9(hθ(x(k))−y(k))xj(k)\theta_j := \theta_j - \alpha \frac{1}{10} \sum_{k=i}^{i+9} (h_\theta(x^{(k)}) - y^{(k)})x_j^{(k)}θj:=θj−α101k=i∑i+9(hθ(x(k))−y(k))xj(k)
(每次更新选择一小部分数据来算,实用!)
机器学习聚类算法
一、聚类是什么(无监督学习)
聚类属于无监督机器学习:数据集没有标签,算法自动把「特征相似」的样本分成一组(簇 cluster)。
核心逻辑:物以类聚,相似样本放同一簇,差异大的分到不同簇。
对比分类:
- 分类:有标签(监督),比如区分猫/狗;
- 聚类:无标签(无监督),自动把长得像的动物分成两类。
二、核心经典聚类算法
1. K-Means
原理
设定一个K值,即样本中心点的个数,即划分为K类,第一次聚类首先随机选取K个中心点,计算每个样本点和这些中心点的距离,归为一类后,重新计算样本均值,作为新的样本点,重复迭代直到K不再变化。
优缺点
✅ 速度快、内存占用低,适合大数据;实现简单;
❌ 需要手动指定K;对异常值、离群点敏感;只能发现球形簇,不规则形状分不好。
2. DBSCAN(密度聚类,不用指定K)
原理
基于样本稠密程度聚类:稠密区域自动成簇,稀疏点标记噪声。
两个超参:
- eps:邻域半径;
- min_samples:半径内最少多少个点才算核心点。
优缺点
✅ 不用预先定K;能识别不规则、环形簇;自动剔除离群噪声;
❌ 高维数据效果差;密度差异大的数据效果下滑;大数据速度慢于K-Means。
3. 层次聚类 Hierarchical Clustering
分两种:
- 自底向上(凝聚):每个样本单独一簇,不断合并最相似两簇;
- 自顶向下(分裂):全部样本一个簇,不断拆分。
输出树形结构图(树状图 dendrogram),可手动截断得到任意K。
✅ 无需提前K;可直观看到层级关系;
❌ 时间复杂度高,不适合上万条大数据。
4、聚类效果评估指标(无标签场景)
- 轮廓系数 Silhouette Score
无需标签,取值[-1,1],越接近1聚类效果越好;适合K-Means选最优K。 - DB指数 Davies-Bouldin
值越小,簇内紧凑、簇间差距大,聚类越好。 - 有标签时(验证用):ARI调整兰德指数、NMI归一化互信息。
5、算法选型速查表
| 需求 | 推荐算法 |
|---|---|
| 百万级大数据、追求速度 | K-Means |
| 不知道分几类、存在噪声/离群点 | DBSCAN |
| 需要观察样本层级关系、小数据集 | 层次聚类 |
更多推荐




所有评论(0)