“大數(shù)據(jù)分析”評為“ 21世紀(jì)最熱門的工作” 以來,人們對機(jī)器學(xué)習(xí)的興趣激增。但是,如果您剛剛開始學(xué)習(xí)機(jī)器學(xué)習(xí),則可能很難入手。因此,AAA教育發(fā)布了廣受歡迎的關(guān)于初學(xué)者的優(yōu)秀機(jī)器學(xué)習(xí)算法的文章。
這篇文章是針對0基礎(chǔ)初學(xué)者的。如果你有在數(shù)據(jù)科學(xué)和機(jī)器學(xué)習(xí)一些經(jīng)驗,你可能會更感興趣的是做機(jī)器學(xué)習(xí)在Python這更深入的教程用scikit-learn,或在我們的機(jī)器學(xué)習(xí)課程,這從這里開始。如果您還不清楚“數(shù)據(jù)科學(xué)”和“機(jī)器學(xué)習(xí)”之間的區(qū)別,那么本文將為您提供一個很好的解釋:機(jī)器學(xué)習(xí)和數(shù)據(jù)科學(xué)-兩者有何不同?
機(jī)器學(xué)習(xí)算法是可以從數(shù)據(jù)中學(xué)習(xí)并從經(jīng)驗中改進(jìn)而無需人工干預(yù)的程序。學(xué)習(xí)任務(wù)可能包括學(xué)習(xí)將輸入映射到輸出的功能,學(xué)習(xí)未標(biāo)記數(shù)據(jù)中的隱藏結(jié)構(gòu);或“基于實例的學(xué)習(xí)”,其中通過將新實例(行)與訓(xùn)練數(shù)據(jù)中存儲在內(nèi)存中的實例進(jìn)行比較,為新實例生成類標(biāo)簽。“基于實例的學(xué)習(xí)”不會從特定實例創(chuàng)建抽象。
機(jī)器學(xué)習(xí)算法的類型
機(jī)器學(xué)習(xí)(ML)算法有3種類型:
監(jiān)督學(xué)習(xí)算法:
監(jiān)督學(xué)習(xí)使用標(biāo)記的訓(xùn)練數(shù)據(jù)來學(xué)習(xí)將輸入變量(X)轉(zhuǎn)換為輸出變量(Y)的映射函數(shù)。換句話說,它在以下等式中求解f:
Y = f(X)
當(dāng)給定新的輸入時,這使我們能夠準(zhǔn)確地生成輸出。
我們將討論兩種類型的監(jiān)督學(xué)習(xí):分類和回歸。
分類被用于預(yù)測給定的樣品的結(jié)果,當(dāng)輸出變量在類的形式。分類模型可能會查看輸入數(shù)據(jù)并嘗試預(yù)測“病”或“健康”等標(biāo)簽。
當(dāng)輸出變量為實數(shù)值形式時,將回歸用于預(yù)測給定樣本的結(jié)果。例如,回歸模型可能會處理輸入數(shù)據(jù)以預(yù)測降雨量,人的身高等。
我們在本博客中介紹的前5種算法-線性回歸,邏輯回歸,CART,樸素貝葉斯和K最近鄰(KNN)-是監(jiān)督學(xué)習(xí)的示例。
合奏是另一種監(jiān)督學(xué)習(xí)。這意味著要組合多個各自較弱的機(jī)器學(xué)習(xí)模型的預(yù)測,以對新樣本產(chǎn)生更準(zhǔn)確的預(yù)測。本文的算法9和10(使用隨機(jī)森林進(jìn)行裝袋,使用XGBoost進(jìn)行增強(qiáng))是集成技術(shù)的示例。
無監(jiān)督學(xué)習(xí)算法:
當(dāng)我們只有輸入變量(X)而沒有相應(yīng)的輸出變量時,將使用無監(jiān)督學(xué)習(xí)模型。他們使用未標(biāo)記的訓(xùn)練數(shù)據(jù)來建模數(shù)據(jù)的基礎(chǔ)結(jié)構(gòu)。
我們將討論三種無監(jiān)督學(xué)習(xí):
關(guān)聯(lián)用于發(fā)現(xiàn)集合中項目同時出現(xiàn)的可能性。它廣泛用于市場分析。例如,可以使用關(guān)聯(lián)模型來發(fā)現(xiàn)如果客戶購買面包,則他/她也有80%可能也購買雞蛋。
聚類用于對樣本進(jìn)行分組,以使同一聚類中的對象彼此之間的相似性大于與另一個聚類中的對象的相似性。
降維用于減少數(shù)據(jù)集的變量數(shù)量,同時確保仍傳達(dá)重要信息。降維可以使用特征提取方法和特征選擇方法來完成。“特征選擇”選擇原始變量的子集。特征提取執(zhí)行從高維空間到低維空間的數(shù)據(jù)轉(zhuǎn)換。示例:PCA算法是一種特征提取方法。
我們在這里介紹的算法6-8(Apriori,K-means,PCA)是無監(jiān)督學(xué)習(xí)的示例。
強(qiáng)化學(xué)習(xí):
強(qiáng)化學(xué)習(xí)是機(jī)器學(xué)習(xí)算法的一種,它允許代理通過學(xué)習(xí)使獎勵最大化的行為來根據(jù)其當(dāng)前狀態(tài)決定最佳的下一步操作。
加固算法通常通過反復(fù)試驗來學(xué)習(xí)最佳動作。例如,假設(shè)有一個視頻游戲,其中玩家需要在特定時間移動到特定地點以賺取積分。玩該游戲的強(qiáng)化算法會從隨機(jī)移動開始,但是隨著時間的流逝,經(jīng)過反復(fù)試驗,它將學(xué)習(xí)需要在何時何地移動游戲中角色以最大化其總點數(shù)。
量化機(jī)器學(xué)習(xí)算法的流行度
這十種算法是從哪里得到的?任何此類列表本質(zhì)上都是主觀的。諸如此類的研究已經(jīng)量化了10種最流行的數(shù)據(jù)挖掘算法,但是它們?nèi)匀灰蕾囉谡{(diào)查反饋的主觀響應(yīng),通常是高級學(xué)術(shù)從業(yè)人員。例如,在上面的研究中,受訪者是ACM KDD創(chuàng)新獎,IEEE ICDM研究貢獻(xiàn)獎的獲得者;KDD '06,ICDM '06和SDM '06的計劃委員會成員;ICDM '06的145位與會者。
這篇文章中列出的前10個算法是在考慮機(jī)器學(xué)習(xí)初學(xué)者的情況下選擇的。它們是我在孟買大學(xué)計算機(jī)工程學(xué)士學(xué)位期間從“數(shù)據(jù)倉庫和挖掘”(DWM)課程中學(xué)到的主要算法。我加入了最后兩種算法(集成方法),尤其是因為它們經(jīng)常被用來贏得Kaggle比賽。
沒有更多的基礎(chǔ)知識,面向初學(xué)者的十大機(jī)器學(xué)習(xí)算法:
1.線性回歸
在機(jī)器學(xué)習(xí)中,我們有一組輸入變量(x)用于確定輸出變量(y)。輸入變量和輸出變量之間存在關(guān)系。ML的目標(biāo)是量化這種關(guān)系。
圖1:線性回歸以y = a + bx的形式表示為一條線
在線性回歸中,輸入變量(x)和輸出變量(y)之間的關(guān)系表示為y = a + bx形式的方程。因此,線性回歸的目標(biāo)是找出系數(shù)a和b的值。在此,a是截距,b是直線的斜率。
圖1顯示了數(shù)據(jù)集的繪制的x和y值。目標(biāo)是擬合最接近大多數(shù)點的線。這將減少數(shù)據(jù)點的y值與線之間的距離(“錯誤”)。
2. Logistic回歸
線性回歸預(yù)測是連續(xù)值(即,以厘米為單位的降雨),邏輯回歸預(yù)測是在應(yīng)用轉(zhuǎn)換函數(shù)后的離散值(即,學(xué)生是否通過/未通過)。
Logistic回歸最適合于二進(jìn)制分類:y = 0或1的數(shù)據(jù)集,其中1表示默認(rèn)類。例如,在預(yù)測事件是否會發(fā)生時,只有兩種可能性:事件發(fā)生(我們將其表示為1)或事件不發(fā)生(0)。因此,如果我們要預(yù)測患者是否生病,我們將使用1數(shù)據(jù)集中的值標(biāo)記患病的患者。
邏輯回歸以其使用的轉(zhuǎn)換函數(shù)命名,該函數(shù)稱為邏輯函數(shù)h(x)= 1 /(1 + ex)。這形成了S形曲線。
在邏輯回歸中,輸出采用默認(rèn)類別的概率形式(與線性回歸不同,線性回歸是直接產(chǎn)生輸出的)。由于這是一個概率,因此輸出在0-1的范圍內(nèi)。因此,例如,如果我們要預(yù)測患者是否生病,我們已經(jīng)知道生病的患者表示為1,因此,如果我們的算法將0.98的得分分配給患者,則認(rèn)為該患者很有可能生病了。
使用邏輯函數(shù)h(x)= 1 /(1 + e ^ -x)通過對x值進(jìn)行對數(shù)轉(zhuǎn)換來生成此輸出(y值)。然后應(yīng)用閾值以強(qiáng)制將此概率轉(zhuǎn)換為二進(jìn)制分類。
圖2:邏輯回歸確定腫瘤是惡性還是良性。如果概率h(x)> = 0.5,則分類為惡性
在圖2中,要確定腫瘤是否為惡性,默認(rèn)變量為y = 1(腫瘤=惡性)。x變量可以是腫瘤的量度,例如腫瘤的大小。如圖所示,邏輯函數(shù)將數(shù)據(jù)集各種實例的x值轉(zhuǎn)換為0到1的范圍。如果概率超過閾值0.5(由水平線顯示),則腫瘤為歸類為惡性。
邏輯回歸方程P(x)= e ^(b0 + b1x)/(1 + e(b0 + b1x))可以轉(zhuǎn)換為ln(p(x)/ 1-p(x))= b0 + b1x。
Logistic回歸的目標(biāo)是使用訓(xùn)練數(shù)據(jù)來找到系數(shù)b0和b1的值,以使預(yù)測結(jié)果與實際結(jié)果之間的誤差最小。使用最大似然估計技術(shù)估計這些系數(shù)。
3.購物車
分類和回歸樹(CART)是決策樹的一種實現(xiàn)。
分類樹和回歸樹的非終端節(jié)點是根節(jié)點和內(nèi)部節(jié)點。終端節(jié)點是葉節(jié)點。每個非終端節(jié)點代表一個輸入變量(x)和該變量的分割點;葉節(jié)點表示輸出變量(y)。該模型按以下方式進(jìn)行預(yù)測:遍歷樹的拆分以到達(dá)葉節(jié)點并輸出在葉節(jié)點處存在的值。
下面圖3中的決策樹根據(jù)一個人的年齡和婚姻狀況,對其是否購買跑車或小型貨車進(jìn)行了分類。如果此人已超過30歲且未結(jié)婚,我們將按照以下步驟進(jìn)行操作:“超過30年?” ->是->“已婚?” ->不行 因此,模型輸出一輛跑車。
圖3:決策樹的各個部分
4.樸素貝葉斯
為了計算一個事件已經(jīng)發(fā)生的可能性,我們使用貝葉斯定理。在給定我們的先驗知識(d)的情況下,要計算假設(shè)(h)為真的概率,我們使用貝葉斯定理,如下所示:
P(h | d)=(P(d | h)P(h))/ P(d)
哪里:
1)P(h | d)=后驗概率。給定數(shù)據(jù)d,假設(shè)h的概率為真,其中P(h | d)= P(d1 | h)P(d2 | h)….P(dn | h)P(d)
2)P(d | h)=似然。給定假設(shè)h為真,數(shù)據(jù)d的概率。
3)P(h)=班級先驗概率。假設(shè)h為真的概率(與數(shù)據(jù)無關(guān))
4)P(d)=預(yù)測器先驗概率。數(shù)據(jù)的概率(與假設(shè)無關(guān))
該算法之所以稱為“樸素”,是因為它假設(shè)所有變量都彼此獨立,這是在實際示例中做出的樸素假設(shè)。
圖4:使用天真貝葉斯通過變量“天氣”預(yù)測“比賽”的狀態(tài)
以圖4為例,如果weather ='sunny',結(jié)果如何?
在給定變量天氣=“晴天”的情況下,要確定結(jié)果游戲=“是”或“否”,請計算P(是|晴天)和P(否|晴天),并以較高的概率選擇結(jié)果。
-> P(yes | sunny)=(P(sunny | yes)* P(yes))/ P(sunny)=(3/9 * 9/14)/(5/14)= 0.60
-> P(no | sunny)=(P(sunny | no)* P(no))/ P(sunny)=(2/5 * 5/14)/(5/14)= 0.40
因此,如果天氣=“晴天”,則結(jié)果為游戲=“是”。
5. KNN
K最近鄰居算法將整個數(shù)據(jù)集用作訓(xùn)練集,而不是將數(shù)據(jù)集分為訓(xùn)練集和測試集。
當(dāng)新數(shù)據(jù)實例需要結(jié)果時,KNN算法遍歷整個數(shù)據(jù)集以找到新實例的k個最近實例,或與新記錄最相似的k個實例,然后輸出均值結(jié)果(用于回歸問題)或模式(最常見的課堂)的分類問題。k的值是用戶指定的。
使用諸如歐幾里得距離和漢明距離之類的度量來計算實例之間的相似度。
無監(jiān)督學(xué)習(xí)算法
6.先驗
事務(wù)數(shù)據(jù)庫中使用Apriori算法來挖掘頻繁的項目集,然后生成關(guān)聯(lián)規(guī)則。它廣泛用于市場購物籃分析中,在其中可以檢查數(shù)據(jù)庫中經(jīng)常同時出現(xiàn)的產(chǎn)品組合。通常,我們將關(guān)聯(lián)規(guī)則寫為“如果某人購買了商品X,那么他購買了商品Y”為:X->Y。
示例:如果某人購買牛奶和糖,那么她可能會購買咖啡粉。這可以用關(guān)聯(lián)規(guī)則的形式寫成:{牛奶,糖}->咖啡粉。超過支持和信心的閾值后,將生成關(guān)聯(lián)規(guī)則。
圖5:關(guān)聯(lián)規(guī)則X-> Y的支持度,置信度和提升度的公式
支持度量有助于減少頻繁生成項目集時要考慮的候選項目集的數(shù)量。該支持措施遵循Apriori原則。Apriori原則指出,如果某個項目集很頻繁,那么它的所有子集也必須很頻繁。
7. K-均值
K-means是一種將相似數(shù)據(jù)分組為聚類的迭代算法,它計算k個聚類的質(zhì)心,并為其質(zhì)心與數(shù)據(jù)點之間的距離最小的聚類分配一個數(shù)據(jù)點。
圖6:K-means算法的步驟
運(yùn)作方式如下:
我們首先選擇k的值。在這里,讓我們說k =3。然后,我們將每個數(shù)據(jù)點隨機(jī)分配給3個群集中的任何一個。計算每個群集的群集質(zhì)心。紅色,藍(lán)色和綠色的星星分別代表3個星團(tuán)的質(zhì)心。
接下來,將每個點重新分配給最近的聚類質(zhì)心。在上圖中,高5點被分配給具有藍(lán)色質(zhì)心的聚類。遵循相同的過程將點分配給包含紅色和綠色質(zhì)心的聚類。
然后,計算新群集的質(zhì)心。舊的質(zhì)心是灰色的星星;新的質(zhì)心是紅色,綠色和藍(lán)色的星星。
最后,重復(fù)步驟2-3,直到?jīng)]有點從一個群集切換到另一個群集為止。一旦連續(xù)兩個步驟都沒有切換,請退出K-means算法。
8. PCA
主成分分析(PCA)用于通過減少變量數(shù)量使數(shù)據(jù)易于瀏覽和可視化。這是通過將數(shù)據(jù)中的最大方差捕獲到具有稱為“主要成分”的軸的新坐標(biāo)系中來完成的。
每個分量都是原始變量的線性組合,并且彼此正交。分量之間的正交性指示這些分量之間的相關(guān)性為零。
第一個主成分捕獲數(shù)據(jù)中最大可變性的方向。第二個主成分捕獲數(shù)據(jù)中的剩余方差,但具有與第一個成分不相關(guān)的變量。同樣,所有連續(xù)的主成分(PC3,PC4等)捕獲剩余的差異,同時與前一個成分不相關(guān)。
圖7:將3個原始變量(基因)簡化為2個新變量,稱為主成分(PC)
集合學(xué)習(xí)技巧:
匯總是指通過投票或取平均值,將多個學(xué)習(xí)者(分類器)的結(jié)果組合在一起,以提高結(jié)果。在分類期間使用投票,在回歸期間使用平均。這個想法是全體學(xué)習(xí)者的表現(xiàn)要好于單個學(xué)習(xí)者。
共有3種組合算法:裝袋,增強(qiáng)和堆疊。我們不會在這里討論“堆疊”,但是如果您想對其進(jìn)行詳細(xì)的說明,那么這是Kaggle的可靠介紹。
9.隨機(jī)森林套袋
套袋的第一步是使用Bootstrap Sampling方法創(chuàng)建的數(shù)據(jù)集創(chuàng)建多個模型。在Bootstrap抽樣中,每個生成的訓(xùn)練集都由來自原始數(shù)據(jù)集的隨機(jī)子樣本組成。
這些訓(xùn)練集的每一個都具有與原始數(shù)據(jù)集相同的大小,但是有些記錄會重復(fù)多次,而有些記錄根本不會出現(xiàn)。然后,將整個原始數(shù)據(jù)集用作測試集。因此,如果原始數(shù)據(jù)集的大小為N,則每個生成的訓(xùn)練集的大小也為N,唯一記錄的數(shù)量約為(2N / 3);測試集的大小也為N。
套袋的第二步是在不同的生成的訓(xùn)練集上使用相同的算法來創(chuàng)建多個模型。
這是隨機(jī)森林進(jìn)入的地方。與決策樹不同,在決策樹中,每個節(jié)點都在最大特征上進(jìn)行分割,以最大程度地減少錯誤,在隨機(jī)森林中,我們選擇特征的隨機(jī)選擇以構(gòu)建最佳分裂。隨機(jī)性的原因是:即使套袋,當(dāng)決策樹選擇最佳分割特征時,它們最終也會具有相似的結(jié)構(gòu)和相關(guān)的預(yù)測。但是,對特征的隨機(jī)子集進(jìn)行分割后的裝袋意味著子樹的預(yù)測之間的相關(guān)性較小。
在每個分割點要搜索的特征數(shù)量被指定為“隨機(jī)森林”算法的參數(shù)。
因此,在使用“隨機(jī)森林”進(jìn)行裝袋時,每棵樹都是使用記錄的隨機(jī)樣本構(gòu)建的,而每個拆分都是使用隨機(jī)變量的預(yù)測變量構(gòu)建的。
10.使用AdaBoost提升
Adaboost代表自適應(yīng)增強(qiáng)。套袋是一個并行的集合,因為每個模型都是獨立構(gòu)建的。另一方面,boosting是一個順序集合,其中每個模型都是基于糾正先前模型的錯誤分類而構(gòu)建的。
套袋主要涉及“簡單投票”,其中每個分類器投票以獲得最終結(jié)果,該結(jié)果由大多數(shù)并行模型確定;增強(qiáng)涉及“加權(quán)投票”,其中每個分類器投票以獲得由多數(shù)決定的最終結(jié)果,但是順序模型是通過為先前模型的錯誤分類實例分配更大的權(quán)重來構(gòu)建的。
圖8:決策樹的Adaboost
在圖8中,步驟1、2、3涉及一個稱為決策樹的弱學(xué)習(xí)者(一個僅基于1個輸入要素的值進(jìn)行預(yù)測的1層決策樹;其根立即連接到其葉子的決策樹) 。
構(gòu)造弱學(xué)習(xí)者的過程一直持續(xù)到構(gòu)造了用戶定義數(shù)量的弱學(xué)習(xí)者或直到訓(xùn)練期間沒有進(jìn)一步的改進(jìn)為止。步驟4合并了先前模型的3個決策樹樁(因此在決策樹中具有3個拆分規(guī)則)。
首先,從一個決策樹樁開始,對一個輸入變量進(jìn)行決策。
數(shù)據(jù)點的大小表明,我們已應(yīng)用相等的權(quán)重將其分類為圓形或三角形。決策樹樁已在上半部分生成一條水平線以對這些點進(jìn)行分類。我們可以看到有兩個圓被錯誤地預(yù)測為三角形。因此,我們將為這兩個圈子分配更高的權(quán)重,并應(yīng)用另一個決策樹樁。
其次,轉(zhuǎn)到另一個決策樹樹樁,對另一個輸入變量進(jìn)行決策。
我們觀察到上一步中兩個錯誤分類的圓圈的大小大于其余點。現(xiàn)在,第二個決策樹樁將嘗試正確預(yù)測這兩個圓。
分配較高的權(quán)重后,這兩個圓已通過左側(cè)的垂直線正確分類。但這現(xiàn)在導(dǎo)致對頂部三個圓圈的分類錯誤。因此,我們將為頂部的這三個圓圈分配更高的權(quán)重,并應(yīng)用另一個決策樹樁。
第三,訓(xùn)練另一個決策樹樹樁,以對另一個輸入變量進(jìn)行決策。
上一步中的三個錯誤分類的圓圈大于其余數(shù)據(jù)點?,F(xiàn)在,已生成右側(cè)的垂直線以對圓形和三角形進(jìn)行分類。
第四,結(jié)合決策樹樁。
我們結(jié)合了先前3個模型的分隔符,并觀察到與任何單個弱學(xué)習(xí)者相比,該模型的復(fù)雜規(guī)則正確地對數(shù)據(jù)點進(jìn)行了分類。
回顧一下,我們介紹了一些最重要的數(shù)據(jù)科學(xué)機(jī)器學(xué)習(xí)算法:
a)5種監(jiān)督學(xué)習(xí)技術(shù)-線性回歸,邏輯回歸,CART,樸素貝葉斯,KNN。
b)3種無監(jiān)督學(xué)習(xí)技術(shù)-Apriori,K-means,PCA。
c)2種合奏技術(shù)-用隨機(jī)森林裝袋,用XGBoost增強(qiáng)。
填寫下面表單即可預(yù)約申請免費(fèi)試聽!怕錢不夠?可先就業(yè)掙錢后再付學(xué)費(fèi)! 怕學(xué)不會?助教全程陪讀,隨時解惑!擔(dān)心就業(yè)?一地學(xué)習(xí),可推薦就業(yè)!
?2007-2022/ mwtacok.cn 北京漫動者數(shù)字科技有限公司 備案號: 京ICP備12034770號 監(jiān)督電話:010-53672995 郵箱:bjaaa@aaaedu.cc