Experiment Operations
Create a New Experimentโ
If experiment does not exist, create an experiment with provided name.
from katonic.ml.client import set_exp
set_exp(exp_name='exp-name')
>>> INFO: 'exp-name' does not exist. Creating a new experiment
Continue Existing Experimentโ
Set given experiment as active experiment.
from katonic.ml.client import set_exp
set_exp(exp_name='previous-exp-name')
Get info of an Existing Experimentโ
Retrieve an experiment by experiment name from the backend store.
from katonic.ml.util import get_exp
get_exp(exp_name='exp-name')
parameters | |
---|---|
experiment_name | exp-name |
location | s3://models/18 |
experiment_id | 18 |
experiment_stage | active |
tags |
Delete Experimentโ
To delete any experiment first get the experiment id of that experiment name from get_exp
from katonic.ml.util import get_exp, delete_exp
get_exp(exp_name='previous-exp-name')
parameters | |
---|---|
experiment_name | previous-exp-name |
location | s3://models/17 |
experiment_id | 17 |
experiment_stage | active |
tags |
delete_exp(experiment_id=17)
Training & Log a LogisticRegression Modelโ
Train & Log a LogisticRegression
classification model.
from katonic.ml.classification import Classifier
clf = Classifier(X_train, X_test, y_train, y_test, exp_name)
clf.LogisticRegression()
Training & Log a RandomForestClassifier Modelโ
Train & Log a RandomForestClassifier
classification model.
from katonic.ml.classification import Classifier
clf = Classifier(X_train, X_test, y_train, y_test, exp_name)
clf.RandomForestClassifier()
Training & Log a AdaBoostClassifier Modelโ
Train & Log a AdaBoostClassifier
classification model.
from katonic.ml.classification import Classifier
clf = Classifier(X_train, X_test, y_train, y_test, exp_name)
clf.AdaBoostClassifier()
Training & Log a GradientBoostingClassifier Modelโ
Train & Log a GradientBoostingClassifier
classification model.
from katonic.ml.classification import Classifier
clf = Classifier(X_train, X_test, y_train, y_test, exp_name)
clf.GradientBoostingClassifier()
Training & Log a CatBoostClassifier Modelโ
Train & Log a CatBoostClassifier
classification model.
from katonic.ml.classification import Classifier
clf = Classifier(X_train, X_test, y_train, y_test, exp_name)
clf.CatBoostClassifier()
Training & Log a LGBMClassifier Modelโ
Train & Log a LGBMClassifier
classification model.
from katonic.ml.classification import Classifier
clf = Classifier(X_train, X_test, y_train, y_test, exp_name)
clf.LGBMClassifier()
Training & Log a XGBClassifier Modelโ
Train & Log a XGBClassifier
classification model.
from katonic.ml.classification import Classifier
clf = Classifier(X_train, X_test, y_train, y_test, exp_name)
clf.XGBClassifier()
Training & Log a DecisionTreeClassifier Modelโ
Train & Log a DecisionTreeClassifier
classification model.
from katonic.ml.classification import Classifier
clf = Classifier(X_train, X_test, y_train, y_test, exp_name)
clf.DecisionTreeClassifier()
Training & Log a SupportVectorClassifier Modelโ
Train & Log a SupportVectorClassifier
classification model.
from katonic.ml.classification import Classifier
clf = Classifier(X_train, X_test, y_train, y_test, exp_name)
clf.SupportVectorClassifier()
Training & Log a RidgeClassifier Modelโ
Train & Log a RidgeClassifier
classification model.
from katonic.ml.classification import Classifier
clf = Classifier(X_train, X_test, y_train, y_test, exp_name)
clf.RidgeClassifier()
Training & Log a KNeighborsClassifier Modelโ
Train & Log a KNeighborsClassifier
classification model.
from katonic.ml.classification import Classifier
clf = Classifier(X_train, X_test, y_train, y_test, exp_name)
clf.KNeighborsClassifier()
Training & Log a GaussianNB Modelโ
Train & Log a GaussianNB
classification model.
from katonic.ml.classification import Classifier
clf = Classifier(X_train, X_test, y_train, y_test, exp_name)
clf.GaussianNB()
Training & Log a LinearRegression Modelโ
Train & Log a LinearRegression
regression model.
from katonic.ml.regression import Regressor
reg = Regressor(X_train, X_test, y_train, y_test, exp_name)
reg.LinearRegression()
Training & Log a RidgeRegression Modelโ
Train & Log a RidgeRegression
regression model.
from katonic.ml.regression import Regressor
reg = Regressor(X_train, X_test, y_train, y_test, exp_name)
reg.RidgeRegression()
Training & Log a LassoRegression Modelโ
Train & Log a LassoRegression
regression model.
from katonic.ml.regression import Regressor
reg = Regressor(X_train, X_test, y_train, y_test, exp_name)
reg.LassoRegression()
Training & Log a ElasticNet Modelโ
Train & Log a ElasticNet
regression model.
from katonic.ml.regression import Regressor
reg = Regressor(X_train, X_test, y_train, y_test, exp_name)
reg.ElasticNet()
Training & Log a SupportVectorRegressor Modelโ
Train & Log a SupportVectorRegressor
regression model.
from katonic.ml.regression import Regressor
reg = Regressor(X_train, X_test, y_train, y_test, exp_name)
reg.SupportVectorRegressor()
Training & Log a KNNRegressor Modelโ
Train & Log a KNNRegressor
regression model.
from katonic.ml.regression import Regressor
reg = Regressor(X_train, X_test, y_train, y_test, exp_name)
reg.KNNRegressor()
Training & Log a RandomForestRegressor Modelโ
Train & Log a RandomForestRegressor
regression model.
from katonic.ml.regression import Regressor
reg = Regressor(X_train, X_test, y_train, y_test, exp_name)
reg.RandomForestRegressor()
Training & Log a XGBRegressor Modelโ
Train & Log a XGBRegressor
regression model.
from katonic.ml.regression import Regressor
reg = Regressor(X_train, X_test, y_train, y_test, exp_name)
reg.XGBRegressor()
Training & Log a CatBoostRegressor Modelโ
Train & Log a CatBoostRegressor
regression model.
from katonic.ml.regression import Regressor
reg = Regressor(X_train, X_test, y_train, y_test, exp_name)
reg.CatBoostRegressor()
Training & Log a LGBMRegressor Modelโ
Train & Log a LGBMRegressor
regression model.
from katonic.ml.regression import Regressor
reg = Regressor(X_train, X_test, y_train, y_test, exp_name)
reg.LGBMRegressor()
Training & Log a GradientBoostingRegressor Modelโ
Train & Log a GradientBoostingRegressor
regression model.
from katonic.ml.regression import Regressor
reg = Regressor(X_train, X_test, y_train, y_test, exp_name)
reg.GradientBoostingRegressor()
Training & Log a AdaBoostRegressor Modelโ
Train & Log a AdaBoostRegressor
regression model.
from katonic.ml.regression import Regressor
reg = Regressor(X_train, X_test, y_train, y_test, exp_name)
reg.AdaBoostRegressor()
Training & Log a DecisionTreeRegressor Modelโ
Train & Log a DecisionTreeRegressor
regression model.
from katonic.ml.regression import Regressor
reg = Regressor(X_train, X_test, y_train, y_test, exp_name)
reg.DecisionTreeRegressor()
Training & Log a ExtraTreeRegressor Modelโ
Train & Log a ExtraTreeRegressor
regression model.
from katonic.ml.regression import Regressor
reg = Regressor(X_train, X_test, y_train, y_test, exp_name)
reg.ExtraTreeRegressor()
log a Classification Model with Hyperparameter Tuningโ
Log classification model with Hyperparameter tuning with provided parameter constraints.
params = {
'n_estimators': {
'low': 80,
'high': 120,
'step': 10,
'type': 'int'
},
'criterion':{
'values': ['gini', 'entropy'],
'type': 'categorical'
},
'min_samples_split': {
'low': 2,
'high': 5,
'type': 'int'
},
'min_samples_leaf':{
'low': 1,
'high': 5,
'type': 'int'
}
}
clf.RandomForestClassifier(is_tune=True, n_trials=5, params=params)
log a Regression Model with Hyperparameter Tuningโ
Log regression model with Hyperparameter tuning with provided parameter constraints
params = {
'n_estimators': {
'low': 80,
'high': 120,
'step': 10,
'type': 'int'
},
'criterion':{
'values': ['mse', 'mae'],
'type': 'categorical'
},
'min_samples_split': {
'low': 2,
'high': 5,
'type': 'int'
},
'min_samples_leaf':{
'low': 1,
'high': 5,
'type': 'int'
}
}
reg.RandomForestRegressor(is_tune=True, params=params)
log a Custom Modelโ
This function helps to log custom user model.
import os
import mlflow.pyfunc
from katonic.ml.miscellaneous import LogModel
lm = LogModel(experiment_name='custom-model-name')
>>> INFO: 'custom-model-name' does not exist. Creating a new experiment
working_dir = os.getcwd() + '/experiment-docs.ipynb'
class AddN(mlflow.pyfunc.PythonModel):
def __init__(self, n):
self.n = n
def predict(self, context, model_input):
return model_input.apply(lambda column: column + self.n)
lm.model_logging(
model_name= "add_n",
model_type="custom-model",
model=AddN(n=5),
artifact_path="custom-model-log",
current_working_dir=working_dir,
)
>>> Model artifact logged to: s3://models/19/c31db94b700a4cb79c15e77d77a7f5d5/artifacts/custom-model-name_19_custom-model-log_add_n
View Experiment Runsโ
This function search runs and return dataframe of runs. It takes exp_id as input and returns the list of experiment ids.
import pandas as pd
from sklearn.model_selection import train_test_split
df = pd.read_csv('https://raw.githubusercontent.com/plotly/datasets/master/diabetes.csv')
x = df.drop(columns=['Outcome'], axis=1)
y = df['Outcome']
X_train, X_test, y_train, y_test = train_test_split(x, y, test_size=.20,random_state=98)
from katonic.ml.classification import Classifier
clf = Classifier(X_train, X_test, y_train, y_test, 'my-ne2-exp')
df_runs = clf.search_runs(exp_id='21')
df_runs
artifact_uri | end_time | experiment_id | metrics.accuracy_score | metrics.f1_score | metrics.log_loss | metrics.precision_score | metrics.recall | metrics.roc_auc_score | run_id | run_name | start_time | status | tags.mlflow.log-model.history | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | s3://models/21/fef2e0533fec42b586251fbe07294ed... | 2022-03-29 11:44:24.213000+00:00 | 21 | 0.727273 | 0.562500 | 9.419765 | 0.586957 | 0.54 | 0.678654 | fef2e0533fec42b586251fbe07294ed1 | my-ne2-exp_21_decision_tree_classifier | 2022-03-29 11:44:22.013000+00:00 | FINISHED | ["run_id": "fef2e0533fec42b586251fbe07294ed1"... |
1 | s3://models/21/fd7ab366582e4a2b85358bfa24ff62c... | 2022-03-29 11:44:20.341000+00:00 | 21 | 0.792208 | 0.636364 | 7.176941 | 0.736842 | 0.56 | 0.731923 | fd7ab366582e4a2b85358bfa24ff62c5 | my-ne2-exp_21_logistic_regression | 2022-03-29 11:44:18.234000+00:00 | FINISHED | ["run_id": "fd7ab366582e4a2b85358bfa24ff62c5"... |
Delete Experiment Runsโ
Delete experiment runs with the specific run_ids.
from katonic.ml.classification import Classifier
clf = Classifier(X_train, X_test, y_train, y_test, 'my-ne2-exp')
run_list = clf.search_runs(exp_id='21')['run_id'].tolist()
run_list
>>> ['fef2e0533fec42b586251fbe07294ed1', 'fd7ab366582e4a2b85358bfa24ff62c5']
clf.delete_run_by_id(run_ids=['fef2e0533fec42b586251fbe07294ed1'])
>>> "['fef2e0533fec42b586251fbe07294ed1'] runids successfully deleted"