Export sklearn models to Json.
Project description
sklearn-export
This package is based on sklearn port from https://github.com/nok/sklearn-porter. I chose to build it because sklearn port saves data in matrix format. However, most popular algebra libraries are used to working with vectors. Then, sklearn-export saves the sklearn model data in Json format (as column vectors). Note that this is a beta version yet, then only some models and functionalities are supported.
New features (0.0.4)
Bug corrections and add support to SVR and LinearSVR.
Support
Class | Details |
---|---|
sklearn.svm.SVC | C-Support Vector Classification. The multiclass support is handled according to a one-vs-one scheme. |
sklearn.svm.NuSVC | Nu-Support Vector Classification. Similar to SVC but uses a parameter to control the number of support vectors. |
sklearn.svc.LinearSVC | Linear Support Vector Classification. |
sklearn.neural_network.MLPClassifier | Multi-layer Perceptron classifier. |
sklearn.neural_network.MLPRegressor | Multi-layer Perceptron regressor. |
sklearn.linear_model.LogisticRegression | Logistic Regression (aka logit, MaxEnt) classifier. |
sklearn.linear_model.LinearRegression | Ordinary least squares Linear Regression. |
sklearn.preprocessing.MinMaxScaler | Transforms features by scaling each feature to a given range. |
sklearn.preprocessing.StandardScaler | Standardize features by removing the mean and scaling to unit variance |
sklearn.svm.SVR | Epsilon-Support Vector Regression. |
sklearn.svm.LinearSVR | Linear Support Vector Regression. |
Observation: details where extracted from sklearn documentation.
Installation
We recommend to make a instalation using pip:
$ pip install sklearn_export
If you are using jupyter notebooks consider to install sklearn_export through a notebook cell. Then, you can type and execute the following:
import sys
!{sys.executable} -m pip install sklearn_export
Usage
Actually sklearn-export can save Classifiers, Regressions and some Scalers (see Support session).
Saving a Model or Scaler
The basic usage is to save a simple model.
# Basic imports
from sklearn.datasets import load_iris
from sklearn_export import Export
from sklearn.neural_network import MLPRegressor
# Load data and train model
samples = load_iris()
X, y = samples.data, samples.target
clf = MLPRegressor()
clf.fit(X, y)
# Save using sklearn_export
export = Export(clf)
export.to_json()
The result is a Json file that can be load in any language.
Saving a Model and a Scaler
The sklearn-export can also save more then one class in the same Json. This is usefull to store a Classifier and a Scaler (for example). To be honest, actually is only possible to store a pair Model and Scaler.
# Basic imports
from sklearn.datasets import load_iris
from sklearn_export import Export
from sklearn.preprocessing import StandardScaler
from sklearn.neural_network import MLPRegressor
# Load data
samples = load_iris()
X, y = samples.data, samples.target
# Normalize data
scaler = StandardScaler()
Xz = scaler.fit_transform(X)
# Train model with normalized data
clf = MLPRegressor()
clf.fit(Xz, y)
# Save model and scaler using sklearn_export
export = Export([scaler, clf])
export.to_json()
The result is a Json file that contains information about a Model and a Scaler. The file can be load in any language.
Extra options
The method to_json()
also support some other parameters:
Parameter | Details | Default |
---|---|---|
filename |
Name of the output Json file | data.json |
directory |
Path to save the file | . |
with_md5_hash |
Name of the output Json file | False |
Questions
If you have any question please send me a mail charles26f@gmail.com.
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
Built Distribution
Hashes for sklearn_export-0.0.5-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 32a8dc777094795e42697b4673fa4e77bdb84a9b1f658d1957c9bd3892bfde74 |
|
MD5 | b2737191f870b4cb1a29aa379cdb916a |
|
BLAKE2b-256 | 9493e622e6460fbf6ea756cfca1b2950125fee0375aa83877badaf9e2918f30b |