模式識別之分類器

常見分類器介紹

1、SVM分類器(監督學習分類器)

答:訓練樣本必須先標識不同類別,然後進行訓練。SVM算法就是找一個超平面,對於已經被標記的訓練樣本,SVM訓練得到一個超平面,使得兩個類別訓練集中距離超平面最近的樣本之間的垂直距離要最大(也就是如下圖所示的兩個虛線距離最大)。如下圖所示,就是將兩種不同類別的樣本特徵分隔開,且分割面要在最優分隔位置。


例如,有兩個樣本點,第一個點爲正樣本,它的特徵向量是(0,-1);第二個點爲負樣本,它的特徵向量是(2,3),從這兩個樣本點組成的訓練集構建一個線性SVM分類器:兩個樣本之間的中點向量是(1,1),樣本點之間的連線斜率爲2,由於分割線與樣本連線垂直且經過中點,那麼樣本SVM分割面方程爲:x+2y=3,如圖:


2、KNN分類器(監督學習分類器)

答:(1)定義:KNN即K最近鄰,是最簡單的機器學習算法之一。已知訓練樣本必須先標識,然後進行訓練得到未知樣本分類。對於未知樣本,按照某種計算距離找出它在訓練集中的k個最近鄰(監督學習:k個最鄰近樣本的分類已知),如果k個近鄰中多數樣本屬於哪個類別,就將它判決爲那一個類別。

由於採用k投票機制,所以能夠減小噪聲的影響。該方法在確定分類決策上只依據最鄰近的一個或者幾個樣本的類別來決定待分樣本所屬的類別。由於KNN方法主要靠周圍有限的鄰近的樣本,而不是靠判別類域的方法來確定所屬類別的,因此對於類域的交叉或重疊較多的待分樣本集來說,KNN方法較其他方法更爲適合。

(2)算法流程:

①準備數據,對數據進行預處理;

②選用合適的數據結構存儲訓練數據和測試元組;

③設定參數,如k;

④維護一個大小爲k的的按距離由大到小的優先級隊列,用於存儲最近鄰訓練元組。隨機從訓練元組中選取k個元組作爲初始的最近鄰元組,分別計算測試元組到這k個元組的距離,將訓練元組標號和距離存入優先級隊列;

⑤遍歷訓練元組集,計算當前訓練元組與測試元組的距離,將所得距離L 與優先級隊列中的最大距離Lmax;

⑥ 進行比較。若L>=Lmax,則捨棄該元組,遍歷下一個元組。若L < Lmax,刪除優先級隊列中最大距離的元組,將當前訓練元組存入優先級隊列;

⑦遍歷完畢,計算優先級隊列中k 個元組的多數類,並將其作爲測試元組的類別;

⑧測試元組集測試完畢後計算誤差率,繼續設定不同的k值重新進行訓練,最後取誤差率最小的k 值。

具體如下:

如果K=3,那麼離綠色點最近的有2個紅色三角形和1個藍色的正方形,這3個點投票,於是綠色的這個待分類點屬於紅色的三角形 ;
如果K=5,那麼離綠色點最近的有2個紅色三角形和3個藍色的正方形,這5個點投票,於是綠色的這個待分類點屬於藍色的正方形 ;

(3)特別適合於多分類問題(multi-modal,對象具有多個類別標籤), kNN比SVM的表現要好。不足之處是計算量較大、樣本不平衡時分類效果差(如一個類的樣本容量很大,而其他類樣本容量很小時,有可能導致當輸入一個新樣本時,該樣本的K個鄰居中大容量類的樣本佔多數。)。

針對這些缺陷,出現了改進方法:1)訓練前對數據進行預處理,剔除關聯性小的數據(針對計算量大的改進);2)採用權值的方法(和該樣本距離小的鄰居權值大)來改進(不平衡時分類效果差);

3、K-means分類器(非監督學習分類器)

答:(1)定義:設定參數k,然後將事先輸入的n個數據對象劃分爲k個聚類,使得所獲得的每個聚類滿足內部對象相似度較高,而不同聚類中的對象相似度較小。注:這個是不需要事先標記的,所以是非監督學習。

(2)算法描述:

①適當選擇k個類的初始中心; 

②在第m次迭代中,對任意一個樣本,求其到k個類中心的距離,將該樣本歸到距離最短的那個類; 

③利用均值方法更新該類的中心; 

④對於所有的C個聚類中心,如果利用(2)(3)的迭代法更新後,值保持不變,則迭代結束;否則繼續迭代。

(3)缺點:

①聚類中心的個數K 需要事先給定,但在實際中這個 K 值的選定是非常難以估計的,很多時候,事先並不知道給定的數據集應該分成多少個類別才最合適;
②K-means需要人爲地確定初始聚類中心,不同的初始聚類中心可能導致完全不同的聚類結果(可以使用K-means++算法來解決)。

(4)改進型算法——K-Means++

k-means++算法就是用來改進K-Means算法的K個類中心不好選擇的缺陷。它選擇初始中心的基本思想就是:初始的聚類中心之間的相互距離要儘可能的遠。

4、KNN和K-Means的區別

答:如下表:


5、有關分類算法的準確率,召回率,F1 值的描述

答:對於二類分類問題常用的評價指標是:精準度(precision)與召回率(recall)。

通常以關注的類爲正類,其他類爲負類,分類器在測試數據集上的預測或正確或不正確,4種情況出現的總數分別記作:
TP——將正類預測爲正類數
FN——將正類預測爲負類數
FP——將負類預測爲正類數
TN——將負類預測爲負類數

由此:
精準率定義爲:P = TP / (TP + FP)
召回率定義爲:R = TP / (TP + FN)
F1值定義爲: F1 = 2 P*R / (P + R)

精準率和召回率和F1取值都在0和1之間,精準率和召回率高,F1值也會高。

關於精準率和召回率的理解舉例:

假設一共有10篇文章,裏面4篇是你要找的。根據你某個算法,找到其中5篇,但是實際上在這5篇裏面,只有3篇是真正你要找的。那麼你的這個算法的precision是3/5=60%;這個算法的recall是3/4=75%,也就是一共有用的這4篇裏面,該算法只找到了其中3篇。

注:在信息檢索領域,精確率和召回率又被稱爲查準率和查全率:

查準率=檢索出的相關信息量 / 檢索出的信息總量;
查全率=檢索出的相關信息量 / 系統中的相關信息總量;

6、核函數

答:核函數是一個特徵分類工具,爲了使特徵更容易分離或更好的結構化,把低維特徵數據映射到高維數據的工具。比如,一組特徵是以一維線段形式混合存在的,無法使用分割面分割,就可使用核函數將組特徵轉化爲2維或更高維形式的組合,從而使得分割得以實現。舉例,如圖:

本來是二維的數據,現在我們把它映射的高維。這裏也需要說明下,低維到高維,維數沒有一個數量上的標準,可能就是無限維到無限維。

Mercer 定理:任何半正定的函數都可以作爲核函數;

幾種常用的核:

1) 線性核
線性內核是最簡單的內核函數。 它由內積<x,y>加上可選的常數c給出。 使用線性內核的內核算法通常等於它們的非內核對應物,即具有線性內核的KPCA與標準PCA相同:

2)多項式核函數

多項式核是非固定內核。 多項式內核非常適合於所有訓練數據都歸一化的問題。表達式:k(x,y)=(αx ^ T y + c)^ d;

可調參數是斜率α,常數項c和多項式度d。

3)高斯核

4)指數的內核

5)拉普拉斯算子核


7、判別式模型與生成式模型的區別

答:生成式模型(Generative Model)與判別式模型(Discrimitive Model)是分類器常遇到的概念,它們的區別在於:對於輸入x和類別標籤y,生成式模型估計它們的聯合概率分佈P(x,y),判別式模型估計條件概率分佈P(y|x)。生成式模型可以根據貝葉斯公式得到判別式模型,但反過來不行。

生成式模型:

判別式分析

樸素貝葉斯

K近鄰(KNN)

混合高斯模型

隱馬爾科夫模型(HMM)

貝葉斯網絡

Sigmoid Belief Networks

馬爾科夫隨機場(Markov Random Fields)

深度信念網絡(DBN)

判別式模型:

線性迴歸(Linear Regression)

邏輯迴歸(Logistic Regression)

神經網絡(NN)

支持向量機(SVM)

高斯過程(Gaussian Process)

條件隨機場(CRF)

CART(Classification and Regression Tree)


8、模式識別分類中,先驗概率未知時的處理方法

答:有兩種處理方式,如下(1)(2)所示:

(1)使用N-P決策:

在貝葉斯決策中,對於先驗概率p(y),分爲已知和未知兩種情況:

1)p(y)已知,直接使用貝葉斯公式求後驗概率即可; 

2)p(y)未知,可以使用聶曼-皮爾遜決策(N-P決策)來計算決策面。 

(2)使用最大最小損失規則:

最大最小損失規則主要作用就是解決使用最小損失規則時先驗概率未知或難以計算的問題。



9、在分類問題遇到正負樣本數據量不等的情況的處理方法

