機器學習入門必讀:6種簡單實用算法及學習曲線、思維導圖

2021-01-11 CDA數據分析師

作者 | 盧譽聲來源 | 大數據DT(ID:hzdashuju)

大部分的機器學習算法主要用來解決兩類問題——分類問題和回歸問題。在本文當中,我們介紹一些簡單但經典實用的傳統機器學習算法,讓大家對機器學習算法有一個基本的感性認識。

有的人說機器學習入門並不難,有的人會覺得機器學習難以理解。那麼該如何去學習機器學習這種技術與方法呢?在本文當中,我們將介紹掌握機器領域知識的學習曲線、技術棧以及常用框架。

01 機器學習算法

1. 分類算法

這是一種監督學習方法。有很多算法幫助我們解決分類問題,比如K近鄰、決策樹、樸素貝葉斯、貝葉斯網絡、邏輯回歸、SVM等算法。人工神經網絡和深度學習也往往用來解決分類問題。這些都是常見和常用的分類算法,只不過不同的算法都有其優劣,會應用在不同的場景下。

我們舉一個例子。假設我們知道某個鳥的各個特徵,現在要根據這些特徵確定這隻鳥屬於哪種鳥類,這就是所謂的分類問題。

首先,我們要收集能收集到的所有的鳥類信息,包括鳥的各種特徵以及鳥的種類,其中顏色、體重、翅膀等屬性都屬於特徵,而種類則是鳥的標籤。

其次,我們建立的機器學習的目的就是讓用戶輸入一個鳥的特徵,然後輸出這個鳥的種類,也就是對應的標籤。這個過程就是一個根據鳥的屬性分類的過程,只不過是由計算機自動完成的。

2. 回歸算法

回歸算法也是一種有監督學習方法。回歸算法來自於回歸分析,回歸分析是研究自變量和因變量之間關係的一種預測模型技術。這些技術應用於預測,時間序列模型和找到變量之間的關係。

舉個簡單例子,我們可以通過計算得出在某些情況下伺服器接收請求數量與伺服器CPU、內存佔用壓力之間的關係。

最簡單的回歸算法就是線性回歸,相信大家都對線性回歸有所了解。雖然線性回歸比較簡單,但是越簡單粗暴的算法在面對有些實際問題的時候就越實用。深度學習也可以用於解決回歸問題。

3. 聚類算法

聚類算法是一類無監督學習算法。聚類是研究(樣品或指標)分類問題的一種統計分析方法,同時也是數據挖掘的一個重要算法。

聚類分析以相似性為基礎,在一個聚類中的模式比不在同一聚類中的模式具有更多的相似性,這是聚類分析的最基本原理。聚類分析的算法可以分成很多類方法,比如劃分法、層次法、基於密度的方法、基於網絡的方法和基於模型的方法。

最有名的聚類算法就是K-Means(K-均值)算法,是最為經典的、基於劃分的聚類方法。該算法的主要思路是以空間中k個點為形心進行聚類,將最靠近它們的對象歸類。通過迭代的方法,逐次更新各簇的形心的值,直至得到最好的聚類結果。(形心可以是實際的點,也可以是虛擬點)。

通過該算法我們可以將特徵相似的數據聚合稱為一個數據群組,而將特徵相差較大的數據分開。

4. 關聯分析算法

關聯分析是除了聚類以外的一種常用無監督學習方法。用於發現存在於大量數據集中的關聯性或相關性,從而描述了一個事物中某些屬性同時出現的規律和模式。

關聯分析最典型的應用就是購物車分析。我們可以從用戶的訂單中尋找經常被一起購買的商品,並挖掘這些商品之間的潛在關係,這樣有助於線上、線下商家指定購買與銷售策略。

最著名的關聯分析算法就是Apriori算法和FP-growth算法。Apriori算法就是根據有關頻繁項集特性的先驗知識而命名的。它使用一種稱作逐層搜索的迭代方法。而FP-growth是針對Apriori算法的改進算法,通過兩次掃描事務資料庫,把每個事務所包含的頻繁項目按其支持度降序壓縮存儲到FP-tree中。

