Я работаю над набором маркетинговых данных для несбалансированной двоичной классификации, который имеет:
- Нет: Да, соотношение 88: 12
- ~ 4300 наблюдений и 30 признаков (9 числовых и 21 категориальный)
Я разделил свои данные на наборы поездов (80%) и испытаний (20%), а затем использовал стандартные наборы и SMOTE в наборе поездов. SMOTE сделал соотношение данных поезда: «Нет: Да» к 1: 1. Затем я запустил классификатор случайных лесов, как показано в приведенном ниже коде, и получил показатель отзыва 53% для тестовых данных, а не 35% для тестовых данных, применив классификатор случайных лесов без стандартного масштабирования и SMOTE.
Теперь я хочу улучшить свою модель ( увеличить оценку отзыва ) и выбрать только важные функции.
Я не понимаю, какой метод выбора объектов следует использовать перед применением классификатора случайных лесов . Мне известны следующие методы выбора функций:
Выбор 1-дерева элементов, 2-рекурсивный выбор объектов, 3-компонентный анализ компонентов, 4-лассо-регрессия для отбрасывания неисключенных функций
Какой метод выбора функции будет работать в этом случае? (Обратите внимание, что все мои категорические особенности являются фиктивными переменными, пожалуйста, учитывайте это при предложении правильного подхода)
Спасибо !!
#fitting random forest on SMOTE resampled & scaled data
clf_random=RandomForestClassifier(n_estimators=20, max_depth=None, min_samples_split=10, random_state=0)
X_train_sc_resampled, y_train_resampled= SMOTE().fit_resample(X_train_sc,y_train)
clf_random.fit(X_train_sc_resampled,y_train_resampled)