week25 信息基礎II備考

EM:expectation maximization algorithm
MLE:maximum likelihood estimation 最大似然估計 利用已知的樣本 估計出最有可能導致這種樣本分布的參數 即模型已知參數未知

mle

找出一組參數,使得觀察出樣本數據結果的概率最大
①、寫似然函數(出現樣本概率與參數之間的函數)
②、求對數
③、求導數
④、導數為0,解似然方程

貝葉斯估計:利用先驗概率和已知分布來估計后驗概率
貝葉斯算法中的常見概念:
1、P(A)是事件A的先驗概率或者邊緣概率。
2、P(A|B)是已知B發生后A發生的條件概率,也稱為A的后驗概率。
3、P(B|A)是已知A發生后B發生的條件概率,也稱為B的后驗概率。
4、P(B)是事件B的先驗概率或者邊緣概率。

貝葉斯估計

例子:現在有五個盒子,假定每個盒子中都有黑白兩種球,并且黑白球的比例如下;現已知從這五個盒子中的任意一個盒子中有放回的抽取兩個球,且均為白球,問這兩個球是從哪個盒子中抽取出來的?

MLE
貝葉斯估計
詳解

MAP:maximum a posteriori estimation 最大后驗概率估計 求在樣本結果下出現概率最大的參數

MAP

在最右邊的argmaxP(θ)P(X|θ)中,MLE是使P(X|θ)最大,而MAP是使P(θ)P(X|θ)最大,相當于MLE假設參數分布的先驗概率相同的情況下使似然函數值最大,而MAP在這個基礎上要求參數分布本身的先驗概率比較大

