機器學習中常見4種學習方法、13種算法和27張速查表

2022-01-08 私募工場

私募工場每周活動集錦(歷史論壇)

編輯:私募工場,轉載請註明出處

機器學習的算法很多。很多時候困惑人們都是,很多算法是一類算法,而有些算法又是從其他算法中延伸出來的。這裡,我們從兩個方面來給大家介紹,第一個方面是學習的方式,第二個方面是算法的分類。

一、4大主要學習方式1.監督式學習

 

在監督式學習下,輸入數據被稱為「訓練數據」,每組訓練數據有一個明確的標識或結果,如對防垃圾郵件系統中「垃圾郵件」「非垃圾郵件」,對手寫數字識別中的「1「,」2「,」3「,」4「等。

在建立預測模型的時候,監督式學習建立一個學習過程,將預測結果與「訓練數據」的實際結果進行比較,不斷的調整預測模型,直到模型的預測結果達到一個預期的準確率。

監督式學習的常見應用場景如分類問題和回歸問題。常見算法有邏輯回歸(Logistic Regression)和反向傳遞神經網絡(Back Propagation Neural Network)。

2.強化學習

在這種學習模式下,輸入數據作為對模型的反饋,不像監督模型那樣,輸入數據僅僅是作為一個檢查模型對錯的方式,在強化學習下,輸入數據直接反饋到模型,模型必須對此立刻作出調整。

常見的應用場景包括動態系統以及機器人控制等。常見算法包括Q-Learning以及時間差學習(Temporal difference learning)。 

3. 非監督式學習

在非監督式學習中,數據並不被特別標識,學習模型是為了推斷出數據的一些內在結構。常見的應用場景包括關聯規則的學習以及聚類等。常見算法包括Apriori算法以及k-Means算法。

4.半監督式學習

在此學習方式下,輸入數據部分被標識,部分沒有被標識,這種學習模型可以用來進行預測,但是模型首先需要學習數據的內在結構以便合理的組織數據來進行預測。

應用場景包括分類和回歸,算法包括一些對常用監督式學習算法的延伸,這些算法首先試圖對未標識數據進行建模,在此基礎上再對標識的數據進行預測。如圖論推理算法(Graph Inference)或者拉普拉斯支持向量機(Laplacian SVM.)等。

二、13種常用算法

根據算法的功能和形式的類似性,我們可以把算法分類,比如說基於樹的算法,基於神經網絡的算法等等。當然,機器學習的範圍非常龐大,有些算法很難明確歸類到某一類。

1.回歸算法

回歸算法是試圖採用對誤差的衡量來探索變量之間的關係的一類算法。回歸算法是統計機器學習的利器。在機器學習領域,人們說起回歸,有時候是指一類問題,有時候是指一類算法,這一點常常會使初學者有所困惑。

常見的回歸算法包括:最小二乘法(Ordinary Least Square),邏輯回歸(Logistic Regression),逐步式回歸(Stepwise Regression),多元自適應回歸樣條(Multivariate Adaptive Regression Splines)以及本地散點平滑估計(Locally Estimated Scatterplot Smoothing)。

2. 正則化方法

 

正則化方法是其他算法(通常是回歸算法)的延伸,根據算法的複雜度對算法進行調整。正則化方法通常對簡單模型予以獎勵而對複雜算法予以懲罰。

常見的算法包括:Ridge Regression, Least Absolute Shrinkage and Selection Operator(LASSO),以及彈性網絡(Elastic Net)。

3.決策樹學習

決策樹算法根據數據的屬性採用樹狀結構建立決策模型, 決策樹模型常常用來解決分類和回歸問題。

常見的算法包括:分類及回歸樹(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)

4.基於實例的算法

 

基於實例的算法常常用來對決策問題建立模型,這樣的模型常常先選取一批樣本數據,然後根據某些近似性把新數據與樣本數據進行比較。通過這種方式來尋找最佳的匹配。因此,基於實例的算法常常也被稱為「贏家通吃」學習或者「基於記憶的學習」。

常見的算法包括 k-Nearest Neighbor(KNN), 學習矢量量化(Learning Vector Quantization, LVQ),以及自組織映射算法(Self-Organizing Map , SOM)。

5.貝葉斯方法

貝葉斯方法算法是基於貝葉斯定理的一類算法,主要用來解決分類和回歸問題。

常見算法包括:樸素貝葉斯算法,平均單依賴估計(Averaged One-Dependence Estimators, AODE),以及Bayesian Belief Network(BBN)。

6.聚類算法

 

聚類,就像回歸一樣,有時候人們描述的是一類問題,有時候描述的是一類算法。聚類算法通常按照中心點或者分層的方式對輸入數據進行歸併。所以的聚類算法都試圖找到數據的內在結構,以便按照最大的共同點將數據進行歸類。

常見的聚類算法包括 k-Means算法以及期望最大化算法(Expectation Maximization, EM)。

7.降低維度算法

 

像聚類算法一樣,降低維度算法試圖分析數據的內在結構,不過降低維度算法是以非監督學習的方式試圖利用較少的信息來歸納或者解釋數據。這類算法可以用於高維數據的可視化或者用來簡化數據以便監督式學習使用。

常見的算法包括:主成份分析(Principle Component Analysis, PCA),偏最小二乘回歸(Partial Least Square Regression,PLS), Sammon映射,多維尺度(Multi-Dimensional Scaling, MDS),  投影追蹤(Projection Pursuit)等。

8.關聯規則學習

 

關聯規則學習通過尋找最能夠解釋數據變量之間關係的規則,來找出大量多元數據集中有用的關聯規則。

常見算法包括 Apriori算法和Eclat算法等。

9.遺傳算法(genetic algorithm)

遺傳算法模擬生物繁殖的突變、交換和達爾文的自然選擇(在每一生態環境中適者生存)。

它把問題可能的解編碼為一個向量,稱為個體,向量的每一個元素稱為基因,並利用目標函數(相應於自然選擇標準)對群體(個體的集合)中的每一個個體進行評價,根據評價值(適應度)對個體進行選擇、交換、變異等遺傳操作,從而得到新的群體。

遺傳算法適用於非常複雜和困難的環境,比如,帶有大量噪聲和無關數據、事物不斷更新、問題目標不能明顯和精確地定義,以及通過很長的執行過程才能確定當前行為的價值等。

10.人工神經網絡

人工神經網絡算法模擬生物神經網絡,是一類模式匹配算法。通常用於解決分類和回歸問題。人工神經網絡是機器學習的一個龐大的分支,有幾百種不同的算法。

(其中深度學習就是其中的一類算法,我們會單獨討論),重要的人工神經網絡算法包括:感知器神經網絡(Perceptron Neural Network), 反向傳遞(Back Propagation), Hopfield網絡,自組織映射(Self-Organizing Map, SOM)。


11.深度學習

 

深度學習算法是對人工神經網絡的發展。 在近期贏得了很多關注, 特別是百度也開始發力深度學習後, 更是在國內引起了很多關注。   在計算能力變得日益廉價的今天,深度學習試圖建立大得多也複雜得多的神經網絡。很多深度學習的算法是半監督式學習算法,用來處理存在少量未標識數據的大數據集。

常見的深度學習算法包括:受限波爾茲曼機(Restricted Boltzmann Machine, RBN), Deep Belief Networks(DBN),卷積網絡(Convolutional Network), 堆棧式自動編碼器(Stacked Auto-encoders)。

12.基於核的算法

 

基於核的算法中最著名的莫過於支持向量機(SVM)了。 基於核的算法把輸入數據映射到一個高階的向量空間, 在這些高階向量空間裡, 有些分類或者回歸問題能夠更容易的解決。 

常見的基於核的算法包括:支持向量機(Support Vector Machine, SVM), 徑向基函數(Radial Basis Function ,RBF), 以及線性判別分析(Linear Discriminate Analysis ,LDA)等。

13.集成算法

集成算法用一些相對較弱的學習模型獨立地就同樣的樣本進行訓練,然後把結果整合起來進行整體預測。集成算法的主要難點在於究竟集成哪些獨立的較弱的學習模型以及如何把學習結果整合起來。這是一類非常強大的算法,同時也非常流行。

