常見(jiàn)機(jī)器學(xué)習(xí)算法的摘要。

> Photo by Santiago Lacarta on Unsplash
近年來(lái),由于對(duì)技術(shù)的高需求和進(jìn)步,機(jī)器學(xué)習(xí)的普及已大大增加。 機(jī)器學(xué)習(xí)可以從數(shù)據(jù)中創(chuàng)造價(jià)值的潛力使其吸引了許多不同行業(yè)的企業(yè)。 大多數(shù)機(jī)器學(xué)習(xí)產(chǎn)品都是使用現(xiàn)成的機(jī)器學(xué)習(xí)算法進(jìn)行設(shè)計(jì)和實(shí)現(xiàn)的,并且需要進(jìn)行一些調(diào)整和細(xì)微更改。
機(jī)器學(xué)習(xí)算法種類(lèi)繁多,可分為三大類(lèi):
· 監(jiān)督學(xué)習(xí)算法在給定一組觀察值的情況下,對(duì)特征(獨(dú)立變量)和標(biāo)簽(目標(biāo))之間的關(guān)系進(jìn)行建模。 然后,使用該模型使用特征預(yù)測(cè)新觀測(cè)的標(biāo)簽。 根據(jù)目標(biāo)變量的特性,它可以是分類(lèi)(離散目標(biāo)變量)或回歸(連續(xù)目標(biāo)變量)任務(wù)。
· 無(wú)監(jiān)督學(xué)習(xí)算法試圖在未標(biāo)記的數(shù)據(jù)中找到結(jié)構(gòu)。
· 強(qiáng)化學(xué)習(xí)基于行動(dòng)獎(jiǎng)勵(lì)原則。 代理通過(guò)迭代計(jì)算其行為的報(bào)酬來(lái)學(xué)習(xí)達(dá)到目標(biāo)。
在本文中,我將介紹前兩類(lèi)中最常見(jiàn)的算法。
注意:盡管深度學(xué)習(xí)是機(jī)器學(xué)習(xí)的一個(gè)子領(lǐng)域,但我不會(huì)在本文中包含任何深度學(xué)習(xí)算法。 我認(rèn)為深度學(xué)習(xí)算法由于復(fù)雜性和動(dòng)態(tài)性而應(yīng)分開(kāi)討論。 此外,我會(huì)猶豫地使這篇文章過(guò)長(zhǎng),使讀者感到厭煩。
開(kāi)始吧。
1.線性回歸
線性回歸是一種有監(jiān)督的學(xué)習(xí)算法,它通過(guò)對(duì)數(shù)據(jù)擬合線性方程,嘗試對(duì)連續(xù)目標(biāo)變量和一個(gè)或多個(gè)自變量之間的關(guān)系進(jìn)行建模。
為了使線性回歸成為一個(gè)不錯(cuò)的選擇,自變量和目標(biāo)變量之間必須存在線性關(guān)系。 有許多工具可以探索變量之間的關(guān)系,例如散點(diǎn)圖和相關(guān)矩陣。 例如,下面的散點(diǎn)圖顯示了自變量(x軸)和因變量(y軸)之間的正相關(guān)。 隨著一個(gè)增加,另一個(gè)也增加。

線性回歸模型試圖使回歸線適合最能表示關(guān)系或相關(guān)性的數(shù)據(jù)點(diǎn)。 最常用的技術(shù)是普通最小二乘(OLE)。 使用此方法,可以通過(guò)最小化數(shù)據(jù)點(diǎn)和回歸線之間距離的平方和來(lái)找到最佳回歸線。 對(duì)于上面的數(shù)據(jù)點(diǎn),使用OLE獲得的回歸線看起來(lái)像:

