Группирование данных в ячейки

Важно!

Поддержка Студии машинного обучения (классической) будет прекращена 31 августа 2024 г. До этой даты рекомендуется перейти на Машинное обучение Azure.

Начиная с 1 декабря 2021 года вы не сможете создавать новые ресурсы Студии машинного обучения (классической). Существующие ресурсы Студии машинного обучения (классическая версия) можно будет использовать до 31 августа 2024 г.

Поддержка документации по ML Studio (классической) прекращается, а сама документация может не обновляться в будущем.

Распределяет числовые значения по сегментам.

Категория: масштабирование и уменьшение

Примечание

Область применения: только Машинное обучение Studio (классическая версия)

Подобные модули перетаскивания доступны в конструкторе машинного обучения Azure.

Обзор модуля

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

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

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

Дополнительные сведения о квантовании и группировании

Группирование или группирование данных (иногда называемое квантованием) — это важный инструмент подготовки числовых данных для машинного обучения и полезен в таких сценариях:

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

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

  • Замените столбец чисел значениями по категориям, представляющими определенные диапазоны.

    Например, можно сгруппировать значения в столбце возраста в настраиваемые диапазоны, например 1–15, 16–22, 23–30 и т. д., для анализа демографического состава пользователей.

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

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

Примеры группирования

На следующей схеме показано распределение числовых значений до и после группирования с помощью метода квантилей. Обратите внимание, что по сравнению с необработанными данными в левой части данные были сгруппированы и преобразованы в нормальное распределение с единичной дисперсией.

raw data and data binned and normalized

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

Так как существует много способов группирования данных и все из них можно настраивать, мы рекомендуем поэкспериментировать с различными методами и значениями. В разделе "Примеры" содержатся ссылки на примеры экспериментов, демонстрирующие использование различных алгоритмов группирования.

