女人夜夜春高潮爽A∨片传媒_国产精品VIDEOS麻豆_在线精品亚洲一区二区三区_亚洲熟妇无码av

其他
新聞詳情

機器學習必學10大算法

發(fa)布時間:2024-07-08 10:27:15 瀏覽次數:863

1.線性回歸

在統計學和機器學習領域,線(xian)性回歸(gui)可能是最(zui)廣為(wei)人知(zhi)也最(zui)易理解的(de)算法之一。

預測建(jian)模主(zhu)要關注的(de)(de)是在犧牲可解(jie)釋性的(de)(de)情況下,盡(jin)可能最小(xiao)化(hua)模型誤差或(huo)做出(chu)最準確的(de)(de)預測。我們將借鑒、重(zhong)用(yong)來(lai)自許多其它領域(yu)的(de)(de)算法(包(bao)括統計學)來(lai)實現(xian)這些目標(biao)。

線性(xing)回歸模型(xing)被表示(shi)為(wei)(wei)一(yi)個方(fang)程式,它為(wei)(wei)輸(shu)入(ru)變量找到特定的權重(即系數B),進(jin)而(er)描述一(yi)條(tiao)最(zui)佳擬合(he)了輸(shu)入(ru)變量(x)和輸(shu)出變量(y)之間關(guan)系的直線。

線性回歸

例(li)如:y=B0+B1*x

我們(men)將在給定輸入值x的條(tiao)件下預測y,線性回歸學(xue)習算法的目的是找到系數B0和B1的值。

我們(men)可以使用不同的技術(shu)來從數(shu)據(ju)中學(xue)習線(xian)性回歸模(mo)型(xing),例如(ru)普通最小二乘(cheng)法的線(xian)性代數(shu)解和梯度(du)下降優化。

線性回歸(gui)大約(yue)有(you)200多年的(de)歷史,并已被廣泛地研究。在使(shi)用此類(lei)技(ji)術時,有(you)一些很好的(de)經驗規則:我們可以(yi)刪除非常(chang)類(lei)似(相關)的(de)變(bian)量,并盡可能移除數據中的(de)噪(zao)聲。線性回歸(gui)是一種運算速度很快的(de)簡(jian)單技(ji)術,也是一種適合初學者嘗試的(de)經典(dian)算法。

2.Logistic回歸

Logistic回(hui)歸是機器學(xue)(xue)習從統計學(xue)(xue)領域借鑒過來的另一種技術。它是二分類(lei)問題的首選方(fang)法。

像線性(xing)回(hui)(hui)歸一樣,Logistic回(hui)(hui)歸的(de)目的(de)也是找到每(mei)個(ge)輸入變(bian)量的(de)權(quan)重系數值。但不同的(de)是,Logistic回(hui)(hui)歸的(de)輸出預測結果是通(tong)過一個(ge)叫作「logistic函(han)數」的(de)非線性(xing)函(han)數變(bian)換(huan)而來的(de)。

logistic函(han)數的(de)(de)形狀看起來像一個大的(de)(de)「S」,它會把(ba)(ba)任何值(zhi)(zhi)轉換至0-1的(de)(de)區(qu)間內。這十分有用(yong),因為我們可以把(ba)(ba)一個規則應(ying)用(yong)于logistic函(han)數的(de)(de)輸出,從(cong)而得到0-1區(qu)間內的(de)(de)捕捉值(zhi)(zhi)(例如(ru),將閾值(zhi)(zhi)設置為0.5,則如(ru)果(guo)函(han)數值(zhi)(zhi)小于0.5,則輸出值(zhi)(zhi)為1),并預測(ce)類(lei)別的(de)(de)值(zhi)(zhi)。

Logistic回歸

由于(yu)(yu)模型的(de)(de)學習(xi)方式,Logistic回歸的(de)(de)預(yu)測結果(guo)也可(ke)以用(yong)(yong)作給定數據實例(li)屬于(yu)(yu)類0或類1的(de)(de)概率。這對于(yu)(yu)需要為預(yu)測結果(guo)提供更(geng)多(duo)理論依據的(de)(de)問題非常有(you)用(yong)(yong)。

