收藏!機器學習演算法優缺點綜述

收藏!機器學習演算法優缺點綜述

來自專欄 從零學AI

原文鏈接:static.coggle.it/diagra

目錄

  • 正則化演算法(Regularization Algorithms)
  • 集成演算法(Ensemble Algorithms)
  • 決策樹演算法(Decision Tree Algorithm)
  • 回歸(Regression)
  • 人工神經網路(Artificial Neural Network)
  • 深度學習(Deep Learning)
  • 支持向量機(Support Vector Machine)
  • 降維演算法(Dimensionality Reduction Algorithms)
  • 聚類演算法(Clustering Algorithms)
  • 基於實例的演算法(Instance-based Algorithms)
  • 貝葉斯演算法(Bayesian Algorithms)
  • 關聯規則學習演算法(Association Rule Learning Algorithms)
  • 圖模型(Graphical Models)

正則化演算法(Regularization Algorithms)

它是另一種方法(通常是回歸方法)的拓展,這種方法會基於模型複雜性對其進行懲罰,它喜歡相對簡單能夠更好的泛化的模型。

例子:

  • 嶺回歸(Ridge Regression)
  • 最小絕對收縮與選擇運算元(LASSO)
  • GLASSO
  • 彈性網路(Elastic Net)
  • 最小角回歸(Least-Angle Regression)

優點:

  • 其懲罰會減少過擬合
  • 總會有解決方法

缺點:

  • 懲罰會造成欠擬合
  • 很難校準

集成演算法(Ensemble algorithms)

集成方法是由多個較弱的模型集成模型組,其中的模型可以單獨進行訓練,並且它們的預測能以某種方式結合起來去做出一個總體預測。

該演算法主要的問題是要找出哪些較弱的模型可以結合起來,以及結合的方法。這是一個非常強大的技術集,因此廣受歡迎。

  • Boosting
  • Bootstrapped Aggregation(Bagging)
  • AdaBoost
  • 層疊泛化(Stacked Generalization)(blending)
  • 梯度推進機(Gradient Boosting Machines,GBM)
  • 梯度提升回歸樹(Gradient Boosted Regression Trees,GBRT)
  • 隨機森林(Random Forest)

優點:

  • 當先最先進的預測幾乎都使用了演算法集成。它比使用單個模型預測出來的結果要精確的多

缺點:

  • 需要大量的維護工作

決策樹演算法(Decision Tree Algorithm)

決策樹學習使用一個決策樹作為一個預測模型,它將對一個 item(表徵在分支上)觀察所得映射成關於該 item 的目標值的結論(表徵在葉子中)。

樹模型中的目標是可變的,可以采一組有限值,被稱為分類樹;在這些樹結構中,葉子表示類標籤,分支表示表徵這些類標籤的連接的特徵。

例子:

  • 分類和回歸樹(Classification and Regression Tree,CART)
  • Iterative Dichotomiser 3(ID3)
  • C4.5 和 C5.0(一種強大方法的兩個不同版本)

優點:

  • 容易解釋
  • 非參數型

缺點:

  • 趨向過擬合
  • 可能或陷於局部最小值中
  • 沒有在線學習

回歸(Regression)演算法

回歸是用於估計兩種變數之間關係的統計過程。當用於分析因變數和一個 多個自變數之間的關係時,該演算法能提供很多建模和分析多個變數的技巧。具體一點說,回歸分析可以幫助我們理解當任意一個自變數變化,另一個自變數不變時,因變數變化的典型值。最常見的是,回歸分析能在給定自變數的條件下估計出因變數的條件期望。

回歸演算法是統計學中的主要演算法,它已被納入統計機器學習。

例子:

  • 普通最小二乘回歸(Ordinary Least Squares Regression,OLSR)
  • 線性回歸(Linear Regression)
  • 邏輯回歸(Logistic Regression)
  • 逐步回歸(Stepwise Regression)
  • 多元自適應回歸樣條(Multivariate Adaptive Regression Splines,MARS)
  • 本地散點平滑估計(Locally Estimated Scatterplot Smoothing,LOESS)

優點:

  • 直接、快速
  • 知名度高

缺點:

  • 要求嚴格的假設
  • 需要處理異常值

人工神經網路

人工神經網路是受生物神經網路啟發而構建的演算法模型。

它是一種模式匹配,常被用於回歸和分類問題,但擁有龐大的子域,由數百種演算法和各類問題的變體組成。

例子:

  • 感知器
  • 反向傳播
  • Hopfield 網路
  • 徑向基函數網路(Radial Basis Function Network,RBFN)

優點:

  • 在語音、語義、視覺、各類遊戲(如圍棋)的任務中表現極好。
  • 演算法可以快速調整,適應新的問題。

缺點:

  • 需要大量數據進行訓練
  • 訓練要求很高的硬體配置
  • 模型處於「黑箱狀態」,難以理解內部機制
  • 元參數(Metaparameter)與網路拓撲選擇困難。

深度學習(Deep Learning)

深度學習是人工神經網路的最新分支,它受益於當代硬體的快速發展。

眾多研究者目前的方向主要集中於構建更大、更複雜的神經網路,目前有許多方法正在聚焦半監督學習問題,其中用於訓練的大數據集只包含很少的標記。

例子:

  • 深玻耳茲曼機(Deep Boltzmann Machine,DBM)
  • Deep Belief Networks(DBN)
  • 卷積神經網路(CNN)
  • Stacked Auto-Encoders

優點/缺點:見神經網路

支持向量機(Support Vector Machines)

