1. 程式人生 > >機器學習:初學者的十大基本演算法

機器學習:初學者的十大基本演算法

轉載於:KDnuggets

目的:初學者,共同學習

具體網址為:https://www.kdnuggets.com/2017/10/top-10-machine-learning-algorithms-beginners.html/2

一,導言

 
哈佛商業評論” 這篇文章稱 “資料科學家“21世紀最性感的工作,對ML演算法的研究已經獲得了巨大的推動。所以,對於那些ML開始的人來說,我們決定重啟一下我們非常流行的Gold部落格 - 儘管這篇文章是針對初學者。

ML演算法是那些可以從資料中學習並從經驗中改進的演算法,無需人工干預。學習任務可能包括學習將輸入對映到輸出的函式,在未標記的資料中學習隱藏的結構或者基於例項的學習

,其中通過將新例項(行)與來自儲存在儲存器中的訓練資料的例項進行比較來為新例項生成類標籤。基於例項的學習不會建立具體例項的抽象。

IIML演算法的型別

有三種ML演算法:

1.監督學習:

監督學習可以解釋如下:使用標記的訓練資料來學習從輸入變數(X)到輸出變數(Y)的對映函式。

Y = fX

監督學習問題可以有兩種型別:

一個。分類:預測輸出變數處於類別形式的給定樣本的結果。例子包括男性和女性,病態和健康等標籤。

迴歸:預測輸出變數為實值形式的給定樣本的結果。例子包括表示降雨量和人的身高的實值標籤。

我們在這篇部落格中介紹的前5個演算法 - 線性迴歸,Logistic迴歸,CART,樸素貝葉斯,KNN

是監督學習的例子。

合奏是一種監督學習。這意味著結合多個不同弱ML模型的預測來預測新的樣本。我們覆蓋的演算法9-10 - 隨機森林套袋,XGBoost增強是集合技術的例子。

2.無監督學習:

無監督學習問題只有輸入變數(X),但沒有相應的輸出變數。它使用無標籤的訓練資料來模擬資料的基本結構。

無監督學習問題可以有兩種型別:

一個。關聯:發現集合中專案共現的概率。它廣泛用於市場籃子分析。例如:如果顧客購買麵包,他有80%的可能購買雞蛋。

群集:對樣本進行分組,使得同一個群集內的物件彼此之間的關係比來自另一個群集中的物件更為相似。

C。維度降低:正如其名稱,維度降低意味著減少資料集的變數數量,同時確保重要的資訊仍然傳達。可以使用特徵提取方法和特徵選擇方法來完成維度降低。特徵選擇選擇原始變數的一個子集。特徵提取執行從高維空間到低維空間的資料轉換。例如:

PCA演算法是一種特徵提取方法。

我們在這裡介紹的演算法6-8AprioriK-meansPCA是無監督學習的例子。

3.強化學習:

強化學習是一種機器學習演算法,它允許代理根據其當前狀態決定最佳的下一個動作,通過學習將最大化獎勵的行為。

強化演算法通常通過反覆試驗來學習最佳行為。它們通常用於機器人 - 機器人可以通過在碰到障礙物後接收負面反饋來學習避免碰撞,以及在視訊遊戲中 - 反覆試驗顯示特定動作可以激發玩家的獎勵。代理人然後可以使用這些獎勵來了解遊戲的最佳狀態並選擇下一個動作。

III。量化ML演算法的流行度

 
這些
 調查報告對10種最流行的資料探勘演算法進行了量化。但是,這樣的清單是主觀的,就像在引用的檔案中那樣,被調查參與者的樣本規模非常狹窄,由資料探勘的高階從業人員組成。受訪者是ACM KDD創新獎,IEEE ICDM研究貢獻獎的獲獎者; KDD-06ICDM'06SDM'06的計劃委員會成員ICDM'06145名與會者。

本部落格中排名前十的演算法適用於初學者,主要是我在孟買大學計算機工程學士學位期間從資料倉庫與挖掘DWM)課程中學到的。DWM課程是對ML演算法領域的一個很好的介紹。我特別把最後兩個演算法(集合方法)包括在他們的流行的基礎上,以贏得Kaggle比賽。希望你喜歡這篇文章!

IV。監督學習演算法

 
1.
線性迴歸

ML中,我們有一組輸入變數(x)用於確定輸出變數(y)。輸入變數和輸出變數之間存在關係。ML的目標是量化這種關係。


1:線性迴歸表示為y = a + bx形式的線。資源

線上性迴歸中,輸入變數(x)和輸出變數(y)之間的關係表示為形式為y = a + bx的方程。因此,線性迴歸的目標是找出係數ab的值。這裡,a是截距,b是線的斜率。

1顯示了資料集的繪製的xy值。目標是擬合最接近大部分點的線。這將減少資料點的y值和行之間的距離('錯誤')。

 
2. Logistic
迴歸

線性迴歸預測是連續的值(以cm為單位的降雨量),邏輯迴歸預測是在應用變換函式之後的離散值(不管學生是否通過/失敗)。

邏輯迴歸最適用於二元分類(資料集中y = 01,其中1表示預設類)。例如:在預測事件是否發生時,發生的事件被分類為1.在預測人會生病或不生病,生病的例項記為1)。它是以其中使用的變換函式命名的,稱為邏輯函式hx= 1 /1 + e ^ x),它是一個S形曲線。

在邏輯迴歸中,輸出是以預設類的概率形式出現的(不同於直接生成輸出的線性迴歸)。由於這是一個概率,所以輸出位於0-1的範圍內。輸出(y值)通過對數轉換x值,使用對數函式hx= 1 /1 + e ^ -x)來生成。然後應用閾值將該概率強制為二元分類。

2Logistic迴歸用於確定腫瘤是惡性還是良性的。如果概率hx> = 0.5,則分類為惡性。資源

在圖2中,為了確定腫瘤是否是惡性的,預設變數是y = 1(腫瘤=惡性); x變數可以是腫瘤的量度,例如腫瘤的大小。如圖所示,邏輯函式將資料集的各種例項的x值轉換為01的範圍。如果該概率跨越閾值0.5(由水平線示出),則將腫瘤分類如惡性。

邏輯迴歸方程Px= e ^b0 + b1 * x/1 + e ^b0 + b1 * x))可以轉化為lnpx/ 1-p = b0 + b1* x

邏輯迴歸的目標是使用訓練資料來找到係數b0b1的值,以使預測結果與實際結果之間的誤差最小化。這些係數是使用最大似然估計技術估計的。

 
3. CART

分類和迴歸樹(CART)是決策樹的一個實現,其中包括ID3C4.5等。

非終端節點是根節點和內部節點。終端節點是葉節點。每個非終端節點表示一個輸入變數(x)和該變數上的分裂點葉節點表示輸出變數(y)。該模型用於進行預測:漫遊樹的分裂以到達葉節點並輸出葉節點處存在的值。

3中的決策樹根據他們的年齡和婚姻狀況分類了一個人是否會購買跑車或小型貨車。如果這個人超過30年,而且還沒有結婚,我們走樹的過程如下:超過30年?” - > - >'已婚? - >不。因此,該模型輸出一個跑車。


3:決策樹的部分 資源

 
4.
樸素貝葉斯

為了計算事件發生的概率,假設已經發生了另一事件,我們使用貝葉斯定理。為了計算給定某個變數值的結果的概率,也就是說,根據我們的先驗知識(d)計算假設(h)為真的概率,我們使用貝葉斯定理如下:

Ph | d=Pd | h* Ph))/ Pd

哪裡

·        Ph | d=後驗概率。假設h為真的概率為給定資料d,其中Ph | d= Pd1 | h* Pd2 | h* ... * Pdn | h* Pd

·        Pd | h=可能性。給出假設h為真的資料d的概率。

·        Ph=類別先驗概率。假設h的可能性為真(不考慮資料)

·        Pd=預測值先驗概率。資料的可能性(與假設無關)

這個演算法被稱為天真的,因為它假定所有的變數都是相互獨立的,這是在現實世界中的例子,這是一個天真的假設。


4:使用樸素貝葉斯使用變數'天氣'預測'遊戲'的狀態。

以圖4為例,如果天氣='晴天',結果如何?

為了確定結果play ='yes''no',給定變數weather ='sunny'的值,計算P(是| sunny)和Pno | sunny),並選擇結果的概率較高。

- > P(是|晴天)=P(晴天|是)* P(是))/ P(晴天)

 =3/9 * 9/14/5/14

 = 0.60

- > Pno | sunny=P(晴天)* Pno))/ P(晴天)

 =2/5 * 5/14/5/14

 = 0.40

因此,如果天氣='晴天',結果是play ='yes'

 
5. KNN

k最近鄰演算法使用整個資料集作為訓練集,而不是將資料集分成訓練集和測試集。

當新的資料例項需要結果時,KNN演算法遍歷整個資料集,以找到新例項的k個最近的例項,或者與新記錄最相似的k個例項,然後輸出均值分類問題的結果(對於迴歸問題)或模式(最常見的分類)。k的值是使用者指定的。

例項之間的相似度使用歐幾里德距離和漢明距離等度量來計算。

V.無監督學習演算法:

 
6. Apriori

Apriori演算法用於事務資料庫挖掘頻繁專案集,然後生成關聯規則。它在市場籃子分析中被廣泛使用,其中檢查在資料庫中經常發生的產品組合。一般來說,我們寫出如果一個人購買專案X,然後他購買專案Y'的關聯規則為:X - > Y.

例如:如果一個人購買牛奶和糖,那麼他很可能會購買咖啡粉。這可以寫成關聯規則的形式:{牛奶,糖} - >咖啡粉。關聯規則是在跨越支援和信心的門檻之後產生的。


5:關聯規則XY的支援度,置信度和提升的公式。資源

支援度量有助於修剪在頻繁專案集生成期間要考慮的候選專案集的數量。這一支援措施以Apriori原則為指導。Apriori原則規定,如果一個專案集合頻繁,那麼它的所有子集也必須頻繁。

 
7. K-means

K-means是一種迭代演算法,將類似資料分組為簇。它計算k個簇的質心,並將資料點分配給質心和資料點之間距離最小的簇。


6K-means演算法的步驟 資源

步驟1k-means初始化:

a)選擇k的值。在這裡,讓我們取k = 3

b)將每個資料點隨機分配給3個群集中的任何一個。

c)為每個叢集計算叢集質心。紅色,藍色和綠色星星表示3個星團中的每一個星團的質心。

步驟2:將每個觀察結果與群集相關聯:

將每個點重新分配到最近的叢集質心。這裡,高5個點被分配到具有藍色質心的群集。按照相同的步驟將點分配給包含紅色和綠色質心的群集。

3步:重新計算質心:

計算新簇的質心。舊的質心由灰色星星表示,而新的質心是紅色,綠色和藍色星星。

4步:迭代,然後退出,如果不變。

重複步驟2-3,直到沒有從一個群集切換到另一個群集。一旦連續兩個步驟沒有切​​換,退出k-means演算法。

 
8. PCA

主成分分析(PCA)用於通過減少變數的數量來使資料易於探索和視覺化。這是通過將資料中的最大方差捕獲到一個稱為主要成分的軸上的新的座標系來完成的。每個元件是原始變數的線性組合,並且彼此正交。元件之間的正交性表明這些元件之間的相關性為零。

第一個主成分捕捉資料中最大變化的方向。第二個主要元件捕獲資料中的剩餘變數,但變數與第一個元件不相關。類似地,所有連續的主成分(PC3PC4等)在與前一個成分不相關的情況下捕獲剩餘的方差。


73個原始變數(基因)被簡化為2個稱為主成分(PC)的新變數。資源

VI。合奏學習技巧:

合奏意味著通過投票或平均將多個學習者(分類器)的結果結合起來,以改善結果。在分類過程中使用投票,在迴歸過程中使用平均。這個想法是,學習者的合奏表現比單個學習者好。

有三種類型的合成演算法:BaggingBoostingStacking。我們不打算在這裡覆蓋堆疊,但是如果您想詳細解釋,請在下面的評論部分告訴我,我可以另外寫一個部落格。

 
9.
隨機森林裝袋