與線性回歸類似,當刪(shan)除(chu)與輸出變量(liang)無關以及彼此之間非常相似(相關)的屬性后,Logistic回歸的效果更好。該模型(xing)學習速度快,對二分(fen)類問題十分(fen)有(you)效。

3.線性判別分析

Logistic回歸是一種傳統(tong)的分(fen)類算(suan)法,它的使(shi)用場景僅限(xian)于(yu)二分(fen)類問(wen)題。如果(guo)你有兩個以上的類,那么線(xian)性判(pan)別(bie)分(fen)析算(suan)法(LDA)是首選的線(xian)性分(fen)類技術。

LDA的表示方法非常直(zhi)接(jie)。它包含為每個(ge)類計算的數據統計屬(shu)性。對于單(dan)個(ge)輸入(ru)變量而言,這些屬(shu)性包括:

·每個類的均值。

·所有類的方差。

線性判別分析

預測結果是通過計(ji)算每個類(lei)(lei)的(de)判別值、并(bing)將類(lei)(lei)別預測為(wei)判別值最大的(de)類(lei)(lei)而(er)得出(chu)的(de)。該(gai)技術假(jia)設數據(ju)符合高(gao)斯分布(鐘形(xing)曲線),因此最好預先從(cong)數據(ju)中(zhong)刪除異常值。LDA是一(yi)種簡單而(er)有效的(de)分類(lei)(lei)預測建(jian)模方法。

4.分類和回歸樹

決策樹是(shi)一類重要的機器學習預測(ce)建模算法(fa)。

決策樹(shu)可(ke)以被表示為一(yi)棵(ke)二(er)叉樹(shu)。這(zhe)種二(er)叉樹(shu)與算法設計和(he)數據結構中的二(er)叉樹(shu)是一(yi)樣的,沒(mei)有什么特(te)別。每個(ge)(ge)節(jie)點都(dou)代表一(yi)個(ge)(ge)輸入變(bian)量(x)和(he)一(yi)個(ge)(ge)基(ji)于(yu)該(gai)變(bian)量的分(fen)叉點(假設該(gai)變(bian)量是數值(zhi)型(xing)的)。

決策樹

決策樹的(de)葉(xie)子結點包含一個(ge)用于做出預(yu)測的(de)輸出變(bian)量(y)。預(yu)測結果是通過(guo)在樹的(de)各個(ge)分叉路徑上游走,直(zhi)到到達一個(ge)葉(xie)子結點并輸出該葉(xie)子結點的(de)類(lei)別值而得出。

決策樹(shu)的(de)學習速(su)度(du)很快(kuai),做(zuo)出預測(ce)的(de)速(su)度(du)也很快(kuai)。它們(men)在大量問(wen)題中往往都(dou)很準(zhun)確,而且不需(xu)要為數據做(zuo)任何特(te)殊(shu)的(de)預處理準(zhun)備。

5.樸素貝葉斯

樸素貝葉斯(si)是一種(zhong)簡單而(er)強大的預測建模算法。

該模型(xing)由兩類可直接(jie)從(cong)(cong)訓(xun)練數(shu)(shu)據中(zhong)計(ji)算出(chu)來(lai)的(de)(de)概(gai)(gai)率組成:1)數(shu)(shu)據屬于(yu)每(mei)一(yi)類的(de)(de)概(gai)(gai)率;2)給定每(mei)個x值,數(shu)(shu)據從(cong)(cong)屬于(yu)每(mei)個類的(de)(de)條件概(gai)(gai)率。一(yi)旦(dan)這兩個概(gai)(gai)率被計(ji)算出(chu)來(lai),就可以使用貝葉斯定理,用概(gai)(gai)率模型(xing)對新數(shu)(shu)據進行預(yu)測。當(dang)你(ni)的(de)(de)數(shu)(shu)據是實值的(de)(de)時候,通(tong)常假設數(shu)(shu)據符合高斯分布(bu)(鐘(zhong)形曲線(xian)),這樣你(ni)就可以很容易地(di)估計(ji)這些概(gai)(gai)率。

貝葉斯定理

樸素(su)貝葉斯之所(suo)以被稱為「樸素(su)」,是(shi)因(yin)為它假(jia)設每個(ge)輸(shu)入變量相互之間是(shi)獨立的(de)。這是(shi)一種很強的(de)、對(dui)于(yu)真實(shi)數(shu)據并(bing)不現實(shi)的(de)假(jia)設。不過,該算法在大量的(de)復(fu)雜(za)問題中(zhong)十分有效。

