有沒有人可以構建出較為全面的【機器學習】所涉及演算法的結構圖?

希望能夠得到有一定【機器學習】學習/研究/應用經驗的大牛們的幫助,把機器學習這個領域所涉及的一些演算法、方法歸納清楚(儘可能涵蓋重要的內容),總結出具有一定層次結構領域知識結構圖。

為完成上述目標,我們需要首先想明白應該根據怎樣的結構來組織機器學習演算法,比如最為直觀的一種方法:根據演算法的歸屬類別來分大類,然後每個大類下包含有一系列常用的方法。

e.g.:

classification:SVM,決策樹,XXXXXX

clustering:Kmeans,XXXXXX

regression:線性回歸, XXXXXX

dimensionality reduction:PCA, XXXXXX

Topic Model

ensemble learning

kernel method

reinforcement learning

neural network

deep learning

active learning

matrix factorization :SVD,XXXXXX

optimization :gd,sgd,cd,XXXXXX

...

上面可以構建出一顆樹結構,但是這樣分是有一些交叉的,比如ensemble方法也是做了一些分類、回歸的工作,deep learning到底是屬於第幾層次的主題?

這樣的樹結構能否涵蓋主要的機器學習領域?

是否有更好的結構來組織機器學習演算法?

請大家群策群力,幫忙完成一下這個結構圖,謝謝!


maybe u want this: Choosing the right estimator

python下最知名的機器學習包scikit-learn,文檔里推薦的各種演算法的使用場景,點擊各個圖標直接進入演算法頁面


2013年ICML上Yann LeCun給出了一個Deep Learning的tutorial,裡面有一張slide講到了常用的機器學習演算法的關係圖,可能對題主有用。

因為Yann主講Deep Learning,所以他首先把模型分成了Deep model 和Shallow model 兩部分(左邊為shallow model右邊為deep model):

在這個基礎上,他重點圈出了這張圖中的概率模型和神經網路模型:

最後,他又從監督學習非監督學習角度區分了上述演算法:

備註:

上面僅僅是一些部分較常用的演算法,並不全面。雖然不全面,但是還是有其價值的。


分支太多了。online learning ,transfer learning, semi-supervised learning等等,數不清,概念太多了。基礎好的不如直接看MLAPP/PRML/ESL。講的都是主流。或者看下一些機器學習庫的類圖。

deep learning算是第一層次的,分類,回歸,表示學習都能做。只要結構能無限擴展就行。


放個 Scikit-Learn 的機器學習模型決策樹。


可以參考 A Tour of Machine Learning Algorithms

常見的機器學習演算法被歸類為:

1. Regression Algorithms

2. Instance-based Algorithms

3. Regularization Algorithms

4. Decision Tree Algorithms

5. Bayesian Algorithms

6. Clustering Algorithms

7. Association Rule Learning Algorithms

8. Artificial Neural Network Algorithms

9. Deep Learning Algorithms

10. Dimensionality Reduction Algorithms

11. Ensemble Algorithms

12. Other Algorithms


回歸演算法(Regression Algorithms)

回歸是關注變數之間關係的建模,利用模型預測誤差測量進行反覆提煉。回歸方法是統計工作,已納入統計機器學習。這可能是令人困惑,因為我們可以用回歸來引用各類的問題及各類演算法,回歸其實是一個過程。

  • 普通最小二乘法 Ordinary Least Squares
  • 邏輯回歸 Logistic Regression
  • 逐步回歸 Stepwise Regression
  • 多元自適應回歸 MARS
  • 局部散點平滑估計 LOESS

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

基於實例的學習模型是使用那些對於模型很重要訓練數據,這類方法通常使用基於示例數據的資料庫,用新數據和資料庫數據以一種相似度方式從中找到最佳匹配,從而作出預測。出於這個原因,基於實例的方法也被稱為贏家通吃所有的方法和基於記憶的學習。重點放在存儲實例之間的相似性度量表現上。

  • k最鄰近演算法 k-Nearest Neighbour ,kNN
  • 學習矢量量化 Learning Vector Quantization ,LVQ
  • 自組織映射 Self-Organizing Map ,SOM
  • 局部加權學習 Locally Weighted Learning ,LWL

正則化方法(regularization Algorithms)

正則化方法是其他演算法(回歸演算法)的延伸,根據演算法的複雜度對演算法進行調整。正則化方法通常對簡單模型予以獎勵而對複雜演算法予以懲罰。基於正則化方法的擴展 (典型是基於regression回歸方法) 可能比較複雜,越簡單可能會利於推廣,下面列出的正則化方法是因為它們比較流行 強大簡單。

  • 嶺回歸數值計算方法 Ridge Regression
  • 至少絕對的收縮和選擇運算元 LASSO
  • 彈性網路 Elastic Net

