哈佛商業(yè)評論稱數(shù)據(jù)科學家是21世紀最性感的工作。所以,對于那些ML剛剛開始的人來說,這篇博客機器學習算法工程師需要知道的十大算法是非常有用的。
ML算法是可以從數(shù)據(jù)中學習并從中改進的算法,無需人工干預。學習任務可能包括將輸入映射到輸出,在未標記的數(shù)據(jù)中學習隱藏的結構,或者“基于實例的學習”,其中通過將新實例與來自存儲在存儲器中的訓練數(shù)據(jù)的實例進行比較來為新實例生成類標簽。
1.ML算法的類型
有三種ML算法:
1.監(jiān)督學習:
監(jiān)督學習可以理解為:使用標記的訓練數(shù)據(jù)來學習從輸入變量(X)到輸出變量(Y)的映射函數(shù)。
Y = f(X)
監(jiān)督學習問題可以有兩種類型:
分類:預測輸出變量處于類別形式的給定樣本的結果。例如男性和女性,病態(tài)和健康等標簽。
回歸:預測給定樣本的輸出變量的實值結果。例子包括表示降雨量和人的身高的實值標簽。
在這篇博客中介紹的前5個算法——線性回歸,Logistic回歸,CART,樸素貝葉斯,KNN都是監(jiān)督學習。
人工智能領域的大牛吳恩達曾在他的公開課中提到,目前機器學習帶來的經(jīng)濟價值全部來自監(jiān)督學習。
2.無監(jiān)督學習:
無監(jiān)督學習問題只有輸入變量(X),但沒有相應的輸出變量。它使用無標簽的訓練數(shù)據(jù)來模擬數(shù)據(jù)的基本結構。
無監(jiān)督學習問題可以有兩種類型:
1.關聯(lián):發(fā)現(xiàn)數(shù)據(jù)集合中的相關數(shù)據(jù)共現(xiàn)的概率。它廣泛用于市場籃子分析。例如:如果顧客購買面包,他有80%的可能購買雞蛋。
2.群集:對樣本進行分組,使得同一個群集內的對象彼此之間的關系比另一個群集中的對象更為相似。
3.維度降低:維度降低意味著減少數(shù)據(jù)集的變量數(shù)量,同時確保重要的信息仍然傳達。可以使用特征提取方法和特征選擇方法來完成維度降低。特征選擇選擇原始變量的一個子集。特征提取執(zhí)行從高維空間到低維空間的數(shù)據(jù)轉換。例如:PCA算法是一種特征提取方法。
Apriori,K-means,PCA是無監(jiān)督學習的例子。
3.強化學習:
強化學習是一種機器學習算法,它允許代理根據(jù)當前狀態(tài)決定最佳的下一個動作。
強化算法通常通過反復試驗來學習最佳行為。它們通常用于機器人的訓練,機器人可以通過在碰到障礙物后接收負面反饋來學習避免碰撞。近期的alphago zero就是采用的強化學習的方法,來完成實驗的。
監(jiān)督學習算法
1.線性回歸
在ML中,我們有一組輸入變量(x)用于確定輸出變量(y)。輸入變量和輸出變量之間存在某種關系,ML的目標是量化這種關系。
圖一
在線性回歸中,輸入變量(x)和輸出變量(y)之間的關系表示為形式為y = ax + b的方程。因此,線性回歸的目標是找出系數(shù)a和b的值。這里,a是截距,b是線的斜率。
圖1顯示了數(shù)據(jù)集的繪制x和y值。目標是擬合最接近大部分點的線。
2. Logistic回歸
邏輯回歸最適合二進制分類(y = 0或1的數(shù)據(jù)集,其中1表示默認類)例如:在預測事件是否發(fā)生時,發(fā)生的事件被分類為1。在預測人會生病或不生病,生病的實例記為1)。它是以其中使用的變換函數(shù)命名的,稱為邏輯函數(shù)h(x)= 1 /(1 + e ^ x),它是一個S形曲線。
在邏輯回歸中,輸出是以缺省類別的概率形式出現(xiàn)的。因為這是一個概率,所以輸出在0——1的范圍內。輸出(y值)通過對數(shù)轉換x值,使用對數(shù)函數(shù)h(x)= 1 /(1 + e ^ -x)來生成。然后應用一個閾值來強制這個概率進入二元分類。
圖二
在圖2中,為了確定腫瘤是否是惡性的,默認變量是y = 1(腫瘤=惡性);x變量可以是腫瘤的量度,例如腫瘤的大小。如圖所示,邏輯函數(shù)將數(shù)據(jù)集的各種實例的x值轉換成0到1的范圍。如果概率超過閾值0.5(由水平線示出),則將腫瘤分類如惡性。
邏輯回歸的目標是使用訓練數(shù)據(jù)來找到系數(shù)b0和b1的值,以使預測結果與實際結果之間的誤差最小化。這些系數(shù)是使用最大似然估計技術估計的。
3. CART
分類和回歸樹(CART)是決策樹的一個實現(xiàn)方式。
非終端節(jié)點是根節(jié)點和內部節(jié)點,終端節(jié)點是葉節(jié)點。每個非終端節(jié)點表示單個輸入變量(x), 葉節(jié)點表示輸出變量(y)。該模型用于做出如下預測:遍歷樹的分裂到達一個葉節(jié)點,并輸出葉節(jié)點上存在的值。
圖3中的決策樹根據(jù)年齡和婚姻狀況分類是否購買跑車或小型貨車。如果這個人30多年沒有結婚,我們可以如下預測:“30多年? – >是 – >’已婚? – >不。因此,該模型輸出一個跑車。
圖三
4.樸素貝葉斯
為了計算事件發(fā)生的概率,假設已經(jīng)發(fā)生了另一個事件,我們使用貝葉斯定理。為了計算給定某個變量值的結果的概率,也就是說,根據(jù)我們的先驗知識(d)計算假設(h)為真的概率,我們使用貝葉斯定理如下:
P(h | d)=(P(d | h)* P(h))/ P(d)
· P(h | d)=后驗概率。
· P(d | h)=可能性。數(shù)據(jù)d的概率假設h是真的。
· P(h)=類別先驗概率。假設h的可能性為真(不考慮數(shù)據(jù))。
· P(d)=預測值先驗概率。數(shù)據(jù)的可能性(與假設無關)。
圖四
以圖4為例,如果天氣=“陽光”,結果如何?
為了確定結果play =’yes’或’no’,給定變量weather =’sunny’的值,計算P(是| sunny)和P(no | sunny),并選擇結果的概率較高。
P(是|晴天)=(P(晴天|是)* P(是))/ P(晴天)
=(3/9 * 9/14)/(5/14)
= 0.60
P(no | sunny)=(P(晴天)* P(no))/ P(晴天)
=(2/5 * 5/14)/(5/14)
= 0.40
因此,如果天氣=“晴天”,結果是play =’是’。
5. KNN
K鄰近算法使用整個數(shù)據(jù)集作為訓練集,而不是將數(shù)據(jù)集分成訓練集和測試集。
當新的數(shù)據(jù)實例需要結果時,KNN算法遍歷整個數(shù)據(jù)集,以找到新實例的k個最近的實例,或者與新記錄最相似的k個實例,然后對于分類問題的結果(對于回歸問題)或模式輸出均值。
實例之間的相似度使用歐幾里德距離和Hamming距離等度量來計算。
無監(jiān)督學習算法:
6. Apriori
Apriori算法用于事務數(shù)據(jù)庫挖掘,然后生成關聯(lián)規(guī)則。它在市場籃子分析中被廣泛使用,在這個分析中,檢查數(shù)據(jù)庫中經(jīng)常出現(xiàn)的產品組合。一般來說,我們寫出如果一個人購買項目X,然后他購買項目Y的關聯(lián)規(guī)則為:X – > Y。
例如:如果一個人購買牛奶和糖,那么他很可能會購買咖啡粉。這可以寫成關聯(lián)規(guī)則的形式:{牛奶,糖} – >咖啡粉。
7. K-means
K-means是一種迭代算法,將相似的數(shù)據(jù)分組到簇中。計算k個簇的質心,并將一個數(shù)據(jù)點分配給質心和數(shù)據(jù)點之間距離最小的簇。

