0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

分享最適合新手入門的10種機(jī)器學(xué)習(xí)算法

zhKF_jqr_AI ? 2018-01-24 15:59 ? 次閱讀

編者按:Medium博主James Le近日在網(wǎng)絡(luò)上分享了他認(rèn)為的最適合新手的機(jī)器學(xué)習(xí)算法,并授權(quán)論智進(jìn)行編譯。以下是我們對(duì)原文的編譯,如有錯(cuò)誤還請(qǐng)指出。

在機(jī)器學(xué)習(xí)界,有這樣一個(gè)“沒有免費(fèi)午餐”的定理。簡(jiǎn)單地說,該理論認(rèn)為,沒有一種算法能解決所有問題,尤其對(duì)監(jiān)督學(xué)習(xí)而言。

例如,你不能認(rèn)為神經(jīng)網(wǎng)絡(luò)總比決策樹要好,或決策樹永遠(yuǎn)優(yōu)于神經(jīng)網(wǎng)絡(luò)。這其中還有許多因素需要考慮,比如你的數(shù)據(jù)量大小和數(shù)據(jù)結(jié)構(gòu)。

這樣就導(dǎo)致我們?cè)诿鎸?duì)一個(gè)問題時(shí)需要嘗試不同的算法,同時(shí)還要用測(cè)試的數(shù)據(jù)集來(lái)評(píng)估算法的性能,選出最合適的那一種。

當(dāng)然,你所選的算法必須適合你的問題,就像當(dāng)我們需要清理房子的時(shí)候,可以使用吸塵器、掃把或拖把,但不會(huì)用鏟子來(lái)挖地。

首要原則

然而,在為監(jiān)督式機(jī)器學(xué)習(xí)創(chuàng)建預(yù)測(cè)模型之前,要記得一條最重要的原則:

機(jī)器學(xué)習(xí)算法可以看做學(xué)習(xí)一種目標(biāo)函數(shù)(f),該函數(shù)是輸入變量(X)到輸出變量(Y)的完美映射:Y=f(X)

這是一個(gè)通用的學(xué)習(xí)任務(wù),我們希望用新輸入的變量(X)能輸出預(yù)測(cè)變量(Y)。我們不知道函數(shù)(f)是什么樣子的,或者什么形式的。如果我們知道的話就直接使用了,不需要再用機(jī)器學(xué)習(xí)算法從大量的數(shù)據(jù)中學(xué)習(xí)它。

最常見的機(jī)器學(xué)習(xí)類型是學(xué)習(xí)映射Y=f(X),用它來(lái)預(yù)測(cè)Y的值。這被稱為預(yù)測(cè)建?;蝾A(yù)測(cè)分析,我們的目標(biāo)是做出最準(zhǔn)確的預(yù)測(cè)。

對(duì)于想了解機(jī)器學(xué)習(xí)基礎(chǔ)知識(shí)的新手,以下是數(shù)據(jù)科學(xué)家最常用的10種機(jī)器學(xué)習(xí)算法。

1.線性回歸

線性回歸也許是數(shù)據(jù)科學(xué)和機(jī)器學(xué)習(xí)中最知名、最好理解的算法了吧。

預(yù)測(cè)建模主要關(guān)注的是,以可解釋性為基礎(chǔ),將模型的誤差降到最小并盡量作出最準(zhǔn)確的預(yù)測(cè)。我們將借鑒、多次使用甚至“竊取”包括數(shù)據(jù)統(tǒng)計(jì)在內(nèi)的多個(gè)不同領(lǐng)域的算法,從而達(dá)到這一目的。

線性回歸用方程表示,通過找到作為輸入變量的系數(shù)(B)的特定權(quán)重來(lái)描述輸入變量(x)和輸出變量(y)之間的一條線。

分享最適合新手的10種機(jī)器學(xué)習(xí)算法

線性回歸

例如:y=B0 + B1*x

給定x的值,我們將預(yù)測(cè)y的值。同時(shí)線性回歸學(xué)習(xí)算法的目標(biāo)是找到系數(shù)B0和B1的值。

想從數(shù)據(jù)中建立線性回歸模型,可以用不同的方法。例如用于最小二乘和梯度下降優(yōu)化的線性代數(shù)。

線性回歸已經(jīng)存在了200多年,并被廣泛研究。通常人們會(huì)去除非常相似或相關(guān)的變量,并從數(shù)據(jù)中去除噪聲。對(duì)于新手來(lái)說,這是一個(gè)簡(jiǎn)單易上手的技術(shù)。

2.邏輯回歸

