机器学习概述

什么是机器学习

通俗的讲,给了机器一堆数据和一个目标,让机器朝向目标(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) 图形含义
  1. 每一组 (年龄, 工资, 贷款额) 就是三维空间里一个散点
  2. 线性回归的目标:找到一个平面,让所有真实散点尽量贴近这个平面;
  3. 这个平面方程就是:Z=w0+w1X1+w2X2\boldsymbol{Z = w_0 + w_1 X_1 + w_2 X_2}Z=w0+w1X1+w2X2
    在这里插入图片描述
3. 模型训练逻辑(简单版)

银行手里有大量历史客户数据:(年龄, 工资, 实际放款额)

  1. 随机初始化 w0,w1,w2w_0,w_1,w_2w0,w1,w2,得到一个初始平面;
  2. 计算预测贷款额真实贷款额的差距(损失/误差);
  3. 不断调整 w0,w1,w2w_0,w_1,w_2w0,w1,w2,让误差越来越小;
  4. 误差最小时,平面固定,模型训练完成,即可用来给新客户预估贷款。

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=1np(ε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=1n2π σ1exp(2σ2(yiy^i)2)

含义:给定参数 θ\thetaθ,观测到当前这批数据的联合可能性。训练目标:max⁡ L(θ)\boldsymbol{\max\, L(\theta)}maxL(θ)(最大化似然)。

4. 对数似然 ℓ(θ)=ln⁡L(θ)\ell(\theta) = \ln L(\theta)(θ)=lnL(θ)

对似然取自然对数,利用对数性质 ln⁡(ab)=ln⁡a+ln⁡b\ln(ab)=\ln a+\ln bln(ab)=lna+lnb连乘变连加,优化目标不变,乘法转加法,求导、计算更简便:
ℓ(θ)=ln⁡L(θ)=∑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=1nln[2π σ1exp(2σ2(yiy^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=1n(yiy^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=1m(yihθ(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θjJ(θ)=m1i=1m(yihθ(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=1m(yihθ(xi))xji
(容易得到最优解,但是由于每次考虑所有样本,速度很慢)

(2)随机梯度下降:

θj′=θj+(yi−hθ(xi))xji\theta_j' = \theta_j + (y^i - h_\theta(x^i))x_j^iθj=θj+(yihθ(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=ii+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

分两种:

  1. 自底向上(凝聚):每个样本单独一簇,不断合并最相似两簇;
  2. 自顶向下(分裂):全部样本一个簇,不断拆分。
    输出树形结构图(树状图 dendrogram),可手动截断得到任意K。

✅ 无需提前K;可直观看到层级关系;
❌ 时间复杂度高,不适合上万条大数据。

4、聚类效果评估指标(无标签场景)

  1. 轮廓系数 Silhouette Score
    无需标签,取值[-1,1],越接近1聚类效果越好;适合K-Means选最优K。
  2. DB指数 Davies-Bouldin
    值越小,簇内紧凑、簇间差距大,聚类越好。
  3. 有标签时(验证用):ARI调整兰德指数、NMI归一化互信息。

5、算法选型速查表

需求 推荐算法
百万级大数据、追求速度 K-Means
不知道分几类、存在噪声/离群点 DBSCAN
需要观察样本层级关系、小数据集 层次聚类
Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