Биннинг (также называемый группировкой ) — это метод проектирования функций , который группирует различные числовые поддиапазоны в интервалы или сегменты . Во многих случаях биннинг превращает числовые данные в категориальные данные. Например, рассмотрим объект с именем X
, наименьшее значение которого равно 15, а максимальное значение — 425. Используя объединение, вы можете представить X
с помощью следующих пяти интервалов:
- Ячейка 1: от 15 до 34
- Ячейка 2: от 35 до 117
- Ячейка 3: от 118 до 279
- Ячейка 4: от 280 до 392
- Ячейка 5: с 393 по 425
Ячейка 1 охватывает диапазон от 15 до 34, поэтому каждое значение X
от 15 до 34 попадает в ячейку 1. Модель, обученная на этих ячейках, не будет реагировать по-разному на значения X
17 и 29, поскольку оба значения находятся в ячейке 1.
Вектор признаков представляет пять интервалов следующим образом:
Номер ячейки | Диапазон | Вектор признаков |
---|---|---|
1 | 15-34 | [1,0, 0,0, 0,0, 0,0, 0,0] |
2 | 35-117 | [0,0, 1,0, 0,0, 0,0, 0,0] |
3 | 118-279 | [0,0, 0,0, 1,0, 0,0, 0,0] |
4 | 280-392 | [0,0, 0,0, 0,0, 1,0, 0,0] |
5 | 393-425 | [0,0, 0,0, 0,0, 0,0, 1,0] |
Несмотря на то, что X
представляет собой один столбец в наборе данных, группирование заставляет модель рассматривать X
как пять отдельных объектов. Таким образом, модель изучает отдельные веса для каждой корзины.
Биннинг является хорошей альтернативой масштабированию или обрезке при выполнении любого из следующих условий:
- Общая линейная связь между признаком и меткой слабая или отсутствует.
- Когда значения признаков кластеризованы.
Биннинг может показаться нелогичным, учитывая, что модель в предыдущем примере обрабатывает значения 37 и 115 одинаково. Но когда объект выглядит более комковатым , чем линейным, бинирование — гораздо лучший способ представления данных.
Пример группировки: количество покупателей в зависимости от температуры
Предположим, вы создаете модель, которая прогнозирует количество покупателей по наружной температуре в этот день. Вот график зависимости температуры от количества покупателей:
![Рисунок 9. Диаграмма рассеяния из 45 точек. 45 пунктов естественным образом группируются в три группы.](https://developers.google.cn/static/machine-learning/crash-course/images/binning_temperature_vs_shoppers.png?authuser=6&hl=ru)
Неудивительно, что график показывает, что количество покупателей было самым высоким тогда, когда температура была наиболее комфортной.
Вы можете представить объект в виде необработанных значений: температура 35,0 в наборе данных будет равна 35,0 в векторе объектов. Это лучшая идея?
Во время обучения модель линейной регрессии изучает один вес для каждой функции. Следовательно, если температура представлена как одна характеристика, то температура 35,0 будет иметь в пять раз большее влияние (или одну пятую) в прогнозе, чем температура 7,0. Однако график на самом деле не показывает какой-либо линейной зависимости между меткой и значением признака.
На графике представлены три кластера в следующих поддиапазонах:
- Ячейка 1 — это диапазон температур 4–11.
- Ячейка 2 – это диапазон температур 12-26.
- Ячейка 3 – диапазон температур 27-36.
![Рисунок 10. Та же диаграмма рассеяния из 45 точек, что и на предыдущем рисунке, но с вертикальными линиями, чтобы сделать интервалы более заметными.](https://developers.google.cn/static/machine-learning/crash-course/images/binning_temperature_vs_shoppers_divided_into_3_bins.png?authuser=6&hl=ru)
Модель запоминает отдельные веса для каждой корзины.
Хотя можно создать более трех интервалов, даже отдельный интервал для каждого показания температуры, часто это плохая идея по следующим причинам:
- Модель может изучить связь между корзиной и этикеткой только в том случае, если в этой корзине достаточно примеров. В данном примере каждая из трех корзин содержит не менее 10 примеров, чего может быть достаточно для обучения. При наличии 33 отдельных ячеек ни одна из ячеек не будет содержать достаточно примеров для обучения модели.
- Отдельный контейнер для каждой температуры дает 33 отдельные температурные характеристики. Однако обычно следует минимизировать количество элементов в модели.
Упражнение: Проверьте свое понимание.
На следующем графике показана средняя цена дома на каждые 0,2 градуса широты в мифической стране Фридония:
![Рисунок 11. График стоимости домов по широте. Самая низкая стоимость дома составляет около 327, а самая высокая — 712. Широта простирается от 41,0 до 44,8, при этом точка обозначает среднюю стоимость дома на каждые 0,2 градуса широты. Картина очень нерегулярная, но с двумя отдельными кластерами (один кластер между 41,0 и 41,8 широты, а другой между 42,6 и 43,4 широты).](https://developers.google.cn/static/machine-learning/crash-course/images/MedianHouseValueByLatitude.png?authuser=6&hl=ru)
На рисунке показана нелинейная закономерность между значением дома и широтой, поэтому представление широты в виде значения с плавающей запятой вряд ли поможет модели сделать хорошие прогнозы. Возможно, лучше было бы объединить широты?
- от 41,0 до 41,8
- от 42,0 до 42,6
- от 42,8 до 43,4
- от 43,6 до 44,8
Квантильное группирование
Квантильное группирование создает границы группирования таким образом, чтобы количество примеров в каждом сегменте было точно или почти одинаково. Квантильное группирование в основном скрывает выбросы.
Чтобы проиллюстрировать проблему, которую решает квантильное группирование, рассмотрим равноотстоящие друг от друга сегменты, показанные на следующем рисунке, где каждый из десяти сегментов представляет интервал ровно в 10 000 долларов. Обратите внимание, что сегмент от 0 до 10 000 содержит десятки примеров, а сегмент от 50 000 до 60 000 содержит только 5 примеров. Следовательно, у модели достаточно примеров для обучения в сегменте от 0 до 10 000, но недостаточно примеров для обучения в сегменте от 50 000 до 60 000.
![Рисунок 13. График зависимости цены автомобиля от количества автомобилей, проданных по этой цене. Количество проданных автомобилей достигает максимума при цене в 6000 штук. При цене выше 6000 количество проданных автомобилей обычно уменьшается, при этом очень мало автомобилей продается по цене от 40 000 до 60 000. График разделен на 6 сегментов одинакового размера, каждый с диапазоном 10 000. Итак, первая группа содержит все автомобили, проданные по цене от 0 до 10 000, вторая группа содержит все автомобили, проданные по цене от 10 001 до 20 000, и так далее. Первая группа содержит множество примеров; каждая последующая группа содержит меньше примеров.](https://developers.google.cn/static/machine-learning/crash-course/images/NeedsQuantileBucketing.png?authuser=6&hl=ru)
Напротив, на следующем рисунке используется квантильное группирование для разделения цен на автомобили по корзинам с примерно одинаковым количеством примеров в каждой корзине. Обратите внимание, что некоторые корзины охватывают узкий ценовой диапазон, тогда как другие охватывают очень широкий ценовой диапазон.
![Рисунок 14. То же, что и предыдущий рисунок, за исключением квантильных сегментов. То есть ведра теперь имеют разные размеры. В первом блоке содержатся автомобили, проданные от 0 до 4000, во втором — автомобили, проданные от 4001 до 6000. Шестая группа содержит автомобили, проданные тиражом от 25 001 до 60 000. Количество машин в каждом ведре теперь примерно одинаковое.](https://developers.google.cn/static/machine-learning/crash-course/images/QuantileBucketing.png?authuser=6&hl=ru)