EBM model serialization to ONNX
Project description
Ebm2onnx converts EBM models to ONNX. It allows to run an EBM model on any ONNX compliant runtime.
Features
Binary classification
Regression
Continuous, nominal, and ordinal variables
N-way interactions
Multi-class classification (support is still experimental in EBM)
Expose predictions probabilities
Expose local explanations
The export of the models is tested against ONNX Runtime.
Get Started
Train an EBM model:
# prepare dataset
df = pd.read_csv('titanic_train.csv')
df = df.dropna()
feature_columns = ['Age', 'Fare', 'Pclass', 'Embarked']
label_column = "Survived"
y = df[[label_column]]
le = LabelEncoder()
y_enc = le.fit_transform(y)
x = df[feature_columns]
x_train, x_test, y_train, y_test = train_test_split(x, y_enc)
# train an EBM model
model = ExplainableBoostingClassifier(
feature_types=['continuous', 'continuous', 'continuous', 'nominal'],
)
model.fit(x_train, y_train)
Then you can convert it to ONNX in a single function call:
import onnx
import ebm2onnx
onnx_model = ebm2onnx.to_onnx(
model,
ebm2onnx.get_dtype_from_pandas(x_train),
)
onnx.save_model(onnx_model, 'ebm_model.onnx')
If your dataset is not a pandas dataframe, you can provide the features’ types directly:
import ebm2onnx
onnx_model = ebm2onnx.to_onnx(
model,
dtype={
'Age': 'double',
'Fare': 'double',
'Pclass': 'int',
'Embarked': 'str',
}
)
onnx.save_model(onnx_model, 'ebm_model.onnx')
Try it live
You can live test the model conversion.
You can live test local explanations.
Supporting organizations
The following organizations are supporting Ebm2onnx:
SoftAtHome: Main supporter of Ebm2onnx development.
InterpretML: Ebm2onnx is hosted under the umbrella of the InterpretML organization.
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
File details
Details for the file ebm2onnx-3.1.0.tar.gz
.
File metadata
- Download URL: ebm2onnx-3.1.0.tar.gz
- Upload date:
- Size: 15.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.10.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2096350c28ba1cd2c75bc5d1c4cd6e0b88199c040c5049e375b35d0d89bd7529 |
|
MD5 | 55229c8cd1fe4265af22683d1f6fa9f8 |
|
BLAKE2b-256 | 61c356b3b1bb2507c8a750e869f7efeb35f75973d0ab4d1ecc1c7e4452886705 |