in neural/linear/receptive_field.py [0:0]
def plot_weights(self, summarize=True, names_u=[]):
if len(names_u) == 0:
names_u = [
"U Channel " + str(channel_u)
for channel_u in range(self.n_channels_u)
]
if not summarize:
# plot forcing weights
fig, axes = plt.subplots(self.n_channels_u, 1, sharex=True)
for increment, channel_u in enumerate(
list(range(self.n_channels_u))):
axes[channel_u].set_title(names_u[channel_u] + " Weights")
weights = self.model.coef_[:, channel_u, :].T
axes[channel_u].plot(weights)
plt.xlabel("Lags")
plt.tight_layout()
plt.show()
plt.close()
if summarize:
fig, axes = plt.subplots(2, 1, figsize=(10, 5))
# forcing weights
for increment, channel_u in enumerate(
list(range(self.n_channels_u))):
weights = self.model.coef_[:, channel_u, :].T
axes[0].fill_between(
range(weights.shape[0]),
np.sum(weights**2, axis=1),
label=names_u[channel_u],
alpha=0.25)
axes[0].set_title("Forcing Weights over Lags")
axes[0].legend()
plt.tight_layout()
plt.show()
plt.close()