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


Визуализации обучения (предварительная версия)

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

Модуль flaml.visualization предлагает функции для построения и сравнения запусков в FLAML. Пользователи могут использовать графики для взаимодействия с графиками экспериментов AutoML. Чтобы использовать эти функции, пользователям необходимо ввести оптимизированные flaml.AutoML или flaml.tune.tune.ExperimentAnalysis объектные данные.

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

Внимание

Эта функция доступна в предварительной версии.

Создание пробной версии AutoML

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

В ячейке кода ниже мы будем:

  1. Загрузите набор данных Iris.
  2. Разделение данных на наборы обучения и тестирования.
  3. Инициируйте пробную версию AutoML, чтобы соответствовать нашим учебным данным.
  4. Изучите результаты пробной версии AutoML с помощью визуализаций из flaml.visualization.
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from flaml import AutoML

# Load the Iris data and split it into train and test sets
x, y = load_iris(return_X_y=True, as_frame=True)
x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.2, random_state=7654321)

# Create an AutoML instance and set the parameters
automl = AutoML()
automl_settings = {
    "time_budget": 10, # Time limit in seconds
    "task": "classification", # Type of machine learning task
    "log_file_name": "aml_iris.log", # Name of the log file
    "metric": "accuracy", # Evaluation metric
    "log_type": "all", # Level of logging
}
# Fit the AutoML instance on the training data
automl.fit(X_train=x_train, y_train=y_train, **automl_settings)

Визуализация результатов эксперимента

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

Модуль импорта визуализации

Чтобы получить доступ к этим служебным программам визуализации, выполните следующую команду импорта:

import flaml.visualization as fviz

Журнал оптимизации

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

fig = fviz.plot_optimization_history(automl)
# or
fig = fviz.plot(automl, "optimization_history")
fig.show()

Ниже приведен итоговый график:

График диаграммы журнала оптимизации.

Важность признака

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

fig = fviz.plot_feature_importance(automl)
# or
fig = fviz.plot(automl, "feature_importance")
fig.show()

Ниже приведен итоговый график:

График важности признаков.

Параллельный график координат

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

Эта программа принимает следующие другие аргументы:

  • learner: укажите учащегося, который планируется изучать в эксперименте. Этот параметр применим только для результатов эксперимента AutoML. Оставив это пустое, система выбирает лучшего учащегося во всем эксперименте.

  • params: список, указывающий, какой гиперпараметр будет отображаться. Оставив это пустым, система отображает все доступные гиперпараметры.

fig = fviz.plot_parallel_coordinate(automl, learner="lgbm", params=["n_estimators", "num_leaves", "learning_rate"])
# or
fig = fviz.plot(automl, "parallel_coordinate", learner="lgbm", params=["n_estimators", "num_leaves", "learning_rate"])
fig.show()

Ниже приведен итоговый график:

График параллельной диаграммы координат.

Контурный график

Контурный график визуализирует трехмерные данные в двух измерениях, где оси x и y представляют два гиперпараметра, а контурные линии или контуры отображают уровни метрики производительности (например, точность или потеря). В контексте эксперимента autoML или настройки контурный график подходит для понимания связи между двумя гиперпараметрами и их объединенным эффектом на производительность модели.

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

Эта программа также принимает следующие аргументы:

  • learner: укажите учащегося, который планируется изучать в эксперименте. Этот параметр применим только для результатов эксперимента AutoML. Оставив это пустое, система выбирает лучшего учащегося во всем эксперименте.

  • params: список, указывающий, какой гиперпараметр будет отображаться. Оставив это пустым, система отображает все доступные гиперпараметры.

fig = fviz.plot_contour(automl, learner="lgbm", params=["n_estimators", "num_leaves", "learning_rate"])
# or
fig = fviz.plot(automl, "contour", learner="lgbm", params=["n_estimators", "num_leaves", "learning_rate"])
fig.show()

Ниже приведен итоговый график:

График контурного графика.

Эмпирическая функция распределения

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

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

Примечание.

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

fig = fviz.plot_edf(automl)
# or
fig = fviz.plot(automl, "edf")
fig.show()

Ниже приведен итоговый график:

Граф эмпирического распределения диаграммы.

График временной шкалы

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

fig = fviz.plot_timeline(automl)
# or
fig = fviz.plot(automl, "timeline")
fig.show()

Ниже приведен итоговый график:

Граф временная шкала график.

График среза

Постройте связь параметров в виде диаграммы среза в исследовании.

Эта программа также принимает следующие аргументы:

  • learner: укажите учащегося, который планируется изучать в эксперименте. Этот параметр применим только для результатов эксперимента AutoML. Оставив это пустое, система выбирает лучшего учащегося во всем эксперименте.

  • params: список, указывающий, какой гиперпараметр будет отображаться. Оставив это пустым, система отображает все доступные гиперпараметры.

fig = fviz.plot_slice(automl, learner="sgd")
# or
fig = fviz.plot(automl, "slice", learner="sgd")
fig.show()

Ниже приведен итоговый график:

График диаграммы среза.

Важность гиперпараметра

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

Эта программа также принимает следующие аргументы:

  • learner: укажите учащегося, который планируется изучать в эксперименте. Этот параметр применим только для результатов эксперимента AutoML. Оставив это пустое, система выбирает лучшего учащегося во всем эксперименте.

  • params: список, указывающий, какой гиперпараметр будет отображаться. Оставив это пустым, система отображает все доступные гиперпараметры.

fig = fviz.plot_param_importance(automl, learner="sgd")
# or
fig = fviz.plot(automl, "param_importance", learner="sgd")
fig.show()

Ниже приведен итоговый график:

График диаграммы важности гиперпараметра.