一文掌握5種常用的機器學習模型及其優缺點

qwer1030274531發表於2020-09-15

  機器學習模型中有許多種不同方法可以用來解決分類和迴歸問題。對同一個問題來說,這些不同模型都可以被當成解決問題的黑箱來看待。然而,每種模型都源自於不同的演算法,在不同的資料集上的表現也各不相同。最好的方法是使用交叉比對的方式來決定在待測試資料上哪種模型的效果最好。在此嘗試對每種模型的演算法模式進行簡要總結,希望能幫助你找著適合特定問題的解決方法。

  常用機器學習模型

  1.樸素貝葉斯模型

  樸素貝葉斯模型是一個簡單卻很重要的模型,它是一種生成模型,也就是它對問題進行聯合建模,利用機率的乘法法則,我們可以得到:

  

  由於上述形式複雜,因此樸素貝葉斯作出一個假設,也就是在給定y的條件下,x1,...,xn之間的生成機率是完全獨立的,也就是:

  

  注意此處並不是說x1,...,xn的生成機率是相互獨立的,而是在給定y的條件下才是獨立的,也就是這是一種”條件獨立”。瞭解機率圖模型的同學,下面的圖模型就可以很好地闡述這個問題:

  

  既然我們說樸素貝葉斯是一種生成模型,那它的生成過程是怎樣的呢?對於郵件垃圾分類問題,它的生成過程如下:

  首先根據p(y)採用得到y,從而決定當前生成的郵件是垃圾還是非垃圾

  確定郵件的長度n,然後根據上一步得到的y,再由p(xi|y)取樣得到x1,x2,...,xn

  這就是樸素貝葉斯模型。顯然,樸素貝葉斯的假設是一種很強的假設,實際應用中很少有滿足這種假設的的情況,因為它認為只要在確定郵件是垃圾或者非垃圾的條件下,郵件內容地生成就是完全獨立地,詞與詞之間不存在聯絡。

  樸素貝葉斯模型優、缺點

  優點:對小規模的資料表現很好,適合多分類任務,適合增量式訓練。

  缺點:對輸入資料的表達形式很敏感。

  2.決策樹模型

  決策樹模型是一種簡單易用的非引數分類器。它不需要對資料有任何的先驗假設,計算速度較快,結果容易解釋,而且穩健性強

  在複雜的決策情況中,往往需要多層次或多階段的決策。當一個階段決策完成後,可能有m種新的不同自然狀態發生;每種自然狀態下,都有m個新的策略可選擇,選擇後產生不同的結果並再次面臨新的自然狀態,繼續產生一系列的決策過程,這種決策被稱為序列決策或多級決策。此時,如果繼續遵循上述的決策準則或採用效益矩陣分析問題,就容易使相應的表格關係十分複雜。決策樹是一種能幫助決策者進行序列決策分析的有效工具,其方法是將問題中有關策略、自然狀態、機率及收益值等透過線條和圖形用類似於樹狀的形式表示出來。

  決策樹模型就是由決策點、策略點(事件點)及結果構成的樹形圖,一般應用於序列決策中,通常以最大收益期望值或最低期望成本作為決策準則,透過圖解方式求解在不同條件下各類方案的效益值,然後透過比較,做出決策。

  決策樹模型優、缺點

  優點:淺層的(Shallow)決策樹視覺上非常直觀,而且容易解釋;是對資料的結構和分佈不需作任何假設;是可以捕捉住變數間的相互作用(Interaction)。

  缺點:深層的(Deep)決策樹視覺上和解釋上都比較困難;決策樹容易過分微調於樣本資料而失去穩定性和抗震盪性;決策樹對樣本量(Sample Size)的需求比較大;處理缺失值的功能非常有限。

  3.KNN演算法

  KNN即最近鄰演算法,核心思想是如果一個樣本在特徵空間中的k個最相鄰的樣本中的大多數屬於某一個類別,則該樣本也屬於這個類別,並具有這個類別上樣本的特性。該方法在確定分類決策上只依據最鄰近的一個或者幾個樣本的類別來決定待分樣本所屬的類別。 kNN方法在類別決策時,只與極少量的相鄰樣本有關。由於kNN方法主要靠周圍有限的鄰近的樣本,而不是靠判別類域的方法來確定所屬類別的,因此對於類域的交叉或重疊較多的待分樣本集來說,kNN方法較其他方法更為適合。其主要過程為

  計算訓練樣本和測試樣本中每個樣本點的距離(常見的距離度量有歐式距離,馬氏距離等);

  對上面所有的距離值進行排序;

  選前k個最小距離的樣本;

  根據這k個樣本的標籤進行投票,得到最後的分類類別;

  如何選擇一個最佳的K值,這取決於資料。一般情況下,在分類時較大的K值能夠減小噪聲的影響。但會使類別之間的界限變得模糊。一個較好的K值可透過各種啟發式技術來獲取,比如,交叉驗證。另外噪聲和非相關性特徵向量的存在會使K近鄰演算法的準確性減小。

  近鄰演算法具有較強的一致性結果。隨著資料趨於無限,演算法保證錯誤率不會超過貝葉斯演算法錯誤率的兩倍。對於一些好的K值,K近鄰保證錯誤率不會超過貝葉斯理論誤差率。

  KNN演算法優、缺點

  優點:簡單,易於理解,易於實現,無需估計引數,無需訓練;理論成熟,既可以用來做分類也可以用來做迴歸;可用於非線性分類;適合對稀有事件進行分類;準確度高,對資料沒有假設,對outlier不敏感。

  缺點:計算量大;樣本不平衡問題(即有些類別的樣本數量很多,而其它樣本的數量很少);需要大量的記憶體;可理解性差,無法給出像決策樹那樣的規則。

  4.SVM演算法

  SVM(Support Vector Machine)指的是支援向量機,是常見的一種判別方法。在機器學習領域,是一個有監督的學習模型,通常用來進行模式識別、分類以及迴歸分析。

  SVM的主要思想可以概括為兩點:

  它是針對線性可分情況進行分析,對於線性不可分的情況,透過使用非線性對映演算法將低維輸入空間線性不可分的樣本轉化為高維特徵空間使其線性可分,從而使得高維特徵空間採用線性演算法對樣本的非線性特徵進行線性分析成為可能。

  它基於結構風險最小化理論之上在特徵空間中構建最優超平面,使得學習器得到全域性最最佳化,並且在整個樣本空間的期望以某個機率滿足一定上界。

  SVM演算法優、缺點

  優點:可用於線性/非線性分類,也可以用於迴歸;低泛化誤差;容易解釋;計算複雜度較低。

  缺點:對引數和核函式的選擇比較敏感;原始的SVM只比較擅長處理二分類問題。

  5.logistic迴歸模型

  logistic迴歸又稱logistic迴歸分析,是一種廣義的線性迴歸分析模型,常用於資料探勘,疾病自動診斷,經濟預測等領域。例如,探討引發疾病的危險因素,並根據危險因素預測疾病發生的機率等。以胃癌病情分析為例,選擇兩組人群,一組是胃癌組,一組是非胃癌組,兩組人群必定具有不同的體徵與生活方式等。因此因變數就為是否胃癌,值為“是”或“否”,自變數就可以包括很多了,如年齡、性別、飲食習慣、幽門螺桿菌感染等。自變數既可以是連續的,也可以是分類的。然後透過logistic迴歸分析,可以得到自變數的權重,從而可以大致瞭解到底哪些因素是胃癌的危險因素。同時根據該權值可以根據危險因素預測一個人患癌症的可能性。

  Logistic迴歸模型的適用條件:

  因變數為二分類的分類變數或某事件的發生率,並且是數值型變數。但是需要注意,重複計數現象指標不適用於Logistic迴歸。

  殘差和因變數都要服從二項分佈。二項分佈對應的是分類變數,所以不是正態分佈,進而不是用最小二乘法,而是最大似然法來解決方程估計和檢驗問題。

  自變數和Logistic機率是線性關係

  各觀測物件間相互獨立。

  Logistic迴歸實質:發生機率除以沒有發生機率再取對數。就是這個不太繁瑣的變換改變了取值區間的矛盾和因變數自變數間的曲線關係。究其原因,是發生和未發生的機率成為了比值 ,這個比值就是一個緩衝,將取值範圍擴大,再進行對數變換,整個因變數改變。不僅如此,這種變換往往使得因變數和自變數之間呈線性關係,這是根據大量實踐而總結。所以,Logistic迴歸從根本上解決因變數要不是連續變數怎麼辦的問題。還有,Logistic應用廣泛的原因是許多現實問題跟它的模型吻合。例如一件事情是否發生跟其他數值型自變數的關係。

  logistic迴歸模型優、缺點

  優點:實現簡單;分類時計算量非常小,速度很快,儲存資源低。

  缺點:容易欠擬合,一般準確度不太高;能處理兩分類問題(在此基礎上衍生出來的softmax可以用於多分類),且必須線性可分。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/30239065/viewspace-2719595/,如需轉載,請註明出處,否則將追究法律責任。

相關文章