怎么可能?转换为执行python k-means算法到x-means和k-means算法?
大家好,我已经通过执行python操作符进行k-means聚类,但我想应用到这个过程k-medoid和x-means,所以我需要在我的python屏幕中更改为k-means代码部分,所以我需要为x-means和k-medoid编写代码到k-means执行python屏幕。我已经分享了我的python屏幕
------------- 代码 ----------------
------------- 代码 ----------------
进口熊猫作为pd
从操作符导入itemgetter
将numpy导入为np
进口随机
导入系统
从scipy。空间输入距离
从sklearn。集群导入KMeans
C = 10
def k_means(X):
kmeans = kmeans (n_clusters=C, random_state=0).fit(X)
返回kmeans.cluster_centers_
def samevolumecluster(D, volumes):
其中:点到簇中心的距离D, Npt x C
out: xtoc, X -> C,等大小的集群
”“”
clustervolume = (np.sum(volumes)) / C
xcd =列表(np.ndenumerate (D)) # ((0, 0), d00), ((0,1) d01)…
xcd。排序(key=itemgetter(1))
Xtoc = np。ones(Npt, int) * -1
Nincluster = np。0 (C, int)
Vincluster = np。0 (C, int)
Nall = 0
对于xcd中的(x,c), d:
如果xtoc[x] < 0 and vincluster[c] <= clustervolume+10:
Xtoc [x] = c
Nincluster [c] + 1
Vincluster [c] += volumes[x]
Nall += 1
if nall >= Npt:中断
返回xtoc
def rm_main(数据):
Data_2 = data.values
Volumes = data_2[:,1]
中心= k_means(data_2)
D =距离。Cdist (data_2, centres)
xtoc = samevolumecluster(D, volumes)
Data ['cluster'] = xtoc
返回数据
0
答案
大卫