Как интерпретировать результат набора данных радужной оболочки? - PullRequest
0 голосов
/ 24 февраля 2020

Я работаю над основами машинного обучения с набором данных iris. Мне кажется, я понимаю идею разделения данных и прогнозирования новых данных; Однако у меня возникают проблемы с пониманием результатов, которые я получаю для кода ниже: iris = load_iris ()

X = iris.data
y = iris.target

len(X)--result: 150

X_train, X_test, y_train, y_test = train_test_split( X, y, random_state=5)

knn = KNeighborsClassifier(n_neighbors=5)
knn.fit(X_train, y_train)
y_pred = knn.predict(X_test)
print(y_pred)
print(metrics.accuracy_score(y_test, y_pred))

Результат: [1 2 2 0 2 1 0 2 0 1 1 2 2 2 0 0 2 2 0 0 1 2 0 2 1 2 1 1 1 2 0 1 1 0 1 0 0 2] Точность 0,95%

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

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

1 Ответ

1 голос
/ 24 февраля 2020

По умолчанию train_test_split установить test_size равным 0,25. В случае 50 это будет 12,5, поэтому 38 значений верны.

sklearn.model_selection.train_test_split

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