2.支持向量機(jī)
支持向量機(jī)(SVM)是一種監(jiān)督學(xué)習(xí)算法,主要用于分類(lèi)任務(wù),但也適用于回歸任務(wù)。
SVM通過(guò)繪制決策邊界來(lái)區(qū)分類(lèi)。 如何繪制或確定決策邊界是SVM算法中最關(guān)鍵的部分。 在創(chuàng)建決策邊界之前,將每個(gè)觀察值(或數(shù)據(jù)點(diǎn))繪制在n維空間中。 " n"是所使用功能的數(shù)量。 例如,如果我們使用"長(zhǎng)度"和"寬度"對(duì)不同的"單元格"進(jìn)行分類(lèi),則觀察結(jié)果將繪制在二維空間中,并且決策邊界為一條線。 如果我們使用3個(gè)要素,則決策邊界是3維空間中的平面。 如果我們使用3個(gè)以上的特征,則決策邊界將變成一個(gè)很難可視化的超平面。

> Decision boundary in 2D space is a line
決策邊界以與支持向量的距離最大的方式繪制。 如果決策邊界距離支持向量太近,它將對(duì)噪聲高度敏感并且不能很好地泛化。 即使自變量的很小變化也可能導(dǎo)致分類(lèi)錯(cuò)誤。
數(shù)據(jù)點(diǎn)并非總是如上圖所示線性可分離。 在這些情況下,SVM使用內(nèi)核技巧來(lái)測(cè)量較高維空間中數(shù)據(jù)點(diǎn)的相似性(或接近度),以使它們線性可分離。
內(nèi)核功能是一種相似性度量。 輸入是原始要素,輸出是新要素空間中的相似性度量。 這里的相似度表示緊密度。 實(shí)際上將數(shù)據(jù)點(diǎn)轉(zhuǎn)換為高維特征空間是一項(xiàng)昂貴的操作。 該算法實(shí)際上并未將數(shù)據(jù)點(diǎn)轉(zhuǎn)換為新的高維特征空間。 內(nèi)核化SVM無(wú)需實(shí)際進(jìn)行變換就可以根據(jù)高維特征空間中的相似性度量來(lái)計(jì)算決策邊界。 我認(rèn)為這就是為什么它也稱(chēng)為內(nèi)核技巧。
在維數(shù)大于樣本數(shù)的情況下,SVM特別有效。 找到?jīng)Q策邊界時(shí),SVM使用訓(xùn)練點(diǎn)的子集而不是所有點(diǎn),從而提高了存儲(chǔ)效率。 另一方面,大型數(shù)據(jù)集的訓(xùn)練時(shí)間會(huì)增加,這會(huì)對(duì)性能產(chǎn)生負(fù)面影響。
3.樸素貝葉斯
樸素貝葉斯是一種用于分類(lèi)任務(wù)的監(jiān)督學(xué)習(xí)算法。 因此,它也被稱(chēng)為樸素貝葉斯分類(lèi)器。
樸素貝葉斯假設(shè)要素彼此獨(dú)立,要素之間沒(méi)有關(guān)聯(lián)。 但是,現(xiàn)實(shí)生活中并非如此。 特征不相關(guān)的這種天真假設(shè)是將該算法稱(chēng)為"天真"的原因。
樸素貝葉斯算法的直覺(jué)是貝葉斯定理:

p(A | B):給定事件B發(fā)生事件A的概率
p(B | A):給定事件A,事件B的概率
p(A):事件A的概率
p(B):事件B的概率
樸素貝葉斯分類(lèi)器在給定一組特征值(即p(yi | x1,x2,…,xn))的情況下計(jì)算類(lèi)的概率。 將其輸入貝葉斯定理:

p(x1,x2,…,xn | yi)表示給定類(lèi)別標(biāo)簽的特定特征組合(數(shù)據(jù)集中的觀察值/行)的概率。 我們需要非常大的數(shù)據(jù)集來(lái)估計(jì)特征值所有不同組合的概率分布。 為了克服這個(gè)問(wèn)題,樸素貝葉斯算法假定所有特征彼此獨(dú)立。 此外,可以刪除分母(p(x1,x2,…,xn)),因?yàn)樗鼉H對(duì)給定觀測(cè)值(p(yi | x1,x2,…,xn)的一類(lèi)條件概率的值進(jìn)行歸一化 )。
類(lèi)(p(yi))的概率很容易計(jì)算:

在特征是獨(dú)立的假設(shè)下,p(x1,x2,…,xn | yi)可以寫(xiě)成:

