Поделиться через


Подготовка данных к регрессии

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

Сведения о настройке этих параметров с помощью API AutoML см. в справочнике по API Python AutoML.

Поддерживаемые типы функций данных

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

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

  • Числовые (ByteType, ShortType, IntegerType, LongType, FloatType и DoubleType)
  • Логический
  • Строковые (категориальные или текст на английском языке)
  • Метки времени (TimestampType, DateType)
  • ArrayType[Numeric] (Databricks Runtime 10.4 LTS ML и более поздних версий)
  • DecimalType (Databricks Runtime 11.3 LTS ML и более поздней версии)

Вменить отсутствующие values

В Databricks Runtime 10.4 LTS ML и более поздних версиях можно указать, как импутируются значения null values. В пользовательском интерфейсе select метод из раскрывающегося списка в Impute сcolumn в tableschema. В API используйте imputers параметр. Дополнительные сведения см . в справочнике по API Python AutoML.

По умолчанию AutoML выбирает метод импутации на основе типа и содержимого column.

Примечание.

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

выбор Column

В Databricks Runtime 10.3 ML и более поздних версиях можно указать, какой columns AutoML следует использовать для обучения. Чтобы исключить column в пользовательском интерфейсе, снимите флажок в включитьcolumn. В API используйте exclude_cols параметр. Дополнительные сведения см . в справочнике по API Python AutoML.

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

По умолчанию включены все columns.

Разделение данных на наборы обучения, проверки и тестирования

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

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

(По умолчанию) Случайное разделение: если стратегия разделения данных не указана, набор данных случайным образом разбивается на 60% разделения, 20% проверяет разделение и 20% разбиение теста. Для классификации стратифицированное случайное разделение гарантирует, что каждый класс достаточно представлен в наборах для обучения, проверки и тестирования.

хронологическое разделение: в Databricks Runtime 10.4 LTS ML и более поздних версиях можно select время column для создания хронологического разделения на обучающую, проверочную и тестовую выборки. Хронологические разделения используют самые ранние точки данных для обучения, следующий самый ранний срок для проверки и последние точки для тестирования. Время column может быть меткой времени, целым числом или строкой column.

Ручное разделение: В Databricks Runtime 15.3 ML и более поздних версиях можно использовать API для set настройки разбиения вручную. Укажите разделенные column и используйте valuestrain, validateили test для идентификации строк, которые необходимо использовать для обучения, проверки и тестирования наборов данных. Все строки с разделенными columnvalues, кроме train, testили validate, игнорируются, и вызывается соответствующее оповещение.

Выборка больших наборов данных

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

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

Версия среды выполнения Databricks Поведение выборки
9.1 LTS ML — 10,4 LTS ML Доля выборки является константой и не зависит от типа узла кластера или памяти на узел.
11.x ML Доля выборки увеличивается для рабочих узлов с большим объемом памяти на ядро. Чтобы увеличить размер выборки, выполните следующее:

— Используйте оптимизированный для памяти тип экземпляра .
— Настройте конфигурацию spark.task.cpus Spark. Значение по умолчанию равно 1, а максимальное значение — количество ЦП на рабочем узле. Максимальное значение — это количество ЦП на рабочем узле. При увеличении этого значения размер выборки будет увеличен, но параллельно будет выполняться меньше пробных запусков.

Пример. На компьютере с 4 ядрами и 64 ГБ ОЗУ:

— При spark.task.cpus=1использовании четырех пробных версий на рабочую роль каждый из них используется 16 ГБ ОЗУ.
— При spark.task.cpus=4использовании одной пробной версии на рабочую роль используется все 64 ГБ ОЗУ.
11.3 LTS ML и более поздних версий Если AutoML примеры набора данных, дробь выборки отображается на вкладке "Обзор " в пользовательском интерфейсе.
12.2 LTS ML и более поздних версий AutoML может обрабатывать большие наборы данных, распределив больше ядер ЦП на задачу обучения. Увеличьте размер выборки, выбрав экземпляр с большей суммой памяти.

Для проблем классификации AutoML использует метод PySpark sampleByдля стратифицированной выборки для сохранения распределения целевых меток.

Для проблем регрессии AutoML использует метод PySpark.sample

Обнаружение семантического типа

Примечание.

При использовании Databricks Runtime 9.1 LTS ML и более поздних версий AutoML пытается определить, имеет ли columns семантический тип, отличный от типа данных Spark или pandas в tableschema. AutoML обрабатывает эти columns как обнаруженный семантический тип. Эти обнаружения являются лучшими усилиями и иногда могут пропустить существование семантических типов. Вы также можете вручную set семантический тип column или указать AutoML не использовать обнаружение семантического типа для columnпри помощи аннотаций.

В частности, AutoML выполняет приведенные ниже корректировки.

  • Строковые и целые columns, представляющие данные даты или метки времени, обрабатываются как тип метки времени.
  • Строка columns, представляющая числовые данные, трактуется как числовой тип.

В Databricks Runtime 10.1 ML и более поздних версий AutoML также выполняет указанные ниже корректировки.

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

Заметки семантического типа

С помощью Databricks Runtime 10.1 ML и более поздних версий можно вручную управлять назначенным семантическим типом, помещая заметку семантического типа в column. Чтобы вручную аннотировать семантический тип column<column-name> как <semantic-type>, используйте следующий синтаксис:

metadata_dict = df.schema["<column-name>"].metadata
metadata_dict["spark.contentAnnotation.semanticType"] = "<semantic-type>"
df = df.withMetadata("<column-name>", metadata_dict)

<semantic-type> может принимать следующие значения:

  • categorical: column содержит категориальные values, такие как числовые values, которые следует рассматривать как идентификаторы.
  • numeric: column содержит числовые values (например, строковые values, которые можно преобразовать в числа).
  • datetime: column содержит метку времени values (строковый, числовой или дата values, которые можно преобразовать в метки времени).
  • text: строка column содержит английский текст.

Чтобы отключить обнаружение семантического типа в column, используйте специальное ключевое слово-аннотацию native.