利用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[ ]: