我想使用kmodes对五个预定义质心上的真实世界分类数据进行聚类。我的代码如下所示:
real_df = [['B' 'A' 'A' ... 'D']
['D' 'I' 'D' ... ]
['D' 'I' 'D' ... ]
...
['K' 'F' 'D' ... 'D']
['D' 'P' 'D' ... 'D']]
cen = [['P', 'S', 'M', 'P', 'P', 'P', 'S'],
['P', 'P', 'P', 'S', 'I', 'M', 'W',],
['M', 'W', 'F', 'R', 'S', 'A', 'I'],
['P', 'S', 'M', 'F', 'R', 'S', 'A'],
['P', 'S', 'M', 'M', 'P', 'P', 'P',]]
km = KModes(n_clusters=5, init=cen, n_init = 1, verbose = 0)
fitClusters = km.fit_predict(real_df)
但是,我收到以下错误消息:
我错过了什么
我也遇到了同样的问题,并在github上找到了与Nico de Vos连接的解决方案
https://github.com/nicodv/kmodes
当使用
init = ...
提供初始集群时,必须提供编码集群质心数组代码基本上是每个属性的所有唯一值的排列顺序(从A到Z,从低到高),从0开始
在您的示例中,如果在第一个属性中使用全部26个字母,则A=0、B=1、C=2等。如果缺少一个字母,则Z为24,而不是25
所以数组的第一行是
[15, 18, 12, 15, 15, 15, 18]
有用代码:
拥有模型后,使用
model._enc_cluster_centroids
获取编码的簇质心使用
model._enc_map
获取映射相关问题 更多 >
编程相关推荐