Разделение данных с помощью параметра разделения подсистемы рекомендаций

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

Примечание

Применимо к: машинное обучение Studio (классическая модель)

Это содержимое относится только к Studio (классическая модель). Аналогичные модули перетаскивания были добавлены в конструктор Машинное обучение Azure. Дополнительные сведения см. в статье сравнение двух версий.

Параметр " Рекомендация " позволяет упростить этот процесс, запросив тип модели рекомендаций, с которой вы работаете. Например, вы рекомендуете элементы, предложим оценку или нахождение связанных пользователей? Затем набор данных делится по заданным критериям, например, как обрабатывает холодных пользователей или холодных элементов.

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

Общие сведения о секционировании данных для экспериментов машинного обучения см. в разделе

Другие параметры модуля Split Data (разделение данных ) поддерживают различные способы разделения данных:

Разделить набор данных, используемый моделью рекомендаций

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

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

  1. Добавьте модуль Split Data (разделение данных ) в эксперимент и подключите его как входные данные для набора данных, который необходимо разделить.

  2. В режиме разделения выберите пункт рекомендовать разделитель.

  3. Задайте следующие параметры, чтобы управлять разделением значений. Укажите процент, представленный в виде числа от 0 до 1.

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

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

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

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

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

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

  4. Удалить случайно созданные холодные элементы: этот параметр обычно имеет значение 0, чтобы убедиться, что все сущности в тестовом наборе включены в обучающий набор.

    Элемент считается «случайно новым», если он входит только в проверочный набор, но не был явно указан как новый. Такие элементы могут быть созданы на 4-м и 6-м шагах алгоритма, описанного в разделе Разбиение данных для модели рекомендаций.

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

  6. Запустите эксперимент.

Примеры

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

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

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

Требования к входным данным

Разделитель "рекомендовать" работает в соответствии с предположением, что набор данных состоит только из пар "пользователь-элемент" или по оценке "пользователь-элемент". Поэтому модуль Split Data (разделение данных ) не может работать с наборами данных, имеющими более трех столбцов, чтобы избежать путаницы с данными типа компонента.

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

Ошибка 0022: число выбранных столбцов во входном наборе данных не равно x

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

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

Подробные сведения о поддерживаемых форматах данных см. в разделе Train Matchbox рекомендует.

Советы по использованию

  • Если набор данных не содержит по крайней мере две строки, возникает ошибка.

  • Если для числа явно указан процентный тип или используется строка со знаком «%», значение интерпретируется как значение в процентах.

    Все значения в процентах должны быть в диапазоне (0, 100), исключая значения 0 и 100.

  • Если указать число или процент в виде числа с плавающей запятой, которое меньше единицы, и не использовать символ «%», указанное число будет интерпретировано как пропорциональное значение.

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

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

  1. Удаляется запрошенная часть пропускаемых элементов со всеми связанными наблюдениями.

  2. Запрошенная часть новых элементов перемещается в проверочный набор со всеми связанными наблюдениями.

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

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

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

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

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

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

    Элемент считается «случайно новым», если он входит только в проверочный набор, но не был явно указан как новый. Такие элементы могут быть созданы в шагах (4) и (6).

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

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

Разделение данных Секционирование и разбиение