【问题标题】:KModes : initialize centroids with an array and categorical dataKModes:用数组和分类数据初始化质心
【发布时间】:2021-10-28 07:37:35
【问题描述】:

我正在尝试重现最初以“随机”开始的 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_  

质心结果为:

array([['1', 'C'], ['1', 'A'], ['2', 'B']], dtype='

如果我用它来创建类似的聚类:

kmodeTest2 = KModes(n_clusters=3, init = cent, n_init = 3, verbose=1).fit(test)  

我收到错误消息:
ValueError: int() 以 10 为底的无效文字:'C'

【问题讨论】:

    标签: python cluster-analysis categorical-data


    【解决方案1】:

    您需要对簇质心使用编码数组。 语法是:

    cent = kmodeTest._enc_cluster_centroids
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-09-17
      • 2017-01-26
      • 2018-05-09
      • 1970-01-01
      • 2022-11-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多