1. 程式人生 > >系統學習機器學習之總結(一)--常見分類演算法優缺點

系統學習機器學習之總結(一)--常見分類演算法優缺點

主要是參考網上各種資源,做了整理。其實,這裡更多的是從基礎版本對比,真正使用的時候,看資料,看改進後的演算法。

1. 五大流派

①符號主義:使用符號、規則和邏輯來表徵知識和進行邏輯推理,最喜歡的演算法是:規則和決策樹

②貝葉斯派:獲取發生的可能性來進行概率推理,最喜歡的演算法是:樸素貝葉斯或馬爾可夫

③聯結主義:使用概率矩陣和加權神經元來動態地識別和歸納模式,最喜歡的演算法是:神經網路

④進化主義:生成變化,然後為特定目標獲取其中最優的,最喜歡的演算法是:遺傳演算法

⑤Analogizer:根據約束條件來優化函式(儘可能走到更高,但同時不要離開道路),最喜歡的演算法是:支援向量機

2. 演化的階段

1980 年代

  • 主導流派:符號主義

  • 架構:伺服器或大型機

  • 主導理論:知識工程

  • 基本決策邏輯:決策支援系統,實用性有限

1990 年代到 2000 年

  • 主導流派:貝葉斯

  • 架構:小型伺服器叢集

  • 主導理論:概率論

  • 分類:可擴充套件的比較或對比,對許多工都足夠好了

2010 年代早期到中期

  • 主導流派:聯結主義

  • 架構:大型伺服器農場

  • 主導理論:神經科學和概率

  • 識別:更加精準的影象和聲音識別、翻譯、情緒分析等

3. 這些流派有望合作,並將各自的方法融合到一起

2010 年代末期

  • 主導流派:聯結主義+符號主義

  • 架構:許多雲

  • 主導理論:記憶神經網路、大規模整合、基於知識的推理

  • 簡單的問答:範圍狹窄的、領域特定的知識共享

2020 年代+

  • 主導流派:聯結主義+符號主義+貝葉斯+……

  • 架構:雲端計算和霧計算

  • 主導理論:感知的時候有網路,推理和工作的時候有規則

  • 簡單感知、推理和行動:有限制的自動化或人機互動

2040 年代+

  • 主導流派:演算法融合

  • 架構:無處不在的伺服器

  • 主導理論:最佳組合的元學習

  • 感知和響應:基於通過多種學習方式獲得的知識或經驗採取行動或做出回答

你應該使用哪種機器學習演算法?這在很大程度上依賴於可用資料的性質和數量以及每一個特定用例中你的訓練目標。不要使用最複雜的演算法,除非其結果值得付出昂貴的開銷和資源。這裡給出了一些最常見的演算法,按使用簡單程度排序。

決策樹

一、  決策樹優點

1、決策樹易於理解和解釋,可以視覺化分析,容易提取出規則。

2、可以同時處理標稱型和數值型資料。

3、測試資料集時,執行速度比較快。

4、決策樹可以很好的擴充套件到大型資料庫中,同時它的大小獨立於資料庫大小。

5、無引數方法,無模型、資料、特徵假設

6、儲存方式簡單

7、對新樣本分類更有效,對各類問題具有普適性。

8、可以提取一系列規則

二、決策樹缺點

1、對缺失資料處理比較困難。

