1. 程式人生 > >資料學習(5)·K-means 聚類和PCA演算法

資料學習(5)·K-means 聚類和PCA演算法

作者的課堂筆記[email protected]

Preview

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

無監督學習

和有監督學習類似,但是資料沒有標籤。給定輸入資料,發現簡化的特徵,同時和輸入的特徵擁有同樣的資訊量。
一般來說,好的表示一般是低維度的,或者是稀疏表示的,也就是說大部分是0,又或者是獨立的表示。


1 K-means 聚類問題

輸入資料 { x

( 1 ) . . . . . x
( m )
} , x ( i
)
R d \{x^{(1)}.....x^{(m)}\},x^{(i)}\in R^d ,K-means聚類將輸入資料分成k類, k n k≤n 來最小化每個類別內的平方和(WCSS).
a r g m i n C j = 1 k x C j x μ j 2 argmin_C\sum_{j=1}^k\sum_{x\in C_j}||x-\mu_j||^2
等價問題:

  • 最小化每個類內的方差 j = 1 k C j V a r ( C j ) \sum_{j=1}^k|C_j|Var(C_j) .
  • 最小化點之間的成對平方偏差在同一叢集中: i = 1 k 1 2 C i x , x C i x x 2 \sum_{i=1}^k\frac{1}{2|C_i|}\sum_{x,x`\in C_i}||x-x`||^2
  • 最大化類與類之間的距離(BCSS).

1.1 K-means聚類演算法

  • 優化K-means聚類是一個NP-hard問題,在歐式空間中。
  • 通常通過啟發式,迭代演算法。
    Lloyd’s 演算法
    1

1.2 K-means聚類討論

  • K-means學習k維的稀疏表示,比如x使用one-hot編碼, z R k z\in R^k .
    z j ( i ) = 1 i f c ( i ) = j o t h e r w i s e 0 z_j^{(i)}=1 \quad if \quad c^{(i)}=j,otherwise \quad0
    演算法收斂於區域性最優解,所以初始值的選擇很重要!
  • 怎樣初始化 μ \mu ?均勻隨機抽樣(K-means++),或者基於距離的取樣。
  • 怎麼選擇K?交叉驗證或者G-means。

2 PCA(Principal Component Analysis)

消除特徵之間的相關性,同時減少噪音。
給出 { x ( 1 ) , . . . , x ( m ) } , x ( i ) R n \{x^{(1)},...,x^{(m)}\},x^{(i)}\in R^n .

  • 發現一個線性的正交變換W: R n R k R^n-R^k 針對輸入資料。
  • W 是將最大方差的方向和新座標軸的方向對齊。2
    正則化x,以便讓 m e a n ( x ) = 0 , S t d e v ( x j ) = 1 mean(x)=0,Stdev(x_j)=1
  • x ( i ) : = x ( i ) M e a n ( x ) x^{(i)}:=x^{(i)}-Mean(x)
  • x j ( i ) : = x j ( i ) / S t d e v ( x j ) x^{(i)}_j:=x^{(i)}_j/Stdev(x_j)
    3

2.1 PCA表示學習

PCA 目標:

  • 發現主要的組成 u 1 , . . . . . , u n u_1,.....,u_n 他們相互正交,也就是不相關。
  • x x 的大部分變化將由 k < < n k<<n k k 個主成分來解釋。

PCA 的主要操作:

  • 發現 x x 的投影, u 1 T x u_1^Tx 覆蓋最大的方差。
  • j = 1 , 2 , . . . . , n j=1,2,....,n 同樣上述操作,找出互相正交的 u 1 , . . . . . , u j u_1,.....,u_j 個方向。

2.2 尋找主成分

4
投影的方差:
1 m i = 1 m ( x ( i ) T u ) 2 = 1 m i = 1 m u T x ( i ) x ( i ) T u = u T ( 1 m i = 1 m x