隨機森林(多個學習者)是對袋裝決策樹(單個學習者)的改進。

裝袋:裝袋的第一步是建立多個模型,使用Bootstrap Sampling方法建立資料集。在Bootstrap Sampling中,每個生成的訓練集由來自原始資料集的隨機子樣本組成。這些訓練集中的每一個與原始資料集大小相同,但有些記錄會重複多次,有些記錄完全不會出現。然後,整個原始資料集被用作測試集。因此,如果原始資料集的大小為N,那麼每個生成的訓練集的大小也是N,唯一記錄的數量約為(2N / 3)。測試集的大小也是N.

裝袋的第二步是在不同的生成的訓練集上使用相同的演算法建立多個模型。在這種情況下,讓我們討論隨機森林。與決策樹不同的是,每個節點被分割成最小化誤差的最佳特徵,在隨機森林中,我們選擇隨機選擇的特徵來構建最佳分割。隨機性的原因是:即使裝袋,當決策樹選擇最佳特徵來分裂時,它們最終具有相似的結構和相關的預測。但是,在對特徵的一個隨機子集進行分割之後的裝袋意味著子樹的預測之間的相關性較小。

在每個分割點處要搜尋的要素數被指定為隨機森林演算法的引數。

因此,在用隨機森林裝袋時,每棵樹都使用記錄的隨機樣本構建,每個分割使用預測變數的隨機樣本構建。

 
10.
AdaBoost助力

a)套袋是一個平行的集合,因為每個模型都是獨立建立的。另一方面,boosting是一個連續的集合,其中每個模型是基於糾正前一個模型的錯誤分類而建立的。

b)套袋大多涉及簡單投票,每個分類器投票獲得最終結果 - 一個由大多數並行模型確定提升包括加權投票,其中每個分類器投票獲得由多數決定的最終結果 - 但是序貫模型是通過為以前模型的錯誤分類例項分配更大的權重而構建的。

Adaboost代表Adaptive Boosting


9:決策樹的Adaboost 資源

在圖9中,步驟1,2,3涉及一個稱為決策殘缺的弱學習者(一個1級決策樹,僅基於1個輸入特徵的值進行預測;一個決策樹,其根部立即連線到其樹葉)。構建弱學習者的過程一直持續到使用者定義數量的弱學習者被構建或者直到訓練時沒有進一步的改進。步驟4結合了以前模型的3個決策樹(在決策樹中有3個分裂規則)。

步驟1:從1個決策樹樁開始,對1個輸入變數做出決定:

資料點的大小表明我們已經應用相同的權重將它們分類為一個圓或三角形。決策樹樁在上半部分產生了一條水平線來分類這些點。我們可以看到有2個圓圈錯誤地預測為三角形。因此,我們將為這兩個圈子分配更高的權重,並應用另一個決策樹樁。

步驟2:移動到另一個決策樹樹樁,以決定另一個輸入變數:

我們觀察到,上一步的兩個錯誤分類圈的大小大於其餘點。現在,第二個決策樹會試圖正確預測這兩個圓。

作為分配更高權重的結果,這2個圓圈已經被左邊的垂直線正確地分類。但是現在這導致了對頂部3個圈子的錯誤分類。因此,我們將在這三個圈子頂部分配更高的權重,並應用另一個決策樹樁。

步驟3:訓練另一個決策樹樹樁來決定另一個輸入變數。

來自上一步的3個錯誤分類圈大於其餘的資料點。現在,已經生成了一條垂直線,用於分類圓和三角形。

第四步:結合決策樹樁:

我們已經組合了以前3個模型中的分隔符,並觀察到與任何單個弱學習者相比,來自該模型的複雜規則將資料點正確分類。

七。結論:

回顧一下,我們瞭解到:

1.      5個監督學習技術 - 線性迴歸,Logistic迴歸,CART,樸素貝葉斯,KNN

2.      3種無監督學習技術 - AprioriK-meansPCA

3.      2個合奏技巧 - 隨機森林裝袋,XGBoost助推。

在我的下一篇部落格中,我們將瞭解一種在Kaggle競賽中變得風靡的技術 - XGBoost演算法。