神经网络—— 学习与感知器(细节补充)
逻辑回归
逻辑回归是机器学习中经典的二分类算法,虽然名字含“回归”,但本质是通过线性模型+非线性激活函数实现分类。下面从核心原理、公式推导到参数优化进行详细讲解:
二、核心公式推导
1. 线性模型:构建决策边界
逻辑回归的底层仍是线性模型,用于学习输入特征与输出的线性关系:
z=θTx+θ0 z = \theta^T x + \theta_0 z=θTx+θ0
其中:
- x=(x1,x2,...,xn)Tx = (x_1, x_2, ..., x_n)^Tx=(x1,x2,...,xn)T 是输入特征向量(nnn 为特征数);
- θ=(θ1,θ2,...,θn)T\theta = (\theta_1, \theta_2, ..., \theta_n)^Tθ=(θ1,θ2,...,θn)T 是权重向量(每个特征的重要性);
- θ0\theta_0θ0 是偏置项(类似线性回归的截距)。
这个线性模型的本质是学习一个决策边界:当 z=0z = 0z=0 时,θTx+θ0=0\theta^T x + \theta_0 = 0θTx+θ0=0 是分类的临界线(或超平面)。
2. Sigmoid函数:将线性输出映射为概率
为了将线性输出 zzz 转换为[0,1]区间的概率,引入Sigmoid激活函数:
ϕ(z)=11+e−z \phi(z) = \frac{1}{1 + e^{-z}} ϕ(z)=1+e−z1
Sigmoid函数的特性:
- 当 z→+∞z \to +\inftyz→+∞ 时,ϕ(z)→1\phi(z) \to 1ϕ(z)→1;
- 当 z→−∞z \to -\inftyz→−∞ 时,ϕ(z)→0\phi(z) \to 0ϕ(z)→0;
- 当 z=0z = 0z=0 时,ϕ(z)=0.5\phi(z) = 0.5ϕ(z)=0.5(分类阈值)。
结合线性模型,逻辑回归的假设函数(预测概率)为:
hθ(x)=ϕ(θTx+θ0)=11+e−(θTx+θ0) h_\theta(x) = \phi(\theta^T x + \theta_0) = \frac{1}{1 + e^{-(\theta^T x + \theta_0)}} hθ(x)=ϕ(θTx+θ0)=1+e−(θTx+θ0)1
它表示:在给定特征 xxx 和参数 θ\thetaθ 时,样本属于正类(y=1y=1y=1)的概率。
3. 分类规则:基于概率的决策
根据假设函数的输出概率,定义分类规则:
- 若 hθ(x)≥0.5h_\theta(x) \geq 0.5hθ(x)≥0.5,预测 y=1y=1y=1(正类),此时 z=θTx+θ0≥0z = \theta^T x + \theta_0 \geq 0z=θTx+θ0≥0;
- 若 hθ(x)<0.5h_\theta(x) < 0.5hθ(x)<0.5,预测 y=0y=0y=0(负类),此时 z=θTx+θ0<0z = \theta^T x + \theta_0 < 0z=θTx+θ0<0。
本质是通过线性决策边界 θTx+θ0=0\theta^T x + \theta_0 = 0θTx+θ0=0 将样本分为两类。
三、损失函数:衡量预测误差
损失函数用于衡量单个样本的预测误差,代价函数则是所有样本损失的平均值。逻辑回归采用交叉熵损失(而非平方损失),原因是交叉熵对分类问题更敏感,且能保证代价函数是凸函数(便于梯度下降优化)。
1. 单个样本的损失函数
对单个样本 (x(i),y(i))(x^{(i)}, y^{(i)})(x(i),y(i)),损失函数定义为:
cost(hθ(x(i)),y(i))={−log(hθ(x(i)))if y(i)=1−log(1−hθ(x(i)))if y(i)=0 cost(h_\theta(x^{(i)}), y^{(i)}) = \begin{cases} -\log(h_\theta(x^{(i)})) & \text{if } y^{(i)} = 1 \\ -\log(1 - h_\theta(x^{(i)})) & \text{if } y^{(i)} = 0 \end{cases} cost(hθ(x(i)),y(i))={−log(hθ(x(i)))−log(1−hθ(x(i)))if y(i)=1if y(i)=0
逻辑解释:
- 当 y=1y=1y=1 时,若预测概率 hθ(x)h_\theta(x)hθ(x) 接近1,损失接近0;若 hθ(x)h_\theta(x)hθ(x) 接近0,损失趋近于无穷大(惩罚错误预测)。
- 当 y=0y=0y=0 时,若预测概率 hθ(x)h_\theta(x)hθ(x) 接近0,损失接近0;若 hθ(x)h_\theta(x)hθ(x) 接近1,损失趋近于无穷大。
可合并为更简洁的形式:
cost(hθ(x),y)=−ylog(hθ(x))−(1−y)log(1−hθ(x)) cost(h_\theta(x), y) = -y \log(h_\theta(x)) - (1 - y) \log(1 - h_\theta(x)) cost(hθ(x),y)=−ylog(hθ(x))−(1−y)log(1−hθ(x))
2. 代价函数:平均损失
对 mmm 个样本,代价函数 J(θ)J(\theta)J(θ) 为所有样本损失的平均值:
J(θ)=1m∑i=1m[−y(i)log(hθ(x(i)))−(1−y(i))log(1−hθ(x(i)))] J(\theta) = \frac{1}{m} \sum_{i=1}^m \left[ -y^{(i)} \log(h_\theta(x^{(i)})) - (1 - y^{(i)}) \log(1 - h_\theta(x^{(i)})) \right] J(θ)=m1i=1∑m[−y(i)log(hθ(x(i)))−(1−y(i))log(1−hθ(x(i)))]
我们的目标是最小化代价函数 J(θ)J(\theta)J(θ),即找到最优参数 θ\thetaθ 使预测概率尽可能接近真实标签。
四、参数优化:梯度下降法
梯度下降是最小化代价函数的常用方法,核心是沿代价函数的负梯度方向更新参数。
1. 梯度计算
首先求代价函数 J(θ)J(\theta)J(θ) 对参数 θj\theta_jθj 的偏导数(梯度)。
已知 hθ(x)=11+e−zh_\theta(x) = \frac{1}{1 + e^{-z}}hθ(x)=1+e−z1,且 z=θTx+θ0z = \theta^T x + \theta_0z=θTx+θ0,可推导得:
∂∂θjJ(θ)=1m∑i=1m(hθ(x(i))−y(i))xj(i) \frac{\partial}{\partial \theta_j} J(\theta) = \frac{1}{m} \sum_{i=1}^m \left( h_\theta(x^{(i)}) - y^{(i)} \right) x_j^{(i)} ∂θj∂J(θ)=m1i=1∑m(hθ(x(i))−y(i))xj(i)
(推导提示:利用Sigmoid函数的导数性质 ϕ′(z)=ϕ(z)(1−ϕ(z))\phi'(z) = \phi(z)(1 - \phi(z))ϕ′(z)=ϕ(z)(1−ϕ(z)),代入链式法则求导,最终化简得到上述结果。)
2. 参数更新公式
根据梯度下降法,参数 θj\theta_jθj 的更新公式为:
θj=θj−α⋅∂∂θjJ(θ) \theta_j = \theta_j - \alpha \cdot \frac{\partial}{\partial \theta_j} J(\theta) θj=θj−α⋅∂θj∂J(θ)
即:
θj=θj−α⋅1m∑i=1m(hθ(x(i))−y(i))xj(i) \theta_j = \theta_j - \alpha \cdot \frac{1}{m} \sum_{i=1}^m \left( h_\theta(x^{(i)}) - y^{(i)} \right) x_j^{(i)} θj=θj−α⋅m1i=1∑m(hθ(x(i))−y(i))xj(i)
其中:
- α\alphaα 是学习率(控制更新步长,过大会震荡,过小会收敛慢);
- 每次更新需遍历所有样本(批量梯度下降),也可采用随机梯度下降(SGD)或小批量梯度下降加速收敛。
五、总结
逻辑回归的核心流程:
- 用线性模型 z=θTx+θ0z = \theta^T x + \theta_0z=θTx+θ0 学习特征与输出的关系;
- 通过Sigmoid函数将 zzz 映射为[0,1]的概率 hθ(x)h_\theta(x)hθ(x);
- 用交叉熵损失衡量预测误差,构建代价函数 J(θ)J(\theta)J(θ);
- 通过梯度下降法最小化 J(θ)J(\theta)J(θ),得到最优参数 θ\thetaθ;
- 根据 hθ(x)≥0.5h_\theta(x) \geq 0.5hθ(x)≥0.5 或 <0.5<0.5<0.5 进行二分类。
支持向量机
支持向量机(SVM)是一种经典的监督学习算法,核心优势在于能在高维空间中高效找到最优分类超平面,尤其适合小样本、高维特征的分类任务。下面从核心原理、数学推导到非线性处理进行详细解析:
一、核心思想:最大间隔分割超平面
SVM的核心目标是在样本空间中找到一个分割超平面,不仅能将不同类别的样本分开,还能使离超平面最近的样本到超平面的距离最大(即“最大间隔”)。
- 这些“离超平面最近的样本”被称为支持向量(Support Vectors),它们直接决定了超平面的位置和间隔大小,是SVM的关键。
- 最大间隔的意义:间隔越大,模型对噪声的容忍度越高,泛化能力越强(不易过拟合)。
二、超平面与分类规则
1. 超平面的数学表达
在 nnn 维样本空间中,超平面的方程为:
wTx+b=0 w^T x + b = 0 wTx+b=0
其中:
- w=(w1,w2,...,wn)Tw = (w_1, w_2, ..., w_n)^Tw=(w1,w2,...,wn)T 是超平面的法向量(决定超平面的方向);
- bbb 是位移项(决定超平面与原点的距离);
- x=(x1,x2,...,xn)Tx = (x_1, x_2, ..., x_n)^Tx=(x1,x2,...,xn)T 是样本的特征向量。
2. 分类规则
对样本 (x(i),y(i))(x^{(i)}, y^{(i)})(x(i),y(i)),标签 y(i)∈{−1,1}y^{(i)} \in \{-1, 1\}y(i)∈{−1,1}(分别代表负类和正类),分类规则为:
- 若 wTx(i)+b>0w^T x^{(i)} + b > 0wTx(i)+b>0,预测 y(i)=1y^{(i)} = 1y(i)=1(正类);
- 若 wTx(i)+b<0w^T x^{(i)} + b < 0wTx(i)+b<0,预测 y(i)=−1y^{(i)} = -1y(i)=−1(负类)。
直观理解:超平面将空间分为两部分,法向量 www 指向的一侧为正类,另一侧为负类。
3. 间隔的定义与计算
样本 xxx 到超平面的几何距离(垂直距离)公式为:
r=∣wTx+b∣∥w∥ r = \frac{|w^T x + b|}{\|w\|} r=∥w∥∣wTx+b∣
其中 ∥w∥=w12+w22+...+wn2\|w\| = \sqrt{w_1^2 + w_2^2 + ... + w_n^2}∥w∥=w12+w22+...+wn2 是法向量 www 的L2范数。
对两类样本,假设超平面能完美分隔它们(线性可分),则:
- 正类样本满足 wTx+b≥0w^T x + b \geq 0wTx+b≥0,支持向量满足 wTx+b=+γw^T x + b = +\gammawTx+b=+γ;
- 负类样本满足 wTx+b≤0w^T x + b \leq 0wTx+b≤0,支持向量满足 wTx+b=−γw^T x + b = -\gammawTx+b=−γ。
两类支持向量之间的距离(即间隔)为 2γ∥w∥\frac{2\gamma}{\|w\|}∥w∥2γ。为简化计算,可令 γ=1\gamma = 1γ=1(因为 www 和 bbb 成比例缩放时,超平面不变),此时间隔简化为 2∥w∥\frac{2}{\|w\|}∥w∥2。
三、线性可分情况下的优化目标
SVM的目标是最大化间隔,即最大化 2∥w∥\frac{2}{\|w\|}∥w∥2,等价于最小化 12∥w∥2\frac{1}{2}\|w\|^221∥w∥2(平方项便于求导)。同时,需满足分类约束:所有样本都被正确分类,即
y(i)(wTx(i)+b)≥1(i=1,2,...,m) y^{(i)}(w^T x^{(i)} + b) \geq 1 \quad (i=1,2,...,m) y(i)(wTx(i)+b)≥1(i=1,2,...,m)
因此,线性可分SVM的优化问题可表示为:
minw,b12∥w∥2 \min_{w, b} \quad \frac{1}{2}\|w\|^2 w,bmin21∥w∥2
s.t.y(i)(wTx(i)+b)≥1(i=1,2,...,m) s.t. \quad y^{(i)}(w^T x^{(i)} + b) \geq 1 \quad (i=1,2,...,m) s.t.y(i)(wTx(i)+b)≥1(i=1,2,...,m)
四、对偶问题与支持向量的求解
上述优化问题是带约束的凸二次规划问题,可通过拉格朗日对偶性转换为更易求解的对偶问题(尤其适合高维特征)。
1. 拉格朗日函数构造
引入拉格朗日乘子 αi≥0\alpha_i \geq 0αi≥0,构造拉格朗日函数:
L(w,b,α)=12∥w∥2−∑i=1mαi[y(i)(wTx(i)+b)−1] L(w, b, \alpha) = \frac{1}{2}\|w\|^2 - \sum_{i=1}^m \alpha_i [y^{(i)}(w^T x^{(i)} + b) - 1] L(w,b,α)=21∥w∥2−i=1∑mαi[y(i)(wTx(i)+b)−1]
2. 对偶问题转换
通过对 www 和 bbb 求偏导并令其为0,可将原问题转换为对偶问题:
maxα∑i=1mαi−12∑i=1m∑j=1mαiαjy(i)y(j)(x(i))Tx(j) \max_{\alpha} \quad \sum_{i=1}^m \alpha_i - \frac{1}{2}\sum_{i=1}^m \sum_{j=1}^m \alpha_i \alpha_j y^{(i)} y^{(j)} (x^{(i)})^T x^{(j)} αmaxi=1∑mαi−21i=1∑mj=1∑mαiαjy(i)y(j)(x(i))Tx(j)
s.t.∑i=1mαiy(i)=0且αi≥0(i=1,2,...,m) s.t. \quad \sum_{i=1}^m \alpha_i y^{(i)} = 0 \quad \text{且} \quad \alpha_i \geq 0 \quad (i=1,2,...,m) s.t.i=1∑mαiy(i)=0且αi≥0(i=1,2,...,m)
3. 支持向量的特性
求解对偶问题后,得到最优拉格朗日乘子 αi∗\alpha_i^*αi∗,其满足KKT条件:
- 若 αi∗>0\alpha_i^* > 0αi∗>0,则对应样本 x(i)x^{(i)}x(i) 是支持向量,且满足 y(i)(wTx(i)+b)=1y^{(i)}(w^T x^{(i)} + b) = 1y(i)(wTx(i)+b)=1;
- 若 αi∗=0\alpha_i^* = 0αi∗=0,则对应样本对超平面无影响(远离超平面)。
最优参数 w∗w^*w∗ 和 b∗b^*b∗ 可通过支持向量计算:
w∗=∑i=1mαi∗y(i)x(i) w^* = \sum_{i=1}^m \alpha_i^* y^{(i)} x^{(i)} w∗=i=1∑mαi∗y(i)x(i)
b∗=y(s)−∑i=1mαi∗y(i)(x(i))Tx(s)(其中 x(s) 是任意支持向量) b^* = y^{(s)} - \sum_{i=1}^m \alpha_i^* y^{(i)} (x^{(i)})^T x^{(s)} \quad \text{(其中 } x^{(s)} \text{ 是任意支持向量)} b∗=y(s)−i=1∑mαi∗y(i)(x(i))Tx(s)(其中 x(s) 是任意支持向量)
五、线性不可分问题:软间隔与正则化
实际数据往往存在噪声或线性不可分的情况,此时需引入软间隔(允许部分样本违反分类约束),通过正则化项平衡间隔大小和分类错误。
优化目标调整为:
minw,b12∥w∥2+C∑i=1mξi \min_{w, b} \quad \frac{1}{2}\|w\|^2 + C \sum_{i=1}^m \xi_i w,bmin21∥w∥2+Ci=1∑mξi
s.t.y(i)(wTx(i)+b)≥1−ξi(i=1,2,...,m) s.t. \quad y^{(i)}(w^T x^{(i)} + b) \geq 1 - \xi_i \quad (i=1,2,...,m) s.t.y(i)(wTx(i)+b)≥1−ξi(i=1,2,...,m)
ξi≥0(i=1,2,...,m) \xi_i \geq 0 \quad (i=1,2,...,m) ξi≥0(i=1,2,...,m)
其中:
- ξi\xi_iξi 是松弛变量(衡量样本违反约束的程度,ξi=0\xi_i = 0ξi=0 表示样本被正确分类);
- C>0C > 0C>0 是正则化参数(控制对错误分类的惩罚力度:CCC 越大,惩罚越重,模型越倾向于严格分类;CCC 越小,允许更多错误,间隔更大)。
六、非线性问题:核函数的魔力
当样本在低维空间线性不可分时,SVM通过核函数(Kernel Function)将样本映射到高维空间,使其在高维空间线性可分。
1. 映射函数与核函数
设 ϕ(x)\phi(x)ϕ(x) 是将低维特征 xxx 映射到高维特征空间的函数,则高维空间的超平面为:
f(x)=wTϕ(x)+b f(x) = w^T \phi(x) + b f(x)=wTϕ(x)+b
直接计算高维空间的内积 ϕ(x(i))Tϕ(x(j))\phi(x^{(i)})^T \phi(x^{(j)})ϕ(x(i))Tϕ(x(j)) 会面临“维度灾难”(计算量爆炸)。核函数巧妙地避开了显式映射,直接计算低维空间的内积等价结果:
K(x(i),x(j))=ϕ(x(i))Tϕ(x(j)) K(x^{(i)}, x^{(j)}) = \phi(x^{(i)})^T \phi(x^{(j)}) K(x(i),x(j))=ϕ(x(i))Tϕ(x(j))
2. 常用核函数
- 线性核:K(x,x′)=xTx′K(x, x') = x^T x'K(x,x′)=xTx′(适用于线性可分数据,等价于原始SVM);
- 多项式核:K(x,x′)=(xTx′+c)dK(x, x') = (x^T x' + c)^dK(x,x′)=(xTx′+c)d(ddd 为多项式次数,适用于中等复杂度数据);
- 高斯核(RBF核):K(x,x′)=exp(−∥x−x′∥22σ2)K(x, x') = \exp\left(-\frac{\|x - x'\|^2}{2\sigma^2}\right)K(x,x′)=exp(−2σ2∥x−x′∥2)(最常用,适用于非线性数据,通过参数 σ\sigmaσ 控制平滑程度);
- Sigmoid核:K(x,x′)=tanh(βxTx′+θ)K(x, x') = \tanh(\beta x^T x' + \theta)K(x,x′)=tanh(βxTx′+θ)(模拟神经网络,较少用)。
3. 核技巧的优势
核函数无需显式定义高维映射 ϕ(x)\phi(x)ϕ(x),仅通过低维内积计算高维相似性,大幅降低了计算复杂度,使SVM能高效处理非线性问题。
七、总结
SVM的核心流程:
- 对线性可分数据,通过最大化间隔找到最优超平面,转化为凸二次规划问题求解;
- 对线性不可分数据,引入软间隔允许部分错误,通过正则化参数平衡间隔与错误;
- 对非线性数据,利用核函数映射到高维空间,实现线性可分,避免维度灾难。
SVM的优势在于:泛化能力强(依赖支持向量,对噪声不敏感)、适合高维特征(如文本分类);局限性是计算复杂度较高(尤其样本量大时)、参数调优(如 CCC 和核函数参数)较复杂。
K均值聚类(K-means)
K-means是最经典的聚类算法,核心是通过迭代优化将样本划分为K个紧凑的簇,使簇内样本相似度高、簇间差异大。
1. 核心目标:最小化簇内平方误差
聚类的本质是“同类样本聚集,异类样本分离”。K-means通过簇内平方误差(SSE) 量化这一目标:
E=∑i=1k∑x∈Ci∥x−μi∥2 E = \sum_{i=1}^k \sum_{x \in C_i} \|x - \mu_i\|^2 E=i=1∑kx∈Ci∑∥x−μi∥2
其中:
- CiC_iCi 是第i个簇(样本集合);
- μi\mu_iμi 是第i个簇的中心(簇内所有样本的均值向量);
- ∥x−μi∥2\|x - \mu_i\|^2∥x−μi∥2 是样本x与簇中心μi\mu_iμi的欧氏距离平方(也可替换为曼哈顿距离等)。
E越小,说明簇内样本越接近其中心,聚类效果越好。
2. 算法步骤:迭代优化的“分配-更新”过程
K-means通过迭代实现簇的动态调整,具体步骤如下:
(1)初始化簇中心:随机选择K个样本作为初始簇中心μ1,μ2,...,μk\mu_1, \mu_2, ..., \mu_kμ1,μ2,...,μk(K需人工指定)。
(2)分配样本到簇:计算每个样本到K个簇中心的距离,将样本分配给距离最近的簇(“就近原则”)。
(3)更新簇中心:对每个簇,重新计算其中心μi\mu_iμi(即簇内所有样本的均值)。
(4)终止条件:重复步骤(2)(3),直到:
- 迭代次数达到预设最大值;
- 簇中心的变化量小于设定阈值(如两次迭代的中心距离小于10−610^{-6}10−6);
- 样本分配结果不再变化。
3. 关键特性与局限
- 优点:原理简单、计算高效(时间复杂度为O(mkn)O(mkn)O(mkn),m为样本数,k为簇数,n为迭代次数),适合大规模数据。
- 局限:
- 需提前指定K值(可通过肘部法、轮廓系数等辅助选择);
- 对初始簇中心敏感(可能陷入局部最优,通常多次运行取最优结果);
- 对非凸形状簇、密度差异大的数据集效果较差。
主成分分析(PCA)
PCA是最常用的降维算法,核心是通过线性变换将高维数据映射到低维空间,同时保留数据中最关键的信息(最大方差)。
1. 核心思想:最大方差与最近重构
PCA的目标可从两个等价角度理解:
- 最大可分性:低维投影后的数据方差最大。方差越大,样本在低维空间的分布越分散,保留的原始信息越多。
- 最近重构性:样本从高维映射到低维后,再重构回高维的误差最小(即样本到低维超平面的距离总和最小)。
2. 算法步骤:从高维到低维的线性变换
PCA的本质是寻找一组正交的“主成分”(低维坐标系),步骤如下:
(1)数据中心化:消除不同特征量纲的影响(如身高用cm、体重用kg),对每个样本xix_ixi减去所有样本的均值:
xi←xi−xˉ,xˉ=1m∑i=1mxi x_i \leftarrow x_i - \bar{x}, \quad \bar{x} = \frac{1}{m} \sum_{i=1}^m x_i xi←xi−xˉ,xˉ=m1i=1∑mxi
(m为样本数,xˉ\bar{x}xˉ为均值向量)。
(2)计算协方差矩阵:中心化后的样本矩阵为X∈Rm×dX \in \mathbb{R}^{m \times d}X∈Rm×d(m个样本,d个特征),协方差矩阵Σ\SigmaΣ反映特征间的相关性:
Σ=1m−1XTX \Sigma = \frac{1}{m-1} X^T X Σ=m−11XTX
(协方差矩阵是对称矩阵,对角线为各特征的方差,非对角线为特征间的协方差)。
(3)特征值分解:对协方差矩阵Σ\SigmaΣ进行特征值分解,得到特征值λ1≥λ2≥...≥λd\lambda_1 \geq \lambda_2 \geq ... \geq \lambda_dλ1≥λ2≥...≥λd和对应的特征向量w1,w2,...,wdw_1, w_2, ..., w_dw1,w2,...,wd。
- 特征值λi\lambda_iλi表示第i个主成分的方差(信息含量);
- 特征向量wiw_iwi是第i个主成分的方向(低维坐标系的轴)。
(4)选择主成分:选取前d′d'd′个最大特征值对应的特征向量(d′<dd' < dd′<d),构成投影矩阵W∗=(w1,w2,...,wd′)∈Rd×d′W^* = (w_1, w_2, ..., w_{d'}) \in \mathbb{R}^{d \times d'}W∗=(w1,w2,...,wd′)∈Rd×d′。
- 保留的信息比例可通过累计方差贡献率计算:∑i=1d′λi/∑i=1dλi\sum_{i=1}^{d'} \lambda_i / \sum_{i=1}^d \lambda_i∑i=1d′λi/∑i=1dλi(通常保留80%-95%的信息)。
(5)数据降维:将高维样本xix_ixi映射到低维空间,得到降维后的样本:
zi=W∗Txi∈Rd′ z_i = W^{*T} x_i \in \mathbb{R}^{d'} zi=W∗Txi∈Rd′
3. 关键特性与应用
- 优点:无参数限制(无需人工干预)、计算高效,能有效去除特征冗余(因主成分正交,无相关性)。
- 局限:仅适用于线性可分数据,对非线性数据降维效果差(可结合核技巧扩展为核PCA);降维后的数据可解释性降低(主成分是原始特征的线性组合)。
- 应用:数据可视化(将高维数据降为2D/3D)、特征预处理(减少特征维度,加速后续模型训练)、噪声过滤(保留主要信息,过滤次要噪声)。
计算
一、逻辑回归(Logistic Regression)计算示例
问题:用逻辑回归预测学生是否通过考试(通过=1,未通过=0),特征为“学习时长(x)”,已知3个样本:
| 学习时长x(小时) | 是否通过y |
|---|---|
| 1 | 0 |
| 3 | 0 |
| 5 | 1 |
1. 模型假设
假设函数:hθ(x)=11+e−(θ1x+θ0)h_\theta(x) = \frac{1}{1 + e^{-(\theta_1 x + \theta_0)}}hθ(x)=1+e−(θ1x+θ0)1(简化为单特征,θ0\theta_0θ0为偏置,θ1\theta_1θ1为权重)。
2. 损失函数与参数优化(梯度下降示例)
初始化参数:θ0=0\theta_0=0θ0=0,θ1=0\theta_1=0θ1=0,学习率α=0.1\alpha=0.1α=0.1。
-
第1次迭代:
计算每个样本的预测概率:
z1=0∗1+0=0→h1=1/(1+e0)=0.5z_1 = 0*1 + 0 = 0 \to h_1 = 1/(1+e^0) = 0.5z1=0∗1+0=0→h1=1/(1+e0)=0.5
z2=0∗3+0=0→h2=0.5z_2 = 0*3 + 0 = 0 \to h_2 = 0.5z2=0∗3+0=0→h2=0.5
z3=0∗5+0=0→h3=0.5z_3 = 0*5 + 0 = 0 \to h_3 = 0.5z3=0∗5+0=0→h3=0.5计算梯度(单样本梯度:(hθ(x)−y)xj(h_\theta(x)-y)x_j(hθ(x)−y)xj):
对θ0\theta_0θ0的梯度:13[(0.5−0)+(0.5−0)+(0.5−1)]=13(0.5+0.5−0.5)=0.167\frac{1}{3}[(0.5-0)+(0.5-0)+(0.5-1)] = \frac{1}{3}(0.5+0.5-0.5) = 0.16731[(0.5−0)+(0.5−0)+(0.5−1)]=31(0.5+0.5−0.5)=0.167
对θ1\theta_1θ1的梯度:13[(0.5−0)∗1+(0.5−0)∗3+(0.5−1)∗5]=13(0.5+1.5−2.5)=−0.167\frac{1}{3}[(0.5-0)*1 + (0.5-0)*3 + (0.5-1)*5] = \frac{1}{3}(0.5 + 1.5 - 2.5) = -0.16731[(0.5−0)∗1+(0.5−0)∗3+(0.5−1)∗5]=31(0.5+1.5−2.5)=−0.167更新参数:
θ0=0−0.1∗0.167=−0.0167\theta_0 = 0 - 0.1*0.167 = -0.0167θ0=0−0.1∗0.167=−0.0167
θ1=0−0.1∗(−0.167)=0.0167\theta_1 = 0 - 0.1*(-0.167) = 0.0167θ1=0−0.1∗(−0.167)=0.0167 -
多次迭代后:参数逐渐收敛(如θ0≈−1.5\theta_0 \approx -1.5θ0≈−1.5,θ1≈0.5\theta_1 \approx 0.5θ1≈0.5),此时对x=4x=4x=4的预测:
z=0.5∗4−1.5=0.5→h=1/(1+e−0.5)≈0.62≥0.5z = 0.5*4 -1.5 = 0.5 \to h=1/(1+e^{-0.5}) \approx 0.62 \geq 0.5z=0.5∗4−1.5=0.5→h=1/(1+e−0.5)≈0.62≥0.5,预测通过(y=1)。
二、支持向量机(SVM)计算示例
问题:对二维数据线性分类,样本:
正类(y=1):(3,3)(3,3)(3,3)、(4,3)(4,3)(4,3);负类(y=-1):(1,1)(1,1)(1,1)
1. 超平面与间隔
目标:找到超平面w1x1+w2x2+b=0w_1x_1 + w_2x_2 + b = 0w1x1+w2x2+b=0,使间隔最大。
-
观察样本,最优超平面应在中间,如x1+x2−3=0x_1 + x_2 - 3 = 0x1+x2−3=0(即w=(1,1)Tw=(1,1)^Tw=(1,1)T,b=−3b=-3b=−3)。
-
验证分类约束:
正类(3,3)(3,3)(3,3):1∗3+1∗3−3=3>0→y=11*3 + 1*3 -3 = 3 > 0 \to y=11∗3+1∗3−3=3>0→y=1;
正类(4,3)(4,3)(4,3):1∗4+1∗3−3=4>0→y=11*4 + 1*3 -3 = 4 > 0 \to y=11∗4+1∗3−3=4>0→y=1;
负类(1,1)(1,1)(1,1):1∗1+1∗1−3=−1<0→y=−11*1 + 1*1 -3 = -1 < 0 \to y=-11∗1+1∗1−3=−1<0→y=−1。 -
计算间隔:支持向量为(3,3)(3,3)(3,3)和(1,1)(1,1)(1,1),到超平面的距离均为∣3+3−3∣12+12=32\frac{|3+3-3|}{\sqrt{1^2+1^2}} = \frac{3}{\sqrt{2}}12+12∣3+3−3∣=23,间隔为2∗32=322*\frac{3}{\sqrt{2}} = 3\sqrt{2}2∗23=32(最大可能间隔)。
三、K均值聚类(K-means)计算示例
问题:对二维数据(1,1)(1,1)(1,1)、(1,3)(1,3)(1,3)、(3,1)(3,1)(3,1)、(3,3)(3,3)(3,3)聚类,K=2。
1. 迭代过程
-
初始化:随机选初始中心μ1=(1,1)\mu_1=(1,1)μ1=(1,1),μ2=(3,3)\mu_2=(3,3)μ2=(3,3)。
-
第1次分配(欧氏距离):
(1,1)(1,1)(1,1)到μ1\mu_1μ1距离=0,到μ2\mu_2μ2距离=(2)2+(2)2=22\sqrt{(2)^2+(2)^2}=2\sqrt{2}(2)2+(2)2=22 → 簇1;
(1,3)(1,3)(1,3)到μ1\mu_1μ1距离=2,到μ2\mu_2μ2距离=2 → 可归为簇1或2(暂归簇1);
(3,1)(3,1)(3,1)到μ1\mu_1μ1距离=2,到μ2\mu_2μ2距离=2 → 暂归簇2;
(3,3)(3,3)(3,3)到μ2\mu_2μ2距离=0 → 簇2。
簇1:{(1,1),(1,3)}\{(1,1), (1,3)\}{(1,1),(1,3)},簇2:{(3,1),(3,3)}\{(3,1), (3,3)\}{(3,1),(3,3)}。 -
更新中心:
μ1=(1+12,1+32)=(1,2)\mu_1 = (\frac{1+1}{2}, \frac{1+3}{2}) = (1,2)μ1=(21+1,21+3)=(1,2);
μ2=(3+32,1+32)=(3,2)\mu_2 = (\frac{3+3}{2}, \frac{1+3}{2}) = (3,2)μ2=(23+3,21+3)=(3,2)。 -
第2次分配:
(1,1)(1,1)(1,1)到μ1\mu_1μ1距离=1,到μ2\mu_2μ2距离=22+12=5\sqrt{2^2+1^2}=\sqrt{5}22+12=5 → 簇1;
(1,3)(1,3)(1,3)到μ1\mu_1μ1距离=1,到μ2\mu_2μ2距离=22+12=5\sqrt{2^2+1^2}=\sqrt{5}22+12=5 → 簇1;
(3,1)(3,1)(3,1)到μ1\mu_1μ1距离=22+12=5\sqrt{2^2+1^2}=\sqrt{5}22+12=5,到μ2\mu_2μ2距离=1 → 簇2;
(3,3)(3,3)(3,3)到μ1\mu_1μ1距离=22+12=5\sqrt{2^2+1^2}=\sqrt{5}22+12=5,到μ2\mu_2μ2距离=1 → 簇2。 -
中心不变:簇1中心(1,2)(1,2)(1,2),簇2中心(3,2)(3,2)(3,2),迭代终止。
-
平方误差E:
簇1:∥(1,1)−(1,2)∥2+∥(1,3)−(1,2)∥2=1+1=2\|(1,1)-(1,2)\|^2 + \|(1,3)-(1,2)\|^2 = 1 + 1 = 2∥(1,1)−(1,2)∥2+∥(1,3)−(1,2)∥2=1+1=2;
簇2:∥(3,1)−(3,2)∥2+∥(3,3)−(3,2)∥2=1+1=2\|(3,1)-(3,2)\|^2 + \|(3,3)-(3,2)\|^2 = 1 + 1 = 2∥(3,1)−(3,2)∥2+∥(3,3)−(3,2)∥2=1+1=2;
总误差E=4E=4E=4。
四、主成分分析(PCA)计算示例
问题:对二维数据(1,2)(1,2)(1,2)、(2,3)(2,3)(2,3)、(3,4)(3,4)(3,4)降维到1维。
1. 步骤计算
-
数据中心化:
均值xˉ=(1+2+33,2+3+43)=(2,3)\bar{x} = (\frac{1+2+3}{3}, \frac{2+3+4}{3}) = (2, 3)xˉ=(31+2+3,32+3+4)=(2,3);
中心化后数据:(−1,−1)(-1,-1)(−1,−1)、(0,0)(0,0)(0,0)、(1,1)(1,1)(1,1)。 -
协方差矩阵:
样本矩阵X=[−1−10011]X = \begin{bmatrix}-1 & -1 \\ 0 & 0 \\ 1 & 1\end{bmatrix}X=−101−101,协方差矩阵:
Σ=13−1XTX=12[(−1)(−1)+0∗0+1∗1(−1)(−1)+0∗0+1∗1(−1)(−1)+0∗0+1∗1(−1)(−1)+0∗0+1∗1]=[1111]\Sigma = \frac{1}{3-1} X^T X = \frac{1}{2} \begin{bmatrix}(-1)(-1)+0*0+1*1 & (-1)(-1)+0*0+1*1 \\ (-1)(-1)+0*0+1*1 & (-1)(-1)+0*0+1*1\end{bmatrix} = \begin{bmatrix}1 & 1 \\ 1 & 1\end{bmatrix}Σ=3−11XTX=21[(−1)(−1)+0∗0+1∗1(−1)(−1)+0∗0+1∗1(−1)(−1)+0∗0+1∗1(−1)(−1)+0∗0+1∗1]=[1111]。 -
特征值分解:
解特征方程∣Σ−λI∣=0|\Sigma - \lambda I| = 0∣Σ−λI∣=0,得λ1=2\lambda_1=2λ1=2(最大),λ2=0\lambda_2=0λ2=0;
对应特征向量w1=(12,12)Tw_1 = (\frac{1}{\sqrt{2}}, \frac{1}{\sqrt{2}})^Tw1=(21,21)T(主成分方向)。 -
降维投影:
投影矩阵W=(w1)W = (w_1)W=(w1),降维后数据:
z1=(−1)⋅12+(−1)⋅12=−2z_1 = (-1)\cdot\frac{1}{\sqrt{2}} + (-1)\cdot\frac{1}{\sqrt{2}} = -\sqrt{2}z1=(−1)⋅21+(−1)⋅21=−2;
z2=0⋅12+0⋅12=0z_2 = 0\cdot\frac{1}{\sqrt{2}} + 0\cdot\frac{1}{\sqrt{2}} = 0z2=0⋅21+0⋅21=0;
z3=1⋅12+1⋅12=2z_3 = 1\cdot\frac{1}{\sqrt{2}} + 1\cdot\frac{1}{\sqrt{2}} = \sqrt{2}z3=1⋅21+1⋅21=2。降维后保留了原数据的全部方差(因λ1/∑λ=100%\lambda_1/\sum\lambda=100\%λ1/∑λ=100%)。
总结
- 逻辑回归:通过梯度下降优化参数,将线性输出映射为概率;
- SVM:寻找最大间隔超平面,支持向量决定间隔;
- K-means:迭代更新簇中心,最小化簇内平方误差;
- PCA:通过特征值分解协方差矩阵,保留最大方差的主成分。
这些示例简化了实际计算(如忽略多次迭代细节),但核心逻辑与公式应用一致。
