Хотя в то время я этого не знал, мое путешествие в машинное обучение началось много лет назад, когда я готовился к докторской диссертации. по химии с упором на аналитическую химию. Тогда, более 30 лет назад, упор делался на сбор данных (экспериментирование) и получение нескольких точек данных с высокой точностью. Как только данные были получены, они были приспособлены к модели, которая позволила нам лучше понять химические и/или физические свойства системы.

Получение «чистых» данных было ключом к анализу, потому что сбор данных был самой «дорогой» частью процесса, и большое внимание уделялось обеспечению как можно большего количества чистых точек данных. За последние 30 лет стоимость сбора данных снизилась, но важность наличия «чистых» данных осталась. Отличие сегодня в том, что можно собрать гораздо больше данных (относительно просто и дешево); и после сбора точки данных можно «очистить».

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

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

Инжиниринг функций — относительно новая концепция для меня, и мне сложнее всего ее понять. В наши дни данные могут иметь многие тысячи наблюдений и множество характеристик. Некоторые функции не важны для модели, в то время как другие очень важны для модели. Некоторые характеристики коррелируют друг с другом. Некоторые из них будут сильно искажены. Разработка признаков включает в себя манипулирование отдельными признаками (логарифмирование, извлечение квадратного корня и т. д.) для создания более нормального распределения данных признака. Другая разработка функций заключается в создании функций из исходных значений.

Вопрос в том, как узнать, какие новые функции создавать?

Относительно простой пример, помогающий мне понять, — это анализ стоимости жилья. Недавно переехав из одного района страны в другой, мы тоже решили уменьшить размер нашего дома. Общая цена покупки дома в нашем новом месте была ниже продажной цены дома, который мы продали. Это было ожидаемо; однако, когда цены рассчитываются на основе квадратного фута (например, нормализация стоимости по размеру дома), дом меньшего размера был на 5% дороже. Этот простой одноразовый анализ можно расширить, рассмотрев записи о продажах недвижимости в районах и рассчитав цену за квадратный фут для всех продаж домов, чтобы сравнить общие тенденции стоимости жилья в районе.

В профессиональном бейсболе важным расчетным показателем является количество побед над заменами (WAR). Это вычисляемая функция, которая сочетает в себе как наступательные, так и защитные функции, чтобы оценить влияние игрока на общее количество побед команды.

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

Как нам поступить? Из того, что я узнал, исследовательский анализ данных (EDA) имеет решающее значение, поскольку он дает представление о данных и дает некоторые знания в предметной области по теме. Как и 30 с лишним лет назад, когда я заканчивал докторскую диссертацию, понимание области, в которой вы работаете, дает необходимую информацию для принятия решения о том, какие функции (собственные или инженерные) включить в анализ. Если вы не являетесь экспертом в данной области, то тщательный EDA может обеспечить некоторое понимание предметной области, чтобы обеспечить возможность надлежащего проектирования функций.

Самый большой извлеченный урок является следствием того, чему мой профессор научил меня давным-давно. Он сказал мне, что «день в библиотеке может сэкономить вам месяц в лаборатории». Благодаря машинному обучению время, затраченное на EDA, экономит время на создание модели. Некоторые вещи остаются прежними.