雲栖号: https://yqh.aliyun.com 第一手的上雲資訊,不同行業精選的上雲企業案例庫,基于衆多成功案例萃取而成的最佳實踐,助力您上雲決策!
導讀:大部分的機器學習算法主要用來解決兩類問題——分類問題和回歸問題。在本文當中,我們介紹一些簡單但經典實用的傳統機器學習算法,讓大家對機器學習算法有一個基本的感性認識。
有的人說機器學習入門并不難,有的人會覺得機器學習難以了解。那麼該如何去學習機器學習這種技術與方法呢?在本文當中,我們将介紹掌握機器領域知識的學習曲線、技術棧以及常用架構。

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應該屬于改良的批處理工具,也能用于實時處理場景。
原文釋出時間:2020-01-07
本文作者:盧譽聲
本文來自阿裡雲雲栖号合作夥伴“
大資料DT”,了解相關資訊可以關注“
”