Как настроить модуль "Группирование данных в ячейки"

  1. Добавьте модуль group Data Into Bins в эксперимент в Студии (классическая модель). Этот модуль можно найти в категории "Преобразование данных" в разделе "Масштабирование и уменьшение".

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

    Если набор данных содержит столбцы с нечисловыми данными, используйте модуль Выбор столбцов в наборе данных, чтобы выбрать подмножество столбцов для работы.

  3. Укажите режим группирования. Режим группирования определяет другие параметры, поэтому сначала выберите параметр режима binning . Поддерживаются следующие типы группирования:

    Entropy MDL: для этого метода необходимо выбрать столбец, который требуется спрогнозировать, и столбец или столбцы, которые нужно сгруппировать в ячейки. Затем он выполняет передачу данных и пытается определить количество ячеек, которые минимизирует энтропию. Другими словами, он выбирает ряд ячеек, позволяющих столбцу данных лучше всего прогнозировать целевой столбец. Затем он возвращает номер ячейки, связанный с каждой строкой данных в столбце с именем <colname>quantized.

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

    Этот метод не возвращает фактические оценки энтропии.

    Quantiles (Квантили). В рамках метода квантилей значения распределяются по ячейкам на основе процентильных рангов. Этот метод также называется группированием с равной высотой.

    Equal Width (Метод равных интервалов). При использовании этого варианта необходимо указать общее число ячеек. Значения в столбце данных будут размещены в ячейках таким образом, что каждая ячейка будет иметь одинаковый интервал между значениями начала и окончания. В результате в некоторых ячейках может оказаться больше элементов, если значения плотнее распределены в районе определенной точки.

    Custom Edges (Настраиваемые границы). Для каждой ячейки можно задать начальное значение. Значение границы всегда является нижней границей ячейки. Например, предположим, что нужно сгруппировать значения в две ячейки: одну со значениями больше 0, а вторую — со значениями, которые меньше или равны 0. В этом случае для ребер ячеек введите 0 в разделенном запятыми списке ребер ячеек. Выходные данные модуля будут иметь значения 1 и 2, что указывает индекс ячейки для каждого значения строки.

    Равные ширины с настраиваемым начальным и стопным параметрами: этот метод похож на параметр Equal Width , но можно указать как нижние, так и верхние границы ячейки.

  4. Количество ячеек: если вы используете режимы заполнения энтропии MDL, Квантили и равной ширины , используйте этот параметр, чтобы указать, сколько ячеек или квантилей требуется создать.

  5. Для параметра Columns to bin (Столбцы для сегментирования) с помощью селектора выберите столбцы, значения в которых нужно группировать. Столбцы должны содержать данные числового типа.

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

    Предупреждение

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

  6. В параметре Output mode (Режим вывода) укажите, как следует выводить квантованные значения.

    • Append (Добавление). Создается новый столбец с разделенными на группы значениями и добавляется во входную таблицу.

    • Inplace (Замещение). Исходные значения в наборе данных заменяются новыми.

    • ResultOnly (Только результат). Возвращаются только столбцы с результирующими данными.

  7. При выборе режима группирования Quantiles (Квантили) используйте параметр Quantile normalization (Нормализация квантилей), чтобы задать, каким образом будут нормализованы значения перед сортировкой по квантилям. Обратите внимание, что нормализация значений преобразует значения, но не влияет на окончательное число ячеек. Пример см. в разделе "Эффекты различных методов нормализации".

    Поддерживаются следующие типы нормализации:

    • Percent (Проценты). Значения будут нормализованы в диапазоне [0,100].

    • PQuantile (Параллельные квантили). Значения будут нормализованы в диапазоне [0,1].

    • QuantileIndex: значения нормализуются в диапазоне [1,число ячеек]

  8. Если вы выбрали вариант Custom Edges (Настраиваемые границы), введите разделенный запятыми список чисел, которые будут использоваться в качестве границ ячеек, в текстовое поле Comma-separated list of bin edges (Разделенный запятыми список границ ячейки). Значения указывают точку, которая делит ячейки, поэтому если ввести одно значение границы ячейки, будут созданы две ячейки. Если ввести два значения границы ячейки, будут созданы три ячейки и т. д.

    Значения должны быть отсортированы в порядке создания ячеек от меньшего к большему.

  9. Если вы используете параметр Equal Width With Custom Start And Stop, необходимо указать границы ячеек.

    Определите нижнюю границу первой ячейки, введя значение в текстовом поле " Положение первого края ".

    Определите нижнюю границу последней ячейки, введя значение в текстовом поле последней позиции края .

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

  11. Запустите эксперимент или выберите этот модуль и нажмите кнопку "Выполнить".

Результаты

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

Модуль также возвращает преобразование группирования — функцию, которую можно передать в модуль Применение преобразования для группирования новых выборок данных с использованием того же режима и параметров.

Чтобы узнать, насколько хорошо работает метод binning в качестве прогнозора, можно щелкнуть выходные данные набора данных из group Data to Bins и сравнить столбец метки с столбцом binned. Если группирование в ячейки прогнозно, значения в матрице перекрестной табуляции должны сосредоточиться в нескольких ячейках.

Совет

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

Чтобы преобразование данных всегда выполнялось с помощью одного и того же метода группирования, рекомендуется сохранять полезные преобразования, а затем применять их к другим наборам данных, используя модуль Применение преобразования.

Примеры

Примеры применения квантизации в сценариях машинного обучения см. в коллекции ИИ Azure:

Технические примечания

В этом разделе содержатся сведения о реализации, советы и ответы на часто задаваемые вопросы.

Эффекты различных методов нормализации

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

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

Source (fLength) pQuantile QuantileIndex Процент
28.7967 0.363636 4 36.363636
31.6036 0.454545 5 45.454545
162.052 0.909091 10 90.909091
23.8172 0.272727 3 27.272727

Результаты группирования похожи для каждого метода.

На следующем рисунке показано распределение значений в столбце до и после группирования с использованием 10 ячеек по умолчанию.

Comparison of Normalization Methods for Binning