步驟1:k-means初始化:
a)選擇k的值。在這里,讓我們取k = 3。
b)將每個數(shù)據(jù)點隨機分配到3個群集中的任何一個。
c)為每個集群計算集群質心。紅色,藍色和綠色星星表示3個星團中的每一個的質心。
步驟2:將每個觀察結果與群集相關聯(lián):
將每個點重新分配到最近的集群質心。這里,上面的5個點被分配到具有藍色質心的簇。按照相同的步驟將點分配給包含紅色和綠色質心的群集。
第3步:重新計算質心:
計算新簇的質心。舊的質心由灰色星星表示,而新的質心是紅色,綠色和藍色星星。
第4步:迭代,然后退出,如果不變。
重復步驟2-3,直到?jīng)]有從一個群集切換到另一個群集。一旦連續(xù)兩個步驟沒有切??換,退出k-means算法。
8. PCA
主成分分析(PCA)用于通過減少變量的數(shù)量來使數(shù)據(jù)易于探索和可視化。這是通過將數(shù)據(jù)中的最大方差捕獲到一個稱為“主要成分”的軸上的新的坐標系來完成的。每個組件是原始變量的線性組合,并且彼此正交。組件之間的正交性表明這些組件之間的相關性為零。
第一個主成分捕捉數(shù)據(jù)中最大變化的方向。第二個主要組件捕獲數(shù)據(jù)中的剩余變量,但變量與第一個組件不相關。
9.隨機森林裝袋
隨機森林是對袋裝決策樹(bagged decision trees)改進。
裝袋(Bagging):裝袋的第一步是創(chuàng)建多個模型,使用Bootstrap Sampling方法創(chuàng)建數(shù)據(jù)集。在Bootstrap Sampling中,每個生成的訓練集由來自原始數(shù)據(jù)集的隨機子樣本組成。這些訓練集中的每一個與原始數(shù)據(jù)集大小相同,但有些記錄會重復多次,有些記錄根本不會出現(xiàn)。然后,整個原始數(shù)據(jù)集被用作測試集。因此,如果原始數(shù)據(jù)集的大小為N,那么每個生成的訓練集的大小也是N,測試集的大小也是N。
裝袋的第二步是在不同的生成的訓練集上使用相同的算法創(chuàng)建多個模型。在這種情況下,讓我們討論隨機森林。與決策樹不同的是,每個節(jié)點被分割成最小化誤差的最佳特征,在隨機森林中,我們選擇隨機選擇的特征來構建最佳分割。在每個分割點處要搜索的特征的數(shù)量被指定為隨機森林算法的參數(shù)。
因此,在用隨機森林裝袋時,每棵樹都是使用記錄的隨機樣本構建的,每個分叉是使用預測變量的隨機樣本構建的。
10. Boosting with AdaBoost
套袋(Bagging)是一個平行的集合,因為每個模型都是獨立建立的。另一方面,boosting是一個連續(xù)的集合,每個模型的建立是基于糾正前一個模型的錯誤分類。
Adaboost代表Adaptive Boosting。

