利用sklearn實現k-means
基於上面的一篇部落格k-means利用sklearn實現k-means
#!/usr/bin/env python # coding: utf-8 # In[1]: import numpy as np import matplotlib.pyplot as plt from sklearn.cluster import KMeans # In[4]: # 載入數據 dataset = [] for line in open("data_kmeans.csv"): x, y = line.split(",") dataset.append([int(x), int(y)]) print(dataset) # In[13]: k=3 # 訓練模型 model = KMeans(n_clusters=k) model.fit(dataset) # 分類中心點坐標 centers = model.cluster_centers_ print(center) # In[15]: # 預測結果 result = model.predict(dataset) print(result) # In[42]: # 用不同的顏色繪製數據點 mark = ['or', 'og', 'ob'] for i,d in enumerate(dataset): plt.plot(d[0], d[1], mark[result[i]]) # 畫出各分類點的中心點 mark = ['*b', '*r', '*g'] # 為了凸顯質心,把每個簇的質心顏色換成其他的 for i, center in enumerate(centers): plt.plot(center[0], center[1], mark[i], markersize=20) # In[ ]: