Nelze zobrazit bar graf s SHAP

0

Otázka

Jsem nový TVAR a snaží se použít to na vrcholu mé RandomForestClassifier. Tady je fragment kódu, poté už jsem běžel clf.fit(train_x, train_y):

explainer = shap.Explainer(clf)
shap_values = explainer(train_x.to_numpy()[0:5, :])
shap.summary_plot(shap_values, plot_type='bar')

Zde je výsledný obrázek: enter image description here

Nyní, tam jsou dva problémy s tímto. Jeden je, že to není bar děj, i když jsem nastavit plot_type parametr. Druhá je, že jsem se zdálo, že ztratil svou funkci jména nějak (a ano, oni existují na datové části rámců při volání clf.fit()).

Snažil jsem se nahradit poslední řádek s:

shap.summary_plot(shap_values, train_x.to_numpy()[0:5, :], plot_type='bar')

A že se nic nezměnilo. Také jsem se snažil nahradit ji následující, aby zjistil, jestli bych mohl alespoň obnovit své názvy prvků:

shap.summary_plot(shap_values, train_x.to_numpy()[0:5, :], feature_names=list(train_x.columns.values), plot_type='bar')

Ale to hodil chybu:

Traceback (most recent call last):
  File "sklearn_model_runs.py", line 41, in <module>
    main()
  File "sklearn_model_runs.py", line 38, in main
    shap.summary_plot(shap_values, train_x.to_numpy()[0:5, :], feature_names=list(train_x.columns.values), plot_type='bar')
  File "C:\Users\kapoo\anaconda3\envs\sci\lib\site-packages\shap\plots\_beeswarm.py", line 554, in summary_legacy
    feature_names=feature_names[sort_inds],
TypeError: only integer scalar arrays can be converted to a scalar index

Jsem trochu na rozpacích, v tomto bodě. Právě jsem to zkusil s 5 řadami sadu školení, ale chcete používat celou věc jednou jsem se dostat přes tuto překážku. Pokud to pomůže, klasifikátor měl 5 štítky a moje TVA verze je 0.40.0.

machine-learning python shap
2021-11-23 06:30:38
1

Nejlepší odpověď

0

Dobře, tady byl problém. Nahradit toto:

shap_values = explainer(train_x.to_numpy()[0:5, :])

S tímto:

shap_values = explainer.shap_values(train_x) # Use whole thing as dataframe

Pak můžete použít při kreslení:

feature_names=list(train_x.columns.values)

Dokumentace zde by měl opravdu být aktualizovány...

2021-11-23 23:55:54

V jiných jazycích

Tato stránka je v jiných jazycích

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................