給定類(lèi)別標(biāo)簽(即p(x1 | yi))的單個(gè)特征的條件概率可以從數(shù)據(jù)中輕松估算。 該算法需要為每個(gè)類(lèi)別獨(dú)立存儲(chǔ)特征的概率分布。 例如,如果有5個(gè)類(lèi)別和10個(gè)特征,則需要存儲(chǔ)50個(gè)不同的概率分布。
將所有這些加在一起,對(duì)于樸素貝葉斯算法來(lái)說(shuō),計(jì)算給定特征值(p(yi | x1,x2,…,xn))觀察類(lèi)的概率變得容易。
與復(fù)雜算法相比,所有特征都是獨(dú)立的這一假設(shè)使樸素貝葉斯算法非常快。 在某些情況下,速度比精度更高。 另一方面,相同的假設(shè)使樸素貝葉斯算法不如復(fù)雜算法準(zhǔn)確。 速度是有代價(jià)的!
4. Logistic回歸
邏輯回歸是一種監(jiān)督學(xué)習(xí)算法,主要用于二進(jìn)制分類(lèi)問(wèn)題。 盡管"回歸"與"分類(lèi)"相矛盾,但是這里的重點(diǎn)是"邏輯"一詞,指的是在該算法中執(zhí)行分類(lèi)任務(wù)的邏輯函數(shù)。 邏輯回歸是一種簡(jiǎn)單但非常有效的分類(lèi)算法,因此通常用于許多二進(jìn)制分類(lèi)任務(wù)。 客戶(hù)流失,垃圾郵件,網(wǎng)站或廣告點(diǎn)擊預(yù)測(cè)是邏輯回歸提供強(qiáng)大解決方案的一些示例。
邏輯回歸的基礎(chǔ)是邏輯函數(shù),也稱(chēng)為Sigmoid函數(shù),該函數(shù)可以接受任何實(shí)數(shù)值,并將其映射到0到1之間的一個(gè)值。

考慮我們有以下線性方程式可以解決:

Logistic回歸模型將線性方程式作為輸入,并使用logistic函數(shù)和對(duì)數(shù)賠率執(zhí)行二進(jìn)制分類(lèi)任務(wù)。 然后,我們將得到著名的邏輯回歸形圖:

我們可以按原樣使用計(jì)算出的概率。 例如,輸出可以是"此電子郵件為垃圾郵件的概率為95%"或"客戶(hù)點(diǎn)擊此廣告的概率為70%"。 但是,在大多數(shù)情況下,概率用于對(duì)數(shù)據(jù)點(diǎn)進(jìn)行分類(lèi)。 例如,如果概率大于50%,則預(yù)測(cè)為肯定類(lèi)別(1)。 否則,預(yù)測(cè)為否定等級(jí)(0)。
對(duì)于所有高于50%的概率值,并不總是希望選擇肯定的類(lèi)別。 關(guān)于垃圾郵件案例,我們幾乎必須確定要將電子郵件歸類(lèi)為垃圾郵件。 由于檢測(cè)為垃圾郵件的電子郵件直接進(jìn)入垃圾郵件文件夾,因此我們不希望用戶(hù)錯(cuò)過(guò)重要的電子郵件。 除非我們幾乎確定,否則電子郵件不會(huì)被歸類(lèi)為垃圾郵件。 另一方面,在與健康相關(guān)的問(wèn)題中進(jìn)行分類(lèi)時(shí),要求我們更加敏感。 即使我們有點(diǎn)懷疑細(xì)胞是惡性的,我們也不想錯(cuò)過(guò)它。 因此,用作正面和負(fù)面類(lèi)別之間閾值的值取決于問(wèn)題。 很好的是,邏輯回歸使我們可以調(diào)整此閾值。
5. K最近鄰居(kNN)
K最近鄰(kNN)是一種監(jiān)督學(xué)習(xí)算法,可用于解決分類(lèi)和回歸任務(wù)。 kNN背后的主要思想是,數(shù)據(jù)點(diǎn)的值或類(lèi)由其周?chē)臄?shù)據(jù)點(diǎn)確定。
kNN分類(lèi)器通過(guò)多數(shù)投票原則確定數(shù)據(jù)點(diǎn)的類(lèi)別。 例如,如果k設(shè)置為5,則檢查5個(gè)最接近點(diǎn)的類(lèi)別。 根據(jù)多數(shù)類(lèi)別進(jìn)行預(yù)測(cè)。 同樣,kNN回歸采用5個(gè)最接近點(diǎn)的平均值。 讓我們來(lái)看一個(gè)例子。 考慮以下屬于4個(gè)不同類(lèi)別的數(shù)據(jù)點(diǎn):

