コード例 #1
0
        'node2vec_emb_folder':
        f"./saved_data/node2vec_emb/{dataset_name}_stability",
        'sdne_emb_folder': f"./saved_data/sdne_emb/{dataset_name}_stability",
    }
    params = SettingParam(**params)
    # params = read_config_file(filepath="./stability_configuration.ini", config_task="stability")
    is_reconstruction_mAP = True
    k_query = [100, 200, 500, 1000, 2000, 4000, 6000, 8000, 10000]
    # ==================== Data =========================
    graphs, idx2node = read_dynamic_graph(folder_path=params.dataset_folder,
                                          limit=None,
                                          convert_to_idx=True)

    print("Origin graphs:")
    for i, g in enumerate(graphs):
        print_graph_stats(g, i, end="\t")
        print(f"Isolate nodes: {nx.number_of_isolates(g)}")
        # draw_graph(g, limit_node=25)

    # ========= DynGEM ===========
    if params.is_dyge:
        print("=============== DynGEM ============")
        # -------- Training ----------
        dy_embeddings = load_dy_embeddings(params.dyge_emb_folder)
        if is_reconstruction_mAP:
            for i, g in enumerate(graphs):
                reconstruction_prec = reconstruction_precision_k(
                    embedding=dy_embeddings[i], graph=g, k_query=k_query)
                print(reconstruction_prec)

    # ============== Node2Vec ============
コード例 #2
0
    def save_embedding(self, filepath):
        if self.embedding is None:
            self.embedding = self.get_embedding()
        with open(filepath, 'wb') as fp:
            pickle.dump(self.embedding, fp)

    def load_embedding(self, filepath):
        with open(filepath, 'rb') as fp:
            self.embedding = pickle.load(fp)
        return self.embedding


if __name__ == "__main__":
    # G = get_graph_from_file(filename="../data/email-eu/email-Eu-core.txt")
    G = nx.gnm_random_graph(n=40, m=100, seed=6)
    print_graph_stats(G)
    pos = nx.spring_layout(G, seed=6)
    draw_graph(G, limit_node=50, pos=pos)
    # print(G.edges)

    embedding_dim = 4

    g_hidden_df, hidden_G = preprocessing_graph_for_link_prediction(
        G=G, drop_node_percent=0.2, edge_rate=0.1)

    ge = TStaticGE(G=hidden_G,
                   embedding_dim=embedding_dim,
                   hidden_dims=[16, 8],
                   l2=1e-5,
                   alpha=0.2,
                   beta=10,