參考:PCA主成分分析Python實現
PCA(principle component analysis)主成分分析,主要是用來減少數據集的維度,然後挑選出基本的特徵。
PCA思想
主要思想:移動座標軸,將n維特徵映射到k維上(k<n),這k維是全新的正交特徵。
這k維特徵稱爲主元,是又一次構造出來的k維特徵。而不是簡單地從n維特徵中去除其餘n-k維特徵。
基本步驟
- 對數據進行歸一化處理(代碼中並不是這麼做的,而是直接減去均值)
- 計算歸一化後的數據集的協方差矩陣
- 計算協方差矩陣的特徵值和特徵向量
- 保留最重要的k個特徵(通常k要小於n)。也能夠自己制定。也能夠選擇一個閾值,然後通過前k個特徵值之和減去後面n-k個特徵值之和大於這個閾值,則選擇這個k
- 找出k個特徵值相應的特徵向量
- 將m * n的數據集乘以k個n維的特徵向量的特徵向量(n * k),得到最後降維的數據。
代碼及結果
項目地址:https://github.com/abc222/MyDeepLearningStudy/tree/master/pca_analyze
結果展示:
藍色部分爲重構後的原始數據。紅色則是提取後的二維特徵!