def run_fit(seed): np.random.seed(seed) # load left_graph, left_labels = load_left() right_graph, right_labels = load_right() # fit SBM left, predict right sbm_fit_left = SBMEstimator(directed=True, loops=False) sbm_fit_left.fit(left_graph, y=left_labels) right_pred_mse = mse_on_other(sbm_fit_left, right_graph, right_labels) right_pred_likelihood = likelihood_on_other(sbm_fit_left, right_graph, right_labels) right_pred_sc_likelihood = likelihood_on_other( sbm_fit_left, right_graph, right_labels, clip=1 / (right_graph.size - right_graph.shape[0]), ) right_pred_dict = { "n_params": sbm_fit_left._n_parameters(), "mse": right_pred_mse, "likelihood": right_pred_likelihood, "zc_likelihood": right_pred_likelihood, "sc_likelihood": right_pred_sc_likelihood, } right_pred_df = pd.DataFrame(right_pred_dict, index=[0]) print(right_pred_df) save_obj(right_pred_df, file_obs, "right_pred_sbm_df") # fit SBM right, predict left sbm_fit_right = SBMEstimator(directed=True, loops=False) sbm_fit_right.fit(right_graph, y=right_labels) left_pred_mse = mse_on_other(sbm_fit_right, left_graph, left_labels) left_pred_likelihood = likelihood_on_other(sbm_fit_right, left_graph, left_labels) left_pred_sc_likelihood = likelihood_on_other( sbm_fit_right, left_graph, left_labels, clip=1 / (left_graph.size - left_graph.shape[0]), ) left_pred_dict = { "n_params": sbm_fit_right._n_parameters(), "mse": left_pred_mse, "likelihood": left_pred_likelihood, "zc_likelihood": left_pred_likelihood, "sc_likelihood": left_pred_sc_likelihood, } left_pred_df = pd.DataFrame(left_pred_dict, index=[0]) print(left_pred_df) save_obj(left_pred_df, file_obs, "left_pred_sbm_df") # sbm_fit_right = SBMEstimator(directed=True, loops=False) # sbm_fit_right.fit(right_graph, y=right_labels) # right_b = sbm_fit_right.block_p_ # # save_obj(sbm_left_df, file_obs, "sbm_left_df") return 0
def test_SBM_nparams(self): e = self.estimator.fit(self.graph, y=self.labels) assert e._n_parameters() == (4) e = SBMEstimator() e.fit(self.graph) assert e._n_parameters() == (4 + 1) e = SBMEstimator(directed=False) e.fit(self.graph) assert e._n_parameters() == (1 + 3)
palette=cmap, **plt_kws, ) plt.xlabel("# Params (SBM params for SBMs)") plt.ylabel("MSE") plt.title(f"Drosophila old MB left, directed ({experiment}:{run})") plt.savefig(save_dir / "rank_sbm_Klines.pdf", format="pdf", facecolor="w") #%% from graspy.models import SBMEstimator from graspy.datasets import load_drosophila_left, load_drosophila_right from graspy.utils import binarize sbm = SBMEstimator(directed=True, loops=False) left_adj, left_labels = load_drosophila_left(return_labels=True) left_adj = binarize(left_adj) sbm.fit(left_adj, y=left_labels) sbm.mse(left_adj) sbm._n_parameters() right_adj, right_labels = load_drosophila_right(return_labels=True) er = SBMEstimator(directed=True, loops=False, n_blocks=2) er.fit(left_adj) er.mse(left_adj) heatmap(left_adj, inner_hier_labels=er.vertex_assignments_, outer_hier_labels=left_labels) #%%