Подготовка набора данных для обучения
Набор данных обучают, чтобы он решал задачи машинного обучения. Набор данных для обучения включает по одному столбцу для каждого признака и столбец, содержащий цель. Алгоритмы машинного обучения выявляют общие закономерности в строках данных, чтобы создать модель, которая может спрогнозировать цель.
Чтобы получить готовый набор данных для машинного обучения, нужно проанализировать данные и собрать необходимые точки данных. Также может понадобиться преобразовать некоторые данные и удалить данные, которые не имеют отношения к сценарию использования.
Какие данные необходимо собрать?
Четко сформулируйте задачу машинного обучения и определите, какие именно данные необходимо собрать для решения этой задачи.
-
Если нужно спрогнозировать отток клиентов, создайте набор данных, в котором каждая строка будет представлять отдельного клиента, каждый столбец признака — признак, описывающий этого клиента, а целевой столбец — показатель оттока клиентов за определенный период времени.
-
Если нужно спрогнозировать продажи для конкретного месяца и региона, создайте набор данных, в котором каждая строка будет представлять конкретный месяц для конкретного региона, каждый столбец признака — признак, описывающий какой-либо бизнес-показатель за этот месяц в этом регионе, а целевой столбец — доход от продаж за этот месяц в этом регионе.
Попытайтесь выяснить, что может повлиять на цель, и постарайтесь собрать соответствующие данные. Помните, что алгоритмы прогнозирования могут выявлять только закономерности, которые необходимо найти. Возможно, понадобится собрать или создать дополнительные признаки, чтобы извлечь дополнительную информацию.
Также следует определить, сколько данных нужно собрать для точного прогнозирования и сколько времени должно пройти, прежде чем событие станет репрезентативным. Рассмотрим примеры, приведенные ниже.
-
Клиенты должны пользоваться услугами компании в течение 60 дней, прежде чем можно будет спрогнозировать, откажутся ли они от этих услуг до 90-го дня.
-
Сумма страховых выплат будет известна не ранее чем через несколько месяцев, поэтому можно исключить выплаты, которые были назначены менее шести месяцев назад.
Следует различать изменяющиеся и не изменяющиеся во времени данные. Если данные изменяются во времени, нужно выяснить, имеют ли они метку времени, чтобы объединить их надлежащим образом.
Будут ли данные доступны на момент прогнозирования?
Убедитесь, чтобы все признаки, включенные в набор данных для обучения, были доступны и для будущих прогнозов. Обучение модели с использованием признаков, которые доступны для исторических данных, но не будут доступны для прогнозирования в будущем, является распространенной ошибкой. При создании прогнозов на основе новых данных алгоритму машинного обучения требуются значения всех признаков, включенных в набор данных для обучения.
Чем больше данных, тем лучше?
Объем выборки
Как правило, чем больше объем данных, тем надежнее модели. Поэтому любые дополнительные релевантные данные будут полезны, будь то новые данные или исторические наблюдения.
Количество признаков
Может возникнуть желание включить в модель все возможные переменные, независимо от их значимости для целевого результата. Но здесь действует правило: чем проще, тем лучше. Поэтому в модели лучше всего использовать меньшее количество признаков.
При увеличении количества признаков возрастает риск возможного сокрытия истинной базовой взаимосвязи, которую необходимо выявить. Прогнозная модель может использовать все признаки, чтобы создать ряд сложных правил, которые будут хорошо работать с данными, используемыми для обучения модели. Однако на прогнозируемую цель фактически могут влиять только один или два признака. Модель может не подходить для обобщения данных, не участвовавших в обучении, что приведет к низкой эффективности прогнозирования на основе новых данных.
Переобучение
Переобучение означает, что модель слишком сложна и, как следствие, является ненадежной для прогнозирования на основе новых данных. Переобучение, как правило, происходит, когда используется слишком много признаков по сравнению с количеством доступных точек данных. Например, в наборе данных может быть всего 50 строк данных и 100 столбцов признаков.
Являются ли данные для обучения релевантными?
Алгоритм машинного обучения находит закономерности в предоставленных данных и использует их для прогнозирования в будущем. При создании прогнозов на основе новых данных предполагается, что они схожи с данными для обучения. Поэтому важно, чтобы набор данных для обучения статистически соответствовал данным, на основе которых создаются прогнозы.
Если рынок или бизнес-показатели значительно изменились по сравнению с тем, что описывает ваш набор данных для обучения, скорее всего, вы используете устаревший набор данных, что может стать причиной неточного прогнозирования. В этом случае, возможно, необходимо будет создать новый набор данных для обучения и использовать только те данные, которые были собраны уже после произошедших изменений.
Рассмотрим пример прогнозирования продаж из раздела Общее представление о машинном обучении. Допустим, в алгоритм были введены данные, отражающие расходы на рекламу на телевидении, радио и в газетах, а также доход от продаж за прошлые отчетные кварталы. Однако эти данные были собраны в 1980-х годах. Теперь этот продукт рекламируется не на радио, а в основном только в Интернете. Поэтому прогнозы продаж в текущем отчетном квартале, созданные этим алгоритмом, будут неточными, так как данные для обучения не являются репрезентативными для современной компании.
Исследование данных
Используйте свой бизнес-опыт, чтобы лучше понимать и проверять данные. Если данные не соответствуют вашим предположениям, говорит ли это о наличии проблем с данными или, может быть, о том, что ваши предположения ошибочны?
Удаление ненадежных признаков
Столбцы рекомендуется исключить из набора данных в следующих случаях.
-
При высокой концентрации одного значения (низкая кардинальность). Например, столбец со значениями «Красный», «Зеленый», «Синий», где 90 процентов значений — «Красный».
-
Значения чрезвычайно уникальны (высокая кардинальность).
-
Большинство значений являются значениями NULL.
Устранение коррелирующих признаков
Удалите избыточные признаки, такие как сильно коррелирующие признаки, которые предоставляют одинаковую или очень похожую информацию. Выберите один признак из групп, которые, как вам кажется, описывают одинаковое поведение данных. Попытайтесь выяснить, есть ли в наборе данных признак, который определяет остальные признаки.
Замена значений NULL
Исследуйте данные, чтобы выяснить наличие отсутствующих значений в ключевых точках данных, таких как цель или ключевые признаки. Чтобы использовать значения из разреженного столбца, можно заменить значения NULL на значения «Другое» или «Неизвестно». Или, возможно, следует пересмотреть методику сбора данных.
Целевой диапазон
Взгляните на распределение данных. Если целевые данные слишком разбросаны относительно объема выборки, в них будет трудно найти какие-либо закономерности.
В каком диапазоне находятся значения данных? Прогнозирование значений данных за пределами диапазона сопряжено с определенными трудностями. Для получения дополнительной информации см. раздел Экстраполяция и интерполяция.
Есть ли отклонения в распределении? При наличии асимметрии, хвостов, а также при мультимодальном распределении может потребоваться дополнительное преобразование данных или дальнейшее конструирование признаков. Попробуйте сгруппировать категории с небольшим объемом и округлить или исключить хвосты в числовых признаках.
Устранение выбросов
Рекомендуется удалять наблюдения со значениями выбросов в столбцах признаков. Выбросы могут снизить способность алгоритма выявлять общие закономерности в данных. Возможно, лучше исследовать меньшее подмножество данных с более узким разбросом в целевом столбце.
Группирование данных
Результаты можно улучшить, если разделить данные на разные наборы данных и использовать их для обучения отдельных моделей. Группируйте данные по одному или нескольким признакам.
Утечка данных
Утечка данных означает, что данные, используемые для обучения алгоритма машинного обучения, включают данные, которые модель пытается спрогнозировать.