邏輯回歸是機(jī)器學(xué)習(xí)從統(tǒng)計(jì)領(lǐng)域借鑒的另一個(gè)技術(shù),這是二元分類問題的首選算法。

邏輯回歸與線性回歸類似的一點(diǎn)是,目標(biāo)都是找出每個(gè)輸入變量加權(quán)的系數(shù)值。不同的是,輸出的預(yù)測(cè)結(jié)果需要用非線性的邏輯函數(shù)進(jìn)行變換。

邏輯函數(shù)看起來(lái)像一個(gè)大寫的S,它可以將任何值轉(zhuǎn)化成一個(gè)0到1的數(shù)值。因此,我們可以將這一規(guī)則應(yīng)用于邏輯函數(shù)的輸出,將值限定在0到1之間(例如,IF less than 0.5 then output 1),這樣就可以預(yù)測(cè)一個(gè)組值。

分享最適合新手的10種機(jī)器學(xué)習(xí)算法

邏輯回歸

根據(jù)模型學(xué)習(xí)的方法,邏輯回歸生成的預(yù)測(cè)也可以用作0到1之間的給定數(shù)據(jù)的概率。這對(duì)于需要給出更多原理做出預(yù)測(cè)的問題很有用。

像線性回歸一樣,邏輯回歸在刪除與輸出變量無(wú)關(guān)的屬性以及非常相似的屬性之后,表現(xiàn)得效果更好。對(duì)于二元分類問題,這一模型很容易學(xué)習(xí),并且效率也很高。

3.線性判別分析(LDA)

線性回歸通常只適用于二元分類問題。如果類別超過兩個(gè),你可能就需要線性判別分析算法來(lái)解決分類問題了。

LDA的表示方法非常直接。它由數(shù)據(jù)的統(tǒng)計(jì)屬性構(gòu)成,為每個(gè)類別計(jì)算。對(duì)于單個(gè)輸入變量,這包括:

每一類別的平均值; 計(jì)算所有類別的差異

分享最適合新手的10種機(jī)器學(xué)習(xí)算法

線性判別分析

通過計(jì)算每個(gè)類別的識(shí)別值(discriminate value)并對(duì)具有最大值的類別進(jìn)行預(yù)測(cè),從而做出最終的預(yù)測(cè),該技術(shù)假定數(shù)據(jù)的分布遵循高斯分布(鐘形曲線),因此在開始分析之前,需要移除數(shù)據(jù)中的異常值。對(duì)于分類預(yù)測(cè)建模問題來(lái)說,這是一種簡(jiǎn)單而強(qiáng)大的方法。

4.分類與回歸樹

決策樹是機(jī)器學(xué)習(xí)預(yù)測(cè)建模的重要算法。

決策樹的模型是二叉樹,這是利用算法和數(shù)據(jù)結(jié)構(gòu)構(gòu)建的二叉樹,每個(gè)節(jié)點(diǎn)代表一個(gè)輸入變量(x)和該變量上的一個(gè)分裂點(diǎn)(假定變量是數(shù)字)。

分享最適合新手的10種機(jī)器學(xué)習(xí)算法

決策樹

樹葉的節(jié)點(diǎn)包含用于進(jìn)行預(yù)測(cè)的輸出變量(y)。預(yù)測(cè)是從樹叉開始,直到到達(dá)樹葉節(jié)點(diǎn)并輸出該節(jié)點(diǎn)的組值。

決策樹學(xué)習(xí)速度快,作出預(yù)測(cè)的速度也快。它們能解決許多領(lǐng)域的問題,所以無(wú)需對(duì)數(shù)據(jù)進(jìn)行預(yù)處理。

5.樸素貝葉斯

樸素貝葉斯雖然簡(jiǎn)潔,但對(duì)預(yù)測(cè)建模來(lái)說是一種非常強(qiáng)大的算法。

該模型由兩種類型的概率組成,可以從您的訓(xùn)練數(shù)據(jù)中直接計(jì)算:1)每個(gè)類別的概率;2) 給定每個(gè)x值的每個(gè)類別的條件概率。計(jì)算出來(lái)后,概率模型就能用貝葉斯定理對(duì)新數(shù)據(jù)進(jìn)行預(yù)測(cè)。當(dāng)你的數(shù)據(jù)是實(shí)值時(shí),通常假設(shè)一個(gè)高斯分布,這樣你可以很容易地預(yù)估這些概率。

分享最適合新手的10種機(jī)器學(xué)習(xí)算法