讓我們看看預(yù)測(cè)的類(lèi)別如何根據(jù)k值變化:


確定最佳k值非常重要。 如果k太低,則模型太具體,不能很好地概括。 它還傾向于對(duì)噪聲敏感。 該模型在火車(chē)上實(shí)現(xiàn)了很高的準(zhǔn)確性,但是對(duì)于新的,以前看不見(jiàn)的數(shù)據(jù)點(diǎn)而言,它的預(yù)測(cè)能力很差。 因此,我們很可能最終會(huì)得出過(guò)擬合模型。 另一方面,如果k太大,則模型過(guò)于籠統(tǒng),在訓(xùn)練集和測(cè)試集上都不是很好的預(yù)測(cè)指標(biāo)。 這種情況稱(chēng)為欠擬合。
kNN簡(jiǎn)單易懂。 它沒(méi)有做任何假設(shè),因此可以在非線性任務(wù)中實(shí)現(xiàn)。 隨著數(shù)據(jù)點(diǎn)數(shù)量的增加,kNN變得非常慢,因?yàn)槟P托枰鎯?chǔ)所有數(shù)據(jù)點(diǎn)。 因此,它也不是有效的存儲(chǔ)器。 kNN的另一個(gè)缺點(diǎn)是它對(duì)異常值敏感。
6.決策樹(shù)
決策樹(shù)建立在反復(fù)詢(xún)問(wèn)問(wèn)題以對(duì)數(shù)據(jù)進(jìn)行分區(qū)的基礎(chǔ)上。 使用決策樹(shù)的可視化表示來(lái)更容易地概念化分區(qū)數(shù)據(jù):

這代表了預(yù)測(cè)客戶(hù)流失的決策樹(shù)。 第一次劃分是基于每月的費(fèi)用金額。 然后,算法不斷詢(xún)問(wèn)問(wèn)題以分離類(lèi)標(biāo)簽。 隨著樹(shù)的深入,問(wèn)題變得更加具體。
決策樹(shù)算法的目的是在每個(gè)分區(qū)盡可能多地提高預(yù)測(cè)性,以便模型不斷獲取有關(guān)數(shù)據(jù)集的信息。 隨機(jī)分割要素通常不能使我們深入了解數(shù)據(jù)集。 增加節(jié)點(diǎn)純度的拆分更具參考價(jià)值。 節(jié)點(diǎn)的純度與該節(jié)點(diǎn)中不同類(lèi)別的分布成反比。 要提出的問(wèn)題以提高純度或減少雜質(zhì)的方式選擇。
我們問(wèn)多少個(gè)問(wèn)題? 我們什么時(shí)候停止? 我們的樹(shù)什么時(shí)候足以解決我們的分類(lèi)問(wèn)題? 對(duì)所有這些問(wèn)題的答案使我們想到了機(jī)器學(xué)習(xí)中最重要的概念之一:過(guò)度擬合。 該模型可以一直詢(xún)問(wèn)問(wèn)題,直到所有節(jié)點(diǎn)都純?yōu)橹埂?但是,這將是一個(gè)過(guò)于具體的模型,不能很好地推廣。 它通過(guò)訓(xùn)練集可以達(dá)到很高的精度,但是在新的,以前看不見(jiàn)的數(shù)據(jù)點(diǎn)上表現(xiàn)不佳,這表明過(guò)擬合。 scikit-learn中決策樹(shù)算法的樹(shù)深度由max_depth參數(shù)控制。
決策樹(shù)算法通常不需要規(guī)范化或縮放特征。 它還適用于混合特征數(shù)據(jù)類(lèi)型(連續(xù),分類(lèi),二進(jìn)制)。 不利的一面是,它很容易過(guò)度擬合,因此必須進(jìn)行匯總才能很好地概括。
6.隨機(jī)森林
隨機(jī)森林是許多決策樹(shù)的集合。 隨機(jī)森林是使用稱(chēng)為裝袋的方法構(gòu)建的,其中決策樹(shù)用作并行估計(jì)器。 如果用于分類(lèi)問(wèn)題,則結(jié)果基于從每個(gè)決策樹(shù)收到的結(jié)果的多數(shù)票。 對(duì)于回歸,葉節(jié)點(diǎn)的預(yù)測(cè)是該葉中目標(biāo)值的平均值。 隨機(jī)森林回歸采用決策樹(shù)結(jié)果的平均值。
隨機(jī)森林減少了過(guò)度擬合的風(fēng)險(xiǎn),準(zhǔn)確性比單個(gè)決策樹(shù)高得多。 此外,隨機(jī)森林中的決策樹(shù)并行運(yùn)行,因此時(shí)間不會(huì)成為瓶頸。
隨機(jī)森林的成功很大程度上取決于使用不相關(guān)的決策樹(shù)。 如果我們使用相同或非常相似的樹(shù),則總體結(jié)果將與單個(gè)決策樹(shù)的結(jié)果相差無(wú)幾。 隨機(jī)森林通過(guò)自舉和特征隨機(jī)性來(lái)實(shí)現(xiàn)具有不相關(guān)的決策樹(shù)。
自舉是從訓(xùn)練數(shù)據(jù)中隨機(jī)選擇樣本進(jìn)行替換。 它們稱(chēng)為引導(dǎo)程序樣本。

