Blend Models
Blending models is a method of ensembling which uses consensus among estimators to generate final predictions. The idea behind blending is to combine different machine learning algorithms and use a majority vote or the average predicted probabilities in case of classification to predict the final outcome. Blending models in PyCaret is as simple as writing blend_models. This function can be used to blend specific trained models that can be passed using estimator_list parameter within blend_models or if no list is passed, it will use all the models in model library. In case of Classification, method parameter can be used to define ‘soft‘ or ‘hard‘ where soft uses predicted probabilities for voting and hard uses predicted labels. This functions returns a table with k-fold cross validated scores of common evaluation metrics along with trained model object. The evaluation metrics used are:
- Classification: Accuracy, AUC, Recall, Precision, F1, Kappa, MCC
- Regression: MAE, MSE, RMSE, R2, RMSLE, MAPE
The number of folds can be defined using fold parameter within blend_models function. By default, the fold is set to 10. All the metrics are rounded to 4 decimals by default by can be changed using round parameter within blend_models.
This function is only available in pycaret.classification and pycaret.regression modules.
Classification Example
Code
# Importing dataset from pycaret.datasets import get_data diabetes = get_data('diabetes') # Importing module and initializing setup from pycaret.classification import * clf1 = setup(data = diabetes, target = 'Class variable') # train a votingclassifier on all models in library blender = blend_models() # train a voting classifier on specific models dt = create_model('dt') rf = create_model('rf') adaboost = create_model('ada') blender_specific = blend_models(estimator_list = [dt,rf,adaboost], method = 'soft') # train a voting classifier dynamically blender_specific = blend_models(estimator_list = compare_models(n_select = 5), method = 'hard')
Sample Output
Regression Example
Code
# Importing dataset from pycaret.datasets import get_data boston = get_data('boston') # Importing module and initializing setup from pycaret.regression import * reg1 = setup(data = boston, target = 'medv') # train a voting regressor on all models in library blender = blend_models() # train a voting regressoron specific models dt = create_model('dt') rf = create_model('rf') adaboost = create_model('ada') blender_specific = blend_models(estimator_list = [dt,rf,adaboost]) # train a voting regressor dynamically blender_specific = blend_models(estimator_list = compare_models(n_select = 5))
Sample Output
Try this next
Was this page helpful?
GitHub