無(wú)監(jiān)督學(xué)習(xí)是機(jī)器學(xué)習(xí)技術(shù)中的一類,用于發(fā)現(xiàn)數(shù)據(jù)中的模式。本文介紹用Python進(jìn)行無(wú)監(jiān)督學(xué)習(xí)的幾種聚類算法,包括K-Means聚類、分層聚類、t-SNE聚類、DBSCAN聚類等。
無(wú)監(jiān)督算法的數(shù)據(jù)沒(méi)有標(biāo)注,這意味著只提供輸入變量(X),沒(méi)有相應(yīng)的輸出變量。在無(wú)監(jiān)督學(xué)習(xí)中,算法自己去發(fā)現(xiàn)數(shù)據(jù)中有意義的結(jié)構(gòu)。
Facebook首席AI科學(xué)家Yan Lecun解釋說(shuō),無(wú)監(jiān)督學(xué)習(xí)——即教機(jī)器自己學(xué)習(xí),不需要明確地告訴它們所做的每一件事情是對(duì)還是錯(cuò),是“真正的”AI的關(guān)鍵。
監(jiān)督學(xué)習(xí) VS 無(wú)監(jiān)督學(xué)習(xí)
在監(jiān)督學(xué)習(xí)中,系統(tǒng)試圖從之前給出的例子中學(xué)習(xí)。反之,在無(wú)監(jiān)督學(xué)習(xí)中,系統(tǒng)試圖從給出的例子中直接找到模式。因此,如果數(shù)據(jù)集有標(biāo)記,那么它是有監(jiān)督問(wèn)題,如果數(shù)據(jù)集無(wú)標(biāo)記,那么它是一個(gè)無(wú)監(jiān)督問(wèn)題。
如上圖,左邊是監(jiān)督學(xué)習(xí)的例子; 我們使用回歸技術(shù)來(lái)尋找特征之間的最佳擬合線。而在無(wú)監(jiān)督學(xué)習(xí)中,輸入是基于特征分離的,預(yù)測(cè)則取決于它屬于哪個(gè)聚類(cluster)。
重要術(shù)語(yǔ)
特征(Feature):用于進(jìn)行預(yù)測(cè)的輸入變量。
預(yù)測(cè)(Predictions):當(dāng)提供一個(gè)輸入示例時(shí),模型的輸出。
示例(Example):數(shù)據(jù)集的一行。一個(gè)示例包含一個(gè)或多個(gè)特征,可能有標(biāo)簽。
標(biāo)簽(Label):特征的結(jié)果。
為無(wú)監(jiān)督學(xué)習(xí)做準(zhǔn)備
在本文中,我們使用Iris數(shù)據(jù)集(鳶尾花卉數(shù)據(jù)集)來(lái)進(jìn)行我們的第一次預(yù)測(cè)。該數(shù)據(jù)集包含150條記錄的一組數(shù)據(jù),有5個(gè)屬性——花瓣長(zhǎng)度,花瓣寬度,萼片長(zhǎng)度,萼片寬度和類別。三個(gè)類別分別是Iris Setosa(山鳶尾),Iris Virginica(維吉尼亞鳶尾)和Iris Versicolor(變色鳶尾)。對(duì)于我們的無(wú)監(jiān)督算法,我們給出鳶尾花的這四個(gè)特征,并預(yù)測(cè)它屬于哪一類。我們?cè)赑ython中使用sklearn Library來(lái)加載Iris數(shù)據(jù)集,并使用matplotlib來(lái)進(jìn)行數(shù)據(jù)可視化。以下是代碼片段。
紫羅蘭色:山鳶尾,綠色:維吉尼亞鳶尾,黃色:變色鳶尾
聚類(Clustering)
在聚類中,數(shù)據(jù)被分成幾個(gè)組。簡(jiǎn)單地說(shuō),其目的是將具有相似特征的組分開(kāi),并將它們組成聚類。
可視化示例:
在上圖中,左邊的圖像是未完成分類的原始數(shù)據(jù),右邊的圖像是聚類的(根據(jù)數(shù)據(jù)的特征對(duì)數(shù)據(jù)進(jìn)行分類)。當(dāng)給出要預(yù)測(cè)的輸入時(shí),就會(huì)根據(jù)它的特征在它所屬的聚類中進(jìn)行檢查,并做出預(yù)測(cè)。
Python中的K-Means聚類
K-Means是一種迭代聚類算法,它的目的是在每次迭代中找到局部最大值。首先,選擇所需數(shù)量的聚類。由于我們已經(jīng)知道涉及3個(gè)類,因此我們通過(guò)將參數(shù)“n_clusters”傳遞到K-Means模型中,將數(shù)據(jù)分組為3個(gè)類。
現(xiàn)在,隨機(jī)將三個(gè)點(diǎn)(輸入)分成三個(gè)聚類。基于每個(gè)點(diǎn)之間的質(zhì)心距離,下一個(gè)給定的輸入被分為所需的聚類。然后,重新計(jì)算所有聚類的質(zhì)心。
聚類的每個(gè)質(zhì)心是特征值的集合,定義生成的組。檢查質(zhì)心特征權(quán)重可以定性地解釋每個(gè)聚類代表什么類型的組。
我們從sklearn庫(kù)導(dǎo)入K-Means模型,擬合特征并進(jìn)行預(yù)測(cè)。
Python中的K Means實(shí)現(xiàn):
分層聚類
顧名思義,分層聚類是一種構(gòu)建聚類層次結(jié)構(gòu)的算法。該算法從分配給它們自己的一個(gè)cluster的所有數(shù)據(jù)開(kāi)始,然后將最近的兩個(gè)cluster加入同一個(gè)cluster。最后,當(dāng)只剩下一個(gè)cluster時(shí),算法結(jié)束。
分層聚類的完成可以使用樹(shù)狀圖來(lái)表示。下面是一個(gè)分層聚類的例子。 數(shù)據(jù)集可以在這里找到:https://raw.githubusercontent.com/vihar/unsupervised-learning-with-python/master/seeds-less-rows.csv
Python中的分層聚類實(shí)現(xiàn):
K Means聚類與分層聚類的區(qū)別
分層聚類不能很好地處理大數(shù)據(jù),但K Means聚類可以。因?yàn)镵 Means的時(shí)間復(fù)雜度是線性的,即O(n),而分層聚類的時(shí)間復(fù)雜度是二次的,即O(n2)。
在K Means聚類中,當(dāng)我們從聚類的任意選擇開(kāi)始時(shí),多次運(yùn)行算法產(chǎn)生的結(jié)果可能會(huì)有所不同。不過(guò)結(jié)果可以在分層聚類中重現(xiàn)。
當(dāng)聚類的形狀是超球形時(shí)(如2D中的圓形,3D中的球形),K Means聚類更好。
K-Means聚類不允許嘈雜的數(shù)據(jù),而在分層聚類中,可以直接使用嘈雜的數(shù)據(jù)集進(jìn)行聚類。
t-SNE聚類
t-SNE聚類是用于可視化的無(wú)監(jiān)督學(xué)習(xí)方法之一。t-SNE表示t分布的隨機(jī)近鄰嵌入。它將高維空間映射到可以可視化的2或3維空間。具體而言,它通過(guò)二維點(diǎn)或三維點(diǎn)對(duì)每個(gè)高維對(duì)象進(jìn)行建模,使得相似的對(duì)象由附近的點(diǎn)建模,而不相似的對(duì)象很大概率由遠(yuǎn)離的點(diǎn)建模。
Python中的t-SNE聚類實(shí)現(xiàn),數(shù)據(jù)集是Iris數(shù)據(jù)集:
這里Iris數(shù)據(jù)集具有四個(gè)特征(4d),它被變換并以二維圖形表示。類似地,t-SNE模型可以應(yīng)用于具有n個(gè)特征的數(shù)據(jù)集。
DBSCAN聚類
DBSCAN(Density-Based Spatial Clustering of Applications with Noise,具有噪聲的基于密度的聚類方法)是一種流行的聚類算法,用作預(yù)測(cè)分析中 K-means的替代。它不要求輸入聚類的數(shù)值才能運(yùn)行。但作為交換,你必須調(diào)整其他兩個(gè)參數(shù)。
scikit-learn實(shí)現(xiàn)提供了eps和min_samples參數(shù)的默認(rèn)值,但這些參數(shù)通常需要調(diào)整。eps參數(shù)是在同一鄰域中考慮的兩個(gè)數(shù)據(jù)點(diǎn)之間的最大距離。min_samples參數(shù)是被認(rèn)為是聚類的鄰域中的數(shù)據(jù)點(diǎn)的最小量。
Python中的DBSCAN聚類:
-
聚類算法
+關(guān)注
關(guān)注
2文章
118瀏覽量
12159 -
機(jī)器學(xué)習(xí)
+關(guān)注
關(guān)注
66文章
8442瀏覽量
133103 -
python
+關(guān)注
關(guān)注
56文章
4809瀏覽量
85053 -
無(wú)監(jiān)督學(xué)習(xí)
+關(guān)注
關(guān)注
1文章
16瀏覽量
2766
原文標(biāo)題:【干貨】Python無(wú)監(jiān)督學(xué)習(xí)的4大聚類算法
文章出處:【微信號(hào):AI_era,微信公眾號(hào):新智元】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論