Все, кто имел опыт создания моделей машинного обучения, знают, что настоящую игру играют данные. Я имею в виду, что вы не можете прожить ни секунды без данных. С самого первого момента, когда вы начинаете строить свою модель, все, что вы на самом деле делаете, это играете со своими наборами данных, верно?

Но что, если в данных, которые вы используете, есть всевозможные ошибки, не что иное, как кошмар, не так ли? Все начинается с этих наборов данных, которые мы получаем. Можно сказать, что эти данные являются топливом для вашей модели машинного обучения. Но но НО!! Это не все правда, данные важны, но они присутствуют в необработанном формате, все неструктурированные, разрозненные, состоящие из выбросов, пропущенных значений, избыточных данных и шума, которые являются результатом человеческой ошибки. Что ж, это уж слишком.

Данные являются исходным материалом, и для того, чтобы они соответствовали нашей модели машинного обучения, требуется большая обработка. Здесь концепция функциональной инженерии входит в рамки.

Согласно опросу Forbes, специалисты по обработке данных тратят значительное количество времени на подготовку данных, чем на то, чтобы работать над моделью. Итак, очевидно, что эта концепция имеет большое значение, не так ли?

Из приведенного выше рисунка хорошо видно, что разработка функций - довольно важная вещь в конвейере машинного обучения.

Так что же такое разработка функций?

По сути, все алгоритмы, которые используются для построения модели машинного обучения, используют некоторые соответствующие входные данные для получения желаемых результатов. Эти входные данные включают функции, представленные в виде структурированных столбцов. Чтобы построить эффективную модель, алгоритмам требуются функции с конкретными характеристиками. Здесь возникает необходимость в проектировании функций.

Следовательно, проектирование функций относится к созданию важных функций для каждой этикетки, которая была предоставлена ​​аппарату вместе с входными данными, с одновременной фильтрацией данных, используемых для функции, на основе времени обрезки этикетки. Эти уточненные функции и связанные метки далее передаются в алгоритмы машинного обучения в качестве обучающих наборов данных для обработки, с помощью которой можно было бы сделать прогноз для неизвестных наборов данных.

Это дает четкое представление о теме, не так ли?

ПОЧЕМУ FEATURE ENGINEERING?

Разве использование данных напрямую не даст нам результата?

Что ж, вы определенно можете. Но когда вы работаете с уточненными данными, будет большая разница в точности, чем в точности, которую вы получите, используя необработанные данные. Наличие нерелевантных функций в ваших данных может привести к снижению ценности. А модель машинного обучения с более подробными данными будет постепенно давать более точные результаты.

Я полагаю, это определенно является причиной, по которой нужно включить проектирование функций в конвейер машинного обучения для построения модели.

Теперь вы понимаете, почему разработка функций имеет большое значение. И успех всех алгоритмов машинного обучения зависит исключительно от того, как вы представляете свои данные. Создание правильного набора входных данных, совместимого с машиной, является важной задачей.

КАКОВЫ СПОСОБЫ ВЫПОЛНЕНИЯ ВЫБОРА ФУНКЦИЙ?

Разработка функций - это искусство, и есть методы, позволяющие добиться того же. Вот некоторые методы извлечения соответствующей функции из пакета:

  • Вменение. Метод определения и замены отсутствующих значений в наборе данных называется вменением. Наличие пропущенных значений в наборе данных может быть результатом многих возможных факторов, таких как технические неисправности при записи данных с помощью датчиков, человеческие ошибки и т. Д. В разделе «Вменение» у нас есть еще два подметода, которые по отдельности обрабатывают как числовые, так и категориальные данные соответственно. .
  • Обнаружение выбросов: выбросы - это те небольшие доли значений точек данных, которые довольно далеки от всех обычных наблюдений из-за кажущихся незначительными ошибок при записи, и эти выбросы необходимо обнаруживать и устранять для достижения большей точности. Визуализация данных - эффективный метод определения выбросов путем визуального осмотра.
  • Группирование: это метод сглаживания зашумленных данных путем разделения числовых и категориальных данных в разные ячейки. Это помогает снизить риск переобучения.
  • Масштабирование. В большинстве наборов данных числовые значения лежат в разных диапазонах, что может быть проблематичным для некоторых алгоритмов машинного обучения при обработке такого огромного разнообразия. Поэтому для специалиста по обработке данных важно ограничить эти бесконечные диапазоны определенным диапазоном, и для него используется масштабирование. Масштабирование включает в себя нормализацию, которая устанавливает диапазон от 0 до 1, и это может быть реализовано с помощью функции scikit-learn, называемой MinMaxScaler (). Другой метод - стандартизация, при которой функции масштабируются с использованием их стандартного отклонения. Это может быть реализовано с помощью функции scikit-learn под названием StandardScaler ().

Что ж, это дает вам представление о том, как работает разработка функций, и есть несколько других методов для извлечения релевантных и важных функций для получения лучших и подходящих результатов.

Итак, давайте резюмируем те преимущества, о которых мы говорили. Выполнение выбора функций перед моделированием входных данных приводит к:

  • Уменьшение переобучения: когда мы пытаемся полностью смоделировать наш алгоритм на обучающих данных, мы соответствующим образом подгоняем его, здесь он подходит, но когда в модель вводятся новые данные, это терпит неудачу. Это связано с тем, что наша модель учитывала все выбросы и зашумленные данные во время обучения модели и структурирована соответствующим образом, что привело к условию переобучения. Выбор функций помогает уменьшить это условие переобучения и, таким образом, дает лучшие результаты.
  • Минимальное время обучения: удаление сложных или нерелевантных данных экономит время на дальнейшие вычисления.
  • Повышает точность: когда у вас есть четкий набор входных данных без пропущенных значений, избыточности или выбросов, ваша модель дает более высокую точность.

ЗАКЛЮЧЕНИЕ

Разработка функций, безусловно, является важным аспектом при построении модели машинного обучения. И для получения большей точности, безусловно, необходимо иметь большую ясность при работе с этими наборами данных. Таким образом, разработка функций - это настоящая игра.