> Bootstrap samples (Figure source)
通過(guò)為隨機(jī)森林中的每個(gè)決策樹(shù)隨機(jī)選擇特征來(lái)實(shí)現(xiàn)特征隨機(jī)性。 可以使用max_features參數(shù)控制隨機(jī)森林中每棵樹(shù)使用的特征數(shù)量。

> Feature randomness
隨機(jī)森林是針對(duì)許多不同問(wèn)題的高度精確的模型,不需要規(guī)范化或縮放。 但是,與快速線性模型(即樸素貝葉斯)相比,對(duì)于高維數(shù)據(jù)集(即文本分類(lèi))而言,這不是一個(gè)好選擇。

7.梯度提升決策樹(shù)(GBDT)
GBDT是一種集成算法,使用提升方法來(lái)組合各個(gè)決策樹(shù)。
提升意味著將一系列學(xué)習(xí)算法串聯(lián)起來(lái),以從許多順序連接的弱學(xué)習(xí)者那里獲得一個(gè)強(qiáng)學(xué)習(xí)者。 對(duì)于GBDT,弱學(xué)習(xí)者是決策樹(shù)。
每棵樹(shù)都試圖最小化前一棵樹(shù)的錯(cuò)誤。 Boosting中的樹(shù)是學(xué)習(xí)能力較弱的樹(shù),但是連續(xù)添加許多樹(shù),每棵樹(shù)都專(zhuān)注于前一棵樹(shù)的錯(cuò)誤,因此可以構(gòu)建一個(gè)高效且準(zhǔn)確的模型。 與裝袋不同,加強(qiáng)不涉及自舉采樣。 每次添加新樹(shù)時(shí),它都適合初始數(shù)據(jù)集的修改版本。

