[Python] Scikit-learn的kmeans聚类

简介下python中scikit-learn中kmeans聚类的使用

1.随机生成二维聚类数据

import numpy as np
x1 = np.array([1, 2, 3, 1, 5, 6, 5, 5, 6, 7, 8, 9, 9])
x2 = np.array([1, 3, 2, 2, 8, 6, 7, 6, 7, 1, 2, 1, 3])
x = np.array(list(zip(x1, x2))).reshape(len(x1), 2)
print x
# [[1 1]
#  [2 3]
#  [3 2]
#  [1 2]
#  [5 8]
#  [6 6]
#  [5 7]
#  [5 6]
#  [6 7]
#  [7 1]
#  [8 2]
#  [9 1]
#  [9 3]]

2.生成聚类标签

from sklearn.cluster import KMeans
kmeans=KMeans(n_clusters=3)   #n_clusters:number of cluster
kmeans.fit(x)
print kmeans.labels_
#[0 0 0 0 2 2 2 2 2 1 1 1 1]

3.显示聚类效果

import matplotlib.pyplot as plt
plt.figure(figsize=(8,10))
colors = ['b', 'g', 'r']
markers = ['o', 's', 'D']
for i,l in enumerate(kmeans.labels_):
     plt.plot(x1[i],x2[i],color=colors[l],marker=markers[l],ls='None')
plt.show()
效果如下图:

[Python] Scikit-learn的kmeans聚类_第1张图片


你可能感兴趣的:(机器学习,python)