Сведения о реализации

  • Во время квантизации каждое число сопоставляется с ячейкой, сравнивая его значение со значениями краев ячейки.

    Например, если значение равно 1,5, а границы ячейки — 1, 2 и 3, элемент будет сопоставлен с номером 2 ячейки. Значение 0,5 будет сопоставлено с ячейкой no 1 (ячейка недополученного потока), а значение 3,5 будет сопоставлено с номером 4 ячейки (ячейка переполнения).

  • Если столбец для квантования является разреженным, то смещение индекса сегмента (смещение квантиля) используется при заполнении результирующего столбца. Смещение выбирается таким образом, чтобы разреженные нулевые значения всегда попадали в сегмент с индексом 0 (то есть в нулевой квантиль).

  • Разреженные нули переносятся из входного в выходной столбец.

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

  • Все значения NaN и отсутствующие значения передаются из входного столбца в выходной. Единственное исключение — когда модуль возвращает индексы квантилей. В этом случае все значения NaN передаются в отсутствующие значения.

  • Основание индексов сегментов — 1. Это естественное соглашение для квантилей (1 квантиль, 2 квантиль и т. д.). Единственное исключение — когда сегментируемый столбец разреженный.

Ожидаемые входные данные

Имя Тип Описание
Dataset Таблица данных Набор данных для анализа

Параметры модуля

Имя Диапазон Тип По умолчанию Описание
Режим сегментирования Список QuantizationMode Квантили Выберите метод сегментирования
Столбцы для сегментирования any Выбор столбцов NumericAll Выберите столбцы для квантования
Режим вывода any OutputTo Укажите, как будут выводиться квантифицированные столбцы
Столбцы отмечаются как категориальные any Логическое Да Укажите, будут ли выходные столбцы отмечены как категориальные
Количество ячеек >=1 Целочисленный тип 10 Укажите нужное число ячеек
Нормализация квантили any BinningNormalization Выберите метод для нормализации квантилей
Первая позиция края any Float 0,0 Укажите значение для первого края ячейки
Ширина ячейки any Float 0,5 Укажите пользовательскую ширину ячейки
Последняя позиция края any Float 1.0 Укажите значение для последнего края ячейки
Разделенный запятыми список границ ячейки any Строка Введите разделенный запятыми список номеров для использования в качестве границ ячеек

Выходные данные

Имя Тип Описание
Квантифицированный набор данных Таблица данных Набор данных с квантифицированными столбцами
Биннинговое преобразование Интерфейс ITransform Преобразование, которое применяет квантование к набору данных

Исключения

Исключение Описание
Ошибка 0003 Исключение возникает, если один или несколько входных аргументов имеют значение NULL или пусты.
Ошибка 0004 Исключение возникает, если параметр меньше или равен определенному значению.
Ошибка 0011 Исключение возникает, если переданный аргумент набора столбцов не применяется к любому из столбцов набора данных.
Ошибка 0021 Исключение возникает, если количество строк в некоторых наборах данных, переданных модулю, слишком мало.
Ошибка 0024 Исключение возникает, если набор данных не содержит столбец метки.
Ошибка 0020 Исключение возникает, если количество столбцов в некоторых наборах данных, переданных модулю, слишком мало.
Ошибка 0038 Исключение возникает, если количество ожидаемых элементов не равно требуемому.
Ошибка 0005 Исключение возникает, если параметр меньше определенного значения.
Ошибка 0002 Исключение возникает, если один или несколько параметров не удалось проанализировать или преобразовать из заданного типа в необходимый для целевого метода тип.
Ошибка 0019 Исключение возникает, если столбец должен содержать отсортированные значения, но это не так.
Ошибка 0039 Исключение возникает, если не удалось выполнить операцию.
Ошибка 0075 Исключение возникает, если при квантовании набора данных используется недопустимая функция классификации.

Список ошибок, относящихся к модулям Студии (классическая модель), см. в разделе Машинное обучение коды ошибок.

Список исключений API см. в разделе Машинное обучение коды ошибок REST API.

См. также раздел

Масштабирование и сокращение
Модуль нормализации данных
Обрезка значений