在以後發現頻繁模式的過程中,不需要再掃描事務資料庫,而僅在FP-tree中進行查找即可,並通過遞歸調用FP-growth的方法來直接產生頻繁模式,因此在整個發現過程中也不需產生候選模式。該算法克服了Apriori算法中存在的問題,在執行效率上也明顯好於Apriori算法,同時能生成有向關係,比Apriori更為泛用。

5. 集成算法

前面幾節介紹了常見的機器學習算法,但是我們會發現每個單獨的機器學習算法往往只能解決特定場景下的特定問題,如果問題會變得更為複雜,就難以使用一個學習器達到目標。這時候我們就需要集成多個學習器,協同完成機器學習任務。

所謂集成學習就是使用一系列學習器進行學習,並使用某種規則把各個學習結果進行整合,從而獲得比使用單個學習器更好的學習效果的一種機器學習方法。一般情況下,集成學習中的多個學習器都是同質的「弱學習器」。

集成學習的主要思路是先通過一定的規則生成多個學習器,再採用某種集成策略進行組合,然後綜合判斷輸出最終結果。

一般而言,通常所說的集成學習中的多個學習器都是同質的「弱學習器」。基於該「弱學習器」,通過樣本集擾動、輸入特徵擾動、輸出表示擾動、算法參數擾動等方式生成多個學習器,進行集成後獲得一個精度較好的「強學習器」。

最著名的集成算法就是Boosting類算法,包括AdaBoosting等常用算法。這類算法需要同時訓練多個模式,基本思路就是根據訓練時的正確率和錯誤率調整不同學習器的權重,最終預測時使用帶權重的投票法產生最終結果。

還有一類集成算法為Bagging類算法,主要思路是分別訓練幾個不同的模型,然後用模型平均的方法做出最終決策。

最著名的Bagging類算法就是隨機森林,該算法還融入了隨機子空間方法,是以決策樹為基礎分類器的一個集成學習模型,它包含多個由Bagging集成學習技術訓練得到的決策樹,當輸入待分類的樣本時,最終的分類結果由單個決策樹的輸出結果投票決定。

6. 強化算法

強化學習(reinforcement learning)和我們在前面提到的算法不太一樣,其主要用於訓練一個可以感知環境的自製感知器,通過學習選擇能達到其目標的最優動作。這個很具有普遍性的問題應用於學習控制移動機器人,在工廠中學習最優操作工序以及學習棋類對弈等。

當某個智能體在其環境中做出每個動作時,施教者會提供獎勵或懲罰信息,以表示結果狀態的正確與否。該智能體的任務就是從這個非直接的,有延遲的回報中學習,以便後續的動作產生最大的累積效應。

——引用自米歇爾(Mitchell T.M.)《機器學習》

最著名的增強學習算法就是Q-Learning算法。由於增強學習算法不在本文討論範疇,並由於其本身的複雜性,我們在這裡只做簡單的介紹但不做深入討論。

02 如何掌握機器學習

1. 學習曲線

首先,我們必須清楚機器學習是計算機科學中的一個領域,所以要能夠掌握機器學習,真正通過計算機把機器學習應用起來是需要以計算機科學為基礎的。比如要了解基礎的程序設計語言,至少是Python或者MATLAB,要知道基本的數據結構,要知道基本的數據處理技術,要知道基本的數據存儲查詢技術等。

其次,機器學習算法一般都有比較嚴密完善的數學原理,如果不能從數學的角度去理解機器學習,我們是無法理解其中一些本質核心的東西的,那就永遠只能從使用模型的角度對這個領域淺嘗輒止了。

另外機器學習也是一個依靠經驗的領域,許多參數和方法都需要依靠日常的經驗積累出來,從而形成一種解決問題的思維和感覺,這樣在利用機器學習技術解決現有問題時會更快、更有效,往往能找到合適的解決方案。

