Правка метаданных

Служит для редактирования метаданных, связанных со столбцами в наборе данных.

Категория: Преобразование или управление данными

Примечание

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

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

Обзор модуля

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

Типичные изменения метаданных могут включать следующее.

  • Обработка логических или числовых столбцов как категориальных

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

  • Пометка столбцов как компонентов

  • Изменение значений даты и времени на числовое значение или наоборот

  • Переименование столбцов

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

После выполнения нужной операции можно сбросить метаданные в исходное состояние.

Настройка изменения метаданных

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

  2. Щелкните запустить селектор столбцов и выберите столбец или набор столбцов для работы. Можно выбрать столбцы по отдельности по имени или индексу или выбрать группу столбцов по типу.

    Совет

    Нужна помощь с использованием индексов столбцов? См. раздел Технические примечания .

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

    • Поддерживаются следующие типы данных: String , Integer ,,, Floating point Boolean DateTime и TimeSpan .

    • Если выбрано несколько столбцов, необходимо применить изменения метаданных ко всем выбранным столбцам. Например, предположим, что выбрано 2-3 числовых столбцов. Их можно изменить на тип данных String и переименовать их в одной операции. Однако нельзя изменить один столбец на строковый тип данных, а другой столбец — с плавающей запятой на целое число.

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

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

    Примечание

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

Машинное обучение Azure может преобразовывать даты в числа или числа в даты, если числа совместимы с одним из поддерживаемых объектов DateTime .NET. Дополнительные сведения см. в разделе Технические примечания .

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

    Например, может иметься столбец, содержащий числа 0, 1 и 2, но известно, что числа в действительности означают "АВТОТЕСТ", "non-тест" и "Unknown". В этом случае, помечая столбец как категория, можно гарантировать, что значения не будут использоваться в числовых вычислениях только для группирования данных.

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

    • Функция: Используйте этот параметр, чтобы пометить столбец как компонент для использования с модулями, работающими только со столбцами компонентов. По умолчанию все столбцы изначально считаются функциями.

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

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

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

    Совет

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

    К счастью "Машинное обучение Azure сохраняет все ваши данные, поэтому нет необходимости удалять такие столбцы из набора данных. Если необходимо выполнить операции с некоторым специальным набором столбцов, просто удалите все остальные столбцы, используя модуль Выбор столбцов в наборе данных . Позже можно будет объединить столбцы обратно в набор данных с помощью модуля Добавление столбцов .

  3. Используйте следующие параметры, чтобы очистить предыдущие параметры и восстановить метаданные до значений по умолчанию.

    • Очистить компонент: Используйте этот параметр, чтобы удалить флаг компонента.

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

    • Очистить метку: Используйте этот параметр, чтобы удалить метаданные метки из указанного столбца.

    • Очистить оценку: Используйте этот параметр, чтобы удалить метаданные оценки из указанного столбца.

      Сейчас возможность явно отметить столбец как оценку недоступна в Машинное обучение Azure. Однако некоторые операции приводят к тому, что столбец помечается как оценка внутренним образом. Кроме того, пользовательский модуль R может выводить значения оценки.

    • Очистить Вес: Используйте этот параметр, чтобы удалить метаданные веса из указанного столбца.

  4. Для новых имен столбцов введите новое имя выбранного столбца или столбцов.

    • Имена столбцов могут использовать только символы, поддерживаемые кодировкой UTF-8. Пустые строки, значения NULL или имена, полностью состоящие из пробелов, не допускаются.

    • Чтобы переименовать несколько столбцов, введите их имена в виде списка с разделителями-запятыми в порядке индексов столбцов.

    • Все выбранные столбцы должны быть переименованы. Нельзя опустить или пропустить столбцы.

    Совет

    Если необходимо переименовать несколько столбцов, можно вставить заранее подготовленную строку с разделителями-запятыми. Или используйте модули « выполнение скрипта R » или «применение преобразования SQL ». Код и примеры см. в разделе Технические примечания .

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

Примеры

Примеры использования параметра " изменить метаданные " при подготовке данных и построении моделей см. в Коллекция решений ии Azure:

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

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