樸素貝葉斯之所以被稱為樸素,是因?yàn)樗俣總€(gè)輸入的變量都是獨(dú)立的。這個(gè)假設(shè)對(duì)于真實(shí)的數(shù)據(jù)是不實(shí)際的,但是,這種技術(shù)在大范圍復(fù)雜的問題上非常有效。

6.K-近鄰算法

KNN算法也很簡(jiǎn)單有效。模型就是用整個(gè)訓(xùn)練數(shù)據(jù)集表示的,非常簡(jiǎn)單吧!

通過在整個(gè)數(shù)據(jù)集中搜索K個(gè)最相似的樣本(鄰居),將它們匯總后輸出變量來(lái)預(yù)測(cè)新的數(shù)據(jù)點(diǎn)。對(duì)于回歸問題,這可能是平均輸出變量;對(duì)分類問題,這可能是類值的眾數(shù)(最常見的值)。

重點(diǎn)在于如何確定數(shù)據(jù)樣本之間的相似性。如果你的數(shù)據(jù)規(guī)模相同(例如都以英寸為單位),最簡(jiǎn)單的方法就是使用歐幾里得距離,如果是數(shù)字,你可以直接根據(jù)每個(gè)輸入變量之間的差異進(jìn)行計(jì)算。

分享最適合新手的10種機(jī)器學(xué)習(xí)算法

K-近鄰算法

KNN可能需要大量?jī)?nèi)存或空間來(lái)存儲(chǔ)所有的數(shù)據(jù),但是只有在需要預(yù)測(cè)時(shí)才會(huì)工作(或?qū)W習(xí))。您也可以隨時(shí)更新和管理訓(xùn)練樣本,以保證預(yù)測(cè)的準(zhǔn)確性。

距離或緊密性可能會(huì)在有大量的輸入變量時(shí)崩潰,這會(huì)導(dǎo)致算法性能下降,這被稱為維度的詛咒。所以建議只使用那些與預(yù)測(cè)輸出變量最相關(guān)的輸入變量。

7.學(xué)習(xí)向量量化(learning vector quantization)

K-近鄰算法的缺點(diǎn)之一是你需要利用整個(gè)數(shù)據(jù)集進(jìn)行訓(xùn)練,而學(xué)習(xí)向量量化算法(LVQ)是一種人工神經(jīng)網(wǎng)絡(luò)算法,你可以選擇訓(xùn)練樣本,并學(xué)習(xí)這些樣本應(yīng)該是什么樣的。

分享最適合新手的10種機(jī)器學(xué)習(xí)算法

LVQ

LVQ是由向量表的集合表示,這些在開始時(shí)是隨機(jī)選擇的,在學(xué)習(xí)過程中數(shù)次迭代后對(duì)訓(xùn)練數(shù)據(jù)集做出最佳總結(jié)。在學(xué)習(xí)之后,這些向量表可以用來(lái)做類似K-緊鄰算法一樣的預(yù)測(cè)。通過計(jì)算每個(gè)向量編碼表和新數(shù)據(jù)樣本之間的距離來(lái)找到最近鄰居,然后返回最佳匹配單元的類值(或在回歸情況下的實(shí)際值)作為預(yù)測(cè)。如果你重新調(diào)整數(shù)據(jù)使其具有相同的范圍(如0到1之間),則可以獲得最佳結(jié)果。

如果您發(fā)現(xiàn)KNN能在你的數(shù)據(jù)集上表現(xiàn)良好,可以嘗試使用LVQ來(lái)減少存儲(chǔ)整個(gè)數(shù)據(jù)集的內(nèi)存要求。

8.支持向量機(jī)

支持向量機(jī)(SVM)也許是最受歡迎的機(jī)器學(xué)習(xí)算法之一。

超平面是分割輸入變量空間的線。在SVM中,超平面能以最佳比例將輸入變量空間的點(diǎn)以它們的類別分開。在二維空間中,你可以將其視為一條線,假設(shè)輸入的所有點(diǎn)都可以被這條線完全分開。SVM學(xué)習(xí)算法可以找到能夠被超平面完美分割類別的系數(shù)。

分享最適合新手的10種機(jī)器學(xué)習(xí)算法

SVM

超平面和最近數(shù)據(jù)點(diǎn)之間的距離被稱為間隔(margin)。能夠?qū)深惙珠_的最佳或最優(yōu)的超平面往往是有最大間隔的線,只有這些點(diǎn)與超平面的定義和分類器的構(gòu)造有關(guān),這些點(diǎn)就是支持向量。它們支持或定義了超平面,在實(shí)踐中,可以使用優(yōu)化算法來(lái)找到最大化間隔的系數(shù)的值。

9.Bagging和隨機(jī)森林

隨機(jī)森林是目前最流行、最強(qiáng)大的機(jī)器學(xué)習(xí)算法之一,它是一種由Bootstrap或Bagging集成的機(jī)器學(xué)習(xí)算法。

Bootstrap是從數(shù)據(jù)樣本中估算數(shù)量的強(qiáng)大的統(tǒng)計(jì)方法,就像一種平均值。你需要從你的數(shù)據(jù)中抽取大量樣本,計(jì)算平均值,然后再計(jì)算所有平均值的平均值,從而更好地估計(jì)真實(shí)平均值。

在Bagging中,可以用上述相同的方法估計(jì)整個(gè)數(shù)據(jù)模型,最常見的是決策樹。選取訓(xùn)練數(shù)據(jù)中的多個(gè)樣本,然后構(gòu)建模型。當(dāng)你需要預(yù)測(cè)新數(shù)據(jù)時(shí),每個(gè)模型都會(huì)做出預(yù)測(cè),取平均值后以便更好地估計(jì)真實(shí)輸出值。

分享最適合新手的10種機(jī)器學(xué)習(xí)算法

隨機(jī)森林是對(duì)以上方法的調(diào)整,在隨機(jī)森林中,決策樹是這樣創(chuàng)建的,不選擇最優(yōu)分割點(diǎn),而是通過引入隨機(jī)性選擇次優(yōu)分割點(diǎn)。因此,針對(duì)每個(gè)數(shù)據(jù)樣本創(chuàng)建的模型與其它方式相比會(huì)有所不同,但仍然非常精確,結(jié)合預(yù)測(cè)的值可以更好地估計(jì)真實(shí)的潛在輸出價(jià)值。

如果較大方差的算法(如決策樹)能獲得較好結(jié)果,那么通??梢酝ㄟ^bagging獲得更好的結(jié)果。

10.Boosting和AdaBoost

Boosting是一種集成技術(shù),它試圖從一些弱分類器中創(chuàng)建一個(gè)強(qiáng)分類器。通過從訓(xùn)練數(shù)據(jù)中構(gòu)建模型,然后創(chuàng)建第二個(gè)模型來(lái)嘗試糾正第一個(gè)模型的錯(cuò)誤,直到模型能完美預(yù)測(cè)訓(xùn)練數(shù)據(jù)集或已經(jīng)添加了大量模型后,才會(huì)停止創(chuàng)建模型。

AdaBoost是為二元分類問題開發(fā)的第一個(gè)真正成功的boosting算法,這可以幫助我們更好地理解boosting?,F(xiàn)在大多boosting方法都建立在AdaBoost上,最出名的就是隨機(jī)梯度上升。

分享最適合新手的10種機(jī)器學(xué)習(xí)算法

AdaBoost與短決策樹一起使用,在第一棵樹創(chuàng)建之后,要使用每個(gè)訓(xùn)練樣本上的樹的性能衡量下一棵樹應(yīng)該對(duì)每個(gè)訓(xùn)練樣本分配多少注意力。難以預(yù)測(cè)的訓(xùn)練數(shù)據(jù)被分配的權(quán)重高,易于預(yù)測(cè)的樣本權(quán)重則少。依次創(chuàng)建模型后,每個(gè)模型都會(huì)在訓(xùn)練樣本上更新權(quán)重。所有樹在建立之后,將會(huì)對(duì)新數(shù)據(jù)進(jìn)行預(yù)測(cè),每棵樹的性能由它們?cè)谟?xùn)練數(shù)據(jù)上的表現(xiàn)進(jìn)行權(quán)衡。

由于大量的注意力都放在了糾正算法的錯(cuò)誤上,所以清除異常數(shù)據(jù)是非常重要的。

結(jié)語(yǔ)

初學(xué)者在面對(duì)各種各樣機(jī)器學(xué)習(xí)算法時(shí)最常問的問題是:“我該使用那種算法?”回答這一問題要考慮許多因素,包括數(shù)據(jù)的尺寸、質(zhì)量和性質(zhì)、可用的計(jì)算時(shí)間、任務(wù)的緊迫性以及你想用數(shù)據(jù)做什么。

即使是一位經(jīng)驗(yàn)豐富的數(shù)據(jù)科學(xué)家,他也無(wú)法憑空判斷哪種算法表現(xiàn)得最好,一定是要嘗試之后才能下結(jié)論。除了上述10種算法外,還有其他很多機(jī)器學(xué)習(xí)算法,如果你是新手的話,這篇文章可以作為你的入門教程

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 算法
    +關(guān)注

    關(guān)注

    23

    文章

    4587

    瀏覽量

    92501
  • 機(jī)器學(xué)習(xí)

    關(guān)注

    66

    文章

    8349

    瀏覽量

    132312
  • 決策樹
    +關(guān)注

    關(guān)注

    2

    文章

    96

    瀏覽量

    13534
  • 線性回歸
    +關(guān)注

    關(guān)注

    0

    文章

    41

    瀏覽量

    4292