圖9
在圖9中,步驟1,2,3涉及一個稱為決策殘缺的弱學習者(一個1級決策樹,僅基于1個輸入特征的值進行預測)。步驟4結合了以前模型的3個決策樹(在決策樹中有3個分裂規(guī)則)。
步驟1:從1個決策樹開始,對1個輸入變量做出決定:
數(shù)據(jù)點的大小表明我們已經(jīng)應用相同的權重將它們分類為一個圓或三角形。決策樹在上半部分產生了一條水平線來分類這些點。我們可以看到有2個圓圈錯誤地預測為三角形。因此,我們將為這兩個圈子分配更高的權重,并應用另一個決策樹樁。
步驟2:移動到另一個決策樹,以決定另一個輸入變量:
我們觀察到,上一步的兩個錯誤分類圈的大小大于其余點。現(xiàn)在第二個決策樹會試圖正確預測這兩個圓。
步驟3:訓練另一個決策樹來決定另一個輸入變量。
來自上一步的3個錯誤分類圈大于其余的數(shù)據(jù)點。現(xiàn)在,已經(jīng)生成了一條垂直線,用于分類圓和三角形。
步驟4:合并決策樹:
我們已經(jīng)結合了以前3個模型中的分隔符,并觀察到這個模型中的復雜規(guī)則與任何一個單獨的弱學習者相比,正確地分類了數(shù)據(jù)點。
核心關注:拓步ERP系統(tǒng)平臺是覆蓋了眾多的業(yè)務領域、行業(yè)應用,蘊涵了豐富的ERP管理思想,集成了ERP軟件業(yè)務管理理念,功能涉及供應鏈、成本、制造、CRM、HR等眾多業(yè)務領域的管理,全面涵蓋了企業(yè)關注ERP管理系統(tǒng)的核心領域,是眾多中小企業(yè)信息化建設首選的ERP管理軟件信賴品牌。
轉載請注明出處:拓步ERP資訊網(wǎng)http://m.hanmeixuan.com/
本文標題:機器學習初學者必須知道的十大算法
本文網(wǎng)址:http://m.hanmeixuan.com/html/consultation/10839721362.html