ValueError: неправильная форма ввода (560, 5) sklearn

Начинаю писать модель обучающей машины. У меня есть набор данных Y_train, содержащий метки, есть 5 классов. Набор данных X_train содержит образцы. Я пытаюсь построить свою модель с помощью логистической регрессии. shape: X_train ((560, 20531)) и Y_train ((560, 5)) имеют одинаковые размеры. Я видел несколько публикаций, связанных с той же проблемой, но мне не удалось решить эту проблему. Я не знаю, как исправить эту ошибку, не могли бы вы мне помочь?

X = pd.read_csv('/Users/lottie/desktop/data.csv', header=None, skiprows=[0])
Y = pd.read_csv('/Users/lottie/desktop/labels.csv', header=None)

Y_encoded = list()
for i in Y.loc[0:,1] :
    if i == 'BRCA' : Y_encoded.append(0)
    if i == 'KIRC' : Y_encoded.append(1)
    if i == 'COAD' : Y_encoded.append(2)
    if i == 'LUAD' : Y_encoded.append(3)
    if i == 'PRAD' : Y_encoded.append(4)
Y_bis = to_categorical(Y_encoded)


#separation of the data
X_train, X_test, Y_train, Y_test = train_test_split(X, Y_bis, test_size=0.30, random_state=42)

regression_log = linear_model.LogisticRegression(multi_class='multinomial', solver='newton-cg')

X_train=X_train.iloc[:,1:]

#train model
train_train = regression_log.fit(X_train, Y_train)

person lmj    schedule 08.01.2021    source источник


Ответы (1)


Какой именно ваш X_train? На первый взгляд кажется, что вы меняете количество образцов с количеством функций.

Попробуйте X.shape и Y.shape и скажите, что дает консоль.

person sboomi    schedule 08.01.2021
comment
X_train содержит для каждой строки (= образцы) значения для каждых данных. Y_train: содержит для каждого образца связанный класс. X.shape: (801, 20532) и Y.shape (801, 2) - person lmj; 08.01.2021
comment
Честно говоря, X и Y должны иметь одинаковое количество строк, что согласуется. Х выглядит странно. Почему у вас есть 20532 функции? - person sboomi; 08.01.2021