コード例 #1
0
heatmap(adj, inner_hier_labels=labels, transform="simple-all")

# %% [markdown]
# #

import networkx as nx

minigraph = nx.from_numpy_array(P, nodelist=labels)

# %% [markdown]
# #

from src.traverse import to_markov_matrix

prob_mat = to_markov_matrix(adj)

prob_powers = [np.linalg.matrix_power(prob_mat, n) for n in range(1, 11)]

n_timesteps = 10
n_verts = np.sum(n_per_comm)
uni_labels = np.unique(labels)
prob_powers = np.array(prob_powers)
hist_mat = np.empty((n_verts, n_timesteps * len(uni_labels)))
for i, ul in enumerate(uni_labels):
    from_inds = np.where(labels == ul)[0]
    activations = prob_powers[:, from_inds, :]
    total_activation = activations.sum(axis=1)
    hist_mat[:, i * n_timesteps:(i + 1) * n_timesteps] = total_activation.T

plot_hist_mat = np.log10(hist_mat + 1)
コード例 #2
0
    ax=ax,
)

# %% [markdown]
# ##

embedder = AdjacencySpectralEmbed(n_components=None, n_elbows=2)
embed = embedder.fit_transform(adj)
embed = np.concatenate(embed, axis=-1)
pairplot(embed, labels=labels, palette="tab20")

# %% [markdown]
# ## Run paths
print(f"Running {n_init} random walks from each source node...")

transition_probs = to_markov_matrix(adj)

out_inds = np.where(labels == n_blocks - 1)[0]
source_inds = np.where(labels == 0)[0]


def rw_from_node(s):
    paths = []
    rw = RandomWalk(transition_probs,
                    stop_nodes=out_inds,
                    max_hops=10,
                    allow_loops=False)
    for n in range(n_init):
        rw.start(s)
        paths.append(rw.traversal_)
    return paths
コード例 #3
0
np.random.seed(88)
A, labels = sbm(community_sizes,
                block_probs,
                directed=True,
                loops=False,
                return_labels=True)
n_verts = A.shape[0]

heatmap(A, inner_hier_labels=labels, cbar=False)
# %% [markdown]
# ## Demonstrate the simplest random walk

from src.traverse import to_markov_matrix, RandomWalk

transition_probs = to_markov_matrix(A)  # row normalize!
rw = RandomWalk(transition_probs, allow_loops=True, stop_nodes=[], max_hops=10)

np.random.seed(8888)
rw.start(0)
print(rw.traversal_)  # this one stops at max hops
print()

np.random.seed(2222)
rw.start(0)
print(rw.traversal_
      )  # note that this one lands on a node with no output (41) and stops

# %% [markdown]
# ## Look what happens when we introduce `stop_nodes`
rw = RandomWalk(transition_probs, allow_loops=True, stop_nodes=[18])