Известные проблемы

  • Пользовательские метаданные не поддерживаются. Нельзя использовать пользовательские метаданные в Машинное обучение Azure или изменять метаданные столбцов вне изменения метаданных. Например, нельзя добавить метаданные, указывающие, что столбец является уникальным идентификатором, или добавить другие описательные атрибуты. Машинное обучение Azure поддерживает только атрибуты метаданных, используемые в R для работы с факторами, функциями, весовыми коэффициентами и метками.

  • Неподдерживаемые типы данных. Следующие числовые типы данных не поддерживаются: Double (десятичное число) и TimeStamp.

  • Определение столбцов оценки. В настоящее время нет возможности изменить метаданные , чтобы пометить столбец как содержащий оценки. Однако можно использовать модуль выполнить сценарий R со скриптом, аналогичным приведенному ниже, чтобы указать, что столбец содержит оценки:

    dataset <- maml.mapInputPort(1)   
    attr(dataset$x, "label.type")= "True Labels"  
    attr(dataset$y, "feature.channel")= "Multiclass Classification Scores"  
    attr(dataset$y, "score.type")= "Assigned Labels"  
    maml.mapOutputPort("dataset");
    
  • Проблемы с форматами даты и времени. Базовым datetime типом данных, используемым машинное обучение Azure, является POSIXct .

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

    Если попытаться преобразовать столбец в с DateTime помощью модуля редактирования метаданных и получить ошибку, это означает, что дата не соответствует формату, который по умолчанию использует .NET. В этом случае рекомендуется использовать модуль выполнить сценарий R или модуль « Применить преобразование SQL » для преобразования столбца в формат, принимаемый синтаксическим анализатором по умолчанию.

    Метод DateTime. Parse

    Строки стандартных форматов даты и времени

Выбор столбцов с помощью индексов столбцов

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

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

  • Введите 1-20 , чтобы выбрать первые 20 столбцов
  • Введите 5-20 , чтобы выбрать диапазон столбцов, начиная с 5 и включая столбец 20.
  • Введите 1,5,10,15 , чтобы выбрать несмежные столбцы
  • Введите, 1-2, 5 чтобы выбрать столбцы 1, 2 и 5, пропуская столбцы 3 и 4
  • Нельзя ввести значение индекса, превышающее число столбцов, доступных в наборе данных.

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

  • Двоичная классификация: обнаружение молочной железы рака. исходные данные содержали много пустых столбцов, созданных во время импорта из электронной таблицы. Лишние столбцы были удалены путем указания столбцов 1-11 в модуле Split Data .

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

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

Альтернативные методы изменения имен столбцов

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

Использование R Script

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

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

irisdata <- maml.mapInputPort(1);    
newnames <- c("CLASS", "SEPAL  LENGTH", "SEPAL WIDTH", "PETAL LENGTH", "PETAL WIDTH");
colnames(irisdata) = newnames
maml.mapOutputPort("irisdata");

В следующем примере регулярное выражение в R используется для глобальной замены всех экземпляров указанной строки в именах столбцов для irisdata :

# Map input dataset to variable
newirisdata <- maml.mapInputPort(1) # class: data.frame
names(newirisdata) <- gsub("col", "iris", names(newirisdata))
maml.mapOutputPort("newirisdata");

Использование SQL

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

SELECT col1 as [C1], 
  col2 as [C2], 
  col3 as [C3], 
  col4 as [C4],
  col5 as [C5] 
FROM t1;

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

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

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

Имя Диапазон Тип По умолчанию Описание
Столбец Любой Выбор столбцов Выберите столбцы, к которым следует применить изменения.
Тип данных Список Тип данных редактора метаданных Без изменений Укажите новый тип данных столбца.
категориальные; Список Категориальный тип данных редактора метаданных Без изменений Укажите, следует ли пометить столбец как категориальный.
Поля Список Флаг редактора метаданных Без изменений Укажите, должны алгоритмы обучения считать столбец компонентом или меткой.
Новые имена столбцов any Строка Введите новые имена столбцов.

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

Имя Type Описание
Набор данных результатов Таблица данных Набор данных с измененными метаданными

Исключения

Исключение Описание
Ошибка 0003 Исключение возникает, если один или несколько входных наборов данных имеют значение NULL или пусты.
Ошибка 0017 Исключение возникает, если один или несколько указанных столбцов относятся к типу, который не поддерживается в текущем модуле.
Ошибка 0020 Исключение возникает, если количество столбцов в некоторых наборах данных, переданных модулю, слишком мало.
Ошибка 0031 Исключение возникает, если количество столбцов в наборе столбцов меньше, чем требуется.
Ошибка 0027 Исключение возникает, если два объекта должны быть одинакового размера, но это не так.
Ошибка 0028 Исключение возникает в случае, если набор столбцов содержит повторяющиеся имена и это не разрешено.
Ошибка 0037 Исключение возникает, если указано несколько столбцов метки, а допускается только один.

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

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

См. также

Управлять
Преобразование данных
Список модулей в алфавитном порядке