K-прототипы в python "IndexError: слишком много индексов для массива" - PullRequest
0 голосов
/ 23 марта 2019

Я пытаюсь выполнить кластеризацию прототипа 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. Любая помощь будет очень признательна.

1 Ответ

1 голос
/ 23 марта 2019

Изменить разделитель '\ t' на ','

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

потому что вы используете разделенные запятыми файлы значений. Я надеюсь, что это работает!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...