Feature engineering - способ с помощью которого мы можем создавать признаки, такая техника решения задач ML, которая увеличивает качество разрабатываемых алгоритмов. Превращает специфичные данные в понятные для модели векторы.
Способы:
1. Ручное создание признаков.
Можно создать новые признаки на основе уже имеющихся данных, конечно, при условии, что вы чётко знаете значения признаков. Возможно потребуется погружение в предметную область, но это стоит того, такой способ создания новых признаков может помочь значительно улучшить модель. К примеру можно ввести индекс массы тела, если у нас есть данные по росту и массе человека.
2. Полиномиальные признаки.
Это может быть, к примеру попарное умножение уже имеющихся признаков, в целях получения нелинейных комбинаций признаков. Как вариант возведение данных признака в степень, взятие корня из данных и т.д. для получения искусственных признаков.
3. Dummy- переменные.
Между категориальными признаками не всегда есть порядок, поэтому их следует заменить на dummy-переменные, в виде цифр, что бы алгоритм подумал будто в них есть порядок. Например лев, тигр, медведь лучше записать как 0, 1, 2. Расстояние между львом и тигром равно 1, а между львом и медведем - 2, хотя это не так. Решение - создать новые признаки по количеству категорий. Для признака лев - 1, если это лев, иначе 1. теперь расстояние между признаками равно 1.
4. Работа с датой/временем.
Обычно дату все записывают примерно так: 04.12.2011 - как строка. В таком виде признак практически не имеет смысла, но смысла можно добавить разделив этот признаков на несколько числовых признаков. К примеру разобьем дату на "день", "месяц" и "год".
5. Статистика по наборам признаков.
Очень здорово, когда в данных присутствуют признаки, описывающие значения в разные моменты времени. Они могут быть крайне полезными. К примеру "температура_май_2016", "температура_май_2017", "температура_май_2018"
P.S. Если, нашли ошибки, недочёты или хотите дополнить сказанное, всегда рада конструктивному мнению специалистов.