knn.fit () error: valueError: Найдены входные переменные с непоследовательным количеством выборок - PullRequest
0 голосов
/ 28 октября 2019

Я прохожу курс обучения под наблюдением в лагере данных. И пытаясь воспроизвести код в блокноте Юпитера.

Я делаю следующее:

url = 'https://assets.datacamp.com/production/repositories/628/datasets/444cdbf175d5fbf564b564bd36ac21740627a834/diabetes.csv'

df2 = pd.read_csv(url)


y = df2['diabetes'].values
X = df2.loc[:,['pregnancies', 'bmi','age']]
X = np.array(X)

X_train, y_train, X_test, y_test = train_test_split(X, y, test_size = 0.4, random_state = 42)

knn = KNeighborsClassifier(n_neighbors=6)
knn.fit(X_train, y_train)

Когда я выполняю knn.fit (), он выдает мне ошибку: ValueError: Нашел входные переменные снесовместимое количество образцов: [460, 308]

Я смотрю здесь некоторые решения, в основном это все о размерах массива X и y, я изменил их, но это не помогло.

СпасибоВы заранее!

print(X.shape, y.shape)
print(type(X), type(y))

(768, 3) (768,) класс 'numpy.ndarray' класс 'numpy.ndarray'

1 Ответ

0 голосов
/ 28 октября 2019

Согласно документации sklearn , train_test_split создает подмножества тестов поездов в том же порядке, что и передаваемые в нем аргументы.

Это решит вашу проблему:

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.4, random_state = 42)
...