原文標(biāo)題:最適合機(jī)器學(xué)習(xí)新手的10種算法

文章出處:【微信號(hào):jqr_AI,微信公眾號(hào):論智】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    PROTEL新手最適合的教程我是受益匪淺希望對(duì)你有用

    PROTEL新手最適合的教程我是受益匪淺希望對(duì)你有用,真的很適合新手使用我是學(xué)會(huì),你下載希望您多多留言,大家一起學(xué)習(xí)
    發(fā)表于 04-21 21:36

    新手入門Arduino

    如題,新手入門Arduino怎么學(xué)習(xí)比較好
    發(fā)表于 01-03 17:31

    新手入門STM32

    新手入門STM32新手入門STM32一、了解STM32二、安裝開發(fā)工具三、配置工程新手入門STM32在開始學(xué)習(xí)之前,我們一定要明確自己的目標(biāo),明確自己為什么要學(xué)。明確目標(biāo)后就真正式開始
    發(fā)表于 02-21 06:10

    光耦新手入門必讀下篇

    光耦新手入門必讀下篇
    發(fā)表于 07-21 10:08 ?1655次閱讀

    新手入門MODBUS協(xié)議整理文檔下載

    對(duì)于MODBUS協(xié)議整理的文檔,方便新手入門
    發(fā)表于 08-31 17:41 ?19次下載
    <b class='flag-5'>新手入門</b>MODBUS協(xié)議整理文檔下載

    StoneOS_5.5R1_新手入門指南

    StoneOS_5.5R1_新手入門指南
    發(fā)表于 09-07 08:28 ?5次下載
    StoneOS_5.5R1_<b class='flag-5'>新手入門</b>指南

    關(guān)于StoneOS_5.5R1_新手入門指南

    關(guān)于StoneOS_5.5R1_新手入門指南
    發(fā)表于 09-08 09:40 ?4次下載
    關(guān)于StoneOS_5.5R1_<b class='flag-5'>新手入門</b>指南

    硬件設(shè)計(jì)新手入門精讀電路圖

    硬件設(shè)計(jì)新手入門精讀電路圖
    發(fā)表于 09-16 11:00 ?99次下載
    硬件設(shè)計(jì)<b class='flag-5'>新手入門</b>精讀電路圖

    UCGUI中文手冊(cè),新手入門必備

    UCGUI中文手冊(cè),新手入門必備
    發(fā)表于 10-24 14:36 ?29次下載

    c語(yǔ)言新手入門小程序

    c語(yǔ)言新手入門小程序
    發(fā)表于 11-01 08:45 ?61次下載
    c語(yǔ)言<b class='flag-5'>新手入門</b>小程序

    機(jī)器學(xué)習(xí)新手最適合學(xué)習(xí)10個(gè)算法

    算法永遠(yuǎn)是一段代碼的靈魂,面對(duì)海量的機(jī)器學(xué)習(xí)算法,萌新最愛問的是,“我該選什么算法?”
    的頭像 發(fā)表于 03-29 14:10 ?8066次閱讀

    MicrochipDIRECT新手入門教程(編程中心)

    microchipDIRECT新手入門教程(編程中心)
    的頭像 發(fā)表于 06-07 13:46 ?5018次閱讀
    MicrochipDIRECT<b class='flag-5'>新手入門</b>教程(編程中心)

    Labview新手入門學(xué)習(xí)程序

    適用于新手入門Labview
    發(fā)表于 04-21 15:47 ?2次下載

    機(jī)器學(xué)習(xí)算法入門 機(jī)器學(xué)習(xí)算法介紹 機(jī)器學(xué)習(xí)算法對(duì)比

    ,討論一些主要的機(jī)器學(xué)習(xí)算法,以及比較它們之間的優(yōu)缺點(diǎn),以便于您選擇適合算法。 一、機(jī)器
    的頭像 發(fā)表于 08-17 16:27 ?911次閱讀

    Android手機(jī)新手入門教程

    電子發(fā)燒友網(wǎng)站提供《Android手機(jī)新手入門教程.doc》資料免費(fèi)下載
    發(fā)表于 10-30 09:33 ?0次下載
    Android手機(jī)<b class='flag-5'>新手入門</b>教程