由于樹(shù)是順序添加的,因此增強(qiáng)算法學(xué)習(xí)緩慢。 在統(tǒng)計(jì)學(xué)習(xí)中,學(xué)習(xí)緩慢的模型表現(xiàn)更好。
損失函數(shù)用于檢測(cè)殘差。 例如,均方誤差(MSE)可用于回歸任務(wù),對(duì)數(shù)損失(對(duì)數(shù)損失)可用于分類(lèi)任務(wù)。 值得注意的是,添加新樹(shù)后,模型中的現(xiàn)有樹(shù)不會(huì)更改。 添加的決策樹(shù)適合當(dāng)前模型的殘差。
學(xué)習(xí)速率和n_estimator是用于梯度提升決策樹(shù)的兩個(gè)關(guān)鍵超參數(shù)。 學(xué)習(xí)率表示為α,僅表示模型學(xué)習(xí)的速度。 每棵新樹(shù)都會(huì)修改整個(gè)模型。 修改的大小由學(xué)習(xí)率控制。 n_estimator是模型中使用的樹(shù)數(shù)。 如果學(xué)習(xí)率低,我們需要更多的樹(shù)來(lái)訓(xùn)練模型。 但是,我們?cè)谶x擇樹(shù)數(shù)時(shí)需要非常小心。 使用過(guò)多樹(shù)木會(huì)產(chǎn)生過(guò)度擬合的高風(fēng)險(xiǎn)。
與隨機(jī)森林相比,GBDT在分類(lèi)和回歸任務(wù)上都非常有效,并且提供了更準(zhǔn)確的預(yù)測(cè)。 它可以處理混合類(lèi)型的功能,不需要預(yù)處理。 GBDT需要仔細(xì)調(diào)整超參數(shù),以防止模型過(guò)度擬合。
GBDT算法是如此強(qiáng)大,以至于已經(jīng)實(shí)現(xiàn)了許多升級(jí)版本,例如XGBOOST,LightGBM,CatBoost。
關(guān)于過(guò)度擬合的注意事項(xiàng)
隨機(jī)森林和梯度增強(qiáng)決策樹(shù)之間的一個(gè)關(guān)鍵區(qū)別是模型中使用的樹(shù)數(shù)。 增加隨機(jī)森林中的樹(shù)木數(shù)量不會(huì)導(dǎo)致過(guò)度擬合。 在某一點(diǎn)之后,模型的準(zhǔn)確性不會(huì)因添加更多樹(shù)而增加,但也不會(huì)因添加過(guò)多樹(shù)而受到負(fù)面影響。 由于計(jì)算原因,您仍然不想添加不必要的樹(shù),但是不存在與隨機(jī)森林中的樹(shù)數(shù)相關(guān)聯(lián)的過(guò)擬合風(fēng)險(xiǎn)。
但是,就過(guò)度擬合而言,梯度增強(qiáng)決策樹(shù)中的樹(shù)數(shù)非常關(guān)鍵。 添加過(guò)多的樹(shù)會(huì)導(dǎo)致過(guò)擬合,因此一定要停止添加樹(shù),這一點(diǎn)很重要。
8. K-均值聚類(lèi)
聚類(lèi)是一種將一組數(shù)據(jù)點(diǎn)組合在一起的方式,即將相似的數(shù)據(jù)點(diǎn)組合在一起。 因此,聚類(lèi)算法在數(shù)據(jù)點(diǎn)之間尋找相似性或相異性。 聚類(lèi)是一種無(wú)監(jiān)督的學(xué)習(xí)方法,因此沒(méi)有與數(shù)據(jù)點(diǎn)相關(guān)的標(biāo)簽。 聚類(lèi)算法試圖找到數(shù)據(jù)的底層結(jié)構(gòu)。
聚類(lèi)不是分類(lèi)。
分類(lèi)任務(wù)中的觀測(cè)值(或數(shù)據(jù)點(diǎn))具有標(biāo)簽。 每個(gè)觀察結(jié)果根據(jù)一些測(cè)量結(jié)果進(jìn)行分類(lèi)。 分類(lèi)算法嘗試對(duì)觀測(cè)值的度量(特征)與其指定的類(lèi)別之間的關(guān)系建模。 然后,模型預(yù)測(cè)新觀測(cè)的類(lèi)別。
K-均值聚類(lèi)旨在將數(shù)據(jù)分為k個(gè)聚類(lèi),以使同一聚類(lèi)中的數(shù)據(jù)點(diǎn)相似,而不同聚類(lèi)中的數(shù)據(jù)點(diǎn)相距更遠(yuǎn)。 因此,這是一種基于分區(qū)的群集技術(shù)。 兩個(gè)點(diǎn)的相似性取決于它們之間的距離。
K-均值聚類(lèi)試圖使聚類(lèi)內(nèi)的距離最小化,并使不同聚類(lèi)之間的距離最大化。 K-均值算法無(wú)法確定簇?cái)?shù)。 創(chuàng)建KMeans對(duì)象時(shí),我們需要對(duì)其進(jìn)行定義,這可能是一項(xiàng)艱巨的任務(wù)。
考慮以下數(shù)據(jù)集的2D可視化:

