機(jī)器學(xué)習(xí)算法被描述為學(xué)習(xí)一個(gè)目標(biāo)函數(shù) (f),它最好地將輸入變量 (X) 映射到輸出變量 (Y):Y = f(X)
最常見(jiàn)的機(jī)器學(xué)習(xí)類(lèi)型是學(xué)習(xí)映射 Y = f(X) 以針對(duì)新 X 預(yù)測(cè) Y。這稱(chēng)為預(yù)測(cè)建?;蝾A(yù)測(cè)分析,目標(biāo)就是要做出最準(zhǔn)確的預(yù)測(cè)。
TOP MACHINE LEARNING ALGORITHMS YOU SHOULD KNOW
線(xiàn)性回歸是統(tǒng)計(jì)和機(jī)器算法中最容易理解的算法之一。
線(xiàn)性回歸的表示是一個(gè)方程,它通過(guò)找到稱(chēng)為系數(shù) (B) 的輸入變量的特定權(quán)重來(lái)描述最適合輸入變量 (x) 和輸出變量 (y) 之間關(guān)系的直線(xiàn)。
例如:y = B0 + B1 * x 我們將在給定輸入 x 的情況下預(yù)測(cè) y,線(xiàn)性回歸學(xué)習(xí)算法的目標(biāo)是找到系數(shù) B0 和 B1 的值。
可以使用不同的技術(shù)從數(shù)據(jù)中學(xué)習(xí)線(xiàn)性回歸模型,例如普通最小二乘的線(xiàn)性代數(shù)解決方案和梯度下降優(yōu)化。
邏輯回歸是機(jī)器學(xué)習(xí)從統(tǒng)計(jì)學(xué)領(lǐng)域借用的另一種技術(shù)。它是二進(jìn)制分類(lèi)問(wèn)題(具有兩個(gè)類(lèi)值的問(wèn)題)的首選方法。
邏輯回歸類(lèi)似于線(xiàn)性回歸,其目標(biāo)是找到加權(quán)每個(gè)輸入變量的系數(shù)值。與線(xiàn)性回歸不同,輸出的預(yù)測(cè)是使用稱(chēng)為邏輯函數(shù)的非線(xiàn)性函數(shù)轉(zhuǎn)換的。
邏輯函數(shù)看起來(lái)像一個(gè)大 S,會(huì)將任何值轉(zhuǎn)換為 0 到 1 的范圍。這很有用,因?yàn)槲覀兛梢詫⒁?guī)則應(yīng)用于邏輯函數(shù)的輸出以將值捕捉到 0 和 1(例如,如果小于 0.5 則輸出 1) 并預(yù)測(cè)一個(gè)類(lèi)值。
由于模型的學(xué)習(xí)方式,邏輯回歸所做的預(yù)測(cè)也可以用作給定數(shù)據(jù)實(shí)例屬于 0 類(lèi)或 1 類(lèi)的概率。這對(duì)于需要給出更多理由的問(wèn)題是很有用一個(gè)預(yù)測(cè)。
與線(xiàn)性回歸一樣,當(dāng)您刪除與輸出變量無(wú)關(guān)的屬性以及彼此非常相似(相關(guān))的屬性時(shí),邏輯回歸的效果會(huì)更好。這是一個(gè)快速學(xué)習(xí)的模型,并且對(duì)二元分類(lèi)問(wèn)題有效。
邏輯回歸是一種傳統(tǒng)上僅限于兩類(lèi)分類(lèi)問(wèn)題的分類(lèi)算法。如果您有兩個(gè)以上的類(lèi)別,則線(xiàn)性判別分析算法是首選的線(xiàn)性分類(lèi)技術(shù)。
LDA 的表示非常簡(jiǎn)單。它由您的數(shù)據(jù)的統(tǒng)計(jì)屬性組成,為每個(gè)類(lèi)計(jì)算。對(duì)于單個(gè)輸入變量,這包括:
通過(guò)計(jì)算每個(gè)類(lèi)別的判別值并針對(duì)具有最大值的類(lèi)別進(jìn)行預(yù)測(cè)。假設(shè)數(shù)據(jù)具有高斯分布(鐘形曲線(xiàn)),因此最好事先從數(shù)據(jù)中刪除異常值。它是分類(lèi)預(yù)測(cè)建模問(wèn)題的一種簡(jiǎn)單而強(qiáng)大的方法。
決策樹(shù)是預(yù)測(cè)建模機(jī)器學(xué)習(xí)的一種重要算法。
決策樹(shù)模型的表示是二叉樹(shù)。這是來(lái)自算法和數(shù)據(jù)結(jié)構(gòu)的二叉樹(shù),沒(méi)什么花哨的。每個(gè)節(jié)點(diǎn)代表一個(gè)輸入變量 (x) 和該變量上的一個(gè)分割點(diǎn)(假設(shè)變量是數(shù)字)。
樹(shù)的葉節(jié)點(diǎn)包含一個(gè)輸出變量 (y),用于進(jìn)行預(yù)測(cè)。通過(guò)遍歷樹(shù)的分裂直到到達(dá)葉節(jié)點(diǎn)并在該葉節(jié)點(diǎn)處輸出類(lèi)值來(lái)進(jìn)行預(yù)測(cè)。
樹(shù)的預(yù)測(cè)速度也很快。它們通常對(duì)于廣泛的問(wèn)題也很準(zhǔn)確,并且不需要對(duì)數(shù)據(jù)進(jìn)行任何特殊準(zhǔn)備。
樸素貝葉斯是一種簡(jiǎn)單但功能強(qiáng)大的預(yù)測(cè)建模算法。
該模型由兩種類(lèi)型的概率組成,可以直接從您的訓(xùn)練數(shù)據(jù)中計(jì)算出來(lái):
樸素貝葉斯被稱(chēng)為樸素,因?yàn)樗僭O(shè)每個(gè)輸入變量都是獨(dú)立的。這是一個(gè)強(qiáng)有力的假設(shè),對(duì)于真實(shí)數(shù)據(jù)來(lái)說(shuō)是不現(xiàn)實(shí)的,然而,該技術(shù)在處理大量復(fù)雜問(wèn)題時(shí)非常有效。
KNN算法非常簡(jiǎn)單,非常有效。KNN 的模型表示是整個(gè)訓(xùn)練數(shù)據(jù)集。
通過(guò)在整個(gè)訓(xùn)練集中搜索 K 個(gè)最相似的實(shí)例(鄰居)并匯總這些 K 個(gè)實(shí)例的輸出變量,對(duì)新數(shù)據(jù)點(diǎn)進(jìn)行預(yù)測(cè)。
對(duì)于回歸問(wèn)題,這可能是平均輸出變量,對(duì)于分類(lèi)問(wèn)題,這可能是模式(或最常見(jiàn)的)類(lèi)值。
訣竅在于如何確定數(shù)據(jù)實(shí)例之間的相似性。
KNN 可能需要大量?jī)?nèi)存或空間來(lái)存儲(chǔ)所有數(shù)據(jù),但僅在需要預(yù)測(cè)時(shí)才及時(shí)執(zhí)行計(jì)算(或?qū)W習(xí))。這個(gè)期間你可以隨著時(shí)間的推移更新和管理訓(xùn)練實(shí)例,以保持預(yù)測(cè)的準(zhǔn)確性。
K-Nearest Neighbors 的一個(gè)缺點(diǎn)是需要保留整個(gè)訓(xùn)練數(shù)據(jù)集。
學(xué)習(xí)向量量化算法(或簡(jiǎn)稱(chēng) LVQ)是一種人工神經(jīng)網(wǎng)絡(luò)算法,它允許選擇要掛起的訓(xùn)練實(shí)例數(shù)量并準(zhǔn)確了解這些實(shí)例的外觀(guān)。
LVQ 的表示是碼本向量的集合。這些是在開(kāi)始時(shí)隨機(jī)選擇的,并適合在學(xué)習(xí)算法的多次迭代中最好地總結(jié)訓(xùn)練數(shù)據(jù)集。學(xué)習(xí)后,碼本向量可以像 K-Nearest Neighbors 一樣用于進(jìn)行預(yù)測(cè)。通過(guò)計(jì)算每個(gè)碼本向量與新數(shù)據(jù)實(shí)例之間的距離,找到最相似的鄰居(最佳匹配碼本向量)。然后返回最佳匹配單元的類(lèi)值或(回歸情況下的實(shí)際值)作為預(yù)測(cè)。 如果重新調(diào)整數(shù)據(jù)以具有相同的范圍,例如在 0 和 1 之間,則可以獲得最佳結(jié)果。
如果發(fā)現(xiàn) KNN 在你的數(shù)據(jù)集上提供了良好的結(jié)果,可以嘗試使用 LVQ 來(lái)減少存儲(chǔ)整個(gè)訓(xùn)練數(shù)據(jù)集的內(nèi)存需求。
支持向量機(jī)可能是最受歡迎和談?wù)撟疃嗟臋C(jī)器學(xué)習(xí)算法之一。
超平面是分割輸入變量空間的線(xiàn)。
在 SVM 中,選擇一個(gè)超平面來(lái)最好地將輸入變量空間中的點(diǎn)按它們的類(lèi)(類(lèi) 0 或類(lèi) 1)分開(kāi)。在二維中,你可以將其可視化為一條線(xiàn),假設(shè)我們所有的輸入點(diǎn)都可以被這條線(xiàn)完全隔開(kāi)。SVM 學(xué)習(xí)算法通過(guò)超平面找到導(dǎo)致類(lèi)的最佳分離的系數(shù)。
超平面和最近數(shù)據(jù)點(diǎn)之間的距離稱(chēng)為邊距。 可以分離這兩個(gè)類(lèi)的最佳或最優(yōu)超平面是具有最大邊距的線(xiàn)。
只有這些點(diǎn)與定義超平面和構(gòu)建分類(lèi)器有關(guān)。這些點(diǎn)稱(chēng)為支持向量。它們支持或定義超平面。在實(shí)踐中,使用優(yōu)化算法來(lái)找到最大化邊際的系數(shù)值。
隨機(jī)森林是最流行和最強(qiáng)大的機(jī)器學(xué)習(xí)算法之一。它是一種集成機(jī)器學(xué)習(xí)算法。稱(chēng)為 Bootstrap Aggregation 或 bagging。
Bootstrap是一種強(qiáng)大的統(tǒng)計(jì)方法,用于從數(shù)據(jù)樣本中估計(jì)數(shù)量。
在 bagging 中,使用相同的方法,但用于估計(jì)整個(gè)統(tǒng)計(jì)模型,最常見(jiàn)的是決策樹(shù)。
獲取訓(xùn)練數(shù)據(jù)的多個(gè)樣本,然后為每個(gè)數(shù)據(jù)樣本構(gòu)建模型。當(dāng)你需要對(duì)新數(shù)據(jù)進(jìn)行預(yù)測(cè)時(shí),每個(gè)模型都會(huì)進(jìn)行預(yù)測(cè),并對(duì)預(yù)測(cè)進(jìn)行平均以更好地估計(jì)真實(shí)輸出值。
隨機(jī)森林是對(duì)這種方法的一種調(diào)整,其中創(chuàng)建了決策樹(shù),因此不是選擇最佳分割點(diǎn),而是通過(guò)引入隨機(jī)性來(lái)進(jìn)行次優(yōu)分割。
因此,為每個(gè)數(shù)據(jù)樣本創(chuàng)建的模型與其他模型相比更加不同,但仍然以其獨(dú)特和不同的方式準(zhǔn)確。結(jié)合他們的預(yù)測(cè)可以更好地估計(jì)真實(shí)的潛在輸出值。
Boosting是一種集成技術(shù),它試圖從多個(gè)弱分類(lèi)器中創(chuàng)建一個(gè)強(qiáng)分類(lèi)器。
這是通過(guò)從訓(xùn)練數(shù)據(jù)構(gòu)建模型,然后創(chuàng)建第二個(gè)模型來(lái)嘗試糾正第一個(gè)模型中的錯(cuò)誤來(lái)完成的。添加模型直到訓(xùn)練集被完美預(yù)測(cè)或添加最大數(shù)量的模型。
AdaBoost 是為二進(jìn)制分類(lèi)開(kāi)發(fā)的第一個(gè)真正成功的提升算法。這是理解 boosting 的最佳起點(diǎn)。
AdaBoost 與短決策樹(shù)一起使用。 在創(chuàng)建第一棵樹(shù)后,樹(shù)在每個(gè)訓(xùn)練實(shí)例上的性能用于衡量下一棵創(chuàng)建的樹(shù)應(yīng)該對(duì)每個(gè)訓(xùn)練實(shí)例的關(guān)注程度。難以預(yù)測(cè)的訓(xùn)練數(shù)據(jù)被賦予更高的權(quán)重,而易于預(yù)測(cè)的實(shí)例被賦予更少的權(quán)重。
模型一個(gè)接一個(gè)地按順序創(chuàng)建,每個(gè)模型都會(huì)更新訓(xùn)練實(shí)例上的權(quán)重,這些權(quán)重會(huì)影響序列中下一棵樹(shù)執(zhí)行的學(xué)習(xí)。
在構(gòu)建完所有樹(shù)之后,將對(duì)新數(shù)據(jù)進(jìn)行預(yù)測(cè),并且每棵樹(shù)的性能取決于它在訓(xùn)練數(shù)據(jù)上的準(zhǔn)確程度。
由于算法非常重視糾正錯(cuò)誤,因此擁有干凈的數(shù)據(jù)并刪除異常值非常重要。
聯(lián)系客服