(該部分參考:EM算法-大綱

KNN:k-nearest-neighbor 我們可以這樣理解這個問題:有一堆已知的點,它們被分為兩類:紅與綠。它們在坐標紙上的分布如圖,給我們一個新的點,我們能否通過這個點的坐標來判斷它是紅的還是綠的呢?這就是KNN研究的問題。

KNN(K-nearest neighbor)又稱K-最近鄰,它是通過新的點與已知點之間的坐標關系來進行分類。我們計算新的點與這堆已知的點的歐式距離(就是咱們理解的距離),將其排序得到距離的列表或字典。然后我們看這個列表或字典的前k個距離值,在這些距離里面,如果是紅的(屬于和紅色點的距離)更多,那我們就認為這個新的點是紅色,反之就認為是綠色。

PCA:principle component analysis 主成分分析 把高維數據在損失最小的情況下轉換為低維數據 在可控的損失范圍內提高運算速度

二維2一維

數學表述:當需要從n維數據降為k維數據時,需要找出k個向量u(1)、u(2)、u(k),把n維的數據投射到這k個向量決定的線性空間里,最終使投射誤差最小化的過程。

假設有一個數據集,用m x n維的矩陣A表示。矩陣中每一行表示一個樣本,每一列表示一個特征,總共有m個樣本,每個樣本有n個特征。我們的目標是減少特征個數,保留最重要的k個特征。

1.數據歸一化和縮放
數據歸一化和縮放是一種數學技巧,旨在提高PCA運算時的效率。數據歸一化的目標是使特征的均值為0。數據歸一化和縮放公式為:

歸一化和縮放

其中,a是第i個樣本第j個特征的值,uj是第j個特征的均值,sj是第j個特征的范圍(aj max - aj min)

2.計算協方差矩陣的特征向量
針對預處理后的矩陣X,先計算其協方差矩陣(Covariance Matrix):

協方差矩陣

其中,最左邊表示協方差矩陣,用大寫的Sigma表示,是一個n * n維的矩陣。接著通過奇異值分解來計算協方差矩陣的特征向量:

奇異值分解

其中,svd是奇異值分解(Singular Value Decomposition)運算,是高級線性代數的內容。經過奇異值分解后,有3個返回值,其中矩陣U是一個n * n的矩陣,如果我們選擇U的列作為向量,那么我們將得到n個列向量u1、u2、un,這些向量就是協方差矩陣的特征向量。它表示的物理意義是,協方差矩陣可以由這些特征向量進行線性組合得到。

3.數據降維和恢復

得到特征矩陣后,就可以對數據進行降維處理了。假設降維前的值是xi,降維后是zi,則
zi

其中,Ureduce=u1,u2,...,uk,它選自矩陣U的前k個向量,是數據降維和恢復的關鍵中間變量。Ureduce是nk的矩陣,其轉置為kn,x為n1的矩陣,則z為k1的矩陣。這樣即完成了數據的降維。

也可以用矩陣運算一次性轉換多個向量,提高效率。假設X是行向量xi組成的矩陣,則Z=X*Ureduce。其中,X是m * n的矩陣,降維后的矩陣Z是一個m * k的矩陣。

PCA

圖中正方形的點是原始數據經過預處理后(歸一化、縮放)的數據,圓形的點是從一維恢復到二維后的數據。同時,我們畫出主成分特征向量u1、u2。根據上圖,來介紹幾個有意思的結論:首先,圓形的點實際上就是方形的點在向量u1所在直線上的投影。所謂PCA數據恢復,并不是真正的恢復,只是把降維后的坐標轉換為原坐標系中的坐標而已。針對我們的例子,只是把由向量u1決定的一維坐標系中的坐標轉換為原始二維坐標系中的坐標。其次,主成分特征向量u1、u2是相互垂直的。再次,方形點和圓形點之間的距離,就是PCA數據降維后的誤差。

PCA這一部分參考:http://www.lxweimin.com/p/5761f3be39a3

SVM:support vector machine 支持向量機 這個老哥實在寫得太好了我就直接轉載了,自SVM常見問題

1 SVM原理
SVM是一種二分類模型。它的基本模型是在特征空間中尋找間隔最大化的分離超平面的線性分類器。(間隔最大化是它的獨特之處),通過該超平面實現對未知樣本集的分類。

當訓練樣本線性可分時,通過硬間隔最大化,學習一個線性分類器,即線性可分支持向量機。
當訓練數據近似線性可分時,引入松弛變量,通過軟間隔最大化,學習一個線性分類器,即線性支持向量機。
當訓練數據線性不可分時,通過使用核技巧及軟間隔最大化,學習非線性支持向量機。
2 SVM核函數意義、種類與選擇
意義:原始樣本空間中可能不存在這樣可以將樣本正確分為兩類的超平面,但是我們知道如果原始空間的維數是有限的,也就是說屬性數是有限的,則一定存在一個高維特征空間能夠將樣本劃分。SVM通過核函數將輸入空間映射到高維特征空間,最終在高維特征空間中構造出最優分離超平面,從而把平面上本身無法線性可分的數據分開。核函數的真正意義是做到了沒有真正映射到高維空間卻達到了映射的作用,即減少了大量的映射計算。

選擇:

利用專家先驗知識選定核函數,例如已經知道問題是線性可分的,就可以使用線性核,不必選用非線性核。

如果特征的數量大到和樣本數量差不多,則選用線性核函數SVM或LR。

如果特征的數量小,樣本的數量正常,則選用高斯核函數SVM。

如果特征的數量小,樣本數量很多,由于求解最優化問題的時候,目標函數涉及兩兩樣本計算內積,使用高斯核明顯計算量會大于線性核,所以手動添加一些特征,使得線性可分,然后可以用LR或者線性核的SVM;

利用交叉驗證,試用不同的核函數,誤差最小的即為效果最好的核函數。

混合核函數方法,將不同的核函數結合起來。

3 為什么要將求解SVM的原始問題轉換為其對偶問題
無論原始問題是否是凸的,對偶問題都是凸優化問題;
對偶問題可以給出原始問題一個下界;
當滿足一定條件(KKT條件或Slater條件)時,原始問題與對偶問題的解是完全等價的;
可以自然引入核函數。
4 SVM為什么采用間隔最大化
當訓練數據線性可分時,存在無窮個分離超平面可以將兩類數據正確分開。感知機或神經網絡等利用誤分類最小策略,求得分離超平面,不過此時的解有無窮多個。線性可分支持向量機利用間隔最大化求得最優分離超平面,這時,解是唯一的。另一方面,此時的分隔超平面所產生的分類結果是最魯棒的,對未知實例的泛化能力最強。

5 SVM對噪聲敏感
少數支持向量決定了最終結果,這不但可以幫助我們抓住關鍵樣本、“剔除”大量冗余樣本,而且注定了該方法不但算法簡單,而且具有較好的“魯棒”性。這種“魯棒”性主要體現在:
增、刪非支持向量樣本對模型沒有影響;

支持向量樣本集具有一定的魯棒性;

有些成功的應用中,SVM 方法對核的選取不敏感

但當噪聲出現的過多,以及當噪聲出現并成為支持向量時,那么噪聲對模型對影響是巨大的。所以此時SVM對噪聲不具備魯棒性!以下兩種情況會增大噪聲成為支持向量的概率:
噪聲數量太多

噪聲以新的分布形式出現,與原先樣本集的噪聲分布表現的相當不同。此時噪聲也有大概率落在最大分類間隔中間,從而成為支持向量,大大影響模型。

所以我們常說的魯棒性其實是主要是體現在對Outlier(異常點、離群點)上。

6 SVM缺失值影響
這里說的缺失數據是指缺失某些特征數據,向量數據不完整。SVM沒有處理缺失值的策略(決策樹有)。而SVM希望樣本在特征空間中線性可分,若存在缺失值它們在該特征維度很難正確的分類(例如SVM要度量距離(distance measurement),高斯核,那么缺失值處理不當就會導致效果很差),所以特征空間的好壞對SVM的性能很重要。缺失特征數據將影響訓練結果的好壞。

7 SVM在大數據上有哪些缺陷
SVM的空間消耗主要是在存儲訓練樣本和核矩陣,由于SVM是借助二次規劃來求解支持向量,而求解二次規劃將涉及m階矩陣的計算(m為樣本的個數),當m數目很大時該矩陣的存儲和計算將耗費大量的內存和運算時間。如果數據量很大,SVM的訓練時間就會比較長,所以SVM在大數據的使用中比較受限。

8 SVM之防止過擬合以及如何調節懲罰因子C
過擬合是什么就不再解釋了。SVM其實是一個自帶L2正則項的分類器。SVM防止過擬合的主要技巧就在于調整軟間隔松弛變量的懲罰因子C。C越大表明越不能容忍錯分,當無窮大時則退化為硬間隔分類器。合適的C大小可以照顧到整體數據而不是被一個Outlier給帶偏整個判決平面。至于C大小的具體調參通常可以采用交叉驗證來獲得。每個松弛變量對應的懲罰因子可以不一樣。

一般情況下,低偏差,高方差,即遇到過擬合時,減小C;高偏差,低方差,即遇到欠擬合時,增大C。

9 SVM中樣本偏斜的處理方法
樣本偏斜是指數據集中正負類樣本數量不均,比如正類樣本有10000個,負類樣本只有100個,這就可能使得超平面被“推向”負類(因為負類數量少,分布得不夠廣),影響結果的準確性。

對于樣本偏斜(樣本不平衡)的情況,在各種機器學習方法中,我們有針對樣本的通用處理辦法:如上(下)采樣,數據合成,加權等。

僅在SVM中,我們可以通過為正負類樣本設置不同的懲罰因子來解決樣本偏斜的問題。具體做法是為負類設置大一點的懲罰因子,因為負類本來就少,不能再分錯了,然后正負類的懲罰因子遵循一定的比例,比如正負類數量比為100:1,則懲罰因子的比例直接就定為1:100,具體值要通過實驗確定。

10 SVM優缺點
優點:

非線性映射是SVM方法的理論基礎,SVM利用內積核函數代替向高維空間的非線性映射;

對特征空間劃分的最優超平面是SVM的目標,最大化分類邊際的思想是SVM方法的核心;

支持向量是SVM的訓練結果,在SVM分類決策中起決定作用的是支持向量;

SVM 的最終決策函數只由少數的支持向量所確定,計算的復雜性取決于支持向量的數目,而不是樣本空間的維數,這在某種意義上避免了“維數災難”。

小樣本集上分類效果通常比較好。

少數支持向量決定了最終結果,這不但可以幫助我們抓住關鍵樣本、“剔除”大量冗余樣本,而且注定了該方法不但算法簡單,而且具有較好的“魯棒”性。這種“魯棒”性主要體現在:

①增、刪非支持向量樣本對模型沒有影響;

②支持向量樣本集具有一定的魯棒性;

③有些成功的應用中,SVM 方法對核的選取不敏感

SVM 是一種有堅實理論基礎的新穎的小樣本學習方法。它基本上不涉及概率測度及大數定律等,因此不同于現有的統計方法。從本質上看,它避開了從歸納到演繹的傳統過程,實現了高效的從訓練樣本到預報樣本的“轉導推理”,大大簡化了通常的分類和回歸等問題。

缺點:

SVM算法對大規模訓練樣本難以實施。由于SVM是借助二次規劃來求解支持向量,而求解二次規劃將涉及m階矩陣的計算(m為樣本的個數),當m數目很大時該矩陣的存儲和計算將耗費大量的機器內存和運算時間(上面有講)。

用SVM解決多分類問題存在困難。傳統的SVM就是解決二分類問題的,上面有介紹不少解決多分類問題的SVM技巧,不過各種方法都一定程度上的缺陷。

對缺失值敏感,核函數的選擇與調參比較復雜。

11 樣本失衡時,如何評價分類器的性能好壞?
答:使用ROC曲線。Roc曲線下的面積,介于0.1和1之間。AUC值是一個概率值,當你隨機挑選一個正樣本以及負樣本,當前的分類算法根據計算得到的Score值將這個正樣本排在負樣本前面的概率就是AUC值,AUC值越大,當前分類算法越有可能將正樣本排在負樣本前面。Auc作為數值可以直觀的評價分類器的好壞,值越大越好,隨機情況大概是0.5,所以一般不錯的分類器AUC至少要大于0.5。

選擇ROC和ROC下曲線面積是因為分類問題經常會碰到正負樣本不均衡的問題,此時準確率和召回率不能有效評價分類器的性能,而ROC曲線有個很好的特性:當測試集中的正負樣本的分布變換的時候,ROC曲線能夠保持不變。

12 數據不規范化對SVM的影響?
答:大值特征會掩蓋小值特征(內積計算)。高斯核會計算向量間的距離,也會產生同樣的問題;多項式核會引起數值問題。影響求解的速度。數據規范化后,會丟失一些信息。預測的時候,也要進行規范化

13 線性核VS多項式核VS徑向基核?
答:1)訓練速度:線性核只需要調節懲罰因子一個參數,所以速度快;多項式核參數多,難調;徑向基核函數還需要調節γ,需要計算e的冪,所以訓練速度變慢。【調參一般使用交叉驗證,所以速度會慢】

