получить идентификатор запуска для эксперимента mlflow с именем?

В настоящее время я создал эксперимент в mlflow и выполнил несколько запусков эксперимента.

from sklearn.ensemble import RandomForestRegressor
from sklearn.metrics import mean_squared_error
import mlflow

experiment_name="experiment-1"
mlflow.set_experiment(experiment_name)

no_of_trees=[100,200,300]
depths=[2,3,4]
for trees in no_of_trees:
    for depth in depths:
        with mlflow.start_run() as run:
            model=RandomForestRegressor(n_estimators=trees, criterion='mse',max_depth=depth)
            model.fit(x_train, y_train)
            predictions=model.predict(x_cv)
            mlflow.log_metric('rmse',mean_squared_error(y_cv, predictions))

после создания прогонов я хотел получить лучший run_id для этого эксперимента. на данный момент я могу получить лучший результат, посмотрев на пользовательский интерфейс mlflow, но как мы можем сделать программу правильной?


person Ravi    schedule 16.12.2020    source источник


Ответы (1)


мы можем получить идентификатор эксперимента из имени эксперимента, и мы можем использовать API Python для получения наилучших результатов.

experiment_name = "experiment-1"
current_experiment=dict(mlflow.get_experiment_by_name(experiment_name))
experiment_id=current_experiment['experiment_id']

Используя идентификатор эксперимента, мы можем получить все прогоны и отсортировать их по показателям, как показано ниже. В приведенном ниже коде rmse - это мое имя метрики (поэтому оно может отличаться для вас в зависимости от имени метрики)

df = mlflow.search_runs([experiment_id], order_by=["metrics.rmse DESC"])
best_run_id = df.loc[0,'run_id']
person Ravi    schedule 16.12.2020