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