機器學習——聚類分析和主成分分析


機器學習——聚類分析和主成分分析

在機器學習中,非監督性學習主要用來分類。其中重要的兩種就是聚類分析和主成分分析。這兩類算法在數據壓縮和數據可視化方面有着廣泛的應用。

所謂無監督學習是指訓練集里面只有點\(\{x^{(1)},x^{(2)},\ldots,x^{(m)}\}\),沒有對應的性質標簽\(y\)。所以非監督性學習的目的不再是預測,而是分類。

一、聚類分析

經典的聚類分析算法是K-mean算法。K是類的數目,mean是均值。

1. K-mean算法

  • 1.給定訓練集\(\{x^{(1)},x^{(2)},\ldots,x^{(m)}\},x^{(i)} \in R^n\),隨機選取\(k\)個聚類的質心點,記為\(u_1,u_2,\ldots,u_k \in R^n\)
  • 2.重復下面過程知道算法收斂{
    對於每一個樣例\(i\),計算與它距離最近的質心點,並記下相應中心的編號。

\[c^{(i)}:=arg \min \limits_{j} ||x^{(i)}-u_j||^2 \]

對於每一類$j$,重新計算對應的質心

\[u_j:=\frac{\sum \limits_{i=1}^{m}1 \{c^{(i)}=j \}x^{(i)}}{\sum \limits_{i=1}^{m}1 \{c^{(i)}=j\}} \]

}

注意:在處理前,先將數據作規范化處理

2. 如何選取起點

與選取隨機點相比,隨機選取數據點作為質心更加合理。另外,因為K-means算法可能收斂到局部最優點,所以一般采取多次外循環,求得一系列的結果,然后選取結果中\(J(c,u)\)最小的一個。\(J(c,u)\)的定義如下:

\[J(c,u)= {1 \over m}\sum \limits _{i=1}^{m}||x^{(i)}-u_{c^{(i)}}||^2 \]

3. 如何決定分類個數

關於分類個數的選取,一般是根據需求人工選擇的。選擇時一般考慮分類的目的是什么,然后根據更好地實現目的進行選擇。
其次,有一種可以參考的分類方法,叫做“肘部法則”。如下圖所示,一般選取斜率從大到小急劇變化那一點。但有時,也會有斜率一直緩慢變化的情況。

4. 應用

聚類分析可以用於數據壓縮。具體思路就是將圖片內所有的像素點分成K類,每一類的顏色設置成一個值。下面是例子,將原來的顏色壓縮成了16個,仍然可以辨認出圖像。

二、主成分分析(PCA)

1.算法步驟

  • 1.數據規范化。將數據規范為均值為0,方差為1的數據。
  • 2.求解協方差矩陣。

\[\Sigma {\rm{ = }}{1 \over {\rm{m}}}{X^T}X \]

  • 3.對下方差矩陣進行SVD分解。

\[[U, S, V] = svd(\Sigma) \]

  • 4.數據投影。

\[Z=XU(:,1:K) \]

  • 5.數據恢復

\[X_{rec}=ZU(:,1:K)^T \]

2.算法原理

PCA的算法原理是基於SVD分解的一種算法。根據SVD分解中奇異值是從大到小排列,只選取前K項最大值,對原信號進行相應的變換。將相當於N維空間到K維空間的投影。
其中,K值的選取需要滿足\(\frac{\sum \limits_{i=1}^{K}S_{ii}}{\sum \limits_{i=1}^{N}S_{ii}} \ge 99 \%\)

3.應用舉例

  • 數據壓縮。數據壓縮可用來存儲數據、加快算法速度。
  • 數據可視化。一般設法將數據降到2維或者3維,以便可視化。

下面例子是一個利用PCA算法來提取臉部特征后結果圖。這些臉部特征可以用來進行面部識別。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM