In dieser PR ändern wir die Init-Parameter für ENC, um die Shap-Tests (test_shap) in der Datei test_algoritthms.py
. Verlassen der init params als alpha = 0.0001
und l1_ratio=0.15
verursacht ein ZeroDivisionError
während Schap Berechnung, die wahrscheinlich verbunden ist dies .
Melden Sie dieses Problem, um festzustellen, warum der Test fehlschlägt, und finden Sie eine gute Möglichkeit, diesen Fehler zu vermeiden.
Ich denke, das ist ein Shaping-Problem. Ich habe https://github.com/slundberg/shap/issues/2000 zur Diskussion gestellt. Kurzfristig denke ich, können wir Folgendes tun:
KernelExplainer
für lineare Modelleexplainer = shap.LinearExplainer(classifier, X, link=shap.links.logit)
Ein weiterer fehlgeschlagener Test:
Am wichtigsten, mit alpha=0.5, l1_ratio=0.5
, das ist das, was wir vor haben diese , wenn wir diesen Test in hinzufügen evalml/tests/model_understanding_tests/prediction_explaination_tests/test_explainers.py
:
@pytest.mark.parametrize("estimator", ["Extra Trees Classifier", "Elastic Net Classifier"])
def test_elastic_net(estimator, fraud_100):
pytest.importorskip('imblearn', reason='Skipping test because imblearn not installed')
X, y = fraud_100
pipeline = BinaryClassificationPipeline(component_graph=["Imputer", "One Hot Encoder", "DateTime Featurization Component", estimator])
pipeline.fit(X=X, y=y)
pipeline.predict(X)
importance = explain_predictions(pipeline, X, y, indices_to_explain=[0], top_k_features=4)
assert report['feature_names'].isnull().sum() == 0
assert report['feature_values'].isnull().sum() == 0
Der Test schlägt fehl:
Wenn wir Alpha und l1_ratio ändern, schlägt es immer noch fehl.
Ok @bchen1116 , mach es.
Abschluss mit diesem PR