2)訓練結果:線性核的得到的權重w可以反映出特征的重要性,從而進行特征選擇;多項式核的結果更加直觀,解釋性強;徑向基核得到權重是無法解釋的。

3)適應的數據:線性核:樣本數量遠小于特征數量(n<<m)【此時不需要映射到高維】,或者樣本數量與特征數量都很大【此時主要考慮訓練速度】;徑向基核:樣本數量遠大于特征數量(n>>m)

14 徑向基核函數中參數的物理意義
答:如果σ選得很大的話,高次特征上的權重實際上衰減得非常快,使用泰勒展開就可以發現,當很大的時候,泰勒展開的高次項的系數會變小得很快,所以實際上相當于一個低維的子空間;

如果σ選得很小,則可以將任意的數據映射為線性可分——當然,這并不一定是好事,因為隨之而來的可能是非常嚴重的過擬合問題,因為此時泰勒展開式中有效的項將變得非常多,甚至無窮多,那么就相當于映射到了一個無窮維的空間,任意數據都將變得線性可分。

15 LR與SVM的異同
相同

第一,LR和SVM都是分類算法。

第二,如果不考慮核函數,LR和SVM都是線性分類算法,也就是說他們的分類決策面都是線性的。

第三,LR和SVM都是監督學習算法。

第四,LR和SVM都是判別模型。

第五,LR和SVM都有很好的數學理論支撐。

不同

第一,loss function不同。

邏輯回歸損失函數
支持向量機目標函數

第二,支持向量機只考慮局部的邊界線附近的點,而邏輯回歸考慮全局(遠離的點對邊界線的確定也起作用)。

第三,在解決非線性問題時,支持向量機采用核函數的機制,而LR通常不采用核函數的方法。在計算決策面時,SVM算法里只有少數幾個代表支持向量的樣本參與了計算,也就是只有少數幾個樣本需要參與核計算(即kernal machine解的系數是稀疏的)。然而,LR算法里,每個樣本點都必須參與決策面的計算過程,也就是說,假設我們在LR里也運用核函數的原理,那么每個樣本點都必須參與核計算,這帶來的計算復雜度是相當高的。所以,在具體應用時,LR很少運用核函數機制。?

第四,?線性SVM依賴數據表達的距離測度,所以需要對數據先做normalization,LR不受其影響。一個計算概率,一個計算距離!?

第五,SVM的損失函數就自帶正則!!!(損失函數中的1/2||w||^2項),這就是為什么SVM是結構風險最小化算法的原因!!!而LR必須另外在損失函數上添加正則項!!!所謂結構風險最小化,意思就是在訓練誤差和模型復雜度之間尋求平衡,防止過擬合,從而達到真實誤差的最小化。未達到結構風險最小化的目的,最常用的方法就是添加正則項,SVM的目標函數里居然自帶正則項!!!再看一下上面提到過的SVM目標函數:

