PCA
PCA是一種數學方法,那他的好處都有啥???:
- 降維
- 降噪
- 可視化
PCA的操作概括起來就是降維的同時讓樣本間間距最大——即使降維的影響最小化,用方差能很好解決這個問題。(我好像沒有介紹就直接開始講做法了是不是有點不妥)
前戲
在求方差之前將所有樣本的特徵值demean處理,那麼方差就更加好求了(方便向量化)
PCA過程
主成分就是集合所有樣本特徵所求得的影響力最大的一個向量。
那麼實際上就是要求能使方差最大的一個向量w:
其中w是一個指向降維的方向的單位向量(這條式子你能推的出來的),現在的目的就是要求這個對應的w能使它最大了,(w就是Xi的第一主成分的方向),這時可以用梯度上升法來求w,跟之前求θ很相似,只是原來是-α×梯度,現在是+α×梯度,當上升到。(再複習一下梯度,也是對每一個wi進行求導的一個向量)
然後這個值也可以這樣進行向量化:
求前k個主成分
通過對這個式子的w做梯度上升法(收斂判定也是需要ε),就可以求得第一個主成分了,然後用原來的特徵向量減去剛剛求出來的主成分(第一主成分),就能求得下一個我們要求第二主成分的方向了(實際上是垂直於第一主成分的),用同樣的方法對其求主成分便能求得第二主成分…以此類推能求出前n個主成分。
如圖C1爲Xi的第一主成分(即w1上的主成分),那麼就可以:
降維
假設本來有m個樣本n個特徵,那麼原樣本特徵矩陣就是一個m x n的n維矩陣X,通過剛剛的方法求得前k個的主成分方向w組成一個矩陣k x n的k維矩陣W,那麼用X · W.T便可以實現降維了(得到一個m x k的矩陣Xk)。
降噪
Inverse Transform,用前面得到的的Xk · W就得到回了一個m x n的矩陣了,這個矩陣雖然也是跟原來shape一樣的矩陣,但是其實是已去除掉了一些信息的前k維的成分在n維中表示,那些不重要的成分通過能通過PCA去掉,而這些不重要的成分通常可能會是噪音,那我們用PCA得到Xk後就能通過Xk · W重新獲得m x n的矩陣進行降噪。
可視化
你說可視化嗎,只要降到你那個維度空間能看的維度就可以了啊?。
SVM
SVM要解決的是ill posed problem不適定問題,指decision boundary決策邊界存在多個的時候要選擇哪個比較好(泛化效果最好的)→SVM的解決方式就是找到那條與兩個類別最近的樣本距離最遠的決策邊界(好難表達,看圖那三個點到直線距離相同且是各自分類中離線最近的,這些點也叫做支撐向量)。?在這一點上他的確跟PCA真的有點像
假設那根決策邊界的直線方程爲
那對於兩個分類到這跟直線的距離應該有以下式子(分類分成1和-1,方便合併):
巧妙的合併得到:
然後現在需要距離最大的話實際上就是要:
分子實際上是距離最重要的部分,而那些最近的點分子都接近於0,所以上式也可以變成:(1/2是方便求導)
綜上SVM的基本式:
而爲了不讓極端值太影響到決策邊界選取,於是就有了Soft Margin SVM:
核函數
總結了很多:https://blog.csdn.net/kateyabc/article/details/79980880
Example:
實際上就是通過核函數將那些本來需要向量轉換拉伸之後再相乘得到的標量值直接通過核函數求得,再簡單一點說就是K(x,y)就是映射變化後的x與y的內積,所以也有人說這是Kernal Trick(再比如多項式線性迴歸要將x1,x2拉伸爲x1,x1x2,x2,x1²,x2²,然後再與θ相乘,通過核函數就方便了計算)
線性核函數:
這個的話說了跟沒說似的…
多項式核函數:
高斯核函數
是SVM中常用的核函數的一種,相對於其他的核函數,高斯核函數是相當於試着將每一個樣本點映射到無限維的特徵空間的(實際上只是有多少個樣本映射到多少維),實際上由高斯分佈推得的,所以高斯核函數圖像都是呈正態分佈狀:
那麼σ在這:
(也有人把係數提出來寫成這樣:)
其中li稱爲landmark標記點,這些標記點其實就是樣本點,所以相當於將原來mn維的數據映射成了mm,而且當m<n會很適合使用,如圖:
用核函數後,像以前的迴歸問題都能表示成這樣:
將f1,f2…變成一個特徵向量就又變成了:
就可以像之前那樣解決了。
番外:SVM解決迴歸問題思路:
大概就是,前面解決分類問題是需要margin裏的點越少越好,而回歸問題則反過來要點越多越好?又跟分類問題反過來了