python - KModes:用数组和分类数据初始化质心
问题描述
我正在尝试重现最初以“随机”开始的 KModes 聚类模型的结果。
为此,我尝试使用先前质心数组初始化质心。
该模型似乎无法识别分类数据。
使用数组启动质心的正确语法是什么?
代码:
att1 = [1,2,3,1,1,2,3,1]
att2 = ['A','B','B','A','C','C','C','C']
data1 = list(zip(att1, att2))
test = pd.DataFrame(data=data1, columns =['A1','A2'])
kmodeTest = KModes(n_clusters=3, init = 'random', n_init = 3, verbose=1).fit(test)
cent = kmodeTest.cluster_centroids_
质心结果为:
数组([['1', 'C'], ['1', 'A'], ['2', 'B']], dtype='<U11')
如果我用它来创建类似的集群:
kmodeTest2 = KModes(n_clusters=3, init = cent, n_init = 3, verbose=1).fit(test)
我收到错误消息:
ValueError: invalid literal for int() with base 10: 'C'
解决方案
您需要对簇质心使用编码数组。语法是:
cent = kmodeTest._enc_cluster_centroids
推荐阅读
- python - 'int' 对象在字典上使用哈希后不可迭代
- mysql - 在 CentOS 上的 whm 中更改 mysqld 的启动选项
- indexing - 如何利用 torch.topk() 提供的索引?
- certificate - 如果我使用 CA 授权证书对我的应用程序(exe 文件)进行一次代码签名,它会反映我安装它的位置吗?
- jpa - 通过 spring 规范创建 where 子句
- angular - 与 formControlName 绑定后,类型上不存在属性
- visual-studio-code - 如何在 VsCode 中使用 GlobalCache 配置 Yarn Berry、Eslint?
- javascript - 画布:拖放图像
- performance - dns-prefetch + preconnect vs. 浏览器缓存
- java - Spring Boot 单元测试构造函数注入