可以將其劃分為4個(gè)不同的群集,如下所示:

現(xiàn)實(shí)生活中的數(shù)據(jù)集要復(fù)雜得多,在這些數(shù)據(jù)集中聚類(lèi)沒(méi)有明顯分開(kāi)。 但是,該算法以相同的方式工作。 K均值是一個(gè)迭代過(guò)程。 它基于期望最大化算法。 確定群集數(shù)量后,它可以通過(guò)執(zhí)行以下步驟來(lái)工作:
· 為每個(gè)群集隨機(jī)選擇形心(群集的中心)。
· 計(jì)算所有數(shù)據(jù)點(diǎn)到質(zhì)心的距離。
· 將數(shù)據(jù)點(diǎn)分配給最近的群集。
· 通過(guò)獲取群集中所有數(shù)據(jù)點(diǎn)的平均值,找到每個(gè)群集的新質(zhì)心。
· 重復(fù)步驟2,3和4,直到所有點(diǎn)收斂并且聚類(lèi)中心停止移動(dòng)。
K-Means聚類(lèi)相對(duì)快速且易于解釋。 它還能夠以智能方式選擇初始質(zhì)心的位置,從而加快收斂速度。
k均值的挑戰(zhàn)之一是必須預(yù)先確定簇的數(shù)量。 K-means算法無(wú)法猜測(cè)數(shù)據(jù)中存在多少個(gè)簇。 如果存在將數(shù)據(jù)中的組分開(kāi)的非線性結(jié)構(gòu),則k均值將不是一個(gè)好的選擇。
9.層次聚類(lèi)
分層聚類(lèi)意味著通過(guò)迭代分組或分離數(shù)據(jù)點(diǎn)來(lái)創(chuàng)建聚類(lèi)樹(shù)。 有兩種類(lèi)型的層次結(jié)構(gòu)聚類(lèi):
· 聚集聚類(lèi)
· 分裂聚類(lèi)
分層聚類(lèi)的優(yōu)點(diǎn)之一是我們不必指定聚類(lèi)的數(shù)量(但可以)。

聚集聚類(lèi)是一種自下而上的方法。 首先假定每個(gè)數(shù)據(jù)點(diǎn)都是一個(gè)單獨(dú)的群集。 然后,將相似的群集進(jìn)行迭代組合。

上圖稱(chēng)為樹(shù)狀圖,該圖表示基于樹(shù)的方法。 在分層聚類(lèi)中,樹(shù)狀圖用于可視化聚類(lèi)之間的關(guān)系。
分層聚類(lèi)的優(yōu)點(diǎn)之一是我們不必預(yù)先指定聚類(lèi)的數(shù)量。 但是,將所有數(shù)據(jù)點(diǎn)組合到一個(gè)群集中是不明智的。 我們應(yīng)該在某個(gè)時(shí)候停止合并集群。 Scikit-learn為此提供了兩個(gè)選項(xiàng):
· 在達(dá)到多個(gè)群集后停止(n_clusters)
· 設(shè)置鏈接的閾值(distance_threshold)。 如果兩個(gè)群集之間的距離高于閾值,則這些群集將不會(huì)合并。
分裂聚類(lèi)在現(xiàn)實(shí)生活中并不常用,因此我將簡(jiǎn)要介紹一下。 簡(jiǎn)單而清晰的解釋是分裂聚類(lèi)與聚集聚類(lèi)相反。 我們從一個(gè)包含所有數(shù)據(jù)點(diǎn)的巨型群集開(kāi)始。 然后,將數(shù)據(jù)點(diǎn)分為不同的群集。 這是自下而上的方法。
層次集群總是生成相同的集群。 K-均值聚類(lèi)可能會(huì)導(dǎo)致不同的聚類(lèi),具體取決于質(zhì)心(聚類(lèi)中心)的啟動(dòng)方式。 但是,與k均值相比,它是一種較慢的算法。 分層群集需要很長(zhǎng)時(shí)間才能運(yùn)行,尤其是對(duì)于大型數(shù)據(jù)集。
10. DBSCAN集群
基于分區(qū)的分層聚類(lèi)技術(shù)對(duì)于標(biāo)準(zhǔn)形狀的聚類(lèi)非常高效。 但是,當(dāng)涉及到任意形狀的聚類(lèi)或檢測(cè)離群值時(shí),基于密度的技術(shù)更為有效。

