Я пытаюсь выполнить кластеризацию прототипа 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-прототипов, так как можно кластеризовать смешанные данные. Проблема в том, что я получаю ошибку, и я не могу ее понять (и, конечно, исправить ее). Я использую код, который я нашел в соответствующем репо:
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
У меня также есть некоторые сомнения относительно syms
и X
. Любая помощь будет очень признательна.