Skip to main content

A high level library gridsearch / cross evaluation library for scikit-learn

Project description

Build Status codecov Checked with mypy

Easy Grid Search / Cross Validation

From data to score in 4 lines of code.

This library allows you to quickly train machine learning classifiers by automatically splitting the dataset and using both grid search and cross validation in the training process. Users can either pass define the parameters themselves or let the GSCV object choose them automatically (based on the classifier).

This library is an extension of the scikit-learn project.

View on pypi


from sklearn.neural_network import MLPClassifier
from sklearn import datasets
from easy_gscv.classifiers import GSCV

# Create test dataset
iris = datasets.load_iris()
X =
y =
clf = MLPClassifier()

# Create model instance
gscv_model = GSCV(clf(), X, y)

# Get score


requires python 3.7+

pip install easy-gscv


from easy_gscv.models import GSCV
clf = LogisticRegression()
gscv_model = GSCV(
    clf(), X, y, cv=15, n_jobs=-1, params={
        'C': [10, 100],
        'penalty': ['l2']

No need to create separate train / test datasets, the model does this automatically on initialization. If no parameters are provided the grid search is performed on a default set. But these can be overridden.

The number of folds to be used for cross validation can be specified by using the cv keyword. To speed up the training process you can use the n_jobs parameter to set the number of cpu cores to use (or set it to -1 to use all available.)

The model accepts either sklearn classifiers or string values. You can get a list of valid classifiers by calling the 'classifiers' property. Passing string arguments to the GSCV object in turn saves you from having to import sklearn classifiers yourself.

gscv_model = GSCV('RandomForestClassifier',, X, y)




The grid search is performed on the training data. Use the score method to evaluate how well the model can be generalized by scoring it against the test dataset.



Returns the best scoring sklearn classifier (based on training data). As its a valid scikit-learn classifier, you can use it do anything that you could do with sklearn classifier.

The following classifiers are currently supported. With the eventual goal of supporting all scikit-learn classifiers in the future.

  • KNeighborsClassifier
  • RandomForestClassifier
  • GradientBoostingClassifier
  • MLPClassifier
  • LogisticRegression


As cross validation returns an average, it can be helpful to get a more detailed overview of the best scoring classifier.

This method returns a table like the one displayed below, which then can be used to further refine the choice or parameters for subsequent runs.

clf = KNeighborsClassifier()
gscv_model = GSCV(clf(), X, y)

0.965 (+/-0.026) for {'weights': 'uniform', 'n_neighbors': 3}
0.977 (+/-0.013) for {'weights': 'distance', 'n_neighbors': 3}
0.979 (+/-0.011) for {'weights': 'uniform', 'n_neighbors': 5}
0.979 (+/-0.011) for {'weights': 'distance', 'n_neighbors': 5}
0.976 (+/-0.018) for {'weights': 'uniform', 'n_neighbors': 8}
0.975 (+/-0.018) for {'weights': 'distance', 'n_neighbors': 8}
0.971 (+/-0.022) for {'weights': 'uniform', 'n_neighbors': 12}
0.973 (+/-0.024) for {'weights': 'distance', 'n_neighbors': 12}
0.973 (+/-0.025) for {'weights': 'uniform', 'n_neighbors': 15}

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

easy-gscv-0.2.tar.gz (7.5 kB view hashes)

Uploaded source

Built Distribution

easy_gscv-0.2-py3-none-any.whl (8.6 kB view hashes)

Uploaded py3

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Huawei Huawei PSF Sponsor Microsoft Microsoft PSF Sponsor NVIDIA NVIDIA PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page