Тренировочные данные в тренировочном наборе - PullRequest
0 голосов
/ 31 января 2020

Я пытаюсь обучить модель в моем тренировочном наборе, используя scikit-learn , но получаю эту ошибку:

 ValueError: Expected 2D array, got 1D array instead: array=[90.  4.].
 Reshape your data either using array.reshape(-1, 1) if your data has a single feature or array.reshape(1, -1) if it contains a single sample.

шаг 1: разбить x и y на обучение и тестирование set

from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X,y, test_size = 0.4, random_state = 4)

проверка формы нового разделенного значения x (обучение и тестирование)

X_train = X_train.shape
X_test = X_test.shape
print(X_train)
print(X_test)

проверка формы нового разделенного значения y (обучение и тестирование)

y_train = y_train.shape
y_test = y_test.shape
print(y_train)
print(y_test)

шаг 2: Обучение нашей модели на тренировочном наборе (с использованием логистической регрессии)

logR = LogisticRegression()
logR = logR.fit(X_train, y_train)

Запустив этот код, я получил ошибку

Ответы [ 2 ]

0 голосов
/ 31 января 2020

Вы проделали большую работу, но сделали одну неправильную вещь: вы заменяете данные об обучении и испытаниях их формой, которая является 1D, поэтому вы сталкиваетесь с этой ошибкой

 #replace these line

from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X,y, test_size = 0.4, random_state = 4)

print( X_train.shape)
print( X_test.shape)
print(y_train.shape)
print(y_test.shape)

logR = LogisticRegression()
logR = logR.fit(X_train, y_train)

# Now it work fine
0 голосов
/ 31 января 2020

Кажется, вы заменяете точки данных их формами:

X_train = X_train.shape
X_test = X_test.shape
y_train = y_train.shape
y_test = y_test.shape

Удалите эти строки и повторите.

...