給定一組訓練事例,其中每個事例都屬於兩個類別中的一個,支持向量機(SVM)訓練演算法可以在被輸入新的事例後將其分類到兩個類別中的一個,使自身成為非概率二進位線性分類器。

SVM 模型將訓練事例表示為空間中的點,它們被映射到一幅圖中,由一條明確的、儘可能寬的間隔分開以區分兩個類別。

隨後,新的示例會被映射到同一空間中,並基於它們落在間隔的哪一側來預測它屬於的類別。

優點:

  • 在非線性可分問題上表現優秀

缺點:

  • 非常難以訓練
  • 很難解釋

降維演算法(Dimensionality Reduction Algorithms)

和集簇方法類似,降維追求並利用數據的內在結構,目的在於使用較少的信息總結或描述數據。

這一演算法可用於可視化高維數據或簡化接下來可用於監督學習中的數據。許多這樣的方法可針對分類和回歸的使用進行調整。

例子:

  • 主成分分析(Principal Component Analysis (PCA))
  • 主成分回歸(Principal Component Regression (PCR))
  • 偏最小二乘回歸(Partial Least Squares Regression (PLSR))
  • Sammon 映射(Sammon Mapping)
  • 多維尺度變換(Multidimensional Scaling (MDS))
  • 投影尋蹤(Projection Pursuit)
  • 線性判別分析(Linear Discriminant Analysis (LDA))
  • 混合判別分析(Mixture Discriminant Analysis (MDA))
  • 二次判別分析(Quadratic Discriminant Analysis (QDA))
  • 靈活判別分析(Flexible Discriminant Analysis (FDA))

優點:

  • 可處理大規模數據集
  • 無需在數據上進行假設

缺點:

  • 難以搞定非線性數據
  • 難以理解結果的意義

聚類演算法(Clustering Algorithms)

聚類演算法是指對一組目標進行分類,屬於同一組(亦即一個類,cluster)的目標被劃分在一組中,與其他組目標相比,同一組目標更加彼此相似(在某種意義上)。

例子:

  • K-均值(k-Means)
  • k-Medians 演算法
  • Expectation Maximi 封層 ation (EM)
  • 最大期望演算法(EM)
  • 分層集群(Hierarchical Clstering)

優點:

  • 讓數據變得有意義

缺點:

  • 結果難以解讀,針對不尋常的數據組,結果可能無用。

基於實例的演算法(Instance-based Algorithms)

基於實例的演算法(有時也稱為基於記憶的學習)是這樣學 習演算法,不是明確歸納,而是將新的問題例子與訓練過程中見過的例子進行對比,這些見過的例子就在存儲器中。

之所以叫基於實例的演算法是因為它直接從訓練實例中建構出假設。這意味這,假設的複雜度能隨著數據的增長而變化:最糟的情況是,假設是一個訓練項目列表,分類一個單獨新實例計算複雜度為 O(n)

例子:

  • K 最近鄰(k-Nearest Neighbor (kNN))
  • 學習向量量化(Learning Vector Quantization (LVQ))
  • 自組織映射(Self-Organizing Map (SOM))
  • 局部加權學習(Locally Weighted Learning (LWL))

優點:

  • 演算法簡單、結果易於解讀

缺點:

  • 內存使用非常高
  • 計算成本高
  • 不可能用於高維特徵空間

貝葉斯演算法(Bayesian Algorithms)

貝葉斯方法是指明確應用了貝葉斯定理來解決如分類和回歸等問題的方法。

例子:

  • 樸素貝葉斯(Naive Bayes)
  • 高斯樸素貝葉斯(Gaussian Naive Bayes)
  • 多項式樸素貝葉斯(Multinomial Naive Bayes)
  • 平均一致依賴估計器(Averaged One-Dependence Estimators (AODE))
  • 貝葉斯信念網路(Bayesian Belief Network (BBN))
  • 貝葉斯網路(Bayesian Network (BN))

優點:

  • 快速、易於訓練、給出了它們所需的資源能帶來良好的表現

缺點:

  • 如果輸入變數是相關的,則會出現問題

關聯規則學習演算法(Association Rule Learning Algorithms)

關聯規則學習方法能夠提取出對數據中的變數之間的關係的最佳解釋。比如說一家超市的銷售數據中存在規則 {洋蔥,土豆}=> {漢堡},那說明當一位客戶同時購買了洋蔥和土豆的時候,他很有可能還會購買漢堡肉。

例子:

  • Apriori 演算法(Apriori algorithm)
  • Eclat 演算法(Eclat algorithm)
  • FP-growth

圖模型(Graphical Models)

圖模型或概率圖模型(PGM/probabilistic graphical model)是一種概率模型,一個圖(graph)可以通過其表示隨機變數之間的條件依賴結構(conditional dependence structure)。

例子:

  • 貝葉斯網路(Bayesian network)
  • 馬爾可夫隨機域(Markov random field)
  • 鏈圖(Chain Graphs)
  • 祖先圖(Ancestral graph)

優點:

  • 模型清晰,能被直觀地理解

缺點:

  • 確定其依賴的拓撲很困難,有時候也很模糊

《機器學習 第九期》BAT + Google 技術大咖授課;從零到機器學習實戰項目;提供GPU&CPU雙雲平台;掃描下方二維碼試聽


推薦閱讀:

替換空格
二分法查找原理
Leetcodes Solutions 14. Longest Common Prefix
012 Integer to Roman[M]
快速排序

TAG:機器學習 | 深度學習DeepLearning | 演算法 |