2、容易出現過擬合問題。(對噪聲敏感

3、忽略資料集中屬性的相互關聯。

4、ID3演算法計算資訊增益時結果偏向數值比較多的特徵。

5、非自適應,不支援增量訓練。

三、改進措施

1、對決策樹進行剪枝。可以採用交叉驗證法和加入正則化的方法。

2、使用基於決策樹的combination演算法,如bagging演算法,randomforest演算法,可以解決過擬合的問題

三、應用領域

企業管理實踐,企業投資決策,由於決策樹很好的分析能力,在決策過程應用較多。

KNN演算法

一、KNN演算法的優點

1、KNN是一種線上技術,新資料可以直接加入資料集而不必進行重新訓練

2、KNN理論簡單,容易實現

3、無輸入資料假定,對異常值不敏感

二、KNN演算法的缺點

1、對於樣本容量大的資料集計算量比較大。

2、樣本不平衡時,預測偏差比較大。如:某一類的樣本比較少,而其它類樣本比較多。

3、KNN每一次分類都會重新進行一次全域性運算。

4、k值大小的選擇。

5、KNN實際上相遇於用一種簡單的非引數密度估計方法把貝葉斯規則應用於類條件密度估計

6、沒有解釋性,無法體現資料內在含義

7、資料範圍存在重疊時,分類精度不高

三、KNN演算法應用領域

文字分類、模式識別、聚類分析,多分類領域

支援向量機(SVM)

一、  SVM優點

1、解決小樣本下機器學習問題。

2、解決非線性問題。

3、無區域性極小值問題。(相對於神經網路等演算法)

4、可以很好的處理高維資料集。

5、泛化能力比較強。

二、SVM缺點

1、對於核函式的高維對映解釋力不強,尤其是徑向基函式。

2、對缺失資料敏感。

3、調參麻煩,核函式難選難調

三、SVM應用領域

文字分類、影象識別、主要二分類領域

AdaBoost演算法

一、  AdaBoost演算法優點

1、很好的利用了弱分類器進行級聯。

2、可以將不同的分類演算法作為弱分類器。

3、AdaBoost具有很高的精度。

4、相對於bagging演算法和Random Forest演算法,AdaBoost充分考慮的每個分類器的權重。

二、Adaboost演算法缺點

1、AdaBoost迭代次數也就是弱分類器數目不太好設定,可以使用交叉驗證來進行確定。

2、資料不平衡導致分類精度下降。

3、訓練比較耗時,每次重新選擇當前分類器最好切分點。

三、AdaBoost應用領域

模式識別、計算機視覺領域,用於二分類和多分類場景

樸素貝葉斯演算法

一、  樸素貝葉斯演算法優點

1、對大數量訓練和查詢時具有較高的速度。即使使用超大規模的訓練集,針對每個專案通常也只會有相對較少的特徵數,並且對專案的訓練和分類也僅僅是特徵概率的數學運算而已。

2、支援增量式運算。即可以實時的對新增的樣本進行訓練。

3、樸素貝葉斯對結果解釋容易理解。

二、樸素貝葉斯缺點

1、由於使用了樣本屬性獨立性的假設,所以如果樣本屬性有關聯時其效果不好。

2、類條件概率密度函式,是從訓練樣本估計到的,問題是,實際測試的時候,訓練樣本很難完全代替實際資料,因此,泛化能力會受影響(生成模型的通病吧,資料漂移問題影響大)。

三、樸素貝葉斯應用領域

文字分類、欺詐檢測中使用較多

Logistic迴歸演算法

一、logistic迴歸優點

1、計算代價不高,易於理解和實現

二、logistic迴歸缺點

1、容易產生欠擬合。

2、分類精度不高。

3、這種單決策面的線性擬合分類器,很脆弱(現實大多數非線性)

三、logistic迴歸應用領域

用於二分類領域,可以得出概率值,適用於根據分類概率排名的領域,如搜尋排名等。

Logistic迴歸的擴充套件softmax可以應用於多分類領域,如手寫字識別等。

人工神經網路

一、  神經網路優點

1、分類準確度高,學習能力極強。

2、對噪聲資料魯棒性和容錯性較強。

3、有聯想能力,能逼近任意非線性關係。

二、神經網路缺點

1、神經網路引數較多,權值和閾值。

2、黑盒過程,不能觀察中間結果。

3、學習過程比較長,有可能陷入區域性極小值。

三、人工神經網路應用領域

目前深度神經網路已經應用與計算機視覺,自然語言處理,語音識別等領域並取得很好的效果。