> Arbitrary shaped clusters

> Arbitrary shaped clusters
DBSCAN代表帶噪聲的應(yīng)用程序的基于密度的空間聚類(lèi)。 它能夠找到任意形狀的聚類(lèi)和帶有噪聲的聚類(lèi)(即離群值)。
DBSCAN的主要思想是,如果某個(gè)點(diǎn)與該簇中的許多點(diǎn)接近,則該點(diǎn)屬于該簇。
DBSCAN有兩個(gè)關(guān)鍵參數(shù):
· eps:指定鄰域的距離。 如果兩個(gè)點(diǎn)之間的距離小于或等于eps,則將其視為鄰居。
· minPts:定義集群的最小數(shù)據(jù)點(diǎn)數(shù)。
根據(jù)這兩個(gè)參數(shù),將點(diǎn)分為核心點(diǎn),邊界點(diǎn)或離群值:
· 核心點(diǎn):如果在其半徑為eps的周?chē)鷧^(qū)域中至少有minPts個(gè)點(diǎn)(包括該點(diǎn)本身),則該點(diǎn)為核心點(diǎn)。
· 邊界點(diǎn):如果一個(gè)點(diǎn)可以從核心點(diǎn)到達(dá)并且在其周?chē)鷧^(qū)域內(nèi)的點(diǎn)數(shù)少于minPts,則它是邊界點(diǎn)。
· 離群值:如果一個(gè)點(diǎn)不是核心點(diǎn)并且無(wú)法從任何核心點(diǎn)到達(dá),則該點(diǎn)就是離群值。
DBSCAN不需要預(yù)先指定群集數(shù)。 它對(duì)異常值具有魯棒性,并且能夠檢測(cè)到異常值。
在某些情況下,確定適當(dāng)?shù)泥徲颍╡ps)距離并不容易,并且需要領(lǐng)域知識(shí)。
11.主成分分析(PCA)
PCA是降維算法,它基本上從現(xiàn)有特征中衍生出新特征,同時(shí)保留了盡可能多的信息。 PCA是一種無(wú)監(jiān)督的學(xué)習(xí)算法,但它也廣泛用作有監(jiān)督的學(xué)習(xí)算法的預(yù)處理步驟。
PCA通過(guò)查找數(shù)據(jù)集中要素之間的關(guān)系來(lái)推導(dǎo)新要素。
注意:PCA是線性降維算法。 也有非線性方法可用。
PCA的目的是通過(guò)使用較少的特征(或列)來(lái)盡可能多地解釋原始數(shù)據(jù)集中的方差。 新派生的功能稱(chēng)為主成分。 主成分的順序是根據(jù)它們解釋的原始數(shù)據(jù)集的方差分?jǐn)?shù)確定的。

主要成分是原始數(shù)據(jù)集特征的線性組合。
PCA的優(yōu)勢(shì)在于,使用比原始數(shù)據(jù)集少得多的特征可以保留大量原始數(shù)據(jù)集。 主成分根據(jù)其解釋的差異量進(jìn)行排序。
感謝您的閱讀。 如果您有任何反饋意見(jiàn),請(qǐng)告訴我。
(本文翻譯自Soner Y?ld?r?m的文章《11 Most Common machine Learning Algorithms Explained in a Nutshell》,參考:https://towardsdatascience.com/11-most-common-machine-learning-algorithms-explained-in-a-nutshell-cc6e98df93be)