6.K最近鄰算法

K最近鄰(KNN)算法是非常簡單而有效的(de)。KNN的(de)模型表(biao)示就是整(zheng)個訓練(lian)數據(ju)集。這(zhe)很簡單吧?

對新數(shu)據(ju)點的預(yu)測(ce)(ce)結(jie)(jie)果(guo)是通(tong)過在整個(ge)(ge)訓練集(ji)上(shang)搜索與該數(shu)據(ju)點最(zui)相似(si)的K個(ge)(ge)實例(近鄰)并且總結(jie)(jie)這K個(ge)(ge)實例的輸出(chu)變量而(er)得出(chu)的。對于回歸問題(ti)來說,預(yu)測(ce)(ce)結(jie)(jie)果(guo)可(ke)能就是輸出(chu)變量的均值;而(er)對于分類問題(ti)來說,預(yu)測(ce)(ce)結(jie)(jie)果(guo)可(ke)能是眾數(shu)(或最(zui)常見(jian)的)的類的值。

關(guan)鍵之處在(zai)于如(ru)何判(pan)定數(shu)據實例(li)之間(jian)的相似程度(du)。如(ru)果你(ni)的數(shu)據特征尺度(du)相同(例(li)如(ru),都以英寸為單位),那么最簡(jian)單的度(du)量技(ji)術就是使用歐幾里得距離,你(ni)可以根據輸入變量之間(jian)的差(cha)異直接計(ji)算出該值。

K最近鄰

KNN可能需要(yao)大量的(de)(de)內存或空間來(lai)存儲所有數據(ju),但只(zhi)有在需要(yao)預(yu)測時才實時執行計算(或學習(xi))。隨著時間的(de)(de)推移,你還可以更新并管理訓練實例,以保證預(yu)測的(de)(de)準(zhun)確率。

使(shi)用(yong)距離或接近程度(du)的度(du)量方法(fa)可能(neng)會(hui)在維度(du)非(fei)常(chang)高(gao)的情況下(有許多輸(shu)(shu)入變(bian)量)崩(beng)潰,這(zhe)可能(neng)會(hui)對算法(fa)在你(ni)的問(wen)題上的性能(neng)產生負面影響。這(zhe)就(jiu)是所謂的維數災難。這(zhe)告(gao)訴我們,應該僅僅使(shi)用(yong)那些與預測(ce)輸(shu)(shu)出變(bian)量最相關的輸(shu)(shu)入變(bian)量。

7.學習向量量化

KNN算法(fa)的一個缺點是(shi),你需(xu)要處理整個訓(xun)練數(shu)據集。而學習(xi)向(xiang)量量化算法(fa)(LVQ)允許選擇(ze)所(suo)需(xu)訓(xun)練實例(li)數(shu)量,并確切地(di)學習(xi)這些實例(li)。

學習向量量化

LVQ的(de)(de)表示是(shi)一組碼本向量(liang)。它們在開(kai)始時是(shi)隨機(ji)選擇的(de)(de),經過(guo)多輪學習(xi)算法的(de)(de)迭代后(hou),最(zui)終對訓練數據集進行最(zui)好的(de)(de)總(zong)結(jie)。通過(guo)學習(xi),碼本向量(liang)可(ke)被用來像(xiang)K最(zui)近(jin)鄰那(nei)樣執行預(yu)測。通過(guo)計算每個碼本向量(liang)與新數據實例之間(jian)的(de)(de)距離,可(ke)以找到(dao)(dao)最(zui)相似的(de)(de)鄰居(ju)(最(zui)匹(pi)配(pei)(pei)的(de)(de)碼本向量(liang))。然后(hou)返回最(zui)匹(pi)配(pei)(pei)單元的(de)(de)類別值(分類)或實值(回歸)作(zuo)為(wei)預(yu)測結(jie)果(guo)。如果(guo)將(jiang)數據重新放(fang)縮(suo)放(fang)到(dao)(dao)相同的(de)(de)范圍(wei)中(例如0到(dao)(dao)1之間(jian)),就可(ke)以獲得最(zui)佳(jia)的(de)(de)預(yu)測結(jie)果(guo)。

