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')
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.