常見分類器介紹
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通過線性變換將原始數據變換爲一組各維度線性無關的表示,可用於提取數據的主要特徵分量,常用於高維數據的降維;
小波分析:小波分析有一些變換的操作降低其他干擾可以看做是降維;
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、機器學習中的過擬合
14、PCA——主成分分析法
其實就是取協方差矩陣前s個最大特徵值對應的特徵向量構成映射矩陣,對數據進行降維。
15、時間序列模型
(2)MA模型(moving average model)滑動平均模型,模型參量法譜分析方法之一;
(3)ARMA模型(auto regressive moving average model)自迴歸滑動平均模型,模型參量法高分辨率譜分析方法之一。這種方法是研究平穩隨機過程有理譜的典型方法。它比AR模型法與MA模型法有較精確的譜估計及較優良的譜分辨率性能,但其參數估算比較繁瑣;
(4)GARCH模型稱爲廣義ARCH模型,是ARCH模型的拓展, GARCH對誤差的方差進行了進一步的建模,特別適用於波動性的分析和 預測。
16、三種常見的概率函數
概率密度函數(probability density function,PDF )是對連續隨機變量定義的,本身不是概率,只有對連續隨機變量的取值進行積分後纔是概率;
累積分佈函數(cumulative distribution function,CDF) 能完整描述一個實數隨機變量X的概率分佈,是概率密度函數的積分。對於所有實數x ,與pdf相對。