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