Вы не можете выбрать более 25 тем
Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
22 KiB
22 KiB
import os
import mlflow
from sklearn.datasets import make_classification
from sklearn.model_selection import train_test_split
= make_classification(
X, y =1000,
n_samples=10,
n_features=3,
n_informative=0,
n_redundant=0,
n_repeated=2,
n_classes=0,
random_state=False,
shuffle
)= train_test_split(X, y, random_state=42) X_train, X_test, y_train, y_test
from sklearn.ensemble import RandomForestClassifier
= [f"feature {i}" for i in range(X.shape[1])]
feature_names = RandomForestClassifier(random_state=0, n_estimators=1)
forest forest.fit(X_train, y_train)
RandomForestClassifier(n_estimators=1, random_state=0)In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook.
On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.
RandomForestClassifier(n_estimators=1, random_state=0)
from sklearn.metrics import recall_score, precision_score, f1_score, roc_auc_score
= forest.predict(X_test) predictions
= {}
metrics "recall"] = recall_score(y_test, predictions)
metrics["precision"] = precision_score(y_test, predictions)
metrics["f1"] = f1_score(y_test, predictions)
metrics["roc_auc"] = roc_auc_score(y_test, predictions)
metrics[ metrics
{'recall': 0.5853658536585366,
'precision': 0.7578947368421053,
'f1': 0.6605504587155964,
'roc_auc': 0.7021317457269061}
# Работаем с MLflow локально
= "127.0.0.1"
TRACKING_SERVER_HOST = 5000
TRACKING_SERVER_PORT
= f"http://{TRACKING_SERVER_HOST}:{TRACKING_SERVER_PORT}"
registry_uri = f"http://{TRACKING_SERVER_HOST}:{TRACKING_SERVER_PORT}"
tracking_uri
mlflow.set_tracking_uri(tracking_uri) mlflow.set_registry_uri(registry_uri)
# название тестового эксперимента и запуска (run) внутри него
= "lection_test"
EXPERIMENT_NAME = "n_est=1 model"
RUN_NAME = "lection_model" REGISTRY_MODEL_NAME
# Когда создаем новый эксперимент, то:
= mlflow.create_experiment(EXPERIMENT_NAME)
experiment_id
# Впоследствии. чтобы добавлять запуски в этот же эксепримент мы должны получить его id:
#experiment_id = mlflow.get_experiment_by_name(EXPERIMENT_NAME).experiment_id
with mlflow.start_run(run_name=RUN_NAME, experiment_id=experiment_id) as run:
# получаем уникальный идентификатор запуска эксперимента
= run.info.run_id
run_id ="models")
mlflow.sklearn.log_model(forest, artifact_path
mlflow.log_metrics(metrics)#experiment = mlflow.get_experiment_by_name(EXPERIMENT_NAME)
= mlflow.get_run(run_id)
run
assert (run.info.status =='FINISHED')
#mlflow.delete_experiment(experiment_id)