2016-10-31 4 views
4

Мой код ниже дает мне следующую ошибку: «IndexError: слишком много индексов для массива». Я совершенно не знаком с машинным обучением, поэтому я не знаю, как это решить. Любая помощь будет оценена по достоинству.Как разрешить «IndexError: слишком много индексов для массива»

train = pandas.read_csv("D:/...input/train.csv") 


xTrain = train.iloc[:,0:54] 
yTrain = train.iloc[:,54:] 


from sklearn.cross_validation import cross_val_score 
clf = LogisticRegression(multi_class='multinomial') 
scores = cross_val_score(clf, xTrain, yTrain, cv=10, scoring='accuracy') 
print('****Results****') 
print(scores.mean()) 
+2

Вы уверены, что 'train' выглядит так, как вам кажется? – DavidG

+0

@DavidG train.shape дает мне 15120 x 55. 55 столбцов - это то, что я ожидаю –

+0

Получаете ли вы ошибку с помощью 'yTrain' или' xTrain'? – DavidG

ответ

2

Код ошибки, который вы получаете, в основном говорит о том, что вы объявили содержимое для своего массива, который ему не подходит. Я не вижу объявления вашего массива, но я предполагаю, что это одномерное, и программа возражает против вас, рассматривая его как двухмерную.

Просто проверьте, что ваши объявления верны, а также проверьте код, напечатав значения после того, как вы установили их, чтобы проверить, что они предназначены для вас.

Есть несколько существующих вопросов на эту тему уже так я буду просто связать тот, который мог бы быть полезным здесь: IndexError: too many indices. Numpy Array with 1 row and 2 columns

+0

Я понял, в чем проблема. Число столбцов становится несовместимым где-то, но train.shape дает мне 15120 x 55. 55 столбцов - это то, что я ожидаю. –

1

Вы получаете эту ошибку, потому что вы делаете целевой массив «у» 2- D, который на самом деле должен быть 1-D, чтобы пройти функцию перекрестной проверки.

Эти два случая различны:

1. y=numpy.zeros(shape=(len(list),1)) 
2. y=numpy.zeros(shape=(len(list))) 

Если вы объявляете у нравится случай 1, то у становится 2-D. Но вам нужен 1-D массив, следовательно, использовать случай 2.

Смежные вопросы