A safe, transparent way to share and deploy scikit-learn models.
Project description
sklearn-json
Export scikit-learn model files to JSON for sharing or deploying predictive models with peace of mind.
Why sklearn-json?
Other methods for exporting scikit-learn models require Pickle or Joblib (based on Pickle). Serializing model files with Pickle provide a simple attack vector for malicious users-- they give an attacker the ability to execute arbitrary code wherever the file is deserialized. (For an example see: https://www.smartfile.com/blog/python-pickle-security-problems-and-solutions/).
sklearn-json is a safe and transparent solution for exporting scikit-learn model files.
Safe
Export model files to 100% JSON which cannot execute code on deserialization.
Transparent
Model files are serialized in JSON (i.e., not binary), so you have the ability to see exactly what's inside.
Getting Started
sklearn-json makes exporting model files to JSON simple.
Install
pip install sklearn-json
Example Usage
import sklearn_json as skljson
from sklearn.ensemble import RandomForestClassifier
model = RandomForestClassifier(n_estimators=10, max_depth=5, random_state=0).fit(X, y)
skljson.to_json(model, file_name)
deserialized_model = skljson.from_json(file_name)
deserialized_model.predict(X)
Features
The list of supported models is rapidly growing. If you have a request for a model or feature, please reach out to support@mlrequest.com.
sklearn-json requires scikit-learn >= 0.21.3.
Supported scikit-learn Models
-
Classification
sklearn.linear_model.LogisticRegression
sklearn.linear_model.Perceptron
sklearn.discriminant_analysis.LinearDiscriminantAnalysis
sklearn.discriminant_analysis.QuadraticDiscriminantAnalysis
sklearn.svm.SVC
sklearn.naive_bayes.GaussianNB
sklearn.naive_bayes.MultinomialNB
sklearn.naive_bayes.ComplementNB
sklearn.naive_bayes.BernoulliNB
sklearn.tree.DecisionTreeClassifier
sklearn.ensemble.RandomForestClassifier
sklearn.ensemble.GradientBoostingClassifier
sklearn.neural_network.MLPClassifier
-
Regression
sklearn.linear_model.LinearRegression
sklearn.linear_model.Ridge
sklearn.linear_model.Lasso
sklearn.svm.SVR
sklearn.tree.DecisionTreeRegressor
sklearn.ensemble.RandomForestRegressor
sklearn.ensemble.GradientBoostingRegressor
sklearn.neural_network.MLPRegressor
Project details
Release history Release notifications | RSS feed
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
File details
Details for the file sklearn-json-0.1.0.tar.gz
.
File metadata
- Download URL: sklearn-json-0.1.0.tar.gz
- Upload date:
- Size: 9.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/2.0.0 pkginfo/1.4.2 requests/2.21.0 setuptools/41.4.0 requests-toolbelt/0.9.1 tqdm/4.28.1 CPython/3.7.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9c7ab24064705adfa9fdea2b83645545559d58607501fd2328c8fae7f138ee25 |
|
MD5 | 1fe1a380448c6be73edb50b5b4fd31f7 |
|
BLAKE2b-256 | 95eb2097ec853072efec5a52a3ebdaaf70f3fae5d6df3c4dc050556397734509 |
File details
Details for the file sklearn_json-0.1.0-py3-none-any.whl
.
File metadata
- Download URL: sklearn_json-0.1.0-py3-none-any.whl
- Upload date:
- Size: 13.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/2.0.0 pkginfo/1.4.2 requests/2.21.0 setuptools/41.4.0 requests-toolbelt/0.9.1 tqdm/4.28.1 CPython/3.7.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | f676f388e5a935b419c7674279b6415de8a6416967a7279a3a7f44a86544ac2f |
|
MD5 | 7002ce8e085ec2330613180f66957654 |
|
BLAKE2b-256 | f7715fd22261cd303bf0c67f3ebdbb7bca8810f9c3345191e6686464dc5cc22e |