В shap.Explainer() следует ли вводить классификатор или classifier.predict? Тогда как получить значения формы? [закрыто]Python

Программы на Python
Anonymous
В shap.Explainer() следует ли вводить классификатор или classifier.predict? Тогда как получить значения формы? [закрыто]

Сообщение Anonymous »

Я работаю с SHAP (Адитивные пояснения Шепли). Я понимаю, что рабочий процесс должен быть таким: разделить мои данные на обучение и тестирование, обучить мою модель, запустить объяснитель SHAP, получить значения SHAP.
Естественно, я видел коды, которые используют разные подходы, чтобы сделать то же самое (что-то вроде философии Perl, но хорошо). Я не могу уловить разницу между ними. Я прочитал документацию SHAP, но не смог понять правильный подход.
Я видел и то, и другое:
  • explainer = shap.Explainer(clf)
  • explainer = shap.Explainer (clf.predict, X train)
И позже, для получения значений формы, я видел:
  • explainer(X)
  • explainer(X_test)
  • explainer.shap_values(X_test) — Это единственное, в чем я понимаю разницу. Он возвращает массив numpy вместо объекта объяснения формы.
Ниже я скопировал несколько примеров, которые видел.
На пути к науке о данных:
X_train, X_test, y_train, y_test = train_test_split(X, y)
clf.fit(X_train, y_train)

explainer = shap.Explainer(clf.predict, X_test)
shap_values = explainer(X_test)

На официальной странице SHAP на GitHub (которая не является их документацией)
explainer = shap.Explainer(clf)
shap_values = explainer(X)

Гики для гиков и датакемп
X_train, X_test, y_train, y_test = train_test_split(X, y)
clf.fit(X_train, y_train)

explainer = shap.Explainer(clf)
shap_values = explainer(X_test)


Подробнее здесь: https://stackoverflow.com/questions/786 ... t-then-how

Вернуться в «Python»