Есть ли способ получить журнал описательной статистики набора данных, используя MLflow?

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

3 ответа

Решение

Вообще говоря, вы можете записывать произвольный вывод из вашего кода, используя функцию mlflow_log_artifact(). Из документов:

mlflow.log_artifact (local_path, artifact_path = None) Записать локальный файл или каталог в качестве артефакта текущего активного прогона.

Параметры:
local_path - путь к файлу для записи. artifact_path - если указан, каталог в artifact_uri для записи.

Например, скажем, у вас есть статистика в кадре данных панд, stat_df,

## Write csv from stats dataframe
stat_df.to_csv('dataset_statistics.csv')

## Log CSV to MLflow
mlflow_log_artifact('dataset_statistics.csv')

Это будет отображаться в разделе артефактов этого MLflow, запускаемого в интерфейсе отслеживания. Если вы изучите документы дальше, вы увидите, что вы можете также регистрировать весь каталог и объекты в нем. В целом, MLflow предоставляет вам большую гибкость - все, что вы пишете в свою файловую систему, вы можете отслеживать с помощью MLflow. Конечно, это не значит, что вы должны.:)

Существует также возможность зарегистрировать артефакт в виде html-файла, чтобы он отображался в виде (уродливой) таблицы в mlflow.

      import seaborn as sns
import mlflow

mlflow.start_run()
df_iris = sns.load_dataset("iris")
df_iris.describe().to_html("iris.html")
mlflow.log_artifact("iris.html",
                    "stat_descriptive")
mlflow.end_run()

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

Преимущество перед принятым ответом: нет остатков и проблем с распараллеливанием.

        with tempfile.TemporaryDirectory() as tmpdir:
    fname = tmpdir+'/'+'bits_corr_matrix.csv'
    np.savetxt(fname,corr_matrix,delimiter=',')
    mlflow.log_artifact(fname)
Другие вопросы по тегам