PCA 這個名字看起來比較玄乎,其實就是給數據換一個坐標系,然后非常生硬地去掉一些方差很小的坐標軸。
例:三維空間中,有一些數據只分布在一個平面上,我們通過“坐標系旋轉變換”,使得數據所在的平面與 \(x\),\(y\) 平面重合,那么我們就可以用 \(x'\),\(y'\) 兩個維度表達原始數據,並且沒有任何損失。
- 在低維的空間中,我們可以用幾何直觀來解釋:同樣的數據,用不同的坐標系表示。
- 在高維的空間中,我們就得通過代數的方法來依次尋找這些坐標軸方向,第 1 坐標軸方向就是第一主成分方向,第 2 坐標軸方向就是第二主成分方向,依次類推,使得原始數據在新的坐標軸上對應於每一個特征的方差是逐漸減少的,去掉那些我們認為方差很小的后面的主成分方向上的坐標,就完成了 PCA。
所以 PCA 不是特征選擇,而是特征抽取,抽取出來的特征是上帝視角,很多情況下,人類很難一眼就看清這些主成分代表了什么含義。
PCA 算法優缺點分析
優點
1、降維使得原始數據的維度減少,送入算法,在訓練過程中的消耗減少,能夠提高效率;
2、PCA 丟棄了原始數據的一些信息,如果這些信息恰好是噪聲,這就是 PCA 帶給我們額外的好處,有點兩全其美的意思;
3、PCA 雖然丟失了原始數據的一些信息,但和提高機器學習算法運算效率來說,還是比較輕的。
缺點
1、PCA 丟棄了原始數據的一些信息,如果這些數據恰好很重要,就不適合用 PCA 了;
2、PCA 分析得到的主成分意義不明確,不具有可解釋性。
注意事項:
在進行降維之前,要先做數據預處理,通常要去均值。有的時候還要將數據的方差處理成 1 ,即數據標准化。
print('hello world')