| name | model-explainer |
| description | Model interpretability and explainability using SHAP, LIME, feature importance, and partial dependence plots. Activates for "explain model", "model interpretability", "SHAP", "LIME", "feature importance", "why prediction", "model explanation". Generates human-readable explanations for model predictions, critical for trust, debugging, and regulatory compliance.
|
Model Explainer
Overview
Makes black-box models interpretable. Explains why models make specific predictions, which features matter most, and how features interact. Critical for trust, debugging, and regulatory compliance.
Why Explainability Matters
- Trust: Stakeholders trust models they understand
- Debugging: Find model weaknesses and biases
- Compliance: GDPR, fair lending laws require explanations
- Improvement: Understand what to improve
- Safety: Detect when model might fail
Explanation Types
1. Global Explanations (Model-Level)
Feature Importance:
from specweave import explain_model
explainer = explain_model(
model=trained_model,
X_train=X_train,
increment="0042"
)
importance = explainer.feature_importance()
Output:
Top Features (Global):
1. transaction_amount (importance: 0.35)
2. user_history_days (importance: 0.22)
3. merchant_reputation (importance: 0.18)
4. time_since_last_transaction (importance: 0.15)
5. device_type (importance: 0.10)
Partial Dependence Plots:
explainer.partial_dependence(feature="transaction_amount")
2. Local Explanations (Prediction-Level)
SHAP Values:
explanation = explainer.explain_prediction(X_sample)
Output:
Prediction: FRAUD (probability: 0.92)
Why?
+ transaction_amount=5000 → +0.45 (high amount increases fraud risk)
+ user_history_days=2 → +0.30 (new user increases risk)
+ merchant_reputation=low → +0.25 (suspicious merchant)
- time_since_last_transaction=1hr → -0.08 (recent activity normal)
Base prediction: 0.10
Final prediction: 0.92
LIME Explanations:
lime_exp = explainer.lime_explanation(X_sample)
Usage in SpecWeave
from specweave import ModelExplainer
explainer = ModelExplainer(
model=model,
X_train=X_train,
feature_names=feature_names,
increment="0042"
)
explainer.generate_all_reports()
Real-World Examples
Example 1: Fraud Detection
transaction = {
"amount": 5000,
"user_age_days": 2,
"merchant": "new_merchant_xyz"
}
explanation = explainer.explain(transaction)
print(explanation.to_text())
Output:
FRAUD ALERT (92% confidence)
Main factors:
1. Large transaction amount ($5000) - Very unusual for new users
2. Account only 2 days old - Fraud pattern
3. Merchant has low reputation score - Red flag
If this is legitimate:
- User should verify identity
- Merchant should be manually reviewed
Example 2: Loan Approval
applicant = {
"income": 45000,
"credit_score": 620,
"debt_ratio": 0.45
}
explanation = explainer.explain(applicant)
print(explanation.to_text())
Output:
LOAN DENIED
Main reasons:
1. Credit score (620) below threshold (650) - Primary factor
2. High debt-to-income ratio (45%) - Risk indicator
3. Income ($45k) adequate but not strong
To improve approval chances:
- Increase credit score by 30+ points
- Reduce debt-to-income ratio below 40%
Regulatory Compliance
GDPR "Right to Explanation"
gdpr_explanation = explainer.gdpr_explanation(prediction)
Fair Lending Act
bias_report = explainer.fairness_report(
sensitive_features=["gender", "race", "age"]
)
Visualization Types
- Feature Importance Bar Chart
- SHAP Summary Plot (beeswarm)
- SHAP Waterfall (single prediction)
- Partial Dependence Plots
- Individual Conditional Expectation (ICE)
- Force Plots (interactive)
- Decision Trees (surrogate models)
Integration with SpecWeave
/ml:explain-model 0042
/ml:explain-prediction --increment 0042 --sample sample.json
/ml:fairness-check 0042
Explainability artifacts automatically included in increment documentation and COMPLETION-SUMMARY.
Best Practices
- Generate explanations for all production models - No "black boxes" in production
- Check for bias - Test sensitive attributes
- Document limitations - What model can't explain
- Validate explanations - Do they make domain sense?
- Make explanations accessible - Non-technical stakeholders should understand
Model explainability is non-negotiable for responsible AI deployment.