Release: PyCaret 2.0 | Release Date: July 31, 2020
Summary of Changes
- Experiment Logging MLFlow logging backend added. New parameters
log_experiment
experiment_name
log_profile
log_data
added insetup
. Available inpycaret.classification
pycaret.regression
pycaret.clustering
pycaret.anomaly
pycaret.nlp
- Save / Load Experiment
save_experiment
andload_experiment
function frompycaret.classification
pycaret.regression
pycaret.clustering
pycaret.anomaly
pycaret.nlp
is removed in PyCaret 2.0
- System Logging System log files now generated when
setup
is executed.logs.log
file is saved in current working directory. Functionget_system_logs
can be used to access log file in notebook.
- Command Line Support When using PyCaret 2.0 outside of Notebook,
html
parameter insetup
must be set to False.
- Imbalance Dataset
fix_imbalance
andfix_imbalance_method
parameter added insetup
forpycaret.classification
. When set to True, SMOTE is applied by default to create synthetic datapoints for minority class. To change the method pass any class fromimblearn
that supportsfit_resample
method infix_imbalance_method
parameter.
- Save Plot
save
parameter added inplot_model
. When set to True, it saves the plot aspng
orhtml
in current working directory.
- kwargs
kwargs**
added increate_model
forpycaret.classification
pycaret.regression
pycaret.clustering
pycaret.anomaly
- choose_better
choose_better
andoptimize
parameter added intune_model
ensemble_model
blend_models
stack_models
create_stacknet
inpycaret.classification
andpycaret.regression
. Read the details below to learn more about thi added increate_model
forpycaret.classification
pycaret.regression
pycaret.clustering
pycaret.anomaly
- Training Time
TT (Sec)
added incompare_models
function forpycaret.classification
andpycaret.regression
- New Metric: MCC
MCC
metric added in score grid forpycaret.classification
- NEW FUNCTION: automl() New function
automl
added inpycaret.classification
pycaret.regression
- NEW FUNCTION: pull() New function
pull
added inpycaret.classification
pycaret.regression
- NEW FUNCTION: models() New function
models
added inpycaret.classification
pycaret.regression
pycaret.clustering
pycaret.anomaly
pycaret.nlp
- NEW FUNCTION: get_logs() New function
get_logs
added inpycaret.classification
pycaret.regression
pycaret.clustering
pycaret.anomaly
pycaret.nlp
- NEW FUNCTION: get_config() New function
get_config
added inpycaret.classification
pycaret.regression
pycaret.clustering
pycaret.anomaly
pycaret.nlp
- NEW FUNCTION: set_config() New function
set_config
added inpycaret.classification
pycaret.regression
pycaret.clustering
pycaret.anomaly
pycaret.nlp
- NEW FUNCTION: get_system_logs New function
get_logs
added inpycaret.classification
pycaret.regression
pycaret.clustering
pycaret.anomaly
pycaret.nlp
- CHANGE IN BEHAVIOR: compare_models
compare_models
now returns top_n models defined byn_select
parameter, by default set to 1.
- CHANGE IN BEHAVIOR: tune_model
tune_model
function inpycaret.classification
andpycaret.regression
now requires trained model object to be passed asestimator
instead of string abbreviation / ID.
- REMOVED DEPENDENCIES
awscli
andshap
removed from requirements.txt. To useinterpret_model
function inpycaret.classification
pycaret.regression
anddeploy_model
function inpycaret.classification
pycaret.regression
pycaret.clustering
pycaret.anomaly
, these libraries will have to be installed separately.
setup
pycaret.classification
pycaret.regression
pycaret.clustering
pycaret.anomaly
pycaret.nlp
remove_perfect_collinearity
parameter added insetup()
. Default set to False.
When set to True, perfect collinearity (features with correlation = 1) is removed from the dataset, When two features are 100% correlated, one of it is randomly dropped from the dataset.
fix_imbalance
parameter added insetup()
. Default set to False.
When dataset has unequal distribution of target class it can be fixed using fix_imbalance parameter. When set to True, SMOTE (Synthetic Minority Over-sampling Technique) is applied by default to create synthetic datapoints for minority class.
fix_imbalance_method
parameter added insetup()
. Default set to None.
When fix_imbalance is set to True and fix_imbalance_method is None, 'smote' is applied by default to oversample minority class during cross validation. This parameter accepts any module from 'imblearn' that supports 'fit_resample' method.
data_split_shuffle
parameter added insetup()
. Default set to True.
If set to False, prevents shuffling of rows when splitting data.
folds_shuffle
parameter added insetup()
. Default set to False.
If set to False, prevents shuffling of rows when using cross validation.
n_jobs
parameter added insetup()
. Default set to -1.
The number of jobs to run in parallel (for functions that supports parallel processing) -1 means using all processors. To run all functions on single processor set n_jobs to None.
html
parameter added insetup()
. Default set to True.
If set to False, prevents runtime display of monitor. This must be set to False when using environment that doesnt support HTML.
log_experiment
parameter added insetup()
. Default set to False.
When set to True, all metrics and parameters are logged on MLFlow server.
experiment_name
parameter added insetup()
. Default set to None.
Name of experiment for logging. When set to None, 'clf' is by default used as alias for the experiment name.
log_plots
parameter added insetup()
. Default set to False.
When set to True, specific plots are logged in MLflow as a png file.
log_profile
parameter added insetup()
. Default set to False.
When set to True, data profile is also logged on MLflow as a html file.
log_data
parameter added insetup()
. Default set to False.
When set to True, train and test dataset are logged as csv.
verbose
parameter added insetup()
. Default set to True.
Information grid is not printed when verbose is set to False.
compare_models
pycaret.classification
pycaret.regression
whitelist
parameter added incompare_models
. Default set to None.
In order to run only certain models for the comparison, the model ID's can be passed as a list of strings in whitelist param.
n_select
parameter added incompare_models
. Default set to 1.
Number of top_n models to return. use negative argument for bottom selection. For example, n_select = -3 means bottom 3 models.
verbose
parameter added incompare_models
. Default set to True.
Score grid is not printed when verbose is set to False.
create_model
pycaret.classification
pycaret.regression
pycaret.clustering
pycaret.anomaly
cross_validation
parameter added increate_model
. Default set to True.
When cross_validation set to False fold parameter is ignored and model is trained on entire training dataset. No metric evaluation is returned. Only applicable inpycaret.classification
andpycaret.regression
system
parameter added increate_model
. Default set to True.
Must remain True all times. Only to be changed by internal functions.
ground_truth
parameter added increate_model
. Default set to None.
When ground_truth is provided, Homogeneity Score, Rand Index, and Completeness Score is evaluated and printer along with other metrics. This is only available inpycaret.clustering
kwargs
parameter added increate_model
.
Additional keyword arguments to pass to the estimator.
tune_model
pycaret.classification
pycaret.regression
pycaret.clustering
pycaret.anomaly
pycaret.nlp
custom_grid
parameter added intune_model
. Default set to None.
To use custom hyperparameters for tuning pass a dictionary with parameter name and values to be iterated. When set to None it uses pre-defined tuning grid. Forpycaret.clustering
pycaret.anomaly
pycaret.nlp
, custom_grid param must be a list of values to iterate over.
choose_better
parameter added intune_model
. Default set to False.
When set to set to True, base estimator is returned when the performance doesn't improve by tune_model. This gurantees the returned object would perform atleast equivalent to base estimator created using create_model or model returned by compare_models.
ensemble_model
pycaret.classification
pycaret.regression
choose_better
parameter added inensemble_model
. Default set to False.
When set to set to True, base estimator is returned when the performance doesn't improve by tune_model. This gurantees the returned object would perform atleast equivalent to base estimator created using create_model or model returned by compare_models.
optimize
parameter added inensemble_model
. Default set toAccuracy
forpycaret.classification
andR2
forpycaret.regression
.
Only used when choose_better is set to True. optimize parameter is used to compare emsembled model with base estimator. Values accepted in optimize parameter forpycaret.classification
are 'Accuracy', 'AUC', 'Recall', 'Precision', 'F1', 'Kappa', 'MCC' and forpycaret.regression
are 'MAE', 'MSE', 'RMSE' 'R2', 'RMSLE' and 'MAPE'.
blend_models
pycaret.classification
pycaret.regression
choose_better
parameter added inblend_models
. Default set to False.
When set to set to True, base estimator is returned when the performance doesn't improve by tune_model. This gurantees the returned object would perform atleast equivalent to base estimator created using create_model or model returned by compare_models.
optimize
parameter added inblend_models
. Default set toAccuracy
forpycaret.classification
andR2
forpycaret.regression
.
Only used when choose_better is set to True. optimize parameter is used to compare emsembled model with base estimator. Values accepted in optimize parameter forpycaret.classification
are 'Accuracy', 'AUC', 'Recall', 'Precision', 'F1', 'Kappa', 'MCC' and forpycaret.regression
are 'MAE', 'MSE', 'RMSE' 'R2', 'RMSLE' and 'MAPE'.
stack_models
pycaret.classification
pycaret.regression
choose_better
parameter added instack_models
. Default set to False.
When set to set to True, base estimator is returned when the performance doesn't improve by tune_model. This gurantees the returned object would perform atleast equivalent to base estimator created using create_model or model returned by compare_models.
optimize
parameter added instack_models
. Default set toAccuracy
forpycaret.classification
andR2
forpycaret.regression
.
Only used when choose_better is set to True. optimize parameter is used to compare emsembled model with base estimator. Values accepted in optimize parameter forpycaret.classification
are 'Accuracy', 'AUC', 'Recall', 'Precision', 'F1', 'Kappa', 'MCC' and forpycaret.regression
are 'MAE', 'MSE', 'RMSE' 'R2', 'RMSLE' and 'MAPE'.
create_stacknet
pycaret.classification
pycaret.regression
choose_better
parameter added increate_stacknet
. Default set to False.
When set to set to True, base estimator is returned when the performance doesn't improve by tune_model. This gurantees the returned object would perform atleast equivalent to base estimator created using create_model or model returned by compare_models.
optimize
parameter added increate_stacknet
. Default set toAccuracy
forpycaret.classification
andR2
forpycaret.regression
.
Only used when choose_better is set to True. optimize parameter is used to compare emsembled model with base estimator. Values accepted in optimize parameter forpycaret.classification
are 'Accuracy', 'AUC', 'Recall', 'Precision', 'F1', 'Kappa', 'MCC' and forpycaret.regression
are 'MAE', 'MSE', 'RMSE' 'R2', 'RMSLE' and 'MAPE'.
predict_model
pycaret.classification
pycaret.regression
verbose
parameter added inpredict_model
. Default set to True.
Holdout score grid is not printed when verbose is set to False.
plot_model
pycaret.classification
pycaret.regression
pycaret.clustering
pycaret.anomaly
pycaret.nlp
save
parameter added inplot_model
. Default set to False.
When set to True, Plot is saved as a 'png' file in current working directory.
verbose
parameter added inplot_model
. Default set to True.
Progress bar not shown when verbose set to False.
system
parameter added inplot_model
. Default set to True.
Must remain True all times. Only to be changed by internal functions.
NEW FUNCTION: automl
pycaret.classification
pycaret.regression
- This function returns the best model out of all models created in current active environment based on metric defined in optimize parameter.
Parameters:
optimize
string, default = 'Accuracy' forpycaret.classification
and 'R2' forpycaret.regression
Other values you can pass in optimize param are 'AUC', 'Recall', 'Precision', 'F1', 'Kappa', and 'MCC' forpycaret.classification
and 'MAE', 'MSE', 'RMSE', 'R2', 'RMSLE', and 'MAPE' forpycaret.regression
use_holdout
bool, default = False
When set to True, metrics are evaluated on holdout set instead of CV.
NEW FUNCTION: pull
pycaret.classification
pycaret.regression
- This function returns the last printed score grid as pandas dataframe.
NEW FUNCTION: models
pycaret.classification
pycaret.regression
pycaret.clustering
pycaret.anomaly
pycaret.nlp
- This function Returns the table of models available in model library.
Parameters:
type
string, default = None
linear : filters and only return linear models
tree : filters and only return tree based models
ensemble : filters and only return ensemble models
type
parameter only available in pycaret.classification
and pycaret.regression
NEW FUNCTION: get_logs
pycaret.classification
pycaret.regression
pycaret.clustering
pycaret.anomaly
pycaret.nlp
- This function returns a table with experiment logs consisting run details, parameter, metrics and tags.
Parameters:
-
experiment_name
string, default = None
When set to None current active run is used.
-
save
bool, default = False
When set to True, csv file is saved in current directory.
NEW FUNCTION: get_config
pycaret.classification
pycaret.regression
pycaret.clustering
pycaret.anomaly
pycaret.nlp
- This function is used to access global environment variables. Check docstring for the list of global var accessible.
NEW FUNCTION: set_config
pycaret.classification
pycaret.regression
pycaret.clustering
pycaret.anomaly
pycaret.nlp
- This function is used to reset global environment variables. Check docstring for the list of global var accessible.
NEW FUNCTION: get_system_logs
pycaret.classification
pycaret.regression
pycaret.clustering
pycaret.anomaly
pycaret.nlp
- This function is reads and print 'logs.log' file from current active directory. logs.log is generated from
setup
is initialized in any module.