Machine Learning-算法匯總介紹

2021-02-24 Python愛好者社區

之前一個一個講還是有些零散而且更新的速度也慢,所以我還是打算先整理一波全部的算法,再逐一展開介紹比較好,原文來自Jason Brownlee 的文章《A Tour of Machine Learning Algorithms》。

那麼算法很多,如何做好分組有助於我們更好記住它們,作者給出了2條算法分組的方式:

下面就會從這2個角度來闡述一下機器學習的算法。

Algorithms Grouped by Learning Style

關於機器學習算法,有三種不同的學習方式:

1. Supervised Learning(監督學習)

當輸入的數據集(我們稱之為訓練集)的數據有標籤,如好壞標籤,分類標籤等,那麼通過這些數據來建立的預測或者分類模型,屬於監督學習模型。

經典問題:classification and regression.(分類與回歸)

經典算法:Logistic Regression and the Back Propagation Neural Network.(邏輯回歸算法與BP神經網絡算法)

2. Unsupervised Learning(無監督學習)

與監督學習相反,訓練集中的數據並沒有標籤,這意味著你需要從這堆沒有標籤的數據中去提煉它們的特點規則等等,可能是通過數學推理過程來系統地減少冗餘,又或者是通過數據相似度來組織數據。

經典問題:clustering, dimensionality reduction and association rule learning.(聚類、降維、規則學習)

經典算法:the Apriori algorithm and k-Means.(這個專用名詞就不翻譯了)

3. Semi-Supervised Learning(半監督學習)

顧名思義,半監督學習意味著訓練數據有一部分有標籤,而一些沒有,一般而言,當訓練數據量過少時,監督學習得到的模型效果不能滿足需求,因此用半監督學習來增強效果。

經典問題:classification and regression.

經典算法:半監督SVM,高斯模型,KNN模型

Algorithms Grouped By Similarity

根據算法的功能相似性來區分算法也是一種很好的辦法,如基於樹結構的算法或者基於神經網絡的算法。所以我覺得從這個角度來了解這些算法會更加好。

即便這是一個很好的方式,但也絕非完美,仍會有一些算法不能簡單地被歸類,比如Learning Vector Quantization(LVQ,學習矢量量化算法),它既是神經網絡,也是基於距離的算法,所以下面的歸類也只是適用於大多數算法,但是常用的算法。

1. Regression Algorithms(回歸算法)

回歸更多地關注自變量與因變量之間的關係,並通過對誤差的測算來建模,回歸算法是對於數學統計的一個很好應用,也被納入統計機器學習中。

常見的回歸算法包括:

Ordinary Least Squares Regression (OLSR,普通最小二乘回歸)

Linear Regression(線性回歸)

Logistic Regression(邏輯回歸)

Stepwise Regression(逐步回歸)

Multivariate Adaptive Regression Splines (MARS,多元自適應回歸)

Locally Estimated Scatterplot Smoothing (LOESS,本地散點平滑估計)


2. Instance-based Algorithms(基於距離的算法)

基於距離學習的模型非常常見,這類的模型是對訓練集數據進行建模並比較新數據與之的距離,而距離的衡量有很多,常見的是歐氏距離、曼哈頓距離等。

常見的算法包括:

k-Nearest Neighbor (kNN)

Learning Vector Quantization (LVQ,學習矢量量化)

Self-Organizing Map (SOM,自組織映射)

Locally Weighted Learning (LWL,局部加權學習)



3. Regularization Algorithms(正則化算法)

正則化是對另一種方法(通常是回歸方法)的擴展,使基於其複雜性的模型受到懲罰,支持更簡單的模型,這些模型在泛化能力方面也比較好。

常見的正則化算法包括:



4. Decision Tree Algorithms(決策樹算法)決策樹方法構建基於數據中屬性的實際值來建模的,決策樹經常被訓練用於分類和回歸問題,決策樹通常是快速和準確的,並且是機器學習中最受歡迎的。

常見的決策樹算法包括:

Classification and Regression Tree (CART,分類回歸樹算法)

Iterative Dichotomiser 3 (ID3)

C4.5 and C5.0 (不同版本的區別)

Chi-squared Automatic Interaction Detection (CHAID)

Decision Stump(決策樹樁)

MD5(Message-Digest Algorithm,訊息摘要算法)

Conditional Decision Trees(條件決策樹)



5. Bayesian Algorithms(貝葉斯算法)

基於貝葉斯定理的方式來構建的算法,常用語分類與回歸問題。

常見的貝葉斯算法包括:

Naive Bayes(樸素貝葉斯)

Gaussian Naive Bayes(高斯樸素貝葉斯)

Multinomial Naive Bayes(多項式樸素貝葉斯)

Averaged One-Dependence Estimators (AODE)

Bayesian Belief Network (BBN,貝葉斯定理網絡)

Bayesian Network (BN,貝葉斯網絡)



6. Clustering Algorithms(聚類算法)聚類分析又稱群分析,它是研究(樣品或指標)分類問題的一種統計分析方法,同時也是數據挖掘的一個重要算法。

聚類(Cluster)分析是由若干模式(Pattern)組成的,通常,模式是一個度量(Measurement)的向量,或者是多維空間中的一個點。

聚類分析以相似性為基礎,在一個聚類中的模式之間比不在同一聚類中的模式之間具有更多的相似性。

常見的聚類算法包括:



7. Association Rule Learning Algorithms(關聯規則學習算法)關聯規則學習方法提取的規則最能解釋數據中變量之間的關係,這些規則可以在大型多維數據集中發現重要和商業有用的關聯,而被組織利用。

最常見的算法包括:

Apriori algorithm

Eclat algorithm



8. Artificial Neural Network Algorithms(人工神經網絡算法)人工神經網絡是受生物神經網絡結構和/或功能啟發的模型,它們是一類模式匹配,通常用於回歸和分類問題,但實際上是一個巨大的子欄位,包含數百種算法和各種類型的問題類型。

最常見的算法包括:



9. Deep Learning Algorithms(深度學習算法)深度學習方法是利用大量廉價計算的人工神經網絡的更新,它關心的是構建更大更複雜的神經網絡,正如上面所提到的,許多方法都與半監督學習問題有關,在這些問題中,大型數據集包含的標籤數據非常少。

最常見的算法包括:

Deep Boltzmann Machine (DBM)

Deep Belief Networks (DBN)

Convolutional Neural Network (CNN)

Stacked Auto-Encoders



10. Dimensionality Reduction Algorithms(降維算法)像聚類方法一樣,維數的減少有利於尋找到數據的關聯關係,但在這種情況下,是不受監督的方式,或者用較少的信息來概括或描述數據。

這些方法中的許多可以用於分類和回歸。

常見的算法包括:

Principal Component Analysis (PCA)

Principal Component Regression (PCR)

Partial Least Squares Regression (PLSR)

Sammon Mapping

Multidimensional Scaling (MDS)

Projection Pursuit

Linear Discriminant Analysis (LDA)

Mixture Discriminant Analysis (MDA)

Quadratic Discriminant Analysis (QDA)

Flexible Discriminant Analysis (FDA)



11. Ensemble Algorithms(集成算法)集成方法是由多個較弱的模型而組成的模型,這些模型是獨立訓練的,它們的預測在某種程度上是結合在一起來進行總體預測的。

這類算法是把更多精力放到了弱學習器身上,以及如何將它們結合起來。這是一門非常強大的技術,因此非常受歡迎。

常見的算法包括:

Boosting

Bootstrapped Aggregation (Bagging)

AdaBoost

Stacked Generalization (blending)

Gradient Boosting Machines (GBM)

Gradient Boosted Regression Trees (GBRT)

Random Forest



12. Other Algorithms(其他算法)

還有很多算法沒有被覆蓋到,大概還有下面的算法:

Feature selection algorithms(特徵選擇算法)

Algorithm accuracy evaluation(算法精度估計)

Performance measures(效果評估)

Computational intelligence (evolutionary algorithms, etc.)

Computer Vision (CV)

Natural Language Processing (NLP)

Recommender Systems

Reinforcement Learning

Graphical Models

And more…

Further Reading

網絡上對這些算法有更加詳細的講解,需要大家自己動手去查了,這樣子才會更加了解這些算法內容,本文內容來自網絡,還有一些我覺得很有用的資料也在下面,大家可以抽時間去細細研究哈。

1)A Tour of Machine Learning Algorithms

