最常見的機(jī)器學(xué)習(xí)類型是找到最佳映射Y=f(X),并預(yù)測(cè)新X對(duì)應(yīng)的Y值。這個(gè)過程被稱為預(yù)測(cè)建?;蝾A(yù)測(cè)分析,目標(biāo)是盡可能做出最準(zhǔn)確的預(yù)測(cè)。對(duì)于渴望理解機(jī)器學(xué)習(xí)基本概念的程序員來說,我們專門整理了數(shù)據(jù)科學(xué)家最常用的十種機(jī)器學(xué)習(xí)算法,方便大家快速上手。下面就由小編為您介紹的人工智能機(jī)器的十大算法。
人工智能機(jī)器的十大算法
線性回歸可能是統(tǒng)計(jì)學(xué)和機(jī)器學(xué)習(xí)中最為知名、最易于理解的一個(gè)算法。
預(yù)測(cè)建模主要關(guān)注的是如何最小化模型的誤差,或是如何在一個(gè)可解釋性代價(jià)的基礎(chǔ)上做出最為準(zhǔn)確的預(yù)測(cè)。我們將借用、重用和竊取包括統(tǒng)計(jì)學(xué)在內(nèi)的多個(gè)不同領(lǐng)域的算法,并將其用于這些目的。
線性回歸所表示的是描述一條直線的方程,通過輸入變量的特定權(quán)重系數(shù)(B)來找出輸入變量(x)和輸出變量(y)之間最適合的映射關(guān)系。
線性回歸
例如:y = B0 + B1 * x
給定輸入x,我們可以預(yù)測(cè)出y的值。線性回歸學(xué)習(xí)算法的目標(biāo)是找到系數(shù)B0和B1的值。
找出數(shù)據(jù)的線性回歸模型有多種不同的技巧,例如將線性代數(shù)解用于普通最小二乘法和梯度下降優(yōu)化問題。
線性回歸業(yè)已存在200多年,并已被廣泛研究過。使用該算法的一些竅門,是盡可能地去除非常相似的相關(guān)變量以及數(shù)據(jù)中的噪聲。這是一個(gè)快速、簡單而又好用的算法。
邏輯回歸是機(jī)器學(xué)習(xí)借自統(tǒng)計(jì)領(lǐng)域的另一項(xiàng)技術(shù),用于解決二元分類問題(有兩個(gè)類值的問題)。
邏輯回歸就像線性回歸,因?yàn)樗哪繕?biāo)是找出每個(gè)輸入變量的加權(quán)系數(shù)值。與線性回歸不同的是,邏輯回歸預(yù)測(cè)輸出值的函數(shù)是非線性的,也被稱為邏輯函數(shù)。
邏輯回歸的函數(shù)圖像看起來是一個(gè)大的S形,并將任何值轉(zhuǎn)換至0到1的區(qū)間。這種形式非常有用,因?yàn)槲覀兛梢杂靡粋€(gè)規(guī)則把邏輯函數(shù)的值轉(zhuǎn)化成0和1(例如,如果函數(shù)值小于0.5,則輸出1),從而預(yù)測(cè)類別。
邏輯回歸
基于模型學(xué)習(xí)的方式,邏輯回歸的輸出值也可以用來預(yù)測(cè)給定數(shù)據(jù)實(shí)例屬于類別0和類別1的概率。當(dāng)你的預(yù)測(cè)需要更多依據(jù)時(shí),這一點(diǎn)會(huì)非常有用。
跟線性回歸一樣,當(dāng)你剔除與輸出變量無關(guān)或與之除非常相似(相關(guān))的屬性后,邏輯回歸的效果會(huì)更好。對(duì)于二元分類問題,它是一個(gè)易于上手、快速而又有效的模型。
一般來說,邏輯回歸僅限于二元分類問題。 但如果分類類別超過兩個(gè),線性判別分析就成為你首選的線性分類算法。
線性判別分析的表達(dá)式非常簡單。 它由數(shù)據(jù)的統(tǒng)計(jì)屬性組成,并計(jì)算每個(gè)類別的屬性值。對(duì)于單個(gè)輸入變量,它包括:
每個(gè)類別的平均值。
所有類別的方差。
線性判別分析
線性判別分析通過計(jì)算每個(gè)類別的差別值,并對(duì)擁有最大值的類別進(jìn)行預(yù)測(cè)。 該方法假定數(shù)據(jù)服從高斯分布(鐘形曲線),因此預(yù)測(cè)前從數(shù)據(jù)中移除異常值會(huì)是一個(gè)很好的習(xí)慣。對(duì)于分類預(yù)測(cè)問題來說,它是一個(gè)簡單而又強(qiáng)大的方法。
決策樹是用于預(yù)測(cè)建模的一種重要機(jī)器學(xué)習(xí)算法。
決策樹模型的表現(xiàn)形式為二叉樹,也就是來自算法和數(shù)據(jù)結(jié)構(gòu)方面的二叉樹,沒有什么特別。樹上每個(gè)節(jié)點(diǎn)代表一個(gè)輸入變量(x)與一個(gè)基于該變量的分離點(diǎn)(假定這個(gè)變量是數(shù)字)。
決策樹
葉節(jié)點(diǎn)包含了用于預(yù)測(cè)的輸出變量(y)。預(yù)測(cè)是通過遍歷樹的分離點(diǎn)開始,直到抵達(dá)每一個(gè)葉節(jié)點(diǎn),并輸出該葉節(jié)點(diǎn)的分類值。
決策樹算法學(xué)習(xí)起來很快,預(yù)測(cè)速度也很快。決策樹對(duì)于各種各樣的問題都能做出準(zhǔn)確的預(yù)測(cè),并且無需對(duì)數(shù)據(jù)做任何特殊的預(yù)處理。
樸素貝葉斯是一種簡單而又強(qiáng)大的預(yù)測(cè)建模算法。
該模型由兩種概率組成,它們都能從訓(xùn)練數(shù)據(jù)中直接計(jì)算出來:1)每個(gè)類別的概率; 2)對(duì)于給定的x值,每個(gè)類別的條件概率。 一旦計(jì)算出來,概率模型就可以用于使用貝葉斯定理對(duì)新的數(shù)據(jù)進(jìn)行預(yù)測(cè)。 當(dāng)你的數(shù)據(jù)是實(shí)值時(shí),通常會(huì)假定一個(gè)高斯分布(鐘形曲線),這樣你就很容易計(jì)算出這些數(shù)據(jù)的概率。
樸素貝葉斯
樸素貝葉斯假定每個(gè)輸入變量都是獨(dú)立,所以被稱為“樸素的”。這是一個(gè)強(qiáng)假設(shè),對(duì)真實(shí)數(shù)據(jù)而言有點(diǎn)不切實(shí)際,但該方法在大范圍的復(fù)雜問題上非常有效。
K-最近鄰算法是一種非常簡單和有效。它的模型所表示是整個(gè)訓(xùn)練數(shù)據(jù)集,看上去很簡單,對(duì)吧?
對(duì)于給定的訓(xùn)練數(shù)據(jù),通過搜索整個(gè)數(shù)據(jù)集中K個(gè)最相似的實(shí)例(鄰居),匯總這K個(gè)實(shí)例的輸出變量可以預(yù)測(cè)新的數(shù)據(jù)點(diǎn)。對(duì)于回歸問題,它可能是輸出變量的平均值;對(duì)于分類問題,它可能是模式(或最常見的)類別值。
使用K-最近鄰算法的訣竅,是在于如何確定數(shù)據(jù)實(shí)例之間的相似性。最簡單的方法,如果你的屬性在歐幾里德距離上尺度相同(例如均以英寸為單位),那么基于每個(gè)輸入變量之間的差異,你就可以直接計(jì)算其數(shù)值來確定相似性。
K-最近鄰算法可能需要大量的內(nèi)存或存儲(chǔ)空間來儲(chǔ)存所有數(shù)據(jù),但只有在預(yù)測(cè)時(shí)才會(huì)執(zhí)行計(jì)算(或?qū)W習(xí))。你也可以隨時(shí)更新和管理你的訓(xùn)練實(shí)例,以保持預(yù)測(cè)的準(zhǔn)確性。
距離或緊密度的概念在非常高的維度(大量的輸入變量)中可能會(huì)失效,因?yàn)檩斎胱兞康臄?shù)量對(duì)于算法性能有著很大的負(fù)面影響。這就是維度災(zāi)難。這就要求你只使用那些與預(yù)測(cè)輸出變量最相關(guān)的輸入變量。
K-最近鄰算法的一個(gè)缺點(diǎn)是你需要使用整個(gè)訓(xùn)練數(shù)據(jù)集。而作為人工神經(jīng)網(wǎng)絡(luò),學(xué)習(xí)向量量化算法(簡稱LVQ)允許你選擇訓(xùn)練實(shí)例的數(shù)量,并能準(zhǔn)確地學(xué)習(xí)這些實(shí)例所應(yīng)有的特征。
學(xué)習(xí)向量量化
學(xué)習(xí)向量量化算法所表示的是碼本向量的集合。這些向量在初始化的時(shí)候隨機(jī)選擇出來,并在學(xué)習(xí)算法的多次迭代中優(yōu)化成最能概括訓(xùn)練數(shù)據(jù)集的集合。在學(xué)習(xí)完成后,碼本向量可以像K-最近鄰算法一樣進(jìn)行預(yù)測(cè)。通過計(jì)算每個(gè)碼本向量和新數(shù)據(jù)實(shí)例之間的距離來找到最相似的鄰居(最佳匹配碼本向量),然后返回最佳匹配單元的類別值或(在回歸情況下的實(shí)際值)作為預(yù)測(cè)。如果能重新調(diào)整數(shù)據(jù)使其處于相同的區(qū)間(如0到1之間),則可以獲得最佳的預(yù)測(cè)結(jié)果。
如果K-最近鄰算法在你的數(shù)據(jù)集上已經(jīng)給出了很好的預(yù)測(cè)結(jié)果,那么可以嘗試用學(xué)習(xí)向量量化算法來減少整個(gè)訓(xùn)練數(shù)據(jù)集的內(nèi)存存儲(chǔ)需求。
支持向量機(jī)可能是最受歡迎、討論最為廣泛的機(jī)器學(xué)習(xí)算法之一。
超平面是輸入變量空間內(nèi)的一條分割線。在支持向量機(jī)中,超平面可以通過類別(0類或1類)最佳分割輸入變量空間。在二維空間內(nèi),超平面可被視為一條線,我們假設(shè)所有的輸入點(diǎn)都可以被該線完全分開。支持向量機(jī)的目標(biāo)是找到一個(gè)分離系數(shù),讓一個(gè)超平面能夠?qū)Σ煌悇e的數(shù)據(jù)進(jìn)行最佳分割。
支持向量機(jī)
超平面與最近的數(shù)據(jù)點(diǎn)之間的距離被稱為邊距。在分離兩個(gè)類上具有最大邊距的超平面被稱為最佳超平面。超平面的確定只跟這些點(diǎn)及分類器的構(gòu)造有關(guān)。這些點(diǎn)被稱為支持向量,它們支持并定義超平面。在實(shí)踐中,可以使用優(yōu)化算法來找到能夠最大化邊距的系數(shù)。
支持向量機(jī)可能是最為強(qiáng)大的“開箱即用”分類器之一,值得你嘗試。
隨機(jī)森林是最流行、最強(qiáng)大的機(jī)器學(xué)習(xí)算法之一。它是一種被稱為Bootstrap Aggregation或Bagging的機(jī)器學(xué)習(xí)集成算法。
Bootstrap是一種從數(shù)據(jù)樣本中估算數(shù)量的強(qiáng)大統(tǒng)計(jì)方法。換句話說,你需要抽取大量的數(shù)據(jù)樣本、計(jì)算平均值,然后再計(jì)算所有均值的平均,以便更好地估計(jì)整體樣本的真實(shí)平均值。
bagging算法也使用相同的方式,但用于估計(jì)整個(gè)統(tǒng)計(jì)模型的最常見方法是決策樹。訓(xùn)練數(shù)據(jù)中的多個(gè)樣本將被取樣,然后對(duì)每個(gè)數(shù)據(jù)樣本建模。對(duì)新數(shù)據(jù)進(jìn)行預(yù)測(cè)時(shí),每個(gè)模型都會(huì)進(jìn)行預(yù)測(cè),并對(duì)每個(gè)預(yù)測(cè)結(jié)果進(jìn)行平均,以更好地估計(jì)真實(shí)的輸出值。
隨機(jī)森林
隨機(jī)森林是對(duì)bagging算法的一種調(diào)整,它不是選擇最佳分割點(diǎn)來創(chuàng)建決策樹,而是通過引入隨機(jī)性來得到次優(yōu)分割點(diǎn)。
因此,針對(duì)每個(gè)數(shù)據(jù)樣本所創(chuàng)建的模型,會(huì)與其他方式有所不同,但仍能以其獨(dú)特和不同的方式準(zhǔn)確預(yù)測(cè)。結(jié)合所有模型的預(yù)測(cè),可以更好地估計(jì)潛在的真實(shí)輸出。
如果用方差較高的算法(如決策樹)能夠獲得較好的結(jié)果,那么通過bagging算法通常可以獲得更好的結(jié)果。
Boosting是一項(xiàng)從多個(gè)弱分類器中構(gòu)建強(qiáng)分類器的集成預(yù)測(cè)技術(shù)。它從訓(xùn)練數(shù)據(jù)中構(gòu)建模型,然后通過修正前一個(gè)模型的錯(cuò)誤創(chuàng)造出第二個(gè)模型。
以此類推,模型不斷疊加,直至能夠完美預(yù)測(cè)訓(xùn)練數(shù)據(jù)集,或達(dá)到可添加的模型的數(shù)量上限。在針對(duì)二元分類所開發(fā)的boosting算法中,AdaBoost是第一個(gè)成功的。它是理解boosting算法的最佳起點(diǎn)?,F(xiàn)代boosting方法基于AdaBoost而構(gòu)建,最典型的例子是隨機(jī)梯度加速器。以上內(nèi)容就是小編為您介紹的人工智能機(jī)器的十大算法。
[免責(zé)聲明]
文章標(biāo)題: 人工智能機(jī)器的十大算法
文章內(nèi)容為網(wǎng)站編輯整理發(fā)布,僅供學(xué)習(xí)與參考,不代表本網(wǎng)站贊同其觀點(diǎn)和對(duì)其真實(shí)性負(fù)責(zé)。如涉及作品內(nèi)容、版權(quán)和其它問題,請(qǐng)及時(shí)溝通。發(fā)送郵件至36dianping@36kr.com,我們會(huì)在3個(gè)工作日內(nèi)處理。