def test_RDPG_sample(self): np.random.seed(8888) g = self.graph p_mat = self.p_mat estimator = RDPGEstimator(n_components=2) estimator.fit(g) _test_sample(estimator, p_mat, atol=0.2, n_samples=200)
def test_RDPG_intputs(self): rdpge = RDPGEstimator() with pytest.raises(TypeError): RDPGEstimator(loops=6) with pytest.raises(ValueError): rdpge.fit(self.graph[:, :99]) with pytest.raises(ValueError): rdpge.fit(self.graph[..., np.newaxis]) with pytest.raises(TypeError): RDPGEstimator(ase_kws=5) with pytest.raises(TypeError): RDPGEstimator(diag_aug_weight="f") with pytest.raises(ValueError): RDPGEstimator(diag_aug_weight=-1) with pytest.raises(TypeError): RDPGEstimator(plus_c_weight="F") with pytest.raises(ValueError): RDPGEstimator(plus_c_weight=-1)
def estimate_rdpg(graph, n_components=None): estimator = RDPGEstimator(loops=False, n_components=n_components) estimator.fit(graph) if n_components is None: n_components = estimator.latent_.shape[0] # n_params = graph.shape[0] * n_components n_params = estimator._n_parameters() return estimator, n_params
def test_RDPG_nparams(self): n_verts = 1000 g = self.graph e = RDPGEstimator(n_components=2) e.fit(g) assert e._n_parameters() == n_verts * 2 g[100:, 50:] = 1 e = RDPGEstimator(n_components=2) e.fit(g) assert e._n_parameters() == n_verts * 4
def test_RDPG_fit(self): np.random.seed(8888) n_points = 2000 dists = np.random.uniform(0, 1, n_points) points = hardy_weinberg(dists) p_mat = points @ points.T p_mat -= np.diag(np.diag(p_mat)) g = sample_edges(p_mat) estimator = RDPGEstimator(loops=False, n_components=3) estimator.fit(g) assert_allclose(estimator.p_mat_, p_mat, atol=0.2)
from graspy.models import DCSBMEstimator, RDPGEstimator, SBMEstimator from graspy.plot import heatmap from src.data import load_right # Load data right_adj, right_labels = load_right() # Fit the models sbm = SBMEstimator(directed=True, loops=False) sbm.fit(right_adj, y=right_labels) dcsbm = DCSBMEstimator(degree_directed=False, directed=True, loops=False) dcsbm.fit(right_adj, y=right_labels) rdpg = RDPGEstimator(loops=False, n_components=3) rdpg.fit(right_adj) # Plotting np.random.seed(8888) cmap = mpl.cm.get_cmap("RdBu_r") center = 0 vmin = 0 vmax = 1 norm = mpl.colors.Normalize(0, 1) cc = np.linspace(0.5, 1, 256) cmap = mpl.colors.ListedColormap(cmap(cc)) heatmap_kws = dict( cbar=False, font_scale=1.4,
vmin=0, vmax=1, sort_nodes=True) plt.savefig("DCSBMProbabilityMatrix", bbox_inches='tight') heatmap(dcsbme.sample()[0], inner_hier_labels=labels, title="DCSBM sample", font_scale=1.5, sort_nodes=True) plt.savefig("DCSBMSample", bbox_inches='tight') rdpge = RDPGEstimator(loops=False) rdpge.fit(adj, y=labels) heatmap(rdpge.p_mat_, inner_hier_labels=labels, vmin=0, vmax=1, font_scale=1.5, title="RDPG probability matrix", sort_nodes=True ) plt.savefig("RDPGProbabilityMatrix", bbox_inches='tight') heatmap(rdpge.sample()[0], inner_hier_labels=labels, font_scale=1.5, title="RDPG sample",