17個機器學習的常用演算法
根據資料型別的不同,對一個問題的建模有不同的方式。在機器學習或者人工智慧領域,人們首先會考慮演算法的學習方式。在機器學習領域,有幾種主要的學習方式。將演算法按照學習方式分類是一個不錯的想法,這樣可以讓人們在建模和演算法選擇的時候考慮能根據輸入資料來選擇最合適的演算法來獲得最好的結果。
1. 監督式學習:
監督式學習(英語:Supervised learning),是一個機器學習中的方法,可以由訓練資料中學到或建立一個模式(函式 / learning model),並依此模式推測新的例項。訓練資料是由輸入物件(通常是向量)和預期輸出所組成。函式的輸出可以是一個連續的值(稱為迴歸分析),或是預測一個分類標籤(稱作分類)。
一個監督式學習者的任務在觀察完一些訓練範例(輸入和預期輸出)後,去預測這個函式對任何可能出現的輸入的值的輸出。要達到此目的,學習者必須以"合理"的方式從現有的資料中一般化到非觀察到的情況。在人類和動物感知中,則通常被稱為概念學習(concept learning)。
2. 非監督式學習:
在非監督式學習中,資料並不被特別標識,學習模型是為了推斷出資料的一些內在結構。常見的應用場景包括關聯規則的學習以及聚類等。常見演算法包括Apriori演算法以及k-Means演算法。
3. 半監督式學習:
在此學習方式下,輸入資料部分被標識,部分沒有被標識,這種學習模型可以用來進行預測,但是模型首先需要學習資料的內在結構以便合理的組織資料來進行預測。應用場景包括分類和迴歸,演算法包括一些對常用監督式學習演算法的延伸,這些演算法首先試圖對未標識資料進行建模,在此基礎上再對標識的資料進行預測。如圖論推理演算法(Graph Inference)或者拉普拉斯支援向量機(Laplacian SVM.)等。
4. 強化學習:
在這種學習模式下,輸入資料作為對模型的反饋,不像監督模型那樣,輸入資料僅僅是作為一個檢查模型對錯的方式,在強化學習下,輸入資料直接反饋到模型,模型必須對此立刻作出調整。常見的應用場景包括動態系統以及機器人控制等。常見演算法包括Q-Learning以及時間差學習(Temporal difference learning)
5. 演算法類似性
根據演算法的功能和形式的類似性,我們可以把演算法分類,比如說基於樹的演算法,基於神經網路的演算法等等。當然,機器學習的範圍非常龐大,有些演算法很難明確歸類到某一類。而對於有些分類來說, 同一分類的演算法可以針對不同型別的問題。這裡,我們儘量把常用的演算法按照最容易理解的方式進行分類。
6. 迴歸演算法:
迴歸演算法是試圖採用對誤差的衡量來探索變數之間的關係的一類演算法。迴歸演算法是統計機器學習的利器。在機器學習領域,人們說起迴歸,有時候是指一類問題,有時候是指一類演算法,這一點常常會使初學者有所困惑。常見的迴歸演算法包括:最小二乘法(Ordinary Least Square),邏輯迴歸(Logistic Regression),逐步式迴歸(Stepwise Regression),多元自適應迴歸樣條(Multivariate Adaptive Regression Splines)以及本地散點平滑估計(Locally Estimated Scatterplot Smoothing)
7. 基於例項的演算法
基於例項的演算法常常用來對決策問題建立模型,這樣的模型常常先選取一批樣本資料,然後根據某些近似性把新資料與樣本資料進行比較。透過這種方式來尋找最佳的匹配。因此,基於例項的演算法常常也被稱為“贏家通吃”學習或者“基於記憶的學習”。常見的演算法包括 k-Nearest Neighbor(KNN), 學習向量量化(Learning Vector Quantization, LVQ),以及自組織對映演算法(Self-Organizing Map , SOM)。
8. 正則化方法
正則化方法是其他演算法(通常是迴歸演算法)的延伸,根據演算法的複雜度對演算法進行調整。正則化方法通常對簡單模型予以獎勵而對複雜演算法予以懲罰。常見的演算法包括:Ridge Regression,Least Absolute Shrinkage and Selection Operator(LASSO),以及彈性網路(Elastic Net)。
9. 決策樹學習
決策樹演算法根據資料的屬性採用樹狀結構建立決策模型, 決策樹模型常常用來解決分類和迴歸問題。常見的演算法包括:分類及迴歸樹(Classification And Regression Tree, CART), ID3 (Iterative Dichotomiser 3), C4.5, Chi-squared Automatic Interaction Detection(CHAID), Decision Stump, 隨機森林(Random Forest), 多元自適應迴歸樣條(MARS)以及梯度推進機(Gradient Boosting Machine, GBM)
10. 貝葉斯方法
貝葉斯方法演算法是基於貝葉斯定理的一類演算法,主要用來解決分類和迴歸問題。常見演算法包括:樸素貝葉斯演算法,平均單依賴估計(Averaged One-Dependence Estimators, AODE),以及Bayesian Belief Network(BBN)。
11. 基於核的演算法
基於核的演算法中最著名的莫過於支援向量機(SVM)了。基於核的演算法把輸入資料對映到一個高階的向量空間, 在這些高階向量空間裡, 有些分類或者回歸問題能夠更容易的解決。常見的基於核的演算法包括:支援向量機(Support Vector Machine, SVM), 徑向基函式(Radial Basis Function ,RBF), 以及線性判別分析(Linear Discriminate Analysis ,LDA)等。
12.聚類演算法
聚類,就像迴歸一樣,有時候人們描述的是一類問題,有時候描述的是一類演算法。聚類演算法通常按照中心點或者分層的方式對輸入資料進行歸併。所以的聚類演算法都試圖找到資料的內在結構,以便按照最大的共同點將資料進行歸類。常見的聚類演算法包括 k-Means演算法以及期望最大化演算法(Expectation Maximization, EM)。
13. 關聯規則學習
關聯規則學習透過尋找最能夠解釋資料變數之間關係的規則,來找出大量多後設資料集中有用的關聯規則。常見演算法包括 Apriori演算法和Eclat演算法等。
14. 人工神經網路
人工神經網路演算法模擬生物神經網路,是一類模式匹配演算法。通常用於解決分類和迴歸問題。人工神經網路是機器學習的一個龐大的分支,有幾百種不同的演算法。(其中深度學習就是其中的一類演算法,我們會單獨討論),重要的人工神經網路演算法包括:感知器神經網路(Perceptron Neural Network), 反向傳遞(Back Propagation), Hopfield網路,自組織對映(Self-Organizing Map, SOM)。學習向量量化(Learning Vector Quantization, LVQ)。
15. 深度學習
深度學習演算法是對人工神經網路的發展。在近期贏得了很多關注, 特別是百度也開始發力深度學習後, 更是在國內引起了很多關注。在計算能力變得日益廉價的今天,深度學習試圖建立大得多也複雜得多的神經網路。很多深度學習的演算法是半監督式學習演算法,用來處理存在少量未標識資料的大資料集。常見的深度學習演算法包括:受限波爾茲曼機(Restricted Boltzmann Machine, RBN), Deep Belief Networks(DBN),卷積網路(Convolutional Network), 堆疊式自動編碼器(Stacked Auto-encoders)。
16. 降低維度演算法
像聚類演算法一樣,降低維度演算法試圖分析資料的內在結構,不過降低維度演算法是以非監督學習的方式試圖利用較少的資訊來歸納或者解釋資料。這類演算法可以用於高維資料的視覺化或者用來簡化資料以便監督式學習使用。
常見的演算法包括:主成份分析(Principle Component Analysis, PCA),偏最小二乘迴歸(Partial Least Square Regression,PLS), Sammon對映,多維尺度(Multi-Dimensional Scaling, MDS), 投影追蹤(Projection Pursuit)等。
17. 整合演算法:
整合演算法用一些相對較弱的學習模型獨立地就同樣的樣本進行訓練,然後把結果整合起來進行整體預測。整合演算法的主要難點在於究竟整合哪些獨立的較弱的學習模型以及如何把學習結果整合起來。
這是一類非常強大的演算法,同時也非常流行。常見的演算法包括:Boosting, Bootstrapped Aggregation(Bagging), AdaBoost,堆疊泛化(Stacked Generalization, Blending),梯度推進機(Gradient Boosting Machine, GBM),隨機森林(Random Forest)。
學習和關注“人工智慧技術與諮詢”,更多前沿技術值得掌握!
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70020013/viewspace-2909961/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 五個常用的機器學習python庫!機器學習Python
- 圖解資料分析師最常用的10個機器學習演算法圖解機器學習演算法
- 33個機器學習常用資料集機器學習
- 【盤點】Python機器學習常用的10個庫!Python機器學習
- 10個python常用且好用的機器學習及深度學習庫!Python機器學習深度學習
- 【機器學習】新手必看的十種機器學習演算法機器學習演算法
- 自動駕駛中常用的四類機器學習演算法自動駕駛機器學習演算法
- 常用的Python機器學習庫合集,你用過幾個?Python機器學習
- 機器學習常用的分類器比較機器學習
- 機器學習演算法機器學習演算法
- 吳恩達機器學習系列17:支援向量機吳恩達機器學習
- Python機器學習常用庫,你用過哪幾個?Python機器學習
- 機器學習演算法學習筆記機器學習演算法筆記
- 演算法金 | 吳恩達:機器學習的六個核心演算法!演算法吳恩達機器學習
- 機器學習演算法:AdaBoost機器學習演算法
- Python遷移學習:機器學習演算法Python遷移學習機器學習演算法
- 從 0 開始機器學習 - 機器學習演算法診斷機器學習演算法
- 簡明機器學習——01機器學習的幾個基本要素機器學習
- 【機器學習】機器學習建立演算法第1篇:機器學習演算法課程定位、目標【附程式碼文件】機器學習演算法
- 【推薦】最常用的Python機器學習及深度學習庫合集!Python機器學習深度學習
- 機器學習演算法一覽機器學習演算法
- 機器學習——梯度下降演算法機器學習梯度演算法
- 機器學習:整合演算法機器學習演算法
- 機器學習 10大演算法機器學習演算法
- educoder 機器學習 --- kNN演算法機器學習KNN演算法
- 機器學習【模型,策略,演算法】機器學習模型演算法
- 【機器學習演算法】XGBoost原理機器學習演算法
- 機器學習--有監督學習--演算法整理機器學習演算法
- 手擼機器學習演算法 - 感知機機器學習演算法
- 分散式機器學習常用資料集分散式機器學習
- python機器學習演算法——KNN演算法Python機器學習演算法KNN
- 機器學習大牛最常用的5個迴歸損失函式,你知道幾個?機器學習函式
- 常見機器學習演算法背後的數學機器學習演算法
- 機器學習演算法:Logistic迴歸學習筆記機器學習演算法筆記
- 機器學習——K近鄰演算法機器學習演算法
- 機器學習——貝葉斯演算法機器學習演算法
- 機器學習之整合演算法機器學習演算法
- 機器學習——KNN近鄰演算法機器學習KNN演算法