說明
1、如果數(shù)據(jù)集是高維度的,選擇譜聚類是子空間的一種。
2、如果數(shù)據(jù)量是中小型的,比如在100W條以內(nèi),K均值會(huì)是更好的選擇;如果數(shù)據(jù)量超過100W條,可以考慮使用MiniBatchKMeans。
3、如果數(shù)據(jù)集中有噪聲(離群點(diǎn)),使用基于密度的DBSCAN可以有效解決這個(gè)問題。
4、若追求更高的分類準(zhǔn)確性,則選擇譜聚類比K均值準(zhǔn)確性更好。
實(shí)例
import numpy as np
import matplotlib.pyplot as plt
# 數(shù)據(jù)準(zhǔn)備
raw_data = np.loadtxt('./pythonlearn/cluster.txt') # 導(dǎo)入數(shù)據(jù)文件
X = raw_data[:, :-1] # 分割要聚類的數(shù)據(jù)
y_true = raw_data[:, -1]
print(X)
知識(shí)點(diǎn)擴(kuò)充:
聚類算法
有許多類型的聚類算法。許多算法在特征空間中的示例之間使用相似度或距離度量,以發(fā)現(xiàn)密集的觀測(cè)區(qū)域。因此,在使用聚類算法之前,擴(kuò)展數(shù)據(jù)通常是良好的實(shí)踐。
聚類分析的所有目標(biāo)的核心是被群集的各個(gè)對(duì)象之間的相似程度(或不同程度)的概念。聚類方法嘗試根據(jù)提供給對(duì)象的相似性定義對(duì)對(duì)象進(jìn)行分組。
一些聚類算法要求您指定或猜測(cè)數(shù)據(jù)中要發(fā)現(xiàn)的群集的數(shù)量,而另一些算法要求指定觀測(cè)之間的最小距離,其中示例可以被視為“關(guān)閉”或“連接”。因此,聚類分析是一個(gè)迭代過程,在該過程中,對(duì)所識(shí)別的群集的主觀評(píng)估被反饋回算法配置的改變中,直到達(dá)到期望的或適當(dāng)?shù)慕Y(jié)果。scikit-learn 庫提供了一套不同的聚類算法供選擇。下面列出了10種比較流行的算法:
- 親和力傳播
- 聚合聚類
- BIRCH
- DBSCAN
- K-均值
- Mini-Batch K-均值
- Mean Shift
- OPTICS
- 光譜聚類
- 高斯混合
每個(gè)算法都提供了一種不同的方法來應(yīng)對(duì)數(shù)據(jù)中發(fā)現(xiàn)自然組的挑戰(zhàn)。沒有最好的聚類算法,也沒有簡單的方法來找到最好的算法為您的數(shù)據(jù)沒有使用控制實(shí)驗(yàn)。在本教程中,我們將回顧如何使用來自 scikit-learn 庫的這10個(gè)流行的聚類算法中的每一個(gè)。這些示例將為您復(fù)制粘貼示例并在自己的數(shù)據(jù)上測(cè)試方法提供基礎(chǔ)。我們不會(huì)深入研究算法如何工作的理論,也不會(huì)直接比較它們。讓我們深入研究一下。
到此這篇關(guān)于python聚類算法選擇方法實(shí)例的文章就介紹到這了,更多相關(guān)python聚類算法如何選擇內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
您可能感興趣的文章:- Python實(shí)現(xiàn)DBSCAN聚類算法并樣例測(cè)試
- Python實(shí)現(xiàn)K-means聚類算法并可視化生成動(dòng)圖步驟詳解
- Kmeans均值聚類算法原理以及Python如何實(shí)現(xiàn)
- Python用K-means聚類算法進(jìn)行客戶分群的實(shí)現(xiàn)
- python實(shí)現(xiàn)mean-shift聚類算法
- k-means 聚類算法與Python實(shí)現(xiàn)代碼