#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 (вы не знаете тестовую вершину, поскольку тестируете свою модель)