常見的算法包括:Boosting, Bootstrapped Aggregation(Bagging), AdaBoost,堆疊泛化(Stacked Generalization, Blending),梯度推進機(Gradient Boosting Machine, GBM),隨機森林(Random Forest),GBDT(Gradient Boosting Decision Tree)。

機器學習(Machine Learning)有不少有用的流程圖和機器學習算法表。 這裡只包括所發現的最全面的速查表。

三、27張機器學習速查表

神經網絡架構(NeuralNetwork Architectures)

來源:http://www.asimovinstitute.org/neural-network-zoo/

Microsoft Azure算法流程圖(Microsoft AzureAlgorithm Flowchart)

來源:https://docs.microsoft.com/en-us/azure/machine-learning/machine-learning-algorithm-cheat-sheet

  

SAS算法流程圖(SAS Algorithm Flowchart)

來源:http://blogs.sas.com/content/subconsciousmusings/2017/04/12/machine-learning-algorithm-use/

 

算法總結(AlgorithmSummary)

來源:http://machinelearningmastery.com/a-tour-of-machine-learning-algorithms/

 

來源: http://thinkbigdata.in/best-known-machine-learning-algorithms-infographic/

 

 

算法優缺點(AlgorithmPro/Con)

來源:https://blog.dataiku.com/machine-learning-explained-algorithms-are-your-friend

 

Python

當然Python有很多在線資源。 對於本節只包括所遇到的最好的速查表。

 

算法(Algorithms)

來源:https://www.analyticsvidhya.com/blog/2015/09/full-cheatsheet-machine-learning-algorithms/

 

Python基礎(Python Basics)

來源:http://datasciencefree.com/python.pdf

來源:https://www.datacamp.com/community/tutorials/python-data-science-cheat-sheet-basics#gs.0x1rxEA

 

Numpy

來源:https://www.dataquest.io/blog/numpy-cheat-sheet/

 

來源:http://datasciencefree.com/numpy.pdf

 

來源:https://www.datacamp.com/community/blog/python-numpy-cheat-sheet#gs.Nw3V6CE

 

來源:https://github.com/donnemartin/data-science-ipython-notebooks/blob/master/numpy/numpy.ipynb

 

Pandas

來源:http://datasciencefree.com/pandas.pdf

 

來源:https://www.datacamp.com/community/blog/python-pandas-cheat-sheet#gs.S4P4T=U

 

來源:https://github.com/donnemartin/data-science-ipython-notebooks/blob/master/pandas/pandas.ipynb

Matplotlib

來源:https://www.datacamp.com/community/blog/python-matplotlib-cheat-sheet

 

來源:https://github.com/donnemartin/data-science-ipython-notebooks/blob/master/matplotlib/matplotlib.ipynb

 

Scikit Learn

來源:http://peekaboo-vision.blogspot.de/2013/01/machine-learning-cheat-sheet-for-scikit.html

來源:http://peekaboo-vision.blogspot.de/2013/01/machine-learning-cheat-sheet-for-scikit.html

來源:https://github.com/rcompton/ml_cheat_sheet/blob/master/supervised_learning.ipynb

 

Tensorflow

來源:https://github.com/aymericdamien/TensorFlow-Examples/blob/master/notebooks/1_Introduction/basic_operations.ipynb

 

Pytorch

來源:https://github.com/bfortuner/pytorch-cheatsheet

數學(Math)

如果你真的想了解機器學習,那麼需要對統計(特別是概率)、線性代數和微積分的理解打下堅實的基礎。在本科期間我輔修數學,但是我肯定需要複習這些知識。 這些速查表提供了大多數需要了解最常見的機器學習算法背後的數學。

 

概率(Probability)

來源:http://www.wzchen.com/s/probability_cheatsheet.pdf

 

線性代數(Linear Algebra)

來源:https://minireference.com/static/tutorials/linear_algebra_in_4_pages.pdf

 

統計學(Statistics)

來源:http://web.mit.edu/~csvoss/Public/usabo/stats_handout.pdf

 

微積分(Calculus)

