Компонент "Split Data" (Разделение данных).

В этой статье описывается компонент в конструкторе Машинного обучения Azure.

Компонент "Разделение данных" используется для разбиения набора данных на два отдельных набора.

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

Настройка компонента

Совет

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

  1. Добавьте компонент Разделение данных в конвейер в конструкторе. Этот компонент можно найти в разделе Преобразование данных в категории Выборка и разбиение.

  2. Режим разделения. Выберите один из следующих режимов в зависимости от типа данных и предпочтительного способа их разделения. Каждый режим разделения имеет различные параметры.

    • Разделение строк. Используйте этот режим, если нужно просто разделить данные на две части. Можно указать процент данных, помещаемых в каждый раздел. По умолчанию данные делятся в соотношении 50/50.

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

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

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

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

Разделение строк

  1. Добавьте компонент Разделение данных в конвейер в конструкторе и подключите набор данных, который необходимо разделить.

  2. В качестве режима разделения выберите Разделение строк.

  3. Доля строк в первом выходном наборе данных. Используйте этот параметр, чтобы определить, сколько строк будет помещено в первый (левый) столбец выходных данных. Все остальные строки будут помещены во второй (правый) столбец.

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

    Например, если ввести значение 0,75, набор данных будет разбит с соотношением 75/25. В этом разделении 75% строк будут отправлены в первый выходной набор данных. Остальные 25% будут отправлены во второй выходной набор данных.

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

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

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

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

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

  7. Отправьте конвейер.

Выберите регулярное выражение

  1. Добавьте компонент Разделение данных в конвейер в конструкторе и подключите набор данных, который необходимо разделить.

  2. В качестве режима разделения выберите Разбиение регулярного выражения.

  3. В поле Регулярное выражение введите допустимое регулярное выражение.

    Регулярное выражение должно соответствовать синтаксису Python для регулярных выражений.

  4. Отправьте конвейер.

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

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

Одно целое слово

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

    \"Text" Gryphon  

Substring

В этом примере выполняется поиск указанной строки в любой из позиций во втором столбце набора данных. Позиция обозначается индексом со значением 1. Сопоставление учитывает регистр.

(\1) ^[a-f]

Первый выходной набор данных будет содержать все строки, в которых индексный столбец начинается одним из следующих символов: a, b, c, d, e, f. Все остальные строки будут помещены во второй набор.

Выбор относительного выражения

  1. Добавьте компонент Разделение данных в конвейер в конструкторе и подключите набор данных, который необходимо разделить.

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

  3. В поле Относительное выражение введите выражение, которое выполняет операцию сравнения для одного столбца.

    Для числового столбца:

    • Столбец содержит числа любого числового типа данных, включая дату и время.
    • Относительные выражения могут ссылаться на имя только одного столбца.
    • Для операции с логическим И используйте символ амперсанда &. Для операции с логическим ИЛИ используйте символ вертикальной черты |.
    • Поддерживаются следующие операторы: <, >, <=, >=, ==, !=.
    • Нельзя группировать операции, используя символы ( и ).

    Для строковых столбцов:

    • Поддерживаются следующие операторы: ==, !=.
  4. Отправьте конвейер.

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

В следующих примерах показано, как разделить набор данных в компоненте Разделение данных с помощью режима Относительное выражение.

Календарный год

По распространенному сценарию набор данных делится по годам. Следующее выражение выбирает все строки со значениями столбца Year более 2010.

\"Year" > 2010

Выражение даты должно учитывать все части даты, которые включены в столбец данных. Формат дат в столбце данных должен быть одинаковым.

Например, в столбце Date, использующем формат mmddyyyy, выражение должно выглядеть примерно следующим образом:

\"Date" > 1/1/2010

Индекс столбца

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

(\0)<=30 & !=20

Дальнейшие действия

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