答:機器學習分類問題中的不均衡問題是指正負樣本相差10倍以上,解決方法一般有:重採樣、欠採樣、調整權值。

比如正樣本爲10w條數據,負樣本只有1w條數據,可以採取以方法處理:

1)將負樣本重複10次,生成10w樣本量,打亂順序參與分類(可視爲重採樣變形形式);

2)從10w正樣本中隨機抽取1w參與分類(欠採樣);

3)將負樣本每個權重設置爲10,正樣本權重爲1,參與訓練過程(調整權值)。



10、機器學習的降維方法

答:機器學習中常見的特徵降維方法包括:Lasso,PCA,小波分析,LDA,奇異值分解SVD,拉普拉斯特徵映射,SparseAutoEncoder,局部線性嵌入LLE,等距映射Isomap。

LASSO:通過參數縮減達到降維的目的;

主成分分析PCA(Principal Component Analysis):又稱爲霍特林變換(K-L變換),是一種常用的數據分析方法。PCA通過線性變換將原始數據變換爲一組各維度線性無關的表示,可用於提取數據的主要特徵分量,常用於高維數據的降維;

小波分析:小波分析有一些變換的操作降低其他干擾可以看做是降維;

線性判別式分析(Linear Discriminant Analysis):簡稱爲LDA,也稱爲Fisher線性判別(Fisher Linear Discriminant,FLD),是模式識別的經典算法,在1996年由Belhumeur引入模式識別和人工智能領域;

拉普拉斯映射:拉普拉斯特徵映射將處於流形上的數據,在儘量保留原數據間相似度的情況下,映射到低維下表示;

深度學習SparseAutoEncoder稀疏自編碼就是用少於輸入層神經元數量的隱含層神經元去學習表徵輸入層的特徵,相當於把輸入層的特徵壓縮了,所以是特徵降維;

矩陣奇異值分解SVD:在PCA算法中,用到了SVD,類似PCA,可以看成一類;

LLE局部線性嵌入(Locally linear embedding,LLE):是一種非線性降維算法,它能夠使降維後的數據較好地保持原有流形結構。LLE可以說是流形學習方法最經典的工作之一。很多後續的流形學習、降維方法都與LLE有密切聯繫;

Isomap等距映射:Isomap是一種非迭代的全局優化算法,通過一種原本試用於歐式空間的算法MDS,達到降維的目的。




11、常見的機器學習算法

答:機器學習算法通常可以被分爲三大類 ——監督式學習,非監督式學習和強化學習(又叫“半監督學習”)

監督式學習主要用於一部分數據集(訓練數據)有某些可以獲取的熟悉標籤,但剩餘的樣本缺失並且需要預測的場景。

非監督式學習主要用於從未標註數據集中挖掘相互之間的隱含關係。

強化學習介於兩者之間 —— 每一步預測或者行爲都或多或少有一些反饋信息,但是卻沒有準確的標籤或者錯誤提示。

監督學習分爲兩大類:迴歸分析和分類

迴歸分析(Regression Analysis):如果拿二維平面來說,就是對已經存在的點(訓練數據)進行分析,擬合出適當的函數模型y=f(x),這裏y就是數據的標籤,而對於一個新的自變量x,通過這個函數模型得到標籤y;

分類(Classification):訓練數據是特徵向量與其對應的標籤,同樣要通過分析特徵向量,對於一個新的向量得到其標籤。
迴歸分析與分類區別其實就是數據的區別就是迴歸是針對連續數據,分類是針對離散數據。

非監督式學習也可分爲兩大類:聚類問題和關聯問題
聚類問題:
聚類學習問題指的是我們想在數據中發現內在的分組,比如以購買行爲對顧客進行分組。常見的聚類算法有:基於類心的聚類算法、基於連接的聚類算法、基於密度的聚類算法、概率型算法、降維算法、神經網絡/深度學習;
關聯問題:關聯問題學習問題指的是我們想發現數據的各部分之間的聯繫和規則,例如購買X物品的顧客也喜歡購買Y物品。

常用的機器學習算法:決策樹,隨機森林算法,邏輯迴歸,SVM分類器,樸素貝葉斯分類器,K最近鄰算法(KNN),K-Means算法,Adaboost 算法,神經網絡,隱馬爾可夫、聚類算法;

其中,

監督學習算法:決策樹,隨機森林算法,邏輯迴歸,最小二乘法,SVM分類器,樸素貝葉斯分類器,KNN,Adaboost 算法,神經網絡,馬爾可夫

無監督學習算法:K-Means算法、主成分分析(PCA)、奇異值分解(SVD)、聚類算法、獨立成分分析(ICA)。




12、常見的類概率求解問題