https://machinelearningmastery.com/a-tour-of-machine-learning-algorithms/

2)機器學習該如何入門——張松陽的回答

https://www.zhihu.com/question/20691338/answer/53910077

Python愛好者社區歷史文章大合集

Python愛好者社區歷史文章列表(每周append更新一次)

福利:文末掃碼立刻關注公眾號,「Python愛好者社區」,開始學習Python課程:

關注後在公眾號內回復課程即可獲取:

小編的Python入門視頻課程!!!

崔老師爬蟲實戰案例免費學習視頻。

丘老師數據科學入門指導免費學習視頻。

陳老師數據分析報告製作免費學習視頻。

玩轉大數據分析!Spark2.X+Python 精華實戰課程免費學習視頻。

丘老師Python網絡爬蟲實戰免費學習視頻。

相關焦點

  • Machine Learning-模型調優備忘錄
    Improve Performance With Algorithms機器學習其實都是關於算法的學習。Strategy: 識別出優於平均值的算法,但要對其實驗過程以及結果抱著懷疑態度,並反覆思考。具體策略:重採樣方法:使用什麼方法來估計效果?
  • 機器學習(Machine Learning)&深度學習(Deep Learning)資料(之一)
    《Machine Learning Theory: An Introductory Primer》 介紹:機器學習最基本的入門文章,適合零基礎者42.《機器學習常見算法分類匯總》 介紹:機器學習的算法很多。很多時候困惑人們都是,很多算法是一類算法,而有些算法又是從其他算法中延伸出來的。
  • Machine Learning-常見算法優缺點匯總
    >1、決策樹易於理解和解釋,可以可視化分析,容易提取出規則。2、可以同時處理標稱型和數值型數據。3、測試數據集時,運行速度比較快。4、決策樹可以很好的擴展到大型資料庫中,同時它的大小獨立於資料庫大小。二、決策樹缺點1、對缺失數據處理比較困難。2、容易出現過擬合問題。3、忽略數據集中屬性的相互關聯。
  • awesome-adversarial-machine-learning資源列表
    發現一個不錯的awesome-adversarial-machine-learning的資源列表,有需要的同學可以查看訪問:
  • 吳恩達新書《Machine Learning Yearning》附完整中文版 PDF 下載!
    這本書的目的不是教你機器學習算法理論,而是教你如何使用這些算法。一些技術AI課程會給你錘子工具,而這本書就是讓你學會如何使用這些錘子工具。如果你致力於成為AI技術領導者並渴望為你的團隊找到正確的方向。該書中文版 GItHub 地址:https://github.com/deeplearning-ai/machine-learning-yearning-cn在線閱讀:https://deeplearning-ai.github.io/machine-learning-yearning-cn
  • 人工智慧之機器學習算法體系匯總
    Github開源機器學習系列文章及算法源碼1. 人工智慧之機器學習體系匯總【直接上乾貨】此處梳理出面向人工智慧的機器學習方法體系,主要體現機器學習方法和邏輯關係,理清機器學習脈絡,後續文章會針對機器學習系列講解算法原理和實戰。
  • 《Python 機器學習》-Python Machine Learning(附電子版 pdf)
    全書共16章,除了簡要介紹機器學習及Python在機器學習中的應用,還系統講述了數據分類、數據預處理、模型優化、集成學習、回歸、聚類、神經網絡、深度學習等內容。本書將機器學習背後的基本理論與應用實踐聯繫起來,通過這種方式讓讀者聚焦於如何正確地提出問題、解決問題。本書講解了如何使用Python的核心元素以及強大的機器學習庫,同時還展示了如何正確使用一系列統計模型。
  • CFA二級思維導圖分享:機器學習(Machine Learning)
    CFA二級思維導圖分享:機器學習(machine learning)Reading7主要了解機器學習的一些常見概念,主要分類、了解常用算法的原理及其用途。監督學習算法監督學習可應用於回歸和分類問題,回歸和分類的區別在於輸出的結果是連續變量還是分類變量。常見的回歸算法有懲罰性回歸算法,LASSO。
  • 吳恩達新書《Machine Learning Yearning》中7個實用建議
    大數據文摘轉載自數據派THU作者:Dan Clark, KDnuggets編譯:顧佳妮、丁楠雅本文為你介紹吳恩達新書中的7個使用建議,致力於講明白機器學習算法是怎樣工作的,以及如何構建一個機器學習項目。
  • Machine Learning -- ID3算法
    對於決策樹來說,主要有兩種算法:ID3算法和C4.5算法。C4.5算法是對ID3算法的改進。今天主要先講ID3算法,之後會講C4.5算法和隨機森林等。 Contents     1.ID3算法介紹     3. 信息熵與信息增益     4. ID3算法的C++實現  1.
  • Machine Learning:十大機器學習算法
    摘要: - 機器學習算法分類:監督學習、無監督學習、強化學習 - 基本的機器學習算法:線性回歸、支持向量機(SVM)、最近鄰居(KNN)、邏輯回歸
  • Machine Learning 入門指南(MOOC版)
    特邀字幕組的一位小夥伴寫下了他的學習經驗,感謝作者的分享,麼麼噠~(文中所提到的部分課程已經轉換平臺、或者不再上線、或者由免費改為收費,文中內容供小夥伴們參考)註:MOOC(慕課)——大規模開放在線課程作者介紹:Fengari,字幕組暱稱Naplessss,靠譜男青年一枚,現正在帝都深造。
  • 技術詞條 | 機器學習(Machine Learning)篇
    An overview of machine learning. In Machine learning (pp. 3-23). Springer Berlin Heidelberg.Goldberg, D. E., & Holland, J. H. (1988). Genetic algorithms and machine learning.
  • 《Python 機器學習》-Python Machine Learning第一版+第二版(附電子版 pdf)
    點擊上方「智能與算法之路全書共16章,除了簡要介紹機器學習及Python在機器學習中的應用,還系統講述了數據分類、數據預處理、模型優化、集成學習、回歸、聚類、神經網絡、深度學習等內容。本書將機器學習背後的基本理論與應用實踐聯繫起來,通過這種方式讓讀者聚焦於如何正確地提出問題、解決問題。本書講解了如何使用Python的核心元素以及強大的機器學習庫,同時還展示了如何正確使用一系列統計模型。
  • 教你Machine Learning 玩轉金融入門Notes
    學習宏觀和machine learning之後發現這兩個真是天生一對,這也是我為什麼想要寫這篇文章。 金融和統計背景介紹二. machine learning各個方法和在trading上的應用2.1 Supervised Learning: Regressions 2.2 Non-Parametric Regression: K-Nearest Neighbor and LOESS2.3 Tree Based Method ( Random Forest 和 Extreme
  • ​機器學習(Machine Learning)&深度學習(Deep Learning)資料(之二精選161-315網址)
    《機器學習:學習資源》介紹:裡面融合了很多的資源,例如競賽,在線課程,demo,數據整合等。有分類193.《Statistical foundations of machine learning》介紹:《機器學習的統計基礎》在線版,該手冊希望在理論與實踐之間找到平衡點,各主要內容都伴有實際例子及數據,書中的例子程序都是用R語言編寫的。194.
  • Auto Machine Learning 自動化機器學習筆記
    ⭐適讀人群:有機器學習算法基礎1. auto-sklearn 能 auto 到什麼地步
  • 開源《Python 機器學習》-Python Machine Learning第一版+第二版(附電子版 pdf)
    全書共16章,除了簡要介紹機器學習及Python在機器學習中的應用,還系統講述了數據分類、數據預處理、模型優化、集成學習、回歸、聚類、神經網絡、深度學習等內容。本書將機器學習背後的基本理論與應用實踐聯繫起來,通過這種方式讓讀者聚焦於如何正確地提出問題、解決問題。本書講解了如何使用Python的核心元素以及強大的機器學習庫,同時還展示了如何正確使用一系列統計模型。
  • 名著導讀 | Deep learning
    In computer science, computational learning theory (or just learning theory) is a subfield of artificial intelligence devoted to studying the design and analysis of machine learning algorithms.
  • 博客 | 一份中外結合的 Machine Learning 自學計劃
    根據Siraj的建議:機器學習的涉及的知識比例分布的35%線性代數25%概率論和統計學15%微積分15%算法及其複雜性10%是數據預處理知識強烈建議訂閱:Siraj Raval 的youtube 看他的視頻非常舒服,一種非常獨特的學習方式而且和有用,地址是:https://www.youtube.com