/lazypredict

Lazy Predict help build a lot of basic models without much code and helps understand which models works better without any parameter tuning

Primary LanguagePythonMIT LicenseMIT

Lazy Predict

Documentation Status Downloads CodeFactor

Lazy Predict helps build a lot of basic models without much code and helps understand which models works better without any parameter tuning.

Installation

To install Lazy Predict:

pip install lazypredict

Usage

To use Lazy Predict in a project:

import lazypredict

Classification

Example

from lazypredict.Supervised import LazyClassifier
from sklearn.datasets import load_breast_cancer
from sklearn.model_selection import train_test_split

data = load_breast_cancer()
X = data.data
y= data.target

X_train, X_test, y_train, y_test = train_test_split(X, y,test_size=.5,random_state =123)

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

print(models)


| Model                          |   Accuracy |   Balanced Accuracy |   ROC AUC |   F1 Score |   Time Taken |
|:-------------------------------|-----------:|--------------------:|----------:|-----------:|-------------:|
| LinearSVC                      |   0.989474 |            0.987544 |  0.987544 |   0.989462 |    0.0150008 |
| SGDClassifier                  |   0.989474 |            0.987544 |  0.987544 |   0.989462 |    0.0109992 |
| MLPClassifier                  |   0.985965 |            0.986904 |  0.986904 |   0.985994 |    0.426     |
| Perceptron                     |   0.985965 |            0.984797 |  0.984797 |   0.985965 |    0.0120046 |
| LogisticRegression             |   0.985965 |            0.98269  |  0.98269  |   0.985934 |    0.0200036 |
| LogisticRegressionCV           |   0.985965 |            0.98269  |  0.98269  |   0.985934 |    0.262997  |
| SVC                            |   0.982456 |            0.979942 |  0.979942 |   0.982437 |    0.0140011 |
| CalibratedClassifierCV         |   0.982456 |            0.975728 |  0.975728 |   0.982357 |    0.0350015 |
| PassiveAggressiveClassifier    |   0.975439 |            0.974448 |  0.974448 |   0.975464 |    0.0130005 |
| LabelPropagation               |   0.975439 |            0.974448 |  0.974448 |   0.975464 |    0.0429988 |
| LabelSpreading                 |   0.975439 |            0.974448 |  0.974448 |   0.975464 |    0.0310006 |
| RandomForestClassifier         |   0.97193  |            0.969594 |  0.969594 |   0.97193  |    0.033     |
| GradientBoostingClassifier     |   0.97193  |            0.967486 |  0.967486 |   0.971869 |    0.166998  |
| QuadraticDiscriminantAnalysis  |   0.964912 |            0.966206 |  0.966206 |   0.965052 |    0.0119994 |
| HistGradientBoostingClassifier |   0.968421 |            0.964739 |  0.964739 |   0.968387 |    0.682003  |
| RidgeClassifierCV              |   0.97193  |            0.963272 |  0.963272 |   0.971736 |    0.0130029 |
| RidgeClassifier                |   0.968421 |            0.960525 |  0.960525 |   0.968242 |    0.0119977 |
| AdaBoostClassifier             |   0.961404 |            0.959245 |  0.959245 |   0.961444 |    0.204998  |
| ExtraTreesClassifier           |   0.961404 |            0.957138 |  0.957138 |   0.961362 |    0.0270066 |
| KNeighborsClassifier           |   0.961404 |            0.95503  |  0.95503  |   0.961276 |    0.0560005 |
| BaggingClassifier              |   0.947368 |            0.954577 |  0.954577 |   0.947882 |    0.0559971 |
| BernoulliNB                    |   0.950877 |            0.951003 |  0.951003 |   0.951072 |    0.0169988 |
| LinearDiscriminantAnalysis     |   0.961404 |            0.950816 |  0.950816 |   0.961089 |    0.0199995 |
| GaussianNB                     |   0.954386 |            0.949536 |  0.949536 |   0.954337 |    0.0139935 |
| NuSVC                          |   0.954386 |            0.943215 |  0.943215 |   0.954014 |    0.019989  |
| DecisionTreeClassifier         |   0.936842 |            0.933693 |  0.933693 |   0.936971 |    0.0170023 |
| NearestCentroid                |   0.947368 |            0.933506 |  0.933506 |   0.946801 |    0.0160074 |
| ExtraTreeClassifier            |   0.922807 |            0.912168 |  0.912168 |   0.922462 |    0.0109999 |
| CheckingClassifier             |   0.361404 |            0.5      |  0.5      |   0.191879 |    0.0170043 |
| DummyClassifier                |   0.512281 |            0.489598 |  0.489598 |   0.518924 |    0.0119965 |

Regression

Example

from lazypredict.Supervised import LazyRegressor
from sklearn import datasets
from sklearn.utils import shuffle
import numpy as np

boston = datasets.load_boston()
X, y = shuffle(boston.data, boston.target, random_state=13)
X = X.astype(np.float32)

offset = int(X.shape[0] * 0.9)

X_train, y_train = X[:offset], y[:offset]
X_test, y_test = X[offset:], y[offset:]

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

print(models)


| Model                         | Adjusted R-Squared | R-Squared |  RMSE | Time Taken |
|:------------------------------|-------------------:|----------:|------:|-----------:|
| 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.03 |
| RandomForestRegressor         |               0.81 |      0.86 |  2.78 |       0.21 |
| XGBRegressor                  |               0.81 |      0.86 |  2.79 |       0.06 |
| GradientBoostingRegressor     |               0.81 |      0.86 |  2.84 |       0.11 |
| ExtraTreesRegressor           |               0.79 |      0.84 |  2.98 |       0.12 |
| AdaBoostRegressor             |               0.78 |      0.83 |  3.04 |       0.07 |
| HistGradientBoostingRegressor |               0.77 |      0.83 |  3.06 |       0.17 |
| PoissonRegressor              |               0.77 |      0.83 |  3.11 |       0.01 |
| LGBMRegressor                 |               0.77 |      0.83 |  3.11 |       0.07 |
| 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 |       1.63 |
| 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.01 |
| ElasticNetCV                  |               0.62 |      0.72 |  3.98 |       0.04 |
| LassoCV                       |               0.62 |      0.72 |  3.98 |       0.06 |
| 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.01 |
| LarsCV                        |               0.61 |      0.71 |  4.02 |       0.04 |
| 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.01 |
| Lasso                         |               0.54 |      0.66 |  4.35 |       0.02 |
| RANSACRegressor               |               0.53 |      0.65 |  4.41 |       0.04 |
| OrthogonalMatchingPursuitCV   |               0.45 |      0.59 |  4.78 |       0.02 |
| 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.01 |
| LassoLars                     |              -0.38 |     -0.02 |  7.56 |       0.01 |
| KernelRidge                   |             -11.50 |     -8.25 | 22.74 |       0.01 |

Warning

Regression and Classification are replaced with LazyRegressor and LazyClassifier. Regression and Classification classes will be removed in next release