Files
2026-07-13 13:22:52 +08:00

44 lines
1.2 KiB
Python

import numpy as np
import pytest
import shap
# The following tests use shap.dependence_plot,
# which currently points to shap.plots._scatter.dependence_legacy
def test_random_dependence():
"""Make sure a dependence plot does not crash."""
shap.dependence_plot(0, np.random.randn(20, 5), np.random.randn(20, 5), show=False)
def test_random_dependence_no_interaction():
"""Make sure a dependence plot does not crash when we are not showing interactions."""
shap.dependence_plot(0, np.random.randn(20, 5), np.random.randn(20, 5), show=False, interaction_index=None)
def test_dependence_use_line_collection_bug():
"""Make sure a dependence plot does not crash."""
# GH 3368
sklearn = pytest.importorskip("sklearn")
X, y = shap.datasets.california(n_points=10)
X2 = shap.utils.sample(X, 2)
model = sklearn.linear_model.LinearRegression()
model.fit(X, y)
explainer = shap.Explainer(model.predict, X2)
shap_values = explainer(X2)
shap.partial_dependence_plot(
"MedInc",
model.predict,
X2,
model_expected_value=True,
feature_expected_value=True,
ice=False,
shap_values=shap_values[:1, :], # type: ignore[call-overload]
show=False,
)