До сих пор у нас создавалось впечатление, что модель действует непосредственно на строки набора данных; однако модели на самом деле принимают данные несколько по-другому.
Например, предположим, что набор данных содержит пять столбцов, но только два из этих столбцов ( b
и d
) являются объектами модели. При обработке примера в строке 3 модель просто захватывает содержимое двух выделенных ячеек (3b и 3d) следующим образом?
Фактически, модель фактически принимает массив значений с плавающей запятой, называемый вектором признаков . Вы можете думать о векторе признаков как о значениях с плавающей запятой, составляющих один пример.
Однако векторы признаков редко используют необработанные значения набора данных. Вместо этого вам обычно приходится обрабатывать значения набора данных в представления, на которых ваша модель может лучше учиться. Итак, более реалистичный вектор признаков может выглядеть примерно так:
Разве модель не будет давать более точные прогнозы, обучаясь на основе фактических значений в наборе данных, чем на основе измененных значений? Удивительно, но ответ — нет.
Вы должны определить лучший способ представления необработанных значений набора данных как обучаемых значений в векторе объектов. Этот процесс называется разработкой функций и является важной частью машинного обучения. Наиболее распространенными методами проектирования функций являются:
- Нормализация : преобразование числовых значений в стандартный диапазон.
- Биннинг (также называемый группированием ): преобразование числовых значений в сегменты диапазонов.
В этом модуле рассматриваются нормализация и бинирование. Следующий модуль, «Работа с категориальными данными» , охватывает другие формы предварительной обработки , такие как преобразование нечисловых данных, например строк, в значения с плавающей запятой.
Каждое значение в векторе признаков должно быть значением с плавающей запятой. Однако многие функции, естественно, представляют собой строки или другие нечисловые значения. Следовательно, большая часть разработки функций представляет нечисловые значения как числовые. Вы увидите многое из этого в последующих модулях.