Нормализация данных

Важно!

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

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

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

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

Категория: преобразование данных / масштабирование и уменьшение

Примечание

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

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

Обзор модуля

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

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

Например, предположим, что ваш входной набор данных содержит один столбец со значениями от 0 до 1 и другой столбец со значениями от 10 000 до 100 000. Большая разница в масштабе чисел может вызвать проблемы, когда вы попытаетесь объединить значения как функции во время моделирования.

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

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

  • Вы можете изменить все значения на шкалу 0–1 или преобразовать значения, представив их как процентильные ранги, а не абсолютные значения.
  • Нормализацию можно применить к одному столбцу или к нескольким столбцам в одном наборе данных.
  • Если необходимо повторить эксперимент или применить те же шаги нормализации к другим данным, можно сохранить шаги в качестве преобразования нормализации и применить его к другим наборам данных, имеющим ту же схему.

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

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

Настройка нормализации данных

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

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

  2. Подключите набор данных, содержащий хотя бы один столбец всех чисел.

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

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

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

    Совет

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

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

  5. В раскрывающемся списке методов преобразования выберите одну математическую функцию, применяемую ко всем выбранным столбцам.

    • Zscore: преобразует все значения в z-оценку.

      Значения в столбце преобразуются по следующей формуле:

      normalization using z-scores

      Среднее и стандартное отклонения вычисляются для каждого столбца отдельно. Используется стандартное отклонение совокупности.

    • MinMax: нормализатор min-max линейно изменяет масштаб каждой функции до интервала [0,1].

      Масштабирование в интервале [0,1] осуществляется путем сдвига значений каждого компонента таким образом, чтобы минимальное значение было равно 0, а затем деления на новое максимальное значение (которое представляет собой разницу между первоначальными максимальными и минимальными значениями).

      Значения в столбце преобразуются по следующей формуле:

      normalization using the min-max function

    • Логистика: значения в столбце преобразуются по следующей формуле:

      formula for normalization by logistic function

    • LogNormal: значения в столбце преобразуются по следующей формуле.

      Значения в столбце преобразуются по следующей формуле:

      formula log-normal distribution

      Здесь μ и σ — параметры распределения, вычисленные эмпирически на основе данных как оценки максимального правдоподобия для каждого столбца отдельно.

    • TanH: все значения преобразуются в гиперболический тангенс.

      Значения в столбце преобразуются по следующей формуле:

      normalization using the tanh function

  6. Запустите эксперимент или дважды щелкните модуль нормализации данных и выберите "Выполнить выбранный".

Результаты

Модуль Нормализации данных генерирует два вывода:

  • Чтобы просмотреть преобразованные значения, щелкните модуль правой кнопкой мыши, выберите преобразованный набор данных и выберите пункт "Визуализировать".

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

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

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

Примеры

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

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

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

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

Если вам нужно создать пользовательский метод нормализации, можно использовать модули execute R Script или Execute Python Script для вычисления и применения преобразования.

Алгоритмы, которые применяют нормализацию

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

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

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

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

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

Если вы не уверены, какой тип нормализации подходит для ваших данных, см. следующие ресурсы:

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

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

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

Имя Диапазон Тип По умолчанию Описание
Метод преобразования any TransformationMethods ZScore Выберите математический метод, используемый для масштабирования
Столбцы для преобразования any Выбор столбцов NumericAll Выберите все столбцы, к которым необходимо применить выбранное преобразование

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

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

Исключения

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

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

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

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

Масштабирование и сокращение