MISTIC¶
Model Informed Feature Selection Through Importance and Contribution
MISTIC is a Python framework for building interpretable support vector machine ensembles. It connects reproducible cross-validation, kernel-aware feature selection, perturbation ranking, calibrated probability analysis, and local integrated-gradient explanations in one workflow.
What you can do¶
Select features with the model. Run forward or backward selection using rankings that combine changes in model objective with sample-level decision or probability perturbations.
Explain nonlinear SVMs. Inspect support vectors, global feature ranks, per-sample perturbations, gradients, and integrated gradients without replacing the trained SVM with a surrogate model.
Keep evaluation honest. Reuse controlled cross-validation splits during tuning and selection, then evaluate the frozen workflow once on untouched blind data.
from sklearn.svm import SVC
from mistic import cvSet, kernelWrapper, paramSet, score_svc, svmSet
splits = cvSet(X_train, y_train)
splits.classification(num_sets=5)
model = svmSet(
SVC(kernel="precomputed", probability=True),
splits,
score_svc().score,
kernel=kernelWrapper("rbf"),
)
model.tune_models([
paramSet(model={"C": 1.0}, kernel={"gamma": 0.1}),
])
predictions = model.predict(X_blind)
Where to begin¶
New to SVMs? Start with Support vector machine foundations. Ready to build a model? Follow Installation and setup, then choose a curated Example notebooks. For the concepts behind MISTIC’s ranking and explanation workflow, see The MISTIC framework.
Contents:
- Installation and setup
- The MISTIC framework
- Tutorials
- Support vector machine foundations
- Feature selection and perturbation analysis
- Deriving MISTIC’s feature-ranking metrics
- Forward and backward feature selection
- Interpretations and explanations
- Visualizing results and explanations
- Blind predictions: best practices
- Synthetic benchmark against scikit-learn models
- Suggested paths
- Example notebooks
- API reference