支持向量機目標函數

16 LR和SVM哪個更能對付異常點out lier?
我們再來看看,所謂out lier,是怎么產生的,無非有兩種情況,一種就是這個樣本的標簽y搞錯了,一種就是沒搞錯,但這個樣本是一個個例,不具備統計特性。

不論對于哪一種情況,svm會在f將這個out lier預測的比較正確時,就停止,不會一直優化對out lier的預測,因為沒有什么太大意義了。而lr則不同,它會繼續要求f對這個out lier的預測進行優化,并且永不停止,顯然,這樣的優化很可能會削弱f的泛化性能,因為沒有必要死磕out lier 。

答案就是SVM!!!

維數災難

dimensionality

一開始,分類器的性能隨維度的增加不斷上升,過了某一點后不升反降,這種現象稱為維數災難。

事實上,增加特征數量使得高維空間線性可分,相當于在低維空間內訓練一個復雜的非線性分類器。
不過,這個非線性分類器太過“聰明”,僅僅學到了一些特例。如果將其用來辨別那些未曾出現在訓練樣本中的測試樣本時,通常結果不太理想。這其實就是我們在機器學習中學過的過擬合問題。
盡管圖6所示的只采用2個特征的線性分類器分錯了一些訓練樣本,準確率似乎沒有圖4的高,但是,采用2個特征的線性分類器的泛化能力比采用3個特征的線性分類器要強。因為,采用2個特征的線性分類器學習到的不只是特例,而是一個整體趨勢,對于那些未曾出現過的樣本也可以比較好地辨別開來。換句話說,通過減少特征數量,可以避免出現過擬合問題,從而避免“維數災難”。
維數災難參考自機器學習中的維數災難
在高維特征空間中對于樣本距離的度量失去意義。由于分類器基本都依賴于如Euclidean距離(歐式距離),Manhattan距離(曼哈頓距離)等,所以在特征數量過大時,分類器的性能就會出現下降。

所以,我們如何避免“維數災難”?圖1顯示了分類器的性能隨著特征個數的變化不斷增加,過了某一個值后,性能不升反降。這里的某一個值到底是多少呢?
目前,還沒有方法來確定分類問題中的這個閾值是多少,這依賴于訓練樣本的數量,決策邊界的復雜性以及分類器的類型。

理論上,如果訓練樣本的數量無限大,那么就不會存在“維數災難”,我們可以采用任意多的特征來訓練分類器。事實上,訓練樣本的數量是有限的,所以不應該采用過多的特征。
此外,那些需要精確的非線性決策邊界的分類器,比如neural network,knn,decision trees等的泛化能力往往并不是很好,更容易發生過擬合問題。因此,在設計這些分類器時應當慎重考慮特征的數量。相反,那些泛化能力較好的分類器,比如naive Bayesian,linear classifier等,可以適當增加特征的數量。
如果給定了N個特征,我們該如何從中選出M個最優的特征?最簡單粗暴的方法是嘗試所有特征的組合,從中挑出M個最優的特征。事實上,這是非常花時間的,或者說不可行的。其實,已經有許多特征選擇算法(feature selection algorithms)來幫助我們確定特征的數量以及選擇特征。此外,還有許多特征抽取方法(feature extraction methods),比如PCA等。交叉驗證(cross-validation)也常常被用于檢測與避免過擬合問題。

Fisher判別:類內和類間離散度矩陣 線性分類器之fisher線性判別

K-L變換
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容