python函數(shù)聚類 python 聚類函數(shù)

建議收藏!10 種 Python 聚類算法完整操作示例

聚類或聚類分析是無監(jiān)督學(xué)習(xí)問題。它通常被用作數(shù)據(jù)分析技術(shù),用于發(fā)現(xiàn)數(shù)據(jù)中的有趣模式,例如基于其行為的客戶群。有許多聚類算法可供選擇,對(duì)于所有情況,沒有單一的最佳聚類算法。相反,最好探索一系列聚類算法以及每種算法的不同配置。在本教程中,你將發(fā)現(xiàn)如何在 python 中安裝和使用頂級(jí)聚類算法。完成本教程后,你將知道:

創(chuàng)新互聯(lián)成立十多年來,這條路我們正越走越好,積累了技術(shù)與客戶資源,形成了良好的口碑。為客戶提供網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站制作、網(wǎng)站策劃、網(wǎng)頁設(shè)計(jì)、域名申請(qǐng)、網(wǎng)絡(luò)營銷、VI設(shè)計(jì)、網(wǎng)站改版、漏洞修補(bǔ)等服務(wù)。網(wǎng)站是否美觀、功能強(qiáng)大、用戶體驗(yàn)好、性價(jià)比高、打開快等等,這些對(duì)于網(wǎng)站建設(shè)都非常重要,創(chuàng)新互聯(lián)通過對(duì)建站技術(shù)性的掌握、對(duì)創(chuàng)意設(shè)計(jì)的研究為客戶提供一站式互聯(lián)網(wǎng)解決方案,攜手廣大客戶,共同發(fā)展進(jìn)步。

聚類分析,即聚類,是一項(xiàng)無監(jiān)督的機(jī)器學(xué)習(xí)任務(wù)。它包括自動(dòng)發(fā)現(xiàn)數(shù)據(jù)中的自然分組。與監(jiān)督學(xué)習(xí)(類似預(yù)測建模)不同,聚類算法只解釋輸入數(shù)據(jù),并在特征空間中找到自然組或群集。

群集通常是特征空間中的密度區(qū)域,其中來自域的示例(觀測或數(shù)據(jù)行)比其他群集更接近群集。群集可以具有作為樣本或點(diǎn)特征空間的中心(質(zhì)心),并且可以具有邊界或范圍。

聚類可以作為數(shù)據(jù)分析活動(dòng)提供幫助,以便了解更多關(guān)于問題域的信息,即所謂的模式發(fā)現(xiàn)或知識(shí)發(fā)現(xiàn)。例如:

聚類還可用作特征工程的類型,其中現(xiàn)有的和新的示例可被映射并標(biāo)記為屬于數(shù)據(jù)中所標(biāo)識(shí)的群集之一。雖然確實(shí)存在許多特定于群集的定量措施,但是對(duì)所識(shí)別的群集的評(píng)估是主觀的,并且可能需要領(lǐng)域?qū)<摇Mǔ?,聚類算法在人工合成?shù)據(jù)集上與預(yù)先定義的群集進(jìn)行學(xué)術(shù)比較,預(yù)計(jì)算法會(huì)發(fā)現(xiàn)這些群集。

有許多類型的聚類算法。許多算法在特征空間中的示例之間使用相似度或距離度量,以發(fā)現(xiàn)密集的觀測區(qū)域。因此,在使用聚類算法之前,擴(kuò)展數(shù)據(jù)通常是良好的實(shí)踐。

一些聚類算法要求您指定或猜測數(shù)據(jù)中要發(fā)現(xiàn)的群集的數(shù)量,而另一些算法要求指定觀測之間的最小距離,其中示例可以被視為“關(guān)閉”或“連接”。因此,聚類分析是一個(gè)迭代過程,在該過程中,對(duì)所識(shí)別的群集的主觀評(píng)估被反饋回算法配置的改變中,直到達(dá)到期望的或適當(dāng)?shù)慕Y(jié)果。scikit-learn 庫提供了一套不同的聚類算法供選擇。下面列出了10種比較流行的算法:

每個(gè)算法都提供了一種不同的方法來應(yīng)對(duì)數(shù)據(jù)中發(fā)現(xiàn)自然組的挑戰(zhàn)。沒有最好的聚類算法,也沒有簡單的方法來找到最好的算法為您的數(shù)據(jù)沒有使用控制實(shí)驗(yàn)。在本教程中,我們將回顧如何使用來自 scikit-learn 庫的這10個(gè)流行的聚類算法中的每一個(gè)。這些示例將為您復(fù)制粘貼示例并在自己的數(shù)據(jù)上測試方法提供基礎(chǔ)。我們不會(huì)深入研究算法如何工作的理論,也不會(huì)直接比較它們。讓我們深入研究一下。

在本節(jié)中,我們將回顧如何在 scikit-learn 中使用10個(gè)流行的聚類算法。這包括一個(gè)擬合模型的例子和可視化結(jié)果的例子。這些示例用于將粘貼復(fù)制到您自己的項(xiàng)目中,并將方法應(yīng)用于您自己的數(shù)據(jù)。

1.庫安裝

首先,讓我們安裝庫。不要跳過此步驟,因?yàn)槟阈枰_保安裝了最新版本。你可以使用 pip Python 安裝程序安裝 scikit-learn 存儲(chǔ)庫,如下所示:

接下來,讓我們確認(rèn)已經(jīng)安裝了庫,并且您正在使用一個(gè)現(xiàn)代版本。運(yùn)行以下腳本以輸出庫版本號(hào)。

運(yùn)行該示例時(shí),您應(yīng)該看到以下版本號(hào)或更高版本。

2.聚類數(shù)據(jù)集

我們將使用 make _ classification ()函數(shù)創(chuàng)建一個(gè)測試二分類數(shù)據(jù)集。數(shù)據(jù)集將有1000個(gè)示例,每個(gè)類有兩個(gè)輸入要素和一個(gè)群集。這些群集在兩個(gè)維度上是可見的,因此我們可以用散點(diǎn)圖繪制數(shù)據(jù),并通過指定的群集對(duì)圖中的點(diǎn)進(jìn)行顏色繪制。這將有助于了解,至少在測試問題上,群集的識(shí)別能力如何。該測試問題中的群集基于多變量高斯,并非所有聚類算法都能有效地識(shí)別這些類型的群集。因此,本教程中的結(jié)果不應(yīng)用作比較一般方法的基礎(chǔ)。下面列出了創(chuàng)建和匯總合成聚類數(shù)據(jù)集的示例。

運(yùn)行該示例將創(chuàng)建合成的聚類數(shù)據(jù)集,然后創(chuàng)建輸入數(shù)據(jù)的散點(diǎn)圖,其中點(diǎn)由類標(biāo)簽(理想化的群集)著色。我們可以清楚地看到兩個(gè)不同的數(shù)據(jù)組在兩個(gè)維度,并希望一個(gè)自動(dòng)的聚類算法可以檢測這些分組。

已知聚類著色點(diǎn)的合成聚類數(shù)據(jù)集的散點(diǎn)圖接下來,我們可以開始查看應(yīng)用于此數(shù)據(jù)集的聚類算法的示例。我已經(jīng)做了一些最小的嘗試來調(diào)整每個(gè)方法到數(shù)據(jù)集。3.親和力傳播親和力傳播包括找到一組最能概括數(shù)據(jù)的范例。

它是通過 AffinityPropagation 類實(shí)現(xiàn)的,要調(diào)整的主要配置是將“ 阻尼 ”設(shè)置為0.5到1,甚至可能是“首選項(xiàng)”。下面列出了完整的示例。

運(yùn)行該示例符合訓(xùn)練數(shù)據(jù)集上的模型,并預(yù)測數(shù)據(jù)集中每個(gè)示例的群集。然后創(chuàng)建一個(gè)散點(diǎn)圖,并由其指定的群集著色。在這種情況下,我無法取得良好的結(jié)果。

數(shù)據(jù)集的散點(diǎn)圖,具有使用親和力傳播識(shí)別的聚類

4.聚合聚類

