1. 程式人生 > >模式識別之分類器

模式識別之分類器

常見分類器介紹

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個最大特徵值對應的特徵向量構成對映矩陣,對資料進行降維。


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相對。