版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
10種Python聚類算法完整操作示例聚類或聚類分析是無(wú)監(jiān)督學(xué)習(xí)問(wèn)題。它通常被用作數(shù)據(jù)分析技術(shù),用于發(fā)現(xiàn)數(shù)據(jù)中的有趣模式,例如基于其行為的客戶群。有許多聚類算法可供選擇,對(duì)于所有情況,沒(méi)有單一的最佳聚類算法。相反,最好探索一系列聚類算法以及每種算法的不同配置。在本教程中,你將發(fā)現(xiàn)如何在python中安裝和使用頂級(jí)聚類算法。完成本教程后,你將知道:聚類是在輸入數(shù)據(jù)的特征空間中查找自然組的無(wú)監(jiān)督問(wèn)題。對(duì)于所有數(shù)據(jù)集,有許多不同的聚類算法和單一的最佳方法。在scikit-learn機(jī)器學(xué)習(xí)庫(kù)的Python中如何實(shí)現(xiàn)、適配和使用頂級(jí)聚類算法。讓我們開(kāi)始吧。01聚類聚類分析,即聚類,是一項(xiàng)無(wú)監(jiān)督的機(jī)器學(xué)習(xí)任務(wù)。它包括自動(dòng)發(fā)現(xiàn)數(shù)據(jù)中的自然分組。與監(jiān)督學(xué)習(xí)(類似預(yù)測(cè)建模)不同,聚類算法只解釋輸入數(shù)據(jù),并在特征空間中找到自然組或群集。聚類技術(shù)適用于沒(méi)有要預(yù)測(cè)的類,而是將實(shí)例劃分為自然組的情況。
—源自:《數(shù)據(jù)挖掘頁(yè):實(shí)用機(jī)器學(xué)習(xí)工具和技術(shù)》2016年。群集通常是特征空間中的密度區(qū)域,其中來(lái)自域的示例(觀測(cè)或數(shù)據(jù)行)比其他群集更接近群集。群集可以具有作為樣本或點(diǎn)特征空間的中心(質(zhì)心),并且可以具有邊界或范圍。這些群集可能反映出在從中繪制實(shí)例的域中工作的某種機(jī)制,這種機(jī)制使某些實(shí)例彼此具有比它們與其余實(shí)例更強(qiáng)的相似性。
—源自:《數(shù)據(jù)挖掘頁(yè):實(shí)用機(jī)器學(xué)習(xí)工具和技術(shù)》2016年。聚類可以作為數(shù)據(jù)分析活動(dòng)提供幫助,以便了解更多關(guān)于問(wèn)題域的信息,即所謂的模式發(fā)現(xiàn)或知識(shí)發(fā)現(xiàn)。例如:該進(jìn)化樹(shù)可以被認(rèn)為是人工聚類分析的結(jié)果;將正常數(shù)據(jù)與異常值或異常分開(kāi)可能會(huì)被認(rèn)為是聚類問(wèn)題;根據(jù)自然行為將集群分開(kāi)是一個(gè)集群?jiǎn)栴},稱為市場(chǎng)細(xì)分。聚類還可用作特征工程的類型,其中現(xiàn)有的和新的示例可被映射并標(biāo)記為屬于數(shù)據(jù)中所標(biāo)識(shí)的群集之一。雖然確實(shí)存在許多特定于群集的定量措施,但是對(duì)所識(shí)別的群集的評(píng)估是主觀的,并且可能需要領(lǐng)域?qū)<?。通常,聚類算法在人工合成?shù)據(jù)集上與預(yù)先定義的群集進(jìn)行學(xué)術(shù)比較,預(yù)計(jì)算法會(huì)發(fā)現(xiàn)這些群集。聚類是一種無(wú)監(jiān)督學(xué)習(xí)技術(shù),因此很難評(píng)估任何給定方法的輸出質(zhì)量。
—源自:《機(jī)器學(xué)習(xí)頁(yè):概率觀點(diǎn)》2012。02聚類算法有許多類型的聚類算法。許多算法在特征空間中的示例之間使用相似度或距離度量,以發(fā)現(xiàn)密集的觀測(cè)區(qū)域。因此,在使用聚類算法之前,擴(kuò)展數(shù)據(jù)通常是良好的實(shí)踐。聚類分析的所有目標(biāo)的核心是被群集的各個(gè)對(duì)象之間的相似程度(或不同程度)的概念。聚類方法嘗試根據(jù)提供給對(duì)象的相似性定義對(duì)對(duì)象進(jìn)行分組。
—源自:《統(tǒng)計(jì)學(xué)習(xí)的要素:數(shù)據(jù)挖掘、推理和預(yù)測(cè)》,2016年一些聚類算法要求您指定或猜測(cè)數(shù)據(jù)中要發(fā)現(xiàn)的群集的數(shù)量,而另一些算法要求指定觀測(cè)之間的最小距離,其中示例可以被視為“關(guān)閉”或“連接”。因此,聚類分析是一個(gè)迭代過(guò)程,在該過(guò)程中,對(duì)所識(shí)別的群集的主觀評(píng)估被反饋回算法配置的改變中,直到達(dá)到期望的或適當(dāng)?shù)慕Y(jié)果。scikit-learn庫(kù)提供了一套不同的聚類算法供選擇。下面列出了10種比較流行的算法:親和力傳播聚合聚類BIRCHDBSCANK-均值Mini-BatchK-均值MeanShiftOPTICS光譜聚類高斯混合每個(gè)算法都提供了一種不同的方法來(lái)應(yīng)對(duì)數(shù)據(jù)中發(fā)現(xiàn)自然組的挑戰(zhàn)。沒(méi)有最好的聚類算法,也沒(méi)有簡(jiǎn)單的方法來(lái)找到最好的算法為您的數(shù)據(jù)沒(méi)有使用控制實(shí)驗(yàn)。在本教程中,我們將回顧如何使用來(lái)自scikit-learn庫(kù)的這10個(gè)流行的聚類算法中的每一個(gè)。這些示例將為您復(fù)制粘貼示例并在自己的數(shù)據(jù)上測(cè)試方法提供基礎(chǔ)。我們不會(huì)深入研究算法如何工作的理論,也不會(huì)直接比較它們。讓我們深入研究一下。03聚類算法示例在本節(jié)中,我們將回顧如何在scikit-learn中使用10個(gè)流行的聚類算法。這包括一個(gè)擬合模型的例子和可視化結(jié)果的例子。這些示例用于將粘貼復(fù)制到您自己的項(xiàng)目中,并將方法應(yīng)用于您自己的數(shù)據(jù)。1.庫(kù)安裝首先,讓我們安裝庫(kù)。不要跳過(guò)此步驟,因?yàn)槟阈枰_保安裝了最新版本。你可以使用pipPython安裝程序安裝scikit-learn存儲(chǔ)庫(kù),如下所示:sudo
pip
install
scikit-learn接下來(lái),讓我們確認(rèn)已經(jīng)安裝了庫(kù),并且您正在使用一個(gè)現(xiàn)代版本。運(yùn)行以下腳本以輸出庫(kù)版本號(hào)。#
檢查
scikit-learn
版本
import
sklearn
print(sklearn.__version__)運(yùn)行該示例時(shí),您應(yīng)該看到以下版本號(hào)或更高版本。0.22.12.聚類數(shù)據(jù)集我們將使用make_classification()函數(shù)創(chuàng)建一個(gè)測(cè)試二分類數(shù)據(jù)集。數(shù)據(jù)集將有1000個(gè)示例,每個(gè)類有兩個(gè)輸入要素和一個(gè)群集。這些群集在兩個(gè)維度上是可見(jiàn)的,因此我們可以用散點(diǎn)圖繪制數(shù)據(jù),并通過(guò)指定的群集對(duì)圖中的點(diǎn)進(jìn)行顏色繪制。這將有助于了解,至少在測(cè)試問(wèn)題上,群集的識(shí)別能力如何。該測(cè)試問(wèn)題中的群集基于多變量高斯,并非所有聚類算法都能有效地識(shí)別這些類型的群集。因此,本教程中的結(jié)果不應(yīng)用作比較一般方法的基礎(chǔ)。下面列出了創(chuàng)建和匯總合成聚類數(shù)據(jù)集的示例。#
綜合分類數(shù)據(jù)集
from
numpy
import
where
from
sklearn.datasets
import
make_classification
from
matplotlib
import
pyplot
#
定義數(shù)據(jù)集
X,
y
=
make_classification(n_samples=1000,
n_features=2,
n_informative=2,
n_redundant=0,
n_clusters_per_class=1,
random_state=4)
#
為每個(gè)類的樣本創(chuàng)建散點(diǎn)圖
for
class_value
in
range(2):
#
獲取此類的示例的行索引
row_ix
=
where(y
==
class_value)
#
創(chuàng)建這些樣本的散布
pyplot.scatter(X[row_ix,
0],
X[row_ix,
1])
#
繪制散點(diǎn)圖
pyplot.show()運(yùn)行該示例將創(chuàng)建合成的聚類數(shù)據(jù)集,然后創(chuàng)建輸入數(shù)據(jù)的散點(diǎn)圖,其中點(diǎn)由類標(biāo)簽(理想化的群集)著色。我們可以清楚地看到兩個(gè)不同的數(shù)據(jù)組在兩個(gè)維度,并希望一個(gè)自動(dòng)的聚類算法可以檢測(cè)這些分組。已知聚類著色點(diǎn)的合成聚類數(shù)據(jù)集的散點(diǎn)圖接下來(lái),我們可以開(kāi)始查看應(yīng)用于此數(shù)據(jù)集的聚類算法的示例。我已經(jīng)做了一些最小的嘗試來(lái)調(diào)整每個(gè)方法到數(shù)據(jù)集。3.親和力傳播親和力傳播包括找到一組最能概括數(shù)據(jù)的范例。我們?cè)O(shè)計(jì)了一種名為“親和傳播”的方法,它作為兩對(duì)數(shù)據(jù)點(diǎn)之間相似度的輸入度量。在數(shù)據(jù)點(diǎn)之間交換實(shí)值消息,直到一組高質(zhì)量的范例和相應(yīng)的群集逐漸出現(xiàn)
—源自:《通過(guò)在數(shù)據(jù)點(diǎn)之間傳遞消息》2007。它是通過(guò)AffinityPropagation類實(shí)現(xiàn)的,要調(diào)整的主要配置是將“阻尼”設(shè)置為0.5到1,甚至可能是“首選項(xiàng)”。下面列出了完整的示例。#
親和力傳播聚類
from
numpy
import
unique
from
numpy
import
where
from
sklearn.datasets
import
make_classification
from
sklearn.cluster
import
AffinityPropagation
from
matplotlib
import
pyplot
#
定義數(shù)據(jù)集
X,
_
=
make_classification(n_samples=1000,
n_features=2,
n_informative=2,
n_redundant=0,
n_clusters_per_class=1,
random_state=4)
#
定義模型
model
=
AffinityPropagation(damping=0.9)
#
匹配模型
model.fit(X)
#
為每個(gè)示例分配一個(gè)集群
yhat
=
model.predict(X)
#
檢索唯一群集
clusters
=
unique(yhat)
#
為每個(gè)群集的樣本創(chuàng)建散點(diǎn)圖
for
cluster
in
clusters:
#
獲取此群集的示例的行索引
row_ix
=
where(yhat
==
cluster)
#
創(chuàng)建這些樣本的散布
pyplot.scatter(X[row_ix,
0],
X[row_ix,
1])
#
繪制散點(diǎn)圖
pyplot.show()運(yùn)行該示例符合訓(xùn)練數(shù)據(jù)集上的模型,并預(yù)測(cè)數(shù)據(jù)集中每個(gè)示例的群集。然后創(chuàng)建一個(gè)散點(diǎn)圖,并由其指定的群集著色。在這種情況下,我無(wú)法取得良好的結(jié)果。數(shù)據(jù)集的散點(diǎn)圖,具有使用親和力傳播識(shí)別的聚類4.聚合聚類聚合聚類涉及合并示例,直到達(dá)到所需的群集數(shù)量為止。它是層次聚類方法的更廣泛類的一部分,通過(guò)AgglomerationClustering類實(shí)現(xiàn)的,主要配置是“n_clusters”集,這是對(duì)數(shù)據(jù)中的群集數(shù)量的估計(jì),例如2。下面列出了完整的示例。#
聚合聚類
from
numpy
import
unique
from
numpy
import
where
from
sklearn.datasets
import
make_classification
from
sklearn.cluster
import
AgglomerativeClustering
from
matplotlib
import
pyplot
#
定義數(shù)據(jù)集
X,
_
=
make_classification(n_samples=1000,
n_features=2,
n_informative=2,
n_redundant=0,
n_clusters_per_class=1,
random_state=4)
#
定義模型
model
=
AgglomerativeClustering(n_clusters=2)
#
模型擬合與聚類預(yù)測(cè)
yhat
=
model.fit_predict(X)
#
檢索唯一群集
clusters
=
unique(yhat)
#
為每個(gè)群集的樣本創(chuàng)建散點(diǎn)圖
for
cluster
in
clusters:
#
獲取此群集的示例的行索引
row_ix
=
where(yhat
==
cluster)
#
創(chuàng)建這些樣本的散布
pyplot.scatter(X[row_ix,
0],
X[row_ix,
1])
#
繪制散點(diǎn)圖
pyplot.show()運(yùn)行該示例符合訓(xùn)練數(shù)據(jù)集上的模型,并預(yù)測(cè)數(shù)據(jù)集中每個(gè)示例的群集。然后創(chuàng)建一個(gè)散點(diǎn)圖,并由其指定的群集著色。在這種情況下,可以找到一個(gè)合理的分組。使用聚集聚類識(shí)別出具有聚類的數(shù)據(jù)集的散點(diǎn)圖5.BIRCHBIRCH聚類(BIRCH是平衡迭代減少的縮寫(xiě),聚類使用層次結(jié)構(gòu))包括構(gòu)造一個(gè)樹(shù)狀結(jié)構(gòu),從中提取聚類質(zhì)心。BIRCH遞增地和動(dòng)態(tài)地群集傳入的多維度量數(shù)據(jù)點(diǎn),以嘗試?yán)每捎觅Y源(即可用內(nèi)存和時(shí)間約束)產(chǎn)生最佳質(zhì)量的聚類。
—源自:《BIRCH:1996年大型數(shù)據(jù)庫(kù)的高效數(shù)據(jù)聚類方法》它是通過(guò)Birch類實(shí)現(xiàn)的,主要配置是“threshold”和“n_clusters”超參數(shù),后者提供了群集數(shù)量的估計(jì)。下面列出了完整的示例。#
birch聚類
from
numpy
import
unique
from
numpy
import
where
from
sklearn.datasets
import
make_classification
from
sklearn.cluster
import
Birch
from
matplotlib
import
pyplot
#
定義數(shù)據(jù)集
X,
_
=
make_classification(n_samples=1000,
n_features=2,
n_informative=2,
n_redundant=0,
n_clusters_per_class=1,
random_state=4)
#
定義模型
model
=
Birch(threshold=0.01,
n_clusters=2)
#
適配模型
model.fit(X)
#
為每個(gè)示例分配一個(gè)集群
yhat
=
model.predict(X)
#
檢索唯一群集
clusters
=
unique(yhat)
#
為每個(gè)群集的樣本創(chuàng)建散點(diǎn)圖
for
cluster
in
clusters:
#
獲取此群集的示例的行索引
row_ix
=
where(yhat
==
cluster)
#
創(chuàng)建這些樣本的散布
pyplot.scatter(X[row_ix,
0],
X[row_ix,
1])
#
繪制散點(diǎn)圖
pyplot.show()運(yùn)行該示例符合訓(xùn)練數(shù)據(jù)集上的模型,并預(yù)測(cè)數(shù)據(jù)集中每個(gè)示例的群集。然后創(chuàng)建一個(gè)散點(diǎn)圖,并由其指定的群集著色。在這種情況下,可以找到一個(gè)很好的分組。使用BIRCH聚類確定具有聚類的數(shù)據(jù)集的散點(diǎn)圖6.DBSCANDBSCAN聚類(其中DBSCAN是基于密度的空間聚類的噪聲應(yīng)用程序)涉及在域中尋找高密度區(qū)域,并將其周?chē)奶卣骺臻g區(qū)域擴(kuò)展為群集?!覀兲岢隽诵碌木垲愃惴―BSCAN依賴于基于密度的概念的集群設(shè)計(jì),以發(fā)現(xiàn)任意形狀的集群。DBSCAN只需要一個(gè)輸入?yún)?shù),并支持用戶為其確定適當(dāng)?shù)闹?/p>
-源自:《基于密度的噪聲大空間數(shù)據(jù)庫(kù)聚類發(fā)現(xiàn)算法》,1996它是通過(guò)DBSCAN類實(shí)現(xiàn)的,主要配置是“eps”和“min_samples”超參數(shù)。下面列出了完整的示例。#
dbscan
聚類
from
numpy
import
unique
from
numpy
import
where
from
sklearn.datasets
import
make_classification
from
sklearn.cluster
import
DBSCAN
from
matplotlib
import
pyplot
#
定義數(shù)據(jù)集
X,
_
=
make_classification(n_samples=1000,
n_features=2,
n_informative=2,
n_redundant=0,
n_clusters_per_class=1,
random_state=4)
#
定義模型
model
=
DBSCAN(eps=0.30,
min_samples=9)
#
模型擬合與聚類預(yù)測(cè)
yhat
=
model.fit_predict(X)
#
檢索唯一群集
clusters
=
unique(yhat)
#
為每個(gè)群集的樣本創(chuàng)建散點(diǎn)圖
for
cluster
in
clusters:
#
獲取此群集的示例的行索引
row_ix
=
where(yhat
==
cluster)
#
創(chuàng)建這些樣本的散布
pyplot.scatter(X[row_ix,
0],
X[row_ix,
1])
#
繪制散點(diǎn)圖
pyplot.show()運(yùn)行該示例符合訓(xùn)練數(shù)據(jù)集上的模型,并預(yù)測(cè)數(shù)據(jù)集中每個(gè)示例的群集。然后創(chuàng)建一個(gè)散點(diǎn)圖,并由其指定的群集著色。在這種情況下,盡管需要更多的調(diào)整,但是找到了合理的分組。使用DBSCAN集群識(shí)別出具有集群的數(shù)據(jù)集的散點(diǎn)圖7.K均值K-均值聚類可以是最常見(jiàn)的聚類算法,并涉及向群集分配示例,以盡量減少每個(gè)群集內(nèi)的方差。本文的主要目的是描述一種基于樣本將N維種群劃分為k個(gè)集合的過(guò)程。這個(gè)叫做“K-均值”的過(guò)程似乎給出了在類內(nèi)方差意義上相當(dāng)有效的分區(qū)。
-源自:《關(guān)于多元觀測(cè)的分類和分析的一些方法》1967年。它是通過(guò)K-均值類實(shí)現(xiàn)的,要優(yōu)化的主要配置是“n_clusters”超參數(shù)設(shè)置為數(shù)據(jù)中估計(jì)的群集數(shù)量。下面列出了完整的示例。#
k-means
聚類
from
numpy
import
unique
from
numpy
import
where
from
sklearn.datasets
import
make_classification
from
sklearn.cluster
import
KMeans
from
matplotlib
import
pyplot
#
定義數(shù)據(jù)集
X,
_
=
make_classification(n_samples=1000,
n_features=2,
n_informative=2,
n_redundant=0,
n_clusters_per_class=1,
random_state=4)
#
定義模型
model
=
KMeans(n_clusters=2)
#
模型擬合
model.fit(X)
#
為每個(gè)示例分配一個(gè)集群
yhat
=
model.predict(X)
#
檢索唯一群集
clusters
=
unique(yhat)
#
為每個(gè)群集的樣本創(chuàng)建散點(diǎn)圖
for
cluster
in
clusters:
#
獲取此群集的示例的行索引
row_ix
=
where(yhat
==
cluster)
#
創(chuàng)建這些樣本的散布
pyplot.scatter(X[row_ix,
0],
X[row_ix,
1])
#
繪制散點(diǎn)圖
pyplot.show()運(yùn)行該示例符合訓(xùn)練數(shù)據(jù)集上的模型,并預(yù)測(cè)數(shù)據(jù)集中每個(gè)示例的群集。然后創(chuàng)建一個(gè)散點(diǎn)圖,并由其指定的群集著色。在這種情況下,可以找到一個(gè)合理的分組,盡管每個(gè)維度中的不等等方差使得該方法不太適合該數(shù)據(jù)集。使用K均值聚類識(shí)別出具有聚類的數(shù)據(jù)集的散點(diǎn)圖8.Mini-BatchK-均值Mini-BatchK-均值是K-均值的修改版本,它使用小批量的樣本而不是整個(gè)數(shù)據(jù)集對(duì)群集質(zhì)心進(jìn)行更新,這可以使大數(shù)據(jù)集的更新速度更快,并且可能對(duì)統(tǒng)計(jì)噪聲更健壯。...我們建議使用k-均值聚類的迷你批量?jī)?yōu)化。與經(jīng)典批處理算法相比,這降低了計(jì)算成本的數(shù)量級(jí),同時(shí)提供了比在線隨機(jī)梯度下降更好的解決方案。
—源自:《Web-ScaleK-均值聚類》2010它是通過(guò)MiniBatchKMeans類實(shí)現(xiàn)的,要優(yōu)化的主配置是“n_clusters”超參數(shù),設(shè)置為數(shù)據(jù)中估計(jì)的群集數(shù)量。下面列出了完整的示例。#
mini-batch
k均值聚類
from
numpy
import
unique
from
numpy
import
where
from
sklearn.datasets
import
make_classification
from
sklearn.cluster
import
MiniBatchKMeans
from
matplotlib
import
pyplot
#
定義數(shù)據(jù)集
X,
_
=
make_classification(n_samples=1000,
n_features=2,
n_informative=2,
n_redundant=0,
n_clusters_per_class=1,
random_state=4)
#
定義模型
model
=
MiniBatchKMeans(n_clusters=2)
#
模型擬合
model.fit(X)
#
為每個(gè)示例分配一個(gè)集群
yhat
=
model.predict(X)
#
檢索唯一群集
clusters
=
unique(yhat)
#
為每個(gè)群集的樣本創(chuàng)建散點(diǎn)圖
for
cluster
in
clusters:
#
獲取此群集的示例的行索引
row_ix
=
where(yhat
==
cluster)
#
創(chuàng)建這些樣本的散布
pyplot.scatter(X[row_ix,
0],
X[row_ix,
1])
#
繪制散點(diǎn)圖
pyplot.show()運(yùn)行該示例符合訓(xùn)練數(shù)據(jù)集上的模型,并預(yù)測(cè)數(shù)據(jù)集中每個(gè)示例的群集。然后創(chuàng)建一個(gè)散點(diǎn)圖,并由其指定的群集著色。在這種情況下,會(huì)找到與標(biāo)準(zhǔn)K-均值算法相當(dāng)?shù)慕Y(jié)果。帶有最小批次K均值聚類的聚類數(shù)據(jù)集的散點(diǎn)圖9.均值漂移聚類均值漂移聚類涉及到根據(jù)特征空間中的實(shí)例密度來(lái)尋找和調(diào)整質(zhì)心。對(duì)離散數(shù)據(jù)證明了遞推平均移位程序收斂到最接近駐點(diǎn)的基礎(chǔ)密度函數(shù),從而證明了它在檢測(cè)密度模式中的應(yīng)用。
—源自:《MeanShift:面向特征空間分析的穩(wěn)健方法》,2002它是通過(guò)MeanShift類實(shí)現(xiàn)的,主要配置是“帶寬”超參數(shù)。下面列出了完整的示例。#
均值漂移聚類
from
numpy
import
unique
from
numpy
import
where
from
sklearn.datasets
import
make_classification
from
sklearn.cluster
import
MeanShift
from
matplotlib
import
pyplot
#
定義數(shù)據(jù)集
X,
_
=
make_classification(n_samples=1000,
n_features=2,
n_informative=2,
n_redundant=0,
n_clusters_per_class=1,
random_state=4)
#
定義模型
model
=
MeanShift()
#
模型擬合與聚類預(yù)測(cè)
yhat
=
model.fit_predict(X)
#
檢索唯一群集
clusters
=
unique(yhat)
#
為每個(gè)群集的樣本創(chuàng)建散點(diǎn)圖
for
cluster
in
clusters:
#
獲取此群集的示例的行索引
row_ix
=
where(yhat
==
cluster)
#
創(chuàng)建這些樣本的散布
pyplot.scatter(X[row_ix,
0],
X[row_ix,
1])
#
繪制散點(diǎn)圖
pyplot.show()運(yùn)行該示例符合訓(xùn)練數(shù)據(jù)集上的模型,并預(yù)測(cè)數(shù)據(jù)集中每個(gè)示例的群集。然后創(chuàng)建一個(gè)散點(diǎn)圖,并由其指定的群集著色。在這種情況下,可以在數(shù)據(jù)中找到一組合理的群集。具有均值漂移聚類的聚類數(shù)據(jù)集散點(diǎn)圖10.OPTICSOPTICS聚類(OPTICS短于訂購(gòu)點(diǎn)數(shù)以標(biāo)識(shí)聚類結(jié)構(gòu))是上述DBSCAN的修改版本。我們?yōu)榫垲惙治鲆肓艘环N新的算法,它不會(huì)顯式地生成一個(gè)數(shù)據(jù)集的聚類;而是創(chuàng)建表示其基于密度的聚類結(jié)構(gòu)的數(shù)據(jù)庫(kù)的增強(qiáng)排序。此群集排序包含相當(dāng)于密度聚類的信息,該信息對(duì)應(yīng)于范圍廣泛的參數(shù)設(shè)置。
—源自:《OPTICS:排序點(diǎn)以標(biāo)識(shí)聚類結(jié)構(gòu)》,1999它是通過(guò)OPTICS類實(shí)現(xiàn)的,主要配置是“eps”和“min_samples”超參數(shù)。下面列出了完整的示例。#
optics聚類
from
numpy
import
unique
from
numpy
import
where
from
sklearn.datasets
import
make_classification
from
sklearn.cluster
import
OPTICS
from
matplotlib
import
pyplot
#
定義數(shù)據(jù)集
X,
_
=
make_classification(n_samples=1000,
n_features=2,
n_informative=2,
n_redundant=0,
n_clusters_per_class=1,
random_state=4)
#
定義模型
model
=
OPTICS(eps=0.8,
min_samples=10)
#
模型擬合與聚類預(yù)測(cè)
yhat
=
model.fit_predict(X)
#
檢索唯一群集
clusters
=
unique(yhat)
#
為每個(gè)群集的樣本創(chuàng)建散點(diǎn)圖
for
cluster
in
clusters:
#
獲取此群集的示例的行索引
row_ix
=
where(yhat
==
cluster)
#
創(chuàng)建這些樣本的散布
pyplot.scatter(X[row_ix,
0],
X[row_ix,
1])
#
繪制散點(diǎn)圖
pyplot.show()運(yùn)行該示例符合訓(xùn)練數(shù)據(jù)集上的模型,并預(yù)測(cè)數(shù)據(jù)集中每個(gè)示例的群集。然后創(chuàng)建一個(gè)散點(diǎn)圖,并由其指定的群集著色。在這種情況下,我無(wú)法在此數(shù)據(jù)集上獲得合理的結(jié)果。使用OPTICS聚類確定具有聚類的數(shù)據(jù)集的散點(diǎn)圖11.光譜聚類光譜聚類是一類通用的聚類方法,取自線性線性代數(shù)。最近在許多領(lǐng)域出現(xiàn)的一個(gè)有希望的替代方案是使用聚類的光譜方法。這里,使用從點(diǎn)之間的距離導(dǎo)出的矩陣的頂部特征向量。
—源自:《關(guān)于光譜聚類:分析和算法》,2002年它是通過(guò)Spectral聚類類實(shí)現(xiàn)的,而主要的Spectral聚類是一個(gè)由聚類方法組成的通用類,取自線性線性代數(shù)。要優(yōu)化的是“n_clusters”超參數(shù),用于指定數(shù)據(jù)中的估計(jì)群集數(shù)量。下面列出了完整的示例。#
spectral
clustering
from
numpy
import
unique
from
numpy
import
where
from
sklearn.datasets
import
make_classification
from
sklearn.cluster
import
SpectralClustering
from
matplotlib
import
pyplot
#
定義數(shù)據(jù)集
X,
_
=
make_classification(n_samples=1000,
n_features=2,
n_informative=2,
n_redundant=0,
n_clusters_per_class=1,
random_state=4)
#
定義模型
model
=
SpectralClustering(n_clusters=2)
#
模型擬合與聚類預(yù)測(cè)
yhat
=
model.fit_predict(X)
#
檢索唯一群集
clusters
=
unique(yhat)
#
為每個(gè)群集的樣本創(chuàng)建散點(diǎn)圖
for
cluster
in
clusters:
#
獲取此群集的示例的行索引
row_ix
=
where(yhat
==
c
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年消防給水工程智能化施工及維護(hù)服務(wù)合同3篇
- 2025變頻器代理商銷售合同:產(chǎn)品價(jià)格調(diào)整與結(jié)算協(xié)議3篇
- 2025年度紡織行業(yè)新材料研發(fā)與應(yīng)用采購(gòu)合同2篇
- 2025年度工業(yè)倉(cāng)儲(chǔ)租賃及倉(cāng)儲(chǔ)設(shè)施維護(hù)保養(yǎng)合同范本3篇
- 二零二五年房地產(chǎn)項(xiàng)目工程造價(jià)咨詢合同模板3篇
- 二零二四年員工自愿放棄社保及轉(zhuǎn)移待遇合同3篇
- 2025年度藝術(shù)展布展藝術(shù)品保護(hù)與搬運(yùn)合同3篇
- 二零二五版二手房交易中介服務(wù)合同模板2篇
- 2024虛擬現(xiàn)實(shí)內(nèi)容開(kāi)發(fā)制作合同
- 2025年消防噴淋系統(tǒng)安裝及消防設(shè)施檢測(cè)與維保服務(wù)合同3篇
- 《FANUC-Oi數(shù)控銑床加工中心編程技巧與實(shí)例》教學(xué)課件(全)
- 微信小程序運(yùn)營(yíng)方案課件
- 抖音品牌視覺(jué)識(shí)別手冊(cè)
- 陳皮水溶性總生物堿的升血壓作用量-效關(guān)系及藥動(dòng)學(xué)研究
- 安全施工專項(xiàng)方案報(bào)審表
- 學(xué)習(xí)解讀2022年新制定的《市場(chǎng)主體登記管理?xiàng)l例實(shí)施細(xì)則》PPT匯報(bào)演示
- 好氧廢水系統(tǒng)調(diào)試、驗(yàn)收、運(yùn)行、維護(hù)手冊(cè)
- 中石化ERP系統(tǒng)操作手冊(cè)
- 五年級(jí)上冊(cè)口算+脫式計(jì)算+豎式計(jì)算+方程
- 氣體管道安全管理規(guī)程
- 《眼科學(xué)》題庫(kù)
評(píng)論
0/150
提交評(píng)論