決策樹演算法(Decision Tree Algorithms)

決策樹方法是建立一種基於數據的實際屬性值的決策模型。決策使用樹型結構直至基於一個給定記錄的預測決策得到。決策樹的訓練是在分類和回歸兩方面的數據上進行的。

  • 分類回歸樹 Classification and Regression Tree ,CART
  • 迭代二叉樹3代 Iterative Dichotomiser 3 ,ID3
  • 卡方自動交互檢測 CHAID
  • 多元自適應回歸樣條 MARS
  • 梯度推進機 Gradient Boosting Machines ,GBM
  • 單層決策樹 Decision Stump

貝葉斯方法(Bayesian Algorithms)

貝葉斯分析方法(Bayesian Analysis)提供了一種計算假設概率的方法,這種方法是基於假設的先驗概率、給定假設下觀察到不同數據的概率以及觀察到的數據本身而得出的。其方法為,將關於未知參數的先驗信息與樣本信息綜合,再根據貝葉斯公式,得出後驗信息,然後根據後驗信息去推斷未知參數的方法。

  • 樸素貝葉斯 Naive Bayes
  • 平均單依賴估計 AODE
  • 貝葉斯置信網路 Bayesian Belief Network ,BBN

內核方法(Kernel Methods)

最有名的當屬支持向量機的方法, 內核方法更關注將數據映射到高維空間向量,在那裡可以進行一些分類或回歸問題的建模。

  • 支持向量機 Support Vector Machines ,SVM
  • 徑向基函數 Radial Basis Function ,RBF
  • 線性鑒別分析 Linear Discriminate Analysis ,LDA

聚類演算法(Clustering Algorithms)

聚類方法, 類似回歸,是屬於描述問題和方法的類別,聚集方法通常被建模於基於幾何中心centroid-based和層次組織等系統。所有的方法都是有關使用數據中固有的結構,這樣以便更好將數據組織為存在最大共性的分組。

聚類類似於分類,但與分類的目的不同,是針對數據的相似性和差異性將一組數據分為幾個類別。屬於同一類別的數據間的相似性很大,但不同類別之間數據的相似性很小,跨類的數據關聯性很低。

  • k-Means聚類方法
  • 期望最大化演算法 Expectation Maximisation ,EM

關聯規則學習(Association Rule Learning)

關聯規則的學習方法是提取那些能解釋觀察到的變數之間的數據關係的規則。這些規則可以用於在大型多維數據集里,以便能發現重要的和商業上對某個組織或公司有用的的關聯。

關聯規則的挖掘過程主要包括兩個階段:第一階段為從海量原始數據中找出所有的高頻項目組;第二極端為從這些高頻項目組產生關聯規則。關聯規則挖掘技術已經被廣泛應用於金融行業企業中用以預測客戶的需求,各銀行在自己的ATM 機上通過捆綁客戶可能感興趣的信息供用戶了解並獲取相應信息來改善自身的營銷。

  • Apriori 演算法
  • Eclat 演算法

人工神經網路(Artificial Neural Network)

人工神經網路模型的靈感來自於生物神經網路的結構和功能。他們是一類的模式匹配,常用於回歸和分類問題。

神經網路作為一種先進的人工智慧技術,因其自身自行處理、分布存儲和高度容錯等特性非常適合處理非線性的以及那些以模糊、不完整、不嚴密的知識或數據為特徵的處理問題,它的這一特點十分適合解決數據挖掘的問題。典型的神經網路模型主要分為三大類:第一類是以用於分類預測和模式識別的前饋式神經網路模型,其主要代表為函數型網路、感知機;第二類是用於聯想記憶和優化演算法的反饋式神經網路模型,以Hopfield 的離散模型和連續模型為代表。第三類是用於聚類的自組織映射方法,以ART 模型為代表。雖然神經網路有多種模型及演算法,但在特定領域的數據挖掘中使用何種模型及演算法並沒有統一的規則,而且人們很難理解網路的學習及決策過程

  • 因為各種各樣的問題類型有數百種分支的演算法。一些經典的流行的方法:
  • 感知器神經網路 Perceptron
  • 反向傳播 Back-Propagation
  • 霍普菲爾網路 Hopfield Network
  • 自組織映射 Self-Organizing Map ,SOM
  • 學習矢量量化 Learning Vector Quantization ,LVQ


數據科學家知識譜系圖

轉自互聯網。


推薦閱讀:

TAG:演算法 | 機器學習 |