Cette page fait partie du cours de polytech PeiP1 et 2 Bio

13. Package Lazy Predict

Suivre le tutoriel suivant : Train all Classification or Regression models in one line of Python Code.

13.1. Installation

13.1.1. Méthode 1

Il suffit de lancer Anaconda Prompt sous Windows (ouvrir un terminal sous Linux) et exécuter la commande :

> pip install lazypredict

La trace de l'exécution figure ici.

13.1.2. Méthode 2

Une autre solution consiste à installer lazypredict à partir des sources depuis GitHub ou en obtenant le tarball.

On décompresse par exemple le tarball, puis on réalise l'installation :

> tar -xzf shankarpandala-lazypredict-v0.2.9-2-g9fea921.tar.gz
> cd shankarpandala-lazypredict-9fea921/
> python setup.py install

A partir de ce moment, l'utilisation de lazypredict provoque une erreur :

> python lazypredict_example.py 
Traceback (most recent call last):
  File "lazypredict_example.py", line 1, in 
    from lazypredict.Supervised import LazyClassifier
  File "/home/richer/anaconda3/envs/nn/lib/python3.6/site-packages/lazypredict-0.2.9-py3.6.egg/lazypredict/Supervised.py", line 16, in 
    from sklearn.utils.testing import all_estimators
ModuleNotFoundError: No module named 'sklearn.utils.testing'

Pour solutionner le problème il faut utiliser une version moins récente de scikit-learn :

> conda install scikit-learn=0.23.2

13.2. Application

Reproduire les exemples et essayez d'obtenir les mêmes résultats que ceux qui suivent :

13.2.1. Cancer du sein

Utiliser les classifieurs :

clf = LazyClassifier(verbose=0,ignore_warnings=True, custom_metric=None)
models,predictions = clf.fit(X_train, X_test, y_train, y_test)
print(models)

                              Accuracy  Balanced Accuracy  ROC AUC  F1 Score  Time Taken
Model                                                                                    
LinearSVC                          0.99               0.99     0.99      0.99        0.01
Perceptron                         0.99               0.98     0.98      0.99        0.01
LogisticRegression                 0.99               0.98     0.98      0.99        0.01
SVC                                0.98               0.98     0.98      0.98        0.01
XGBClassifier                      0.98               0.98     0.98      0.98        0.23
LabelPropagation                   0.98               0.97     0.97      0.98        0.06
LabelSpreading                     0.98               0.97     0.97      0.98        0.01
BaggingClassifier                  0.97               0.97     0.97      0.97        0.03
PassiveAggressiveClassifier        0.98               0.97     0.97      0.98        0.02
SGDClassifier                      0.98               0.97     0.97      0.98        0.01
RandomForestClassifier             0.97               0.97     0.97      0.97        0.11
CalibratedClassifierCV             0.98               0.97     0.97      0.98        0.02
QuadraticDiscriminantAnalysis      0.96               0.97     0.97      0.97        0.05
ExtraTreesClassifier               0.97               0.96     0.96      0.97        0.08
RidgeClassifierCV                  0.97               0.96     0.96      0.97        0.01
LGBMClassifier                     0.96               0.96     0.96      0.96        0.09
RidgeClassifier                    0.97               0.96     0.96      0.97        0.01
AdaBoostClassifier                 0.96               0.96     0.96      0.96        0.12
KNeighborsClassifier               0.96               0.96     0.96      0.96        0.01
BernoulliNB                        0.95               0.95     0.95      0.95        0.02
LinearDiscriminantAnalysis         0.96               0.95     0.95      0.96        0.08
GaussianNB                         0.95               0.95     0.95      0.95        0.01
NuSVC                              0.95               0.94     0.94      0.95        0.01
ExtraTreeClassifier                0.94               0.93     0.93      0.94        0.01
NearestCentroid                    0.95               0.93     0.93      0.95        0.01
DecisionTreeClassifier             0.93               0.93     0.93      0.93        0.01
DummyClassifier                    0.53               0.50     0.50      0.53        0.01

13.2.2. Boston housing

Utiliser les régressions :

reg = LazyRegressor(verbose=0, ignore_warnings=False, custom_metric=None)
models, predictions = reg.fit(X_train, X_test, y_train, y_test)
print(models)

                              Adjusted R-Squared  R-Squared  RMSE  Time Taken
Model                                                                         
SVR                                          0.83       0.88  2.62        0.01
BaggingRegressor                             0.83       0.88  2.63        0.03
NuSVR                                        0.82       0.86  2.76        0.02
RandomForestRegressor                        0.81       0.86  2.78        0.22
XGBRegressor                                 0.81       0.86  2.79        0.08
GradientBoostingRegressor                    0.81       0.86  2.84        0.10
ExtraTreesRegressor                          0.79       0.84  2.98        0.13
AdaBoostRegressor                            0.78       0.83  3.04        0.06
HistGradientBoostingRegressor                0.77       0.83  3.06        0.29
PoissonRegressor                             0.77       0.83  3.11        0.01
LGBMRegressor                                0.77       0.83  3.11        0.04
KNeighborsRegressor                          0.77       0.83  3.12        0.01
DecisionTreeRegressor                        0.65       0.74  3.79        0.01
MLPRegressor                                 0.65       0.74  3.80        0.30
HuberRegressor                               0.64       0.74  3.84        0.01
GammaRegressor                               0.64       0.73  3.88        0.01
LinearSVR                                    0.62       0.72  3.96        0.01
RidgeCV                                      0.62       0.72  3.97        0.01
BayesianRidge                                0.62       0.72  3.97        0.01
Ridge                                        0.62       0.72  3.97        0.01
TransformedTargetRegressor                   0.62       0.72  3.97        0.01
LinearRegression                             0.62       0.72  3.97        0.04
ElasticNetCV                                 0.62       0.72  3.98        0.04
LassoCV                                      0.62       0.72  3.98        0.04
LassoLarsIC                                  0.62       0.72  3.98        0.01
LassoLarsCV                                  0.62       0.72  3.98        0.02
Lars                                         0.61       0.72  3.99        0.04
LarsCV                                       0.61       0.71  4.02        0.02
SGDRegressor                                 0.60       0.70  4.07        0.01
TweedieRegressor                             0.59       0.70  4.12        0.01
GeneralizedLinearRegressor                   0.59       0.70  4.12        0.01
ElasticNet                                   0.58       0.69  4.16        0.02
Lasso                                        0.54       0.66  4.35        0.01
RANSACRegressor                              0.53       0.65  4.41        0.04
OrthogonalMatchingPursuitCV                  0.45       0.59  4.78        0.01
PassiveAggressiveRegressor                   0.37       0.54  5.09        0.01
GaussianProcessRegressor                     0.23       0.43  5.65        0.03
OrthogonalMatchingPursuit                    0.16       0.38  5.89        0.01
ExtraTreeRegressor                           0.08       0.32  6.17        0.01
DummyRegressor                              -0.38      -0.02  7.56        0.00
LassoLars                                   -0.38      -0.02  7.56        0.01
KernelRidge                                -11.50      -8.25 22.74        0.02