Spaces:
Sleeping
Sleeping
File size: 1,297 Bytes
63289b7 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | import os
import pandas as pd
import sys
from mlflow.models import infer_signature
import mlflow
import mlflow.xgboost
sys.path.append(os.path.join(os.path.dirname(__file__), "..", "src"))
from data.load_data import load_data
from models.evaluate import evaluate_model
from models.train import train_model
mlflow.set_tracking_uri("http://127.0.0.1:5000")
mlflow.set_experiment("First Experiment")
def main():
df = load_data("data/processed/train_processed.csv")
print("Data loaded for modelling!")
model,X_test,y_test,train_metrics,params = train_model(df,target_col="Churn")
# X_test_float = X_test.astype("float64")
evaluate_results = evaluate_model(model,X_test,y_test)
signature = infer_signature(X_test,y_test)
with mlflow.start_run():
mlflow.log_params(params)
for param, value in evaluate_results.items():
if param != "classification_threshold":
mlflow.log_metric(param,value)
mlflow.log_param("classification_threshold",evaluate_results["classification_threshold"])
mlflow.xgboost.log_model(model,name="xgboost_model",signature=signature)
if __name__=="__main__":
main()
# mlflow server --backend-store-uri sqlite:///C:/mlflow_server/mlflow.db --default-artifact-root file:///C:/mlflow_server/artifacts --host 127.0.0.1 --port 5000 |