数据学习(5)·K-means 聚类和PCA算法

本文深入探讨无监督学习的核心概念,包括K-means聚类和主成分分析(PCA)。K-means聚类用于数据集的分组,而PCA则用于降维和特征提取,消除特征间的相关性并减少噪音。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

作者的课堂笔记humminwang@163.com

Preview

  • K-means 聚类
  • 主成分分析(Principal Component Analysis)

无监督学习

和有监督学习类似,但是数据没有标签。给定输入数据,发现简化的特征,同时和输入的特征拥有同样的信息量。
一般来说,好的表示一般是低维度的,或者是稀疏表示的,也就是说大部分是0,又或者是独立的表示。


1 K-means 聚类问题

输入数据{x(1).....x(m)},x(i)∈Rd\{x^{(1)}.....x^{(m)}\},x^{(i)}\in R^d{x(1).....x(m)},x(i)Rd,K-means聚类将输入数据分成k类,k≤nk≤nkn来最小化每个类别内的平方和(WCSS).
argminC∑j=1k∑x∈Cj∣∣x−μj∣∣2 argmin_C\sum_{j=1}^k\sum_{x\in C_j}||x-\mu_j||^2 argminCj=1kxCjxμj2
等价问题:

  • 最小化每个类内的方差∑j=1k∣Cj∣Var(Cj)\sum_{j=1}^k|C_j|Var(C_j)j=1kCjVar(Cj).
  • 最小化点之间的成对平方偏差在同一集群中:∑i=1k12∣Ci∣∑x,x‘∈Ci∣∣x−x‘∣∣2\sum_{i=1}^k\frac{1}{2|C_i|}\sum_{x,x`\in C_i}||x-x`||^2i=1k2Ci1x,xCixx2
  • 最大化类与类之间的距离(BCSS).

1.1 K-means聚类算法

  • 优化K-means聚类是一个NP-hard问题,在欧式空间中。
  • 通常通过启发式,迭代算法。
    Lloyd’s 算法
    1

1.2 K-means聚类讨论

  • K-means学习k维的稀疏表示,比如x使用one-hot编码,z∈Rkz\in R^kzRk.
    zj(i)=1ifc(i)=j,otherwise0 z_j^{(i)}=1 \quad if \quad c^{(i)}=j,otherwise \quad0 zj(i)=1ifc(i)=jotherwise0
    算法收敛于局部最优解,所以初始值的选择很重要!
  • 怎样初始化μ\muμ?均匀随机抽样(K-means++),或者基于距离的采样。
  • 怎么选择K?交叉验证或者G-means。

2 PCA(Principal Component Analysis)

消除特征之间的相关性,同时减少噪音。
给出{x(1),...,x(m)},x(i)∈Rn\{x^{(1)},...,x^{(m)}\},x^{(i)}\in R^n{x(1),...,x(m)},x(i)Rn.

  • 发现一个线性的正交变换W:Rn−RkR^n-R^kRnRk针对输入数据。
  • W 是将最大方差的方向和新坐标轴的方向对齐。2
    正则化x,以便让mean(x)=0,Stdev(xj)=1mean(x)=0,Stdev(x_j)=1mean(x)=0,Stdev(xj)=1
  • x(i):=x(i)−Mean(x)x^{(i)}:=x^{(i)}-Mean(x)x(i):=x(i)Mean(x)
  • xj(i):=xj(i)/Stdev(xj)x^{(i)}_j:=x^{(i)}_j/Stdev(x_j)xj(i):=xj(i)/Stdev(xj)
    3

2.1 PCA表示学习

PCA 目标:

  • 发现主要的组成u1,.....,unu_1,.....,u_nu1,.....,un他们相互正交,也就是不相关。
  • xxx的大部分变化将由k&lt;&lt;nk&lt;&lt;nk<<nkkk个主成分来解释。

PCA 的主要操作:

  • 发现xxx的投影,u1Txu_1^Txu1Tx覆盖最大的方差。
  • j=1,2,....,nj=1,2,....,nj=1,2,....,n同样上述操作,找出互相正交的u1,.....,uju_1,.....,u_ju1,.....,uj个方向。

2.2 寻找主成分

4
投影的方差:
1m∑i=1m(x(i)Tu)2=1m∑i=1muTx(i)x(i)Tu=uT(1m∑i=1mx(i)x(i)T)u=uTΣu\frac{1}{m}\sum_{i=1}^m(x^{(i)^T}u)^2=\frac{1}{m}\sum_{i=1}^mu^Tx^{(i)}x^{(i)^T}u=u^T(\frac{1}{m}\sum_{i=1}^m x^{(i)}x^{(i)^T})u=u^T\Sigma um1i=1m(x(i)Tu)2=m1i=1muTx(i)x(i)Tu=uT(m1i=1mx(i)x(i)T)u=uTΣu
Σ:\Sigma:Σ:是样本的协方差矩阵。


2.3 第一主要成分

发现一个u1u_1u1最大化投影方差:
u1=argmaxu:∣∣u∣∣=1uTΣu u_1=argmax_{u:||u||=1}u^T\Sigma u u1=argmaxu:u=1uTΣu
u1u_1u1被称为xxx的第一主成分。同时u1u_1u1是协方差矩阵的最大特征向量。


证明:u1u_1u1是协方差矩阵的最大特征向量。
使用拉格朗日函数:
L(u)=−uTΣu+β(uTu−1) L(u)=-u^T\Sigma u+\beta(u^Tu-1) L(u)=uTΣu+β(uTu1)
最小化L(u)L(u)L(u).
∂L∂u=−2Σu+2βu=0 \frac{\partial L}{\partial u}=-2\Sigma u+2\beta u=0 uL=2Σu+2βu=0
所以Σu=βu\Sigma u=\beta uΣu=βu,因此u1u_1u1Σ\SigmaΣ的特征向量。u=vju=v_ju=vj,是第jjj大的特征值对应的特征向量。
uTΣu=vjTΣvj=λjvjTvj=λj u^T\Sigma u=v_j^T\Sigma v_j=\lambda_jv_j^Tv_j=\lambda_j uTΣu=vjTΣvj=λjvjTvj=λj
因此u1=v1u_1=v_1u1=v1特征向量对应最大的特征值。


证明:第j个主成分,uju_juj是第j大的协方差矩阵的特征向量。
j=2
u2=argmax∣∣u∣∣=1,u1Tu=0uTΣu u_2=argmax_{||u||=1,u_1^Tu=0}u^T\Sigma u u2=argmaxu=1,u1Tu=0uTΣu
拉格朗日函数:
L(u)=−uTΣu+β1(uTu−1)+β2(u1Tu) L(u)=-u^T\Sigma u+\beta_1(u^Tu-1)+\beta_2(u_1^Tu) L(u)=uTΣu+β1(uTu1)+β2(u1Tu)
最小化L(u):L(u):L(u):
β2=0,Σu=β1u \beta_2=0, \Sigma u=\beta_1u β2=0,Σu=β1u
最大化uTΣu=λ,u2u^T\Sigma u=\lambda,u_2uTΣu=λ,u2必须是第二大特征值对应的特征向量β1=λ2\beta_1=\lambda_2β1=λ2.


2.4 PCA性质

  • 主成分投影的方差是:Var(xTuj)=ujTΣuj=λjVar(x^Tu_j)=u_j^T\Sigma u_j=\lambda_jVar(xTuj)=ujTΣuj=λj,j=1,2…n
  • % 由第j主成分解释的方差可以被表示成λj∑i=1nλi\frac{\lambda_j}{\sum_{i=1}^n\lambda_i}i=1nλiλj
  • 同样可通过前K主成分解释∑j=1kλj∑j=1nλj\frac{\sum_{j=1}^k\lambda_j}{\sum_{j=1}^n\lambda_j}j=1nλjj=1kλj

2.5 PCA 投影

样本在主成分空间的投影:
z(i)=[x(i)Tu1....x(i)Tun]∈Rn z^{(i)}=\begin{bmatrix}x^{(i)^T}u_1\\....\\x^{(i)^T}u_n\end{bmatrix}\in R^n z(i)=x(i)Tu1....x(i)TunRn
矩阵表示:
z(i)=[............u1....un............]Tx(i)=WTx(i),orZ=XW z^{(i)}=\begin{bmatrix}....&amp;....&amp;....\\u_1&amp;....&amp;u_n\\....&amp;....&amp;....\end{bmatrix}^Tx^{(i)}=W^Tx^{(i)},or \quad Z=XW z(i)=....u1....................un....Tx(i)=WTx(i),orZ=XW
仅用前K个主成分用来降维。


2.5 PCA理解

PCA移除了输入数据的冗余。
Z=XWZ=XWZ=XW为PCA的投影数据。
cov(Z)=1nZTZ=1n(XW)T(XW)=WT(1nXTX)W=WTΣW cov(Z)=\frac{1}{n}Z^TZ=\frac{1}{n}(XW)^T(XW)=W^T(\frac{1}{n}X^TX)W=W^T\Sigma W cov(Z)=n1ZTZ=n1(XW)T(XW)=WT(n1XTX)W=WTΣW
因为Σ\SigmaΣ是对称的,有特征值,特征分解为:
Σ=WΛWT \Sigma =W\Lambda W^T Σ=WΛWT
W=[............u1....un............],Λ=[λ1............................λn] W=\begin{bmatrix}....&amp;....&amp;....\\u_1&amp;....&amp;u_n\\....&amp;....&amp;....\end{bmatrix},\Lambda=\begin{bmatrix}\lambda_1&amp;....&amp;....\\....&amp;....&amp;....\\....&amp;....&amp;\lambda_n\end{bmatrix} W=....u1....................un....,Λ=λ1............................λn
cov(Z)=WT(WΛWT)W=Λ cov(Z)=W^T(W\Lambda W^T)W=\Lambda cov(Z)=WT(WΛWT)W=Λ
主成分变换XWXWXW对角化XXX的样本协方差矩阵。


2.6 PCA例子

鸢尾花数据
122
在这里插入图片描述


人脸特征
15
11


2.7 PCA 的缺点

  • 只考虑了数据特征之间的线性关系
  • 假设数据是真实并且连续的
  • 假设输入空间的近似正态性(但在实践中,对于非正态分布的数据仍然可以很好)

非正态分布输入:
在这里插入图片描述


2.7 PCA核心

利用PCA特征提取。
9
线性的PCA假设数据在RnR^nRn是可分的.
非线性推广:

  • 将数据投影到更高维度使用特征映射。Rn→Rd(d≥n)R^n \rightarrow R^d(d≥n)RnRd(dn)
  • 特征映射通过定义核函数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))或者核矩阵K∈Rm×nK\in R^{m\times n}KRm×n

