This package is based on sklearn porter from https://github.com/nok/sklearn-porter. We choose to build it because sklearn porter saves data in matrix format. However, many popular algebra libraries (e.g., blas and lapack) are used to work with vectors. Then, sklearn-export saves the sklearn model data in Json format (matrices are stored in column major order). Note that, this is a beta version yet, then only some models and functionalities are supported.
The code was optimized and now it works with sklearn >= 0.24. Some complete examples were added (see Complete Examples section).
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 were extracted from sklearn documentation.
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
Actually sklearn-export can save Classifiers, Regressions and some Scalers (see Support session).
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)
result = export.to_json()
The result is a JSON file that can be loaded in any programing language that supports JSON.
Some complete examples are provided here.
The sklearn-export can also save more then one model in the same JSON file. This is usefull when you need to store a Classifier and a Scaler (for example). Currently, it is only possible to export a Model and a Scaler, but future upgrades will include multiple models.
# 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 a model and a scaler using sklearn_export
export = Export([scaler, clf])
result = export.to_json()
The result is a Json file that contains information about a Model and a Scaler. The file can be loaded in any programing language that supports JSON files.
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 |
Include md5 hash in file name | False |
If you have any question please send me an email charles26f@gmail.com.