機器學習——聚類分析和主成分分析
在機器學習中,非監督性學習主要用來分類。其中重要的兩種就是聚類分析和主成分分析。這兩類算法在數據壓縮和數據可視化方面有着廣泛的應用。
所謂無監督學習是指訓練集里面只有點\(\{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\),計算與它距離最近的質心點,並記下相應中心的編號。
對於每一類$j$,重新計算對應的質心
}
注意:在處理前,先將數據作規范化處理
2. 如何選取起點
與選取隨機點相比,隨機選取數據點作為質心更加合理。另外,因為K-means算法可能收斂到局部最優點,所以一般采取多次外循環,求得一系列的結果,然后選取結果中\(J(c,u)\)最小的一個。\(J(c,u)\)的定義如下:
3. 如何決定分類個數
關於分類個數的選取,一般是根據需求人工選擇的。選擇時一般考慮分類的目的是什么,然后根據更好地實現目的進行選擇。
其次,有一種可以參考的分類方法,叫做“肘部法則”。如下圖所示,一般選取斜率從大到小急劇變化那一點。但有時,也會有斜率一直緩慢變化的情況。
4. 應用
聚類分析可以用於數據壓縮。具體思路就是將圖片內所有的像素點分成K類,每一類的顏色設置成一個值。下面是例子,將原來的顏色壓縮成了16個,仍然可以辨認出圖像。
二、主成分分析(PCA)
1.算法步驟
- 1.數據規范化。將數據規范為均值為0,方差為1的數據。
- 2.求解協方差矩陣。
- 3.對下方差矩陣進行SVD分解。
- 4.數據投影。
- 5.數據恢復
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算法來提取臉部特征后結果圖。這些臉部特征可以用來進行面部識別。