特征映射数据的样本的协方差矩阵:
Σ=1m∑i=1mϕ(x(i))ϕ(x(i))T∈Rd×d \Sigma=\frac{1}{m}\sum_{i=1}^m\phi(x^{(i)})\phi(x^{(i)})^T\in R^{d\times d} Σ=m1i=1mϕ(x(i))ϕ(x(i))TRd×d
(λk,vk),k=1,....d(\lambda_k,v_k),k=1,....d(λk,vk),k=1,....dΣ\SigmaΣ的特征分解。
Σvk=λkvk \Sigma v_k=\lambda_k v_k Σvk=λkvk
x(l)x^{(l)}x(l)在第k主成分vkv_kvk的PCA投影是:
ϕ(x(l))Tvk \phi(x^{(l)})^Tv_k ϕ(x(l))Tvk
为了避免计算ϕ(x(l))\phi(x^{(l)})ϕ(x(l)),于是:
Σvk=(1m∑i=1mϕ(x(i))ϕ(x(i))T)vk=λkvk \Sigma v_k=(\frac{1}{m}\sum_{i=1}^m\phi(x^{(i)})\phi(x^{(i)})^T)v_k=\lambda_kv_k Σvk=(m1i=1mϕ(x(i))ϕ(x(i))T)vk=λkvk
vkv_kvk写成ϕ(x(1))....ϕ(x(m))\phi(x^{(1)})....\phi(x^{(m)})ϕ(x(1))....ϕ(x(m))的线性组合:
vk=∑i=1mαkiϕ(x(i)) v_k=\sum_{i=1}^m\alpha_k^i\phi(x^{(i)}) vk=i=1mαkiϕ(x(i))
x(l)x^{(l)}x(l)的PCA投影通过使用K函数表示:
ϕ(x(l))Tvk=ϕ(x(l))T∑i=1mαkiϕ(x(i))=∑i=1mαkiK(x(l),x(i)) \phi(x^{(l)})^Tv_k=\phi(x^{(l)})^T\sum_{i=1}^m\alpha_k^i\phi(x^{(i)})=\sum_{i=1}^m\alpha_k^iK(x^{(l)},x^{(i)}) ϕ(x(l))Tvk=ϕ(x(l))Ti=1mαkiϕ(x(i))=i=1mαkiK(x(l),x(i))
怎么计算αki\alpha_k^iαki:
Σvk=(1m∑i=1mϕ(x(i))ϕ(x(i))T)vk=λkvk \Sigma v_k=(\frac{1}{m}\sum_{i=1}^m\phi(x^{(i)})\phi(x^{(i)})^T)v_k=\lambda_kv_k Σvk=(m1i=1mϕ(x(i))ϕ(x(i))T)vk=λkvk
vk=∑i=1mαkiϕ(x(i))v_k=\sum_{i=1}^m\alpha_k^i\phi(x^{(i)})vk=i=1mαkiϕ(x(i))代替:
Kαk=λkmαk K\alpha_k=\lambda_km\alpha_k Kαk=λkmαk
于是αk=[αk1....αkm]\alpha_k=\begin{bmatrix}\alpha_k^1\\....\\\alpha_k^m\end{bmatrix}αk=αk1....αkm可以通过求K的特征分解来得出。
正则化αk\alpha_kαk以便于使vkTvk=1v_k^Tv_k=1vkTvk=1
vkTvk=∑i=1m∑j=1mαkiαkjϕ(x(i))Tϕ(x(j))=αkTKαk=λkm(αkTαk) v_k^Tv_k=\sum_{i=1}^m\sum_{j=1}^m\alpha_k^i\alpha_k^j\phi(x^{(i)})^T\phi(x^{(j)})=\alpha_k^TK\alpha_k=\lambda_km(\alpha_k^T\alpha_k) vkTvk=i=1mj=1mαkiαkjϕ(x(i))Tϕ(x(j))=αkTKαk=λkm(αkTαk)
∣∣αk∣∣2=1λkm ||\alpha_k||^2=\frac{1}{\lambda_km} αk2=λkm1
E(ϕ(x))≠0E(\phi(x))\ne0E(ϕ(x))̸=0,我们需要重新计算ϕ(x)\phi(x)ϕ(x):
ϕ^(x(i))=ϕ(x(i))−1m∑l=1mϕ^(x(l)) \hat\phi(x^{(i)})=\phi(x^{(i)})-\frac{1}{m}\sum_{l=1}^m\hat\phi(x^{(l)}) ϕ^(x(i))=ϕ(x(i))m1l=1mϕ^(x(l))
中心化之后的K函数:
K^i,j=ϕ^(x(i))Tϕ^(x(j)) \hat K_{i,j}=\hat \phi(x^{(i)})^T\hat \phi(x^{(j)}) K^i,j=ϕ^(x(i))Tϕ^(x(j))
矩阵表示:
K^=K−1mK−K1m+1mK1m,1m=[1m....1m............1m....1m] \hat K=K-1_mK-K1_m+1_mK1_m,\quad 1_m=\begin{bmatrix}\frac{1}{m}&amp;....&amp;\frac{1}{m}\\....&amp;....&amp;....\\\frac{1}{m}&amp;....&amp;\frac{1}{m}\end{bmatrix} K^=K1mKK1m+1mK1m,1m=m1....m1............m1....m1
然后使用K^\hat KK^来计算PCA.
2
在这里插入图片描述


  • 经常在聚类、异常检测中使用PCA.
  • 投影到k维约简子空间一般是不可能的.
    在这里插入图片描述

2.8 总结

表示学习:

  • 把一些特征表达的更加简单和便于理解。
  • 通常在特征提取、降维、分类问题中使用。
    完
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值