所以機器學習是有學習曲線的,也許更像一個無限循環的S形學習曲線,一開始學習基本的機器學習算法,做簡單的實驗非常容易入手。根據經驗,進一步學習更多的機器學習算法後可能會逐漸迷失在各種機器學習模型之中,學習難度陡然上升。

當你將大多數經典模型融會貫通之後,你又會覺得各種類型的機器學習算法變化無非幾類,於是學習難度曲線又會變得平滑。但當你開始解決實際問題時,就又會陷入陡峭的學習曲線中,在攀爬式的學習中不斷積累經驗。

總而言之,機器學習是一個需要不斷進行理論和經驗積累的技術,每過一個階段都會遇到相應的瓶頸。這不是一成不變的,而是一個需要不斷學習實踐的技術。只有在不斷遇到問題並解決問題後才能不斷前行。

2. 技術棧

我們把深度學習的技術棧分為3個類別。第1類是基礎數學工具,第2類是機器學習基礎理論方法,第3類是機器學習的實踐工具與框架。我們在這裡對這幾類內容做一個概述,如果讀者在學習過程當中發現有不甚了解的基礎概念或知識時,可以翻看本文尋找你需要的工具和技術並進行了解,循環往復、溫故而知新。

基礎數學工具包括高等數學、線性代數、概率論與數理統計、離散數學、矩陣理論、隨機過程、最優化方法和複變函數等。沒錯,基礎數學工具在機器學習領域乃至其工程領域必不可少,望讀者能夠對這些知識有一個較為全面的掌握。

機器學習基礎理論方法包括決策樹、支持向量機、貝葉斯、人工神經網絡、遺傳算法、概率圖模型、規則學習、分析學習、增強學習,等等。

機器學習的實踐工具與框架類目就比較繁雜了,包括基礎語言與工具、工程框架、數據存儲工具和數據處理工具。

基礎語言與工具有MATLAB及其工具包,Python與相應的庫(NumPy、SciPy、Matplotlib和Scikit-learn等)。工程框架包括TensorFlow、MXNet、Torch和PyTorch、Keras等。數據存儲包括Oracle、SQL Server、MySQL、PostgreSQL等傳統的關係型資料庫,LevelDB、LMDB、Redis等K/V型資料庫,MongoDB等文檔型資料庫,Neo4j等圖形資料庫,HBase、Cassandra等列資料庫,數不勝數。數據處理工具則包括批處理、實時處理兩大類。批處理工具有Hadoop,以及基於Hadoop的Hive和Pig。實時處理工具有Storm和Hurricane實時處理系統。至於非常有名的Spark應該屬於改良的批處理工具,也能用於實時處理場景。

