В этом PR мы изменяем параметры инициализации для ENC, чтобы пройти тесты shap (test_shap) в файле test_algoritthms.py
. Если оставить параметры инициализации как alpha = 0.0001
и l1_ratio=0.15
ZeroDivisionError
при вычислении shap возникнет этим .
Заполните эту проблему, чтобы определить причину сбоя теста и найти хороший способ избежать этой ошибки.
Я думаю, что это проблема. Я отправил https://github.com/slundberg/shap/issues/2000 для обсуждения. В краткосрочной перспективе, я думаю, мы можем сделать следующее:
KernelExplainer
для линейных моделей.explainer = shap.LinearExplainer(classifier, X, link=shap.links.logit)
Еще один неудачный тест:
В основном, используя alpha=0.5, l1_ratio=0.5
, что у нас было до этого , если мы добавим этот тест в 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
Тест не пройден:
Если мы изменим альфа и l1_ratio, он все равно не сработает.
Хорошо @ bchen1116 ,
Завершение с этим PR