成分分析
2019獨角獸企業重金招聘Python工程師標準>>>
PCA【從傳統視角來解釋PCA】
(1)pca常常用來分析數據中的主成分,即那些具有最大特征值所對應的特征(主元)。
????????應用細節過程應注意:
????????????是否對數據進行scale,一般來說是whiten操作;
????????????主成分數量的確定,一般選取總協方差的和達到所有和的90%以上。
(2)用來可視化數據(數據降維到歐拉坐標系進行可視化)
(3)pca模型是基于數據與噪聲都是高斯模型
(4)pca采用的是數據的協方差矩陣
......
PPCA【從概率和隱變量角度解釋PCA】
(1)對隱變量z(高斯分布)進行采樣,然后線性變換:X=Wz+u+s(s為噪聲)得到data space的點的分布p(x)。
(2)對隱變量空間進行旋轉(正交),不會改變x的分布p(x),這點很重要,因為正交變換不改變數據的形狀,詳細推導見PRML,那么我們就可以旋轉使得協方差矩陣成對角陣,對角線上的值即對對應每一維度的方差,而且是ordered。
(3)采用似然函數建目標,一般采用EM算法求解。(可以自動確定主成分的數量,scikit-learn中的PCA(n_components = 'mle')就是從PPCA角度來求解的。
......
ICA
(1)經典的雞尾酒會問題(cocktail party problem)的求解(盲信號分離):n個人,m個麥克風收集到n個人混合說話后的數據X,如何從X來分離出每個人的說話內容S:X=AS(一般m=n,S可以看做隱變量)
(2)如果S是高斯分布(>=2個為高斯),此時ICA是失效的,因為在PPCA中我們已經知道,對高斯分布的隱變量進行旋轉,不改變X的分布,那么S的就有很多種可能,此時就不能稱之為Independent!!!換句話說,ICA是處理非高斯問題的!
......后續更新
參考資料:PRML
---stone8oy
轉載于:https://my.oschina.net/stone8oy/blog/322935
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
- 上一篇: Android 文件布局一些细节备忘
- 下一篇: [Linux] Linux smap