Я предполагаю, что ваша модель Keras - это некая нейронная сеть. А с NN вообще трудно понять, какие входные функции актуальны, а какие нет. Причина этого заключается в том, что каждый входной объект имеет несколько коэффициентов, которые связаны с ним - каждый соответствует одному узлу первого скрытого слоя. Добавление дополнительных скрытых слоев усложняет определение степени влияния входного объекта на окончательный прогноз.
С другой стороны, для линейных моделей это очень просто, поскольку каждый признак x_i имеет соответствующий вес / коэффициент w_i, а его величина напрямую определяет, насколько сильно он влияет на прогнозирование (при условии, что характеристики, конечно, масштабируются).
Оценщик RFE (рекурсивное исключение объектов) предполагает, что ваша модель прогнозирования имеет атрибут coef_
(линейные модели) или feature_importances_
(древовидные модели), который имеет длину входных объектов и представляет их релевантность (в абсолютном выражении). условия).
Мое предложение:
- Выбор элемента : (Вариант a) Запустите RFE на любой линейной / древовидной модели, чтобы уменьшить количество элементов до некоторого требуемого числа
n_features_to_select
. (Вариант б) Используйте регуляризованные линейные модели, такие как лассо / эластичная сеть, которые обеспечивают разреженность. Проблема в том, что вы не можете напрямую установить фактическое количество выбранных функций. (Вариант c) Используйте любую другую технику выбора функций из здесь .
- Нейронная сеть : Используйте только функции из (1) для вашей нейронной сети.