Problem mit Shap -Werten und Wichtigkeitsdiagramme mit GaN -ModellPython

Python-Programme
Anonymous
 Problem mit Shap -Werten und Wichtigkeitsdiagramme mit GaN -Modell

Post by Anonymous »

Ich habe diesen Code geschrieben, um die Formwerte und die Wichtigkeit der Plotfunktion zu messen. Ich habe jedoch einen Fehler bekommen, wenn ich die Formwerte aufzunehmen habe. Ich habe das generierte Modell von Gen_Gru_Model_179.H5 verwendet. Mein Modell erwartet eine Form von (batch_size, time_steps, Funktionen), um Zeitreihenpreise vorherzusagen. Ist das Problem mit dem verwendeten Kerneltyp oder mit der verwendeten Dimension 3D?

Code: Select all

import shap
import tensorflow as tf
import numpy as np
import matplotlib.pyplot as plt

# Load the trained model
model = tf.keras.models.load_model('gen_GRU_model_179.h5')

# Load your X_test data
X_test = np.load("X_test.npy", allow_pickle=True)
X_train = np.load("X_train.npy", allow_pickle=True)
X_test = X_test[:50]
X_train = X_train[:50]

# Reshape X_test to 2D
X_test_reshaped = X_test.reshape(X_test.shape[0], -1)  # Reshape to (50, 48)

# Create a callable for the model's prediction
def model_predict(data):
data_reshaped = data.reshape(data.shape[0], X_test.shape[1], X_test.shape[2])  # Reshape back to 3D
return model.predict(data_reshaped)

# Select background data
background_data = X_test_reshaped[np.random.choice(X_test_reshaped.shape[0], size=50, replace=False)]

# Create a KernelExplainer
explainer = shap.KernelExplainer(model_predict, background_data)

# Calculate SHAP values
shap_values = explainer.shap_values(X_test_reshaped)

# Plot the feature importance
shap.summary_plot(shap_values, X_test_reshaped, feature_names=[f'Feature {i}' for i in range(X_test_reshaped.shape[1])])
< /code>
Der Fehler lautet: < /p>

TypeError                                 Traceback (most recent call last)
Cell In[143], line 33
30 shap_values = explainer.shap_values(X_test_reshaped)
32 # Plot the feature importance
---> 33 shap.summary_plot(shap_values, X_test_reshaped, feature_names=[f'Feature {i}' for i in range(X_test_reshaped.shape[1])])

File ~/miniconda3/envs/tensorflow/lib/python3.9/site-packages/shap/plots/_beeswarm.py:595, in summary_legacy(shap_values, features, feature_names, max_display, plot_type, color, axis_color, title, alpha, show, sort, color_bar, plot_size, layered_violin_max_num_bins, class_names, class_inds, color_bar_label, cmap, show_values_in_legend, use_log_scale)
591 proj_shap_values = shap_values[:, sort_inds[0], sort_inds]
592 proj_shap_values[:, 1:] *= 2  # because off diag effects are split in half
593 summary_legacy(
594     proj_shap_values, features[:, sort_inds] if features is not None else None,
--> 595     feature_names=feature_names[sort_inds],
596     sort=False, show=False, color_bar=False,
597     plot_size=None,
598     max_display=max_display
599 )
600 pl.xlim((slow, shigh))
601 pl.xlabel("")

TypeError: only integer scalar arrays can be converted to a scalar index

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post