Skip to main content
Version: 3.2

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_nameexp-name
locations3://models/18
experiment_id18
experiment_stageactive
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_nameprevious-exp-name
locations3://models/17
experiment_id17
experiment_stageactive
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_uriend_timeexperiment_idmetrics.accuracy_scoremetrics.f1_scoremetrics.log_lossmetrics.precision_scoremetrics.recallmetrics.roc_auc_scorerun_idrun_namestart_timestatustags.mlflow.log-model.history
0s3://models/21/fef2e0533fec42b586251fbe07294ed...2022-03-29 11:44:24.213000+00:00210.7272730.5625009.4197650.5869570.540.678654fef2e0533fec42b586251fbe07294ed1my-ne2-exp_21_decision_tree_classifier2022-03-29 11:44:22.013000+00:00FINISHED["run_id": "fef2e0533fec42b586251fbe07294ed1"...
1s3://models/21/fd7ab366582e4a2b85358bfa24ff62c...2022-03-29 11:44:20.341000+00:00210.7922080.6363647.1769410.7368420.560.731923fd7ab366582e4a2b85358bfa24ff62c5my-ne2-exp_21_logistic_regression2022-03-29 11:44:18.234000+00:00FINISHED["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"