如果你發現KNN能(neng)夠在你的數據(ju)集(ji)上得(de)到不錯的預(yu)測結果,那么(me)不妨試(shi)一試(shi)LVQ技術,它可(ke)以減少對(dui)內存空(kong)間的需求,不需要像KNN那樣(yang)存儲整個訓練(lian)數據(ju)集(ji)。

8.支持向量機

支持向量(liang)機(ji)(SVM)可能是目前最流行、被討論(lun)地(di)最多(duo)的機(ji)器學(xue)習(xi)算法之一。

超(chao)平面是一(yi)條(tiao)對(dui)輸(shu)(shu)入(ru)(ru)變(bian)量(liang)空(kong)間進行劃分的(de)「直(zhi)(zhi)線」。支持向量(liang)機會選(xuan)出一(yi)個將輸(shu)(shu)入(ru)(ru)變(bian)量(liang)空(kong)間中的(de)點(dian)按類(類0或(huo)類1)進行最(zui)佳分割的(de)超(chao)平面。在(zai)二維空(kong)間中,你可(ke)(ke)以把他想(xiang)象成一(yi)條(tiao)直(zhi)(zhi)線,假設所有輸(shu)(shu)入(ru)(ru)點(dian)都可(ke)(ke)以被這條(tiao)直(zhi)(zhi)線完全地劃分開來。SVM學習算法旨在(zai)尋找最(zui)終(zhong)通過超(chao)平面得到最(zui)佳類別分割的(de)系(xi)數。

支持向量機

超平(ping)面(mian)與(yu)最(zui)近數據點之間(jian)的(de)(de)距離叫(jiao)作間(jian)隔(margin)。能夠將兩(liang)個類分(fen)(fen)開的(de)(de)最(zui)佳超平(ping)面(mian)是具有(you)最(zui)大(da)間(jian)隔的(de)(de)直(zhi)線。只有(you)這些(xie)點與(yu)超平(ping)面(mian)的(de)(de)定義和分(fen)(fen)類器的(de)(de)構建有(you)關,這些(xie)點叫(jiao)作支(zhi)持向量(liang),它(ta)們(men)(men)支(zhi)持或定義超平(ping)面(mian)。在實際(ji)應用(yong)中(zhong),人們(men)(men)采用(yong)一種優化算法來(lai)尋(xun)找使間(jian)隔最(zui)大(da)化的(de)(de)系數值。

支持向量機可能是目前可以直接使用的最強大的分類器之一,值得你(ni)在自己的數據集上試一試。

9.袋裝法和隨機森林

隨機森林(lin)是最流(liu)行也最強大的機器學(xue)習算(suan)法(fa)之一,它是一種集成(cheng)機器學(xue)習算(suan)法(fa)。

自(zi)助(zhu)法是一種從數(shu)(shu)據(ju)樣本中估(gu)計(ji)某個量(liang)(例(li)如平均(jun)(jun)(jun)(jun)值)的強大統計(ji)學(xue)方法。你需要在數(shu)(shu)據(ju)中取出(chu)大量(liang)的樣本,計(ji)算均(jun)(jun)(jun)(jun)值,然后對(dui)每次取樣計(ji)算出(chu)的均(jun)(jun)(jun)(jun)值再取平均(jun)(jun)(jun)(jun),從而得到對(dui)所有數(shu)(shu)據(ju)的真(zhen)實(shi)均(jun)(jun)(jun)(jun)值更好(hao)的估(gu)計(ji)。

Bagging使用(yong)了相同(tong)的方法。但是最常見的做法是使用(yong)決策樹,而不是對整(zheng)個(ge)統計(ji)模型(xing)(xing)進(jin)行估(gu)計(ji)。Bagging會(hui)在訓練(lian)數據中取多個(ge)樣(yang)(yang)本,然后為(wei)每個(ge)數據樣(yang)(yang)本構建模型(xing)(xing)。當你(ni)需要(yao)對新數據進(jin)行預(yu)測時,每個(ge)模型(xing)(xing)都會(hui)產(chan)生一個(ge)預(yu)測結(jie)(jie)果(guo),Bagging會(hui)對所有模型(xing)(xing)的預(yu)測結(jie)(jie)果(guo)取平均,以便(bian)更好地估(gu)計(ji)真實的輸(shu)出值。

隨機森林

隨(sui)機森(sen)林是(shi)這(zhe)種方法的改進(jin),它(ta)會創(chuang)建決(jue)策(ce)樹,這(zhe)樣(yang)就不用選擇最(zui)優分(fen)割點(dian),而是(shi)通(tong)過引(yin)入隨(sui)機性來進(jin)行次優分(fen)割。

因(yin)此,為(wei)每個數(shu)據樣本創建的(de)(de)模型比在(zai)其(qi)它情(qing)況下創建的(de)(de)模型更(geng)加獨特,但是這種獨特的(de)(de)方式(shi)仍能保(bao)證較高(gao)的(de)(de)準確率(lv)。結合(he)它們的(de)(de)預測結果可以更(geng)好地估(gu)計(ji)真實的(de)(de)輸(shu)出值。

如果你(ni)使(shi)用(yong)具有高(gao)方差(cha)的(de)算法(例如決策樹)獲(huo)得了良好(hao)的(de)結果,那(nei)么(me)你(ni)通常可以通過對該算法執(zhi)行Bagging獲(huo)得更(geng)好(hao)的(de)結果。

10.Boosting和AdaBoost

Boosting是一(yi)種試(shi)圖利用大量弱分(fen)類器創(chuang)建一(yi)個強分(fen)類器的(de)(de)集成技術。要實現Boosting方法,首(shou)先你需要利用訓練(lian)數(shu)據構建一(yi)個模(mo)(mo)型(xing)(xing),然后創(chuang)建第二個模(mo)(mo)型(xing)(xing)(它企圖修正(zheng)第一(yi)個模(mo)(mo)型(xing)(xing)的(de)(de)誤差)。直(zhi)到最后模(mo)(mo)型(xing)(xing)能夠對訓練(lian)集進行完美地預(yu)測(ce)或加入的(de)(de)模(mo)(mo)型(xing)(xing)數(shu)量已達上限(xian),我們才停止(zhi)加入新的(de)(de)模(mo)(mo)型(xing)(xing)。

AdaBoost是第一個為二分類問題開發(fa)的真(zhen)正成功的Boosting算(suan)法。它是人們入(ru)門理解(jie)Boosting的最佳(jia)起點。當下的Boosting方(fang)法建立在AdaBoost基礎之上(shang),最著名的就是隨(sui)機(ji)梯度提升(sheng)機(ji)。

AdaBoost

AdaBoost使用淺層決策樹(shu)(shu)(shu)。在(zai)創建(jian)第一棵樹(shu)(shu)(shu)之后,使用該樹(shu)(shu)(shu)在(zai)每個(ge)訓(xun)練實例上的性(xing)能(neng)(neng)來衡量下一棵樹(shu)(shu)(shu)應該對每個(ge)訓(xun)練實例賦予多少(shao)權(quan)重。難以預(yu)測的訓(xun)練數(shu)據(ju)(ju)權(quan)重會(hui)增大,而易于預(yu)測的實例權(quan)重會(hui)減(jian)小。模(mo)型是(shi)一個(ge)接一個(ge)依次創建(jian)的,每個(ge)模(mo)型都會(hui)更新訓(xun)練實例權(quan)重,影響序(xu)列(lie)中下一棵樹(shu)(shu)(shu)的學(xue)習。在(zai)構建(jian)所有(you)的樹(shu)(shu)(shu)之后,我們就可以對新的數(shu)據(ju)(ju)執行(xing)預(yu)測,并根(gen)據(ju)(ju)每棵樹(shu)(shu)(shu)在(zai)訓(xun)練數(shu)據(ju)(ju)上的準確率來對其性(xing)能(neng)(neng)進行(xing)加權(quan)。

由于算法在(zai)(zai)糾正錯誤上投入了(le)如此多的(de)精(jing)力(li),因此刪除數據(ju)中(zhong)的(de)異(yi)常值在(zai)(zai)數據(ju)清洗過程中(zhong)是非(fei)常重要(yao)的(de)。

在線(xian)客服
客服電話(hua)
  • 0755-23712116
  • 13310869691