Skip to main content

Spark acceleration for Scikit-Learn cross validation techniques

Project description

Spark acceleration for Scikit-Learn

This project is a major re-write of the spark-sklearn project, which seems to no longer be under development. It focuses specifically on the acceleration of Scikit-Learn's cross validation functionality using PySpark.

Improvements over spark-sklearn

The functionality is based on sklearn.model_selection module rather than the deprecated and soon to be removed sklearn.grid_search. The new versions contain several nicer features and scikit-spark maintains full compatibility.

Installation

The package can be installed through pip:

pip install scikit-spark

It has so far only been tested with Spark 2.2.0 and up, but may work with older versions.

Usage

The functionality here is meant to as closely resemble using Scikit-Learn as possible. The only differences are the import and that the first argument in the constructor should be a SparkSession as shown below.

This example is adapted from the Scikit-Learn documentation. It instantiates a local SparkSession, and distributes the cross validation folds and iterations using this. In actual use, to get the benefit of this package it should be used distributed across several machines with Spark as running it locally is slower than the Scikit-Learn parallelisation implementation.

from sklearn import svm, datasets
from pyspark.sql import SparkSession

iris = datasets.load_iris()
parameters = {'kernel':('linear', 'rbf'), 'C':[1, 10]}
svc = svm.SVC()

spark = SparkSession.builder\
    .master("local[*]")\
    .appName("skspark-grid-search-doctests")\
    .getOrCreate()

# How to run grid search
from skspark.model_selection import GridSearchCV

gs = GridSearchCV(spark, svc, parameters)
gs.fit(iris.data, iris.target)

# How to run random search
from skspark.model_selection import RandomizedSearchCV

rs = RandomizedSearchCV(spark, svc, parameters)
rs.fit(iris.data, iris.target)

Current and upcoming functionality

  • Current
    • model_selection.RandomizedSearchCV
    • model_selection.GridSearchCV
  • Upcoming
    • model_selection.cross_val_predict
    • model_selection.cross_val_score

The docstrings are modifications of the Scikit-Learn ones and are still being converted to specifically refer to this project.

Performance optimisations

Reducing RAM usage

Coming soon

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

scikit-spark-0.1.0rc2.tar.gz (15.2 kB view details)

Uploaded Source

Built Distribution

scikit_spark-0.1.0rc2-py2-none-any.whl (28.1 kB view details)

Uploaded Python 2

File details

Details for the file scikit-spark-0.1.0rc2.tar.gz.

File metadata

File hashes

Hashes for scikit-spark-0.1.0rc2.tar.gz
Algorithm Hash digest
SHA256 676133c2a5aa5c73914abf5cac27c74e36d7cc06bd178a69da3341558fabc8b2
MD5 7d99fedb8b369f2f05103b4067dc1bf7
BLAKE2b-256 d60d91f304c9feb2280b4e4f43831781a7bdc32ceea69561daea2a7d27363399

See more details on using hashes here.

File details

Details for the file scikit_spark-0.1.0rc2-py2-none-any.whl.

File metadata

File hashes

Hashes for scikit_spark-0.1.0rc2-py2-none-any.whl
Algorithm Hash digest
SHA256 14515ce5ceb98768a42b959604eec2955b8ce563c87f2cc82fc74e2066f19010
MD5 ee8c9c4083d2eedba6aea7e0f2c2ea55
BLAKE2b-256 a4d432f0d3edabc33d0668c81c22704e840289a3f6229b01907015c87848cac5

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page