來源:http://tutorial.math.lamar.edu/getfile.aspx?file=B,41,N

私募工場ID:Funds-Works所載信息和資料均來源於公開渠道,對其真實性、準確性、充足性、完整性及其使用的適當性等不作任何擔保。在任何情況下,私募工場ID:Funds-Works所推送文章的信息、觀點等均不構成對任何人的投資建議,也不作為任何法律文件。一切與產品條款有關的信息均以產品合同為準。私募工場ID:Funds-Works不對任何人因使用私募工場ID:Funds-Works所推送文章/報告中的任何內容所引致的任何損失負任何責任。

相關焦點

  • 27 張 AI 超全速查表,神經網絡、機器學習、數據可視化一應俱全(附完整 pdf)
    在機器學習、深度學習研究中,優秀的參考資料和手冊往往能夠助我們事半功倍!今天小編給大家整理了 27 張非常全面的 AI 速查表,以便供大家平時查詢所用!這 27 張速查表內容非常全面,涉及神經網絡、機器學習、深度學習、Python 及其開源庫、數據可視化等。下面,我們分別來詳細介紹。1. 神經網絡基礎
  • 從理論概念到庫函數語法:機器學習速查表全集
    By蔣思源 2017年7月17日  機器之心此前曾提供過機器學習和深度學習最好的九張代碼速查表,不過近日又有博主發表了一次完全的速查表。雖然有一些和以前是重複的,但還是增加了一些新的速查表。本文前一部分主要重點描述新添加的速查表,後一部分再為讀者提供一些以前的速查表資源。這些速查表暫時是保持英文的,因為後面一些不熟悉的庫和函數我們可能編譯不太精確。
  • 機器學習速查表(cheatsheet)資源匯總分享
    本文收集整理了機器學習相關速查表(Machine Learning Cheatsheet),包含機器學習、Python、Numpy、Pandas、Matplotlib、線性代數、微積分、統計學、概率論等相關速查表。
  • 資源 :全機器學習和Python的27個速查表(完整版)
    機器學習(Machine Learning)有不少有用的流程圖和機器學習算法表。 這裡只包括所發現的最全面的速查表。
  • 資源 | 全機器學習和Python的27個速查表(完整版)
    按要求轉載自網路冷眼作者 | Robbie Allen機器學習(Machine Learning)有不少有用的流程圖和機器學習算法表
  • 可能是史上最全機器學習和Python速查表(附下載連結)
    機器學習有很多方面。 當我開始刷新這個主題時,我遇到了各種「速查表」,這裡僅列出了需要知道的給定主題的所有要點。 最後,我收集了與機器學習相關的速查表。有些我經常參考,並且認為其他人也可能從中受益。因此, 這篇文章把我從網上發現的很好的27個速查表分享出來,以供大家參考。後臺回復關鍵詞「速查表」下載27個速查表。
  • 教程| 初學者如何選擇合適的機器學習算法(附速查表)
    選自sas機器之心編譯參與:黃小天、蔣思源、吳攀本文主要的目標讀者是機器學習愛好者或數據科學的初學者,以及對學習和應用機器學習算法解決實際問題抱有濃厚興趣的讀者。面對大量的機器學習算法,初學者通常會問自己一個典型的問題:「我該使用哪一種算法?」
  • 14種機器學習常見算法分類匯總!
    很多人在平時的工作中都或多或少會用到機器學習的算法。這裡總結一下常見的機器學習算法,以供您在工作和學習中參考。機器學習的算法很多。很多時候困惑人們都是,很多算法是一類算法,而有些算法又是從其他算法中延伸出來的。這裡,我們從兩個方面來給大家介紹,第一個方面是學習的方式,第二個方面是算法的類似性。根據數據類型的不同,對一個問題的建模有不同的方式。
  • 十張機器學習和深度學習工程師必備速查表!
    大數據文摘作品作者:Kailash Ahirwar編譯:糖竹子,一針,Aileen對於初學者,機器學習和深度學習課程會很困難
  • Linux學習路徑及命令速查表(8張神圖)
    Linux學習的路線有一些參考,比如:掌握至少50個以上的常用命令,熟悉Linux文件系統和目錄結構,等等。這裡收集了幾張關於Linux學習的路徑及命令速查表...1、Linux學習路徑:       2、Linux桌面介紹:
  • 8種常見機器學習算法比較
    ,在機器學習中選擇一個恰當的算法十分重要,文中主要介紹了8種計算機算法及其優缺點,為大家進行算法選擇時提供一點意見。簡介機器學習算法太多了,分類、回歸、聚類、推薦、圖像識別領域等等,要想找到一個合適算法真的不容易,所以在實際應用中,我們一般都是採用啟發式學習方式來實驗。通常最開始我們都會選擇大家普遍認同的算法,諸如SVM,GBDT,Adaboost,現在深度學習很火熱,神經網絡也是一個不錯的選擇。
  • 機器學習常見算法分類匯總
    機器
  • 送你一份機器學習線性代數速查表(Numpy版)
    作者:景略集智連結:https://zhuanlan.zhihu.com/p/48580747來源:知乎Python 中的數值計算庫
  • 分享最適合新手入門的10種機器學習算法
    如果我們知道的話就直接使用了,不需要再用機器學習算法從大量的數據中學習它。 最常見的機器學習類型是學習映射Y=f(X),用它來預測Y的值。這被稱為預測建模或預測分析,我們的目標是做出最準確的預測。 對於想了解機器學習基礎知識的新手,以下是數據科學家最常用的10種機器學習算法。
  • CS229 機器學習速查表
    提供了監督學習、無監督學習、深度學習、機器學習技巧等重點內容。其中監督學習主要介紹了回歸、分類和生成,無監督主要介紹了聚類與降維算法,深度學習概述了三種神經網絡。監督學習如下所示監督學習介紹了非常多基礎概念,包括損失函數、梯度下降和最大似然估計等。其中損失函數展示了常用的最小二乘損失函數、折頁損失函數和交叉熵損失函數等,每一種損失函數的圖像、定義和應用的算法都展示在其中。
  • 機器學習 | 43種開源數據集(附地址/調用方法)
    學習機器學習是一個不斷探索和實驗的過程,因此,本文將主要介紹常見的開源數據集,便於讀者學習和實驗各種機器學習算法。在學習機器學習算法的過程中,我們經常需要數據來學習和試驗算法,但是找到一組適合某種機器學習類型的數據卻不那麼方便。下文對常見的開源數據集進行了匯總。
  • 文本分類的14種算法
    AI算法工程   公眾號:datayx之前介紹了14種文本分類中的常用算法,包括8種傳統算法:k臨近、決策樹、多層感知器、樸素貝葉斯(包括伯努利貝葉斯、高斯貝葉斯和多項式貝葉斯)、邏輯回歸和支持向量機;4種集成學習算法:隨機森林、AdaBoost、lightGBM和xgBoost;2種深度學習算法:前饋神經網絡和LSTM。
  • 大數據之機器學習常見算法分類匯總
    機器學習無疑是當前數據分析領域的一個熱點內容。很多人在平時的工作中都或多或少會用到機器學習的算法。這裡IT經理網為您總結一下常見的機器學習算法,以供您在工作和學習中參考。機器學習的算法很多。在機器學習領域,有幾種主要的學習方式。將算法按照學習方式分類是一個不錯的想法,這樣可以讓人們在建模和算法選擇的時候考慮能根據輸入數據來選擇最合適的算法來獲得最好的結果。監督式學習
  • 10 種機器學習算法的要點
    我今天所給出的,也許是我這輩子寫下的最有價值的指南這篇指南的目的,是為那些有追求的數據科學家和機器學習狂熱者們,簡化學習旅途。這篇指南會讓你動手解決機器學習的問題,並從實踐中獲得真知。我提供的是幾個機器學習算法的高水平理解,以及運行這些算法的 R 和 Python 代碼。這些應該足以讓你親自試一試了。
  • 機器學習中五種常用的聚類算法
    機器學習中五種常用的聚類算法 李倩 發表於 2018-05-25 17:10:51 聚類是機器學習中一種重要的無監督算法,它可以將數據點歸結為一系列特定的組合。