相關焦點

  • 【入門篇】走近思維導圖
    圖片來自於《思維導圖大腦使用說明書》問題:思維導圖的形態是什麼樣的?思維導圖的要素有哪些?思維導圖的核心概念是哪些?----關聯我,請掃碼備註-----往期相關信息-【入門篇】思維導圖中的圖像——繪製姓名籤【入門篇】思維導圖的三種樣貌【工具篇】思維導圖學習之旅一【軟體篇】教你用xmind
  • 全腦思維訓練——思維導圖
    左腦和右腦支配的功能三招七步」構圖法那麼在實踐中該怎樣構建思維導圖呢?讓我們從製作一幅簡單的思維導圖開始。入門你需要準備:一大張白紙一些彩色水筆或鉛筆大腦開放的思維想像力一個想要探究的主題一幅合格的思維導圖具備三個基本特徵:(1)一幅中心圖,代表你要探究的中心主題。例如,要用思維導圖規劃一個項目,你可以在圖的中心畫一個文件夾的圖像。
  • 入門| 機器學習新手必看10大算法
    如果我們知道的話,我們將會直接使用它,不需要用機器學習算法從數據中學習。 最常見的機器學習算法是學習映射 Y = f(X) 來預測新 X 的 Y。這叫做預測建模或預測分析,我們的目標是儘可能作出最準確的預測。 對於想了解機器學習基礎知識的新手,本文將概述數據科學家使用的 top 10 機器學習算法。
  • 機器學習入門案例:鳶尾花數據集分類 繪製PR曲線
    案例演示中使用的是有監督的機器學習算法:SVM 支持向量機 建立模型的流程如下: 如何繪製PR曲線?
  • CFA二級思維導圖分享:機器學習(Machine Learning)
    CFA二級思維導圖分享:機器學習(machine learning)Reading7主要了解機器學習的一些常見概念,主要分類、了解常用算法的原理及其用途。機器學習(Machine Learning)專門研究計算機怎樣模擬或實現人類的學習行為,以獲取新的知識或技能,重新組織已有的知識結構使之不斷改善自身的性能。從實踐的意義上來說,機器學習是一種通過利用數據,訓練出模型,然後使用模型預測的一種方法。
  • 思維導圖簡單畫法?可愛氣泡思維導圖怎麼畫?
    思維導圖在很多公司都很實用,所以學習畫圖的人也很多,但是對於不太會的朋友來說,想要畫一個簡單可愛的思維導圖其實不難,只要大家掌握到方法,今天小編就為大家帶來思維導圖簡單畫法?可愛氣泡思維導圖怎麼畫?讓你輕鬆學會畫可愛的思維導圖。
  • 分享最適合新手入門的10種機器學習算法
    編者按:Medium博主James Le近日在網絡上分享了他認為的最適合新手的機器學習算法,並授權論智進行編譯。以下是我們對原文的編譯,如有錯誤還請指出。 在機器學習界,有這樣一個「沒有免費午餐」的定理。簡單地說,該理論認為,沒有一種算法能解決所有問題,尤其對監督學習而言。
  • 算法應用|機器學習python應用,簡單機器學習項目實踐
    上一篇文章中介紹了機器學習的簡單知識,還有python中進行機器學習實踐需要的生態環境,接下來將會通過鳶尾花分類這個例子對機器學習做一個簡要的介紹。通過一步一步地實現這個項目來介紹以下內容。導入和使用python中機器學習的各個方面的類庫。導入數據,並通過描述性分析、可視化等對數據進行分析。創建六個模型,並從中選擇準確度最高的模型。
  • 思維導圖用得好,提高孩子學習效率,一起來了解思維導圖!
    說起思維導圖 ,我們並不陌生,很多在生活和工作中也已經用過了,只是沒有系統的總結一下。今天,芸含媽媽將思維導圖的基本款簡單介紹一下,目的是引導孩子用正確思維去思考。思維導圖( Mind Map/ Thinking Map ),簡單來說,就是藉助圖表來分析問題、理清思路。
  • 怎麼畫漂亮的思維導圖?畫思維導圖簡單的方法是什麼
    思維導圖在我們的日常生活中運用的十分廣泛,它是一種將我們大腦中抽象的思考過程通過圖文並茂的發散性結構展現在一張圖上,它簡單卻很有效,是一種實用性的思維工具,那麼,思維導圖怎麼畫呢?有沒有簡單的方法呢?下面小編將給大家細細講解,一起來學習吧!
  • 思維導圖學習:探究東尼.博贊的《記憶導圖》
    (5) 此圖是創造性思維、創造力、創造工程的基礎。(6) 此圖是世界上最重要的圖表。(MIG=The Most Important Graph in the World)。2.(Thought Leader in Critical & Creative thinking at Mindwerx international.)他這樣評價這本書:《記憶導圖》是一本必讀的書,除非你不想更成功。3.我對《記憶導圖》的評價:記憶導圖—的確是一本非常值得去讀的書。看完這本書,記憶導圖的這張圖表就深深的刻印在大腦裡,可以指導你去思考、去設計、去記憶。
  • 申一帆思維導圖
    一個20多歲的90後,從小學6年、中學6年、大學4年,有16年的時間都是在學校學習的,這是什麼概念,超過了80%的時間是在學習的;而畢業後的70、80、90後,又在職場中開始新的學習,在工作實踐中學習所需要的技能和專業知識,學習」已經貫穿了每個人生活。這是一個「信息爆炸」的時代。
  • 運用思維導圖學習知識,學習效率將提高數十倍
    思維導圖又叫做心智導圖,是表達發散性思維的有效圖形工具,使用起來非常簡單和相當方便,是一種超實用的思維工具。思維導圖是一種將思維形象化的方法,大家只要學過歷史就知道象形文字,其實就是中國古人最早就發現了思維導圖的原理,只是沒有通過一套理論進行論證。
  • 10本機器學習和數據科學的必讀書籍推薦
    雷鋒網按:Matthew Mayo 是知名數據科學網站 KDnuggets 的副主編,同時也是一位資深的數據科學家、深度學習技術愛好者,在機器學習和數據科學領域具有豐富的科研和從業經驗。近日,他在 KDnuggets 上推薦了一份機器學習和數據科學相關的免費必讀書單,雷鋒網特來與大家分享。
  • 思維導圖:化學學習小助手
    思維導圖是一種圖形工具,也可以稱之為思維地圖或者樹枝圖、概念地圖等,通過思維導圖的圖文技巧,可以設置關鍵詞,通過線條、顏色等將關鍵詞與各個分支線條建立記憶連結,將知識的不同聯繫利用層次圖表現出來。思維導圖對於大腦的記憶十分有幫助,可以充分發揮大腦的想像力,通過知識建構過程形成一個知識網絡資料庫,當用到的時候可以很快調用。九年級的化學知識點多,可以每個單元構建一個思維導圖,或者構建某種物質思維導圖將不同單元的知識快速聯繫在一起,快速確定不同知識之間的聯繫。
  • 丨思維導圖
    真相就是:勻速圓周運動:當迫使物體做勻速圓周運動的合外力剛剛好時(思維導圖中第一個條件),物體就做勻速圓周運動。離心運動:當迫使物體做勻速圓周運動的合外力太過弱(思維導圖中第二個條件),約束不住物體時,物體就會慢慢掙脫,做離心運動。
  • 思維導圖零基礎完全手冊-新手必備
    說起思維導圖,這幾年的發展可以用突飛猛進來形容。有人說,思維導圖是現代偉大的發明之一,它改變了3億人的思維習慣,思維導圖在學習、生活、工作等各個領域的突出貢獻,被現代人譽為「瑞士軍刀般」的思維工具。對於渴望了解導圖的你,不妨靜下心來,花10分鐘時間系統性了解思維導圖的核心內容。
  • 滿分數學,孩子一張圖搞定!——學習工具「思維導圖」的應用
    今天我就給大家介紹一種有效的學習工具——思維導圖。大寶從小我就用思維導圖培養他學習,每次期末前我都讓他畫一張圖,這樣梳理總結後,數學滿分就很容易了,不信你也試試教孩子做一做吧!他熱衷於傳播大腦和學習方面的知識,是世界頂尖的演講家,同時也出版了廣受歡迎的87部著作,成為了一個世界級的超級作家。作為21世紀全球革命性思維工具、學習工具、管理工具,思維導圖已經應用於生活和工作的方方面面,不論是學習總結、出門旅遊、管理溝通還是家庭生活,運用思維導圖帶來的學習能力和清晰的思維方式都改變著現代人的思維習慣,立體性的思維讓你的學習力更強。
  • 丨思維導圖
    ③兩張思維導圖。Duang~Duang~Duang......從上面的思維導圖中,你可以看到,有支撐模型與無支撐模型的具體類型。簡單舉兩個例子。丨思維導圖丨思維導圖丨思維導圖
  • 十分鐘教你學會手繪思維導圖
    用導圖記筆記的好處:1、保持對知識圖景的整體展望,對所學課題有整體的全面理解;2、一本書一張圖;3、思維產生焦點和結構,可以綜合知識;4、增強大腦對知識的渴望;5、可以把自己的思想和想法與書籍、講座或者宣講中表達出來的思想聯繫起來;6、他們複習起來的效果和效率大的多;7、強化你對一些書本,講座和報告的記憶力及理解。