聚合聚類涉及合并示例,直到達(dá)到所需的群集數(shù)量為止。它是層次聚類方法的更廣泛類的一部分,通過 AgglomerationClustering 類實(shí)現(xiàn)的,主要配置是“ n _ clusters ”集,這是對(duì)數(shù)據(jù)中的群集數(shù)量的估計(jì),例如2。下面列出了完整的示例。

運(yùn)行該示例符合訓(xùn)練數(shù)據(jù)集上的模型,并預(yù)測數(shù)據(jù)集中每個(gè)示例的群集。然后創(chuàng)建一個(gè)散點(diǎn)圖,并由其指定的群集著色。在這種情況下,可以找到一個(gè)合理的分組。

使用聚集聚類識(shí)別出具有聚類的數(shù)據(jù)集的散點(diǎn)圖

5.BIRCHBIRCH

聚類( BIRCH 是平衡迭代減少的縮寫,聚類使用層次結(jié)構(gòu))包括構(gòu)造一個(gè)樹狀結(jié)構(gòu),從中提取聚類質(zhì)心。

它是通過 Birch 類實(shí)現(xiàn)的,主要配置是“ threshold ”和“ n _ clusters ”超參數(shù),后者提供了群集數(shù)量的估計(jì)。下面列出了完整的示例。

運(yùn)行該示例符合訓(xùn)練數(shù)據(jù)集上的模型,并預(yù)測數(shù)據(jù)集中每個(gè)示例的群集。然后創(chuàng)建一個(gè)散點(diǎn)圖,并由其指定的群集著色。在這種情況下,可以找到一個(gè)很好的分組。

使用BIRCH聚類確定具有聚類的數(shù)據(jù)集的散點(diǎn)圖

6.DBSCANDBSCAN

聚類(其中 DBSCAN 是基于密度的空間聚類的噪聲應(yīng)用程序)涉及在域中尋找高密度區(qū)域,并將其周圍的特征空間區(qū)域擴(kuò)展為群集。

它是通過 DBSCAN 類實(shí)現(xiàn)的,主要配置是“ eps ”和“ min _ samples ”超參數(shù)。下面列出了完整的示例。

運(yùn)行該示例符合訓(xùn)練數(shù)據(jù)集上的模型,并預(yù)測數(shù)據(jù)集中每個(gè)示例的群集。然后創(chuàng)建一個(gè)散點(diǎn)圖,并由其指定的群集著色。在這種情況下,盡管需要更多的調(diào)整,但是找到了合理的分組。

使用DBSCAN集群識(shí)別出具有集群的數(shù)據(jù)集的散點(diǎn)圖

7.K均值

K-均值聚類可以是最常見的聚類算法,并涉及向群集分配示例,以盡量減少每個(gè)群集內(nèi)的方差。

它是通過 K-均值類實(shí)現(xiàn)的,要優(yōu)化的主要配置是“ n _ clusters ”超參數(shù)設(shè)置為數(shù)據(jù)中估計(jì)的群集數(shù)量。下面列出了完整的示例。

運(yùn)行該示例符合訓(xùn)練數(shù)據(jù)集上的模型,并預(yù)測數(shù)據(jù)集中每個(gè)示例的群集。然后創(chuàng)建一個(gè)散點(diǎn)圖,并由其指定的群集著色。在這種情況下,可以找到一個(gè)合理的分組,盡管每個(gè)維度中的不等等方差使得該方法不太適合該數(shù)據(jù)集。

使用K均值聚類識(shí)別出具有聚類的數(shù)據(jù)集的散點(diǎn)圖

8.Mini-Batch

K-均值Mini-Batch K-均值是 K-均值的修改版本,它使用小批量的樣本而不是整個(gè)數(shù)據(jù)集對(duì)群集質(zhì)心進(jìn)行更新,這可以使大數(shù)據(jù)集的更新速度更快,并且可能對(duì)統(tǒng)計(jì)噪聲更健壯。

它是通過 MiniBatchKMeans 類實(shí)現(xiàn)的,要優(yōu)化的主配置是“ n _ clusters ”超參數(shù),設(shè)置為數(shù)據(jù)中估計(jì)的群集數(shù)量。下面列出了完整的示例。

運(yùn)行該示例符合訓(xùn)練數(shù)據(jù)集上的模型,并預(yù)測數(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í)例密度來尋找和調(diào)整質(zhì)心。

它是通過 MeanShift 類實(shí)現(xiàn)的,主要配置是“帶寬”超參數(shù)。下面列出了完整的示例。

運(yùn)行該示例符合訓(xùn)練數(shù)據(jù)集上的模型,并預(yù)測數(shù)據(jù)集中每個(gè)示例的群集。然后創(chuàng)建一個(gè)散點(diǎn)圖,并由其指定的群集著色。在這種情況下,可以在數(shù)據(jù)中找到一組合理的群集。

具有均值漂移聚類的聚類數(shù)據(jù)集散點(diǎn)圖

10.OPTICSOPTICS

聚類( OPTICS 短于訂購點(diǎn)數(shù)以標(biāo)識(shí)聚類結(jié)構(gòu))是上述 DBSCAN 的修改版本。

它是通過 OPTICS 類實(shí)現(xiàn)的,主要配置是“ eps ”和“ min _ samples ”超參數(shù)。下面列出了完整的示例。

運(yùn)行該示例符合訓(xùn)練數(shù)據(jù)集上的模型,并預(yù)測數(shù)據(jù)集中每個(gè)示例的群集。然后創(chuàng)建一個(gè)散點(diǎn)圖,并由其指定的群集著色。在這種情況下,我無法在此數(shù)據(jù)集上獲得合理的結(jié)果。

使用OPTICS聚類確定具有聚類的數(shù)據(jù)集的散點(diǎn)圖

11.光譜聚類

光譜聚類是一類通用的聚類方法,取自線性線性代數(shù)。

它是通過 Spectral 聚類類實(shí)現(xiàn)的,而主要的 Spectral 聚類是一個(gè)由聚類方法組成的通用類,取自線性線性代數(shù)。要優(yōu)化的是“ n _ clusters ”超參數(shù),用于指定數(shù)據(jù)中的估計(jì)群集數(shù)量。下面列出了完整的示例。

運(yùn)行該示例符合訓(xùn)練數(shù)據(jù)集上的模型,并預(yù)測數(shù)據(jù)集中每個(gè)示例的群集。然后創(chuàng)建一個(gè)散點(diǎn)圖,并由其指定的群集著色。在這種情況下,找到了合理的集群。

使用光譜聚類聚類識(shí)別出具有聚類的數(shù)據(jù)集的散點(diǎn)圖

12.高斯混合模型

高斯混合模型總結(jié)了一個(gè)多變量概率密度函數(shù),顧名思義就是混合了高斯概率分布。它是通過 Gaussian Mixture 類實(shí)現(xiàn)的,要優(yōu)化的主要配置是“ n _ clusters ”超參數(shù),用于指定數(shù)據(jù)中估計(jì)的群集數(shù)量。下面列出了完整的示例。

運(yùn)行該示例符合訓(xùn)練數(shù)據(jù)集上的模型,并預(yù)測數(shù)據(jù)集中每個(gè)示例的群集。然后創(chuàng)建一個(gè)散點(diǎn)圖,并由其指定的群集著色。在這種情況下,我們可以看到群集被完美地識(shí)別。這并不奇怪,因?yàn)閿?shù)據(jù)集是作為 Gaussian 的混合生成的。

使用高斯混合聚類識(shí)別出具有聚類的數(shù)據(jù)集的散點(diǎn)圖

在本文中,你發(fā)現(xiàn)了如何在 python 中安裝和使用頂級(jí)聚類算法。具體來說,你學(xué)到了:

python數(shù)據(jù)分析-聚類分析(轉(zhuǎn)載)

聚類分析是一類將數(shù)據(jù)所對(duì)應(yīng)的研究對(duì)象進(jìn)行分類的統(tǒng)計(jì)方法。這一類方法的共同特點(diǎn)是,事先不知道類別的個(gè)數(shù)與結(jié)構(gòu);進(jìn)行分析的數(shù)據(jù)是表明對(duì)象之間的相似性或相異性的數(shù)據(jù),將這些數(shù)據(jù)看成對(duì)對(duì)象“距離”遠(yuǎn)近的一種度量,將距離近的對(duì)象歸入一類,不同類對(duì)象之間的距離較遠(yuǎn)。

