Как использовать SelectKBest для задачи классификации

#python #python-3.x #scikit-learn #knn

#python #python-3.x #scikit-learn #knn

Вопрос:

Я решаю задачу классификации.

Предположим, что это мой обучающий и тестовый набор данных.

 X_train.shape       y_train
(7500, 5760)        (7500,)

x_test.shape        y_test
(2500, 5760)        (2500,)
  

После использования классификатора knn я получил точность 0,74%.

Теперь я хочу выбрать 1000 лучших функций и снова использовать knn и проверить свою точность.

Как мне использовать SelectKBest ?

 from sklearn.feature_selection import SelectKBest, chi2

k_best = SelectKBest(chi2, k=1000)
  

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

Если я сделаю это, не будут ли функции, выбранные в train, отличаться от функций, выбранных в test?

Я не мог понять, как поступить? Пожалуйста, приведите пример.

Комментарии:

1. fit_transform X_train но преобразуйте только X_test, и все готово.

2. @Alexis Итак, если я сделаю это, будут ли мои обучающие и тестовые наборы данных иметь одинаковые лучшие функции??

3. да, потому что вы будете использовать лучшие функции train (вы не знаете тестовую вершину, поскольку тестируете свою модель)