python利用kmeans一维聚类和二维聚类
利用python的sklearn库做kmeans一维聚类和二维聚类。
网上找了找,记录下,在做直方图聚类。
一、kmeans一维聚类
这个主要在于一个reshape(-1, 1)。kmeans聚类一般是搞二位聚类的,需要一维就得变换下。这个也是自带的提示:
a是一个一维array列表。代码是:
from sklearn.cluster import KMeans
x = a.reshape(-1,1)
myKmeans = KMeans(n_clusters = 3) # 聚类成3团
myKmeans.fit(x)
centers = list(myKmeans.cluster_centers_)
print(centers)
注意,列表list是没有reshape的,可以用np.array()转换下:
a = np.array(a)
二、kmeans二维聚类
这个主要是要有二维列表。二维列表和二维array应该都行。
代码变换不大:把二维列表赋给x就行
from sklearn.cluster import KMeans
x = 二维列表
myKmeans = KMeans(n_clusters = 3) # 聚类成3团
myKmeans.fit(x)
centers = list(myKmeans.cluster_centers_)
print(centers)
结果应该是点对: