K-Prototypes in python "IndexError: too many indices for array"

K-Prototypes in python "IndexError: too many indices for array"

我正在尝试对混合数据(分类和数字)执行 k 原型聚类。我的输入文件是一个 csv,看起来像这样(它包含 300000 行):

  Unnamed: 0.1,market,vendor_name,price,ship_from,category_cl
   0,mark,03welle,1.79367196,DE,Drugs
   1,aruna,03welle,0.05880975,DE,Drugs
   2,ny,03welle,0.11344859,DE,Drugs
   3,mi,03welle,0.18655316,DE,Drugs

我正在尝试实现 k-prototypes 聚类,就像聚类混合数据一样。问题是我遇到了一个错误,我无法理解它(当然也无法修复它)。我正在使用我在相关仓库中找到的代码:

import numpy as np
print("initialising")
syms = np.genfromtxt('pameteliko.csv', dtype=str, delimiter='\t')[:, 0]
print("******")
print(syms)
X = np.genfromtxt('pameteliko.csv', dtype=object, delimiter='\t')[:, 1:]
print("################")
X[:, 0] = X[:, 0].astype(float)
from kmodes.kprototypes import KPrototypes
kproto = KPrototypes(n_clusters=6, init='Cao', verbose=2)
clusters = kproto.fit_predict(X, categorical=[1, 2])

#Print cluster centroids of the trained model.
print(kproto.cluster_centroids_)
#Print training statistics
print(kproto.cost_)
print(kproto.n_iter_)

(这些打印件用于调试目的)。我收到以下错误:

IndexError: too many indices for array

我对symsX也有一些疑问。任何帮助将不胜感激。

将分隔符“\t”更改为“,”

syms = np.genfromtxt('pameteliko.csv', dtype=str, delimiter=',')[:, 0]
print("******")
print(syms)
X = np.genfromtxt('pameteliko.csv', dtype=object, delimiter=',')[:, 1:]

因为您使用的是逗号分隔值文件。希望有用!