[if !supportLineBreakNewLine]

[endif]

聚類分析根據(jù)對(duì)象的不同分為Q型聚類分析和R型聚類分析,其中,Q型聚類是指對(duì)樣本的聚類,R型聚類是指對(duì)變量的聚類。本節(jié)主要介紹Q型聚類。

一、距離和相似系數(shù)

1.1 、距離 在聚類過程中,相距較近的樣本點(diǎn)傾向于歸為一類,相距較遠(yuǎn)的樣本點(diǎn)應(yīng)歸屬于不同的類。最常用的是Minkowski距離。當(dāng)各變量的單位不同或變異性相差很大時(shí),不應(yīng)直接采用Minkowski距離,而應(yīng)先對(duì)各變量的數(shù)據(jù)做標(biāo)準(zhǔn)化處理,然后用標(biāo)準(zhǔn)化后的數(shù)據(jù)計(jì)算距離。使用SciPy庫spatial模塊下的distance子模塊可以計(jì)算距離,使用該子模塊下的pdist函數(shù)可以計(jì)算n維空間中觀測值之間的距離,其語法格式如下:

獲取更多知識(shí),前往前往我的wx ————公z號(hào) (程式解說)

原文來自 https://

聚類算法之K均值算法(k-means)的Python實(shí)現(xiàn)

K-means算法是硬聚類算法,是典型的基于原型的目標(biāo)函數(shù)聚類方法的代表,它是數(shù)據(jù)點(diǎn)到原型的某種距離作為優(yōu)化的目標(biāo)函數(shù),利用函數(shù)求極值的方法得到迭代運(yùn)算的調(diào)整規(guī)則。K-means算法以歐式距離作為相似度測度,它是求對(duì)應(yīng)某一初始聚類中心向量V最優(yōu)分類,使得評(píng)價(jià)指標(biāo)J最小。算法采用誤差平方和準(zhǔn)則函數(shù)作為聚類準(zhǔn)則函數(shù)。

通常,人們根據(jù)樣本間的某種距離或者相似性來定義聚類,即把相似的(或距離近的)樣本聚為同一類,而把不相似的(或距離遠(yuǎn)的)樣本歸在其他類。

所謂聚類問題,就是給定一個(gè)元素集合D,其中每個(gè)元素具有n個(gè)可觀察屬性,使用某種算法將D劃分成k個(gè)子集,要求每個(gè)子集內(nèi)部的元素之間相異度盡可能低,而不同子集的元素相異度盡可能高。其中每個(gè)子集叫做一個(gè)簇。

k-means算法是一種很常見的聚類算法,它的基本思想是:通過迭代尋找k個(gè)聚類的一種劃分方案,使得用這k個(gè)聚類的均值來代表相應(yīng)各類樣本時(shí)所得的總體誤差最小。

看起來還不錯(cuò)

分析一個(gè)公司的客戶分類,這樣可以對(duì)不同的客戶使用不同的商業(yè)策略,或是電子商務(wù)中分析商品相似度,歸類商品,從而可以使用一些不同的銷售策略,等等。

Python Kmeans聚類如何檢驗(yàn)所得結(jié)果最優(yōu)?

需要選擇一個(gè)k值,也就是我們希望把數(shù)據(jù)分成多少類,這里k值的選擇對(duì)結(jié)果的影響很大,Ng的課說的選擇方法有兩種一種是elbow method,簡單的說就是根據(jù)聚類的結(jié)果和k的函數(shù)關(guān)系判斷k為多少的時(shí)候效果最好。

網(wǎng)頁名稱:python函數(shù)聚類 python 聚類函數(shù)
本文地址:http://www.muchs.cn/article30/doeopso.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供面包屑導(dǎo)航、網(wǎng)站導(dǎo)航、微信小程序、網(wǎng)站內(nèi)鏈、網(wǎng)站策劃、品牌網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站優(yōu)化排名