PCA主成分分析以及Python实现(阅读笔记)
生活随笔
收集整理的這篇文章主要介紹了
PCA主成分分析以及Python实现(阅读笔记)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
簡述
PCA日常使用,但還沒有研究過其理論,這讓我很好奇。
理論部分
《機器學習》中是這樣開始的:
對于正交屬性空間的樣本點,如何用一個超平面來對所有的樣本點進行表達。
- 超平面和半空間是優化領域的兩個重要概念
- 簡單來說,矩陣方程W?X+b=0W*X+b = 0W?X+b=0表示的是超平面,W?X+b≥0W*X+b \geq 0W?X+b≥0表示的就是半空間。
- 顯然超平面是直線在高維空間的擴展。(只有這句話是書中的點,其他都是我補充的)
這樣的超平面(表達點的超平面),這個**“表達”**的含義,我的理解是:對于點在超平面上的投影Projection。
- 最近重構性:樣本點到這個超平面的距離都足夠的近;
- 最大可分性:樣本點到這個超平面上的投影都足夠的分散
優化的矩陣變為
max?Wtr(WTXXTW)s.t.WTW=1\max_W{tr(W^TXX^TW)}\\s.t. W^TW=1Wmax?tr(WTXXTW)s.t.WTW=1
解得(拉格朗日乘子法)
XTXwi=λiwiX^TXw_i=\lambda_iw_iXTXwi?=λi?wi?
明顯λ\lambdaλ是XTXX^TXXTX的特征值。
算法流程
輸入: 樣本集D={i=1,...,m∣xi}D=\{i=1,...,m| x_i\}D={i=1,...,m∣xi?},低維度空間維數d
過程:
Python實現
- 導入數據
- 用sklearn版本的PCA
- 自己實現PCA
- 用自己的pca跑一下
- 自己跑的效果圖(就是跟上面的在橫縱軸上發生了顛倒而已)完全一致~
總結
以上是生活随笔為你收集整理的PCA主成分分析以及Python实现(阅读笔记)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: DBSCAN算法理论和Python实现
- 下一篇: FCM算法实现Python(简洁版)