答:舉例:
解析:概率問題基本上都是貝葉斯和全概率互相結合求解,他們之間往往可以通過條件概率建立聯繫。
本題中,要判斷 xi 屬於w1,還是w2,就是判斷 p(w1 | xi) 和 p(w2 | xi)的大小關係,哪個概率大就屬於對應的類別。即在xi已經發生的情況下,xi 屬於哪個類別(w1 ,w2)的可能性更大:
p(w1 | xi) = p(xiw1) / p(xi) = p(xi | w1) * p(w1) / p(xi) = 0.6*(2 - xi) / p(xi) // 因爲xi都在 (1,2)範圍
p(w2 | xi) = p(xiw2) / p(xi) = p(xi | w2) * p(w2) / p(xi) = 0.4*(xi - 1) / p(xi) // 因爲xi都在 (1,2)範圍
上面兩等式相減,得:
delta = p(w1 | xi) - p(w2 | xi) = (1.6 - xi) / p(xi);
所以,在上訴樣本中,大於1.6的,屬於w2,小於1.6的,屬於w1。

補充一下貝葉斯公式:


13、機器學習中的過擬合

答:機器學習訓練中過擬合發生的原因有兩點:
(1)訓練集偏少,造成訓練特徵不具有代表性;
(2)網絡過於複雜,造成訓練獲取的特徵過於苛刻;

解決方法對應也是兩個方向:
(1)增加訓練集;
(2)簡單化訓練網絡,包括:
①正則化,一般有L1正則與L2正則等;
②early stopping,即在發生過擬合的臨界點前提前停止;
③減少神經網絡的隱含層節點數,減小模型複雜度。


14、PCA——主成分分析法

答:PCA的目的是降維,就是“降噪”和“去冗餘”
“降噪”的目的就是使保留下來的維度間的相關性儘可能小,而“去冗餘”的目的就是使保留下來的維度含有的“能量”即方差儘可能大。
有什麼數據結構能同時表現不同維度間的相關性以及各個維度上的方差呢?
自然是協方差矩陣。協方差矩陣的主對角線上的元素是各個維度上的方差(即能量),其他元素是兩兩維度間的協方差(即相關性)。
(1)先來看“降噪”,讓保留下的不同維度間的相關性儘可能小,也就是說讓協方差矩陣中非對角線元素都基本爲零。達到這個目的的方式就是矩陣對角化。
(2)對於“去冗餘”,對角化後得到的矩陣,其對角線上是協方差矩陣的特徵值,它表示各個維度本身應該擁有的能量。通過對角化後,剩餘維度間的相關性已經減到最弱,已經不會再受“噪聲”的影響了,故此時擁有的能量應該比先前大了。對角化後的協方差矩陣,對角線上較小的新方差對應的就是那些該去掉的維度。所以我們只取那些含有較大能量(特徵值)的維度,其餘的就舍掉即可。(3)PCA的本質:其實就是對角化協方差矩陣,目的是讓維度之間的相關性最小(降噪),保留下來的維度的能量最大(去冗餘)。
(3)主要思想:尋找表示數據分佈的最優子空間(降維,可以去相關)。

其實就是取協方差矩陣前s個最大特徵值對應的特徵向量構成映射矩陣,對數據進行降維。


具體可以參考:http://lanbing510.info/public/file/posts/pca.doc


15、時間序列模型

答:(1)AR模型是一種線性預測,即已知N個數據,可由模型推出第N點前面或後面的數據(設推出P點),所以其本質類似於插值;
(2)MA模型(moving average model)滑動平均模型,模型參量法譜分析方法之一;
(3)ARMA模型(auto regressive moving average model)自迴歸滑動平均模型,模型參量法高分辨率譜分析方法之一。這種方法是研究平穩隨機過程有理譜的典型方法。它比AR模型法與MA模型法有較精確的譜估計及較優良的譜分辨率性能,但其參數估算比較繁瑣;
(4)GARCH模型稱爲廣義ARCH模型,是ARCH模型的拓展, GARCH對誤差的方差進行了進一步的建模,特別適用於波動性的分析和 預測。

16、三種常見的概率函數

答:概率質量函數 (probability mass function,PMF)是離散隨機變量在各特定取值上的概率;
概率密度函數(probability density function,PDF )是對連續隨機變量定義的,本身不是概率,只有對連續隨機變量的取值進行積分後纔是概率;
累積分佈函數(cumulative distribution function,CDF) 能完整描述一個實數隨機變量X的概率分佈,是概率密度函數的積分。對於所有實數x ,與pdf相對。
發佈了38 篇原創文章 · 獲贊 202 · 訪問量 42萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章