def main():
    emb = n2v.Node2VecPathSnapEmbGensim()
    graphs = [gc.Graph.init_facebook_wosn_2009_snowball_sampled_2000()]

    feature_type = ft.FeatureType.DIFF_BIN_WITH_DIM
    diff_type = dt.DiffType.DIFFERENCE
    num_bins = 10
    for graph in graphs:
        # base_dir = "/run/user/1002/gvfs/sftp:host=alpha/home/mellers/"
        save_info = sl.MemoryAccess(graph=str(graph),
                                    embedding_type=str(emb),
                                    num_iterations=30,
                                    diff_type=diff_type,
                                    use_remote_data=False)

        classifier = [  # KNeighborsClassifier(),
            # SVC(kernel="linear", probability=True),
            # DecisionTreeClassifier(),
            # RandomForestClassifier(),
            # AdaBoostClassifier(),
            # GaussianNB(),
            MLPClassifier(max_iter=100000, hidden_layer_sizes=(
                100,
                100,
            ))
        ]

        test(save_info=save_info,
             graph=graph,
             feature_type=feature_type,
             num_of_bins=num_bins,
             classifier=classifier)
Beispiel #2
0
def run_experiments(
        graphs: List[gc.Graph],
        embeddings: List[abs_emb.Embedding],
        diff_types: List[dt.DiffType] = [
            dt.DiffType.MOST_SIMILAR_EMBS_DIFF_ONE_INIT_CONTINUE
        ],
        list_num_tr_graphs: List[int] = [10],
        list_num_iter: List[int] = [1],
        list_num_bins: List[int] = [10],
        feature_type: ft.FeatureType = ft.FeatureType.DIFF_BIN_WITH_DIM,
        num_test_eval: int = 5,
        num_eval_iter: int = 1):
    # what to train
    embeddings = list(embeddings)
    for graph in graphs:
        for embedding in embeddings:
            # how to train
            for num_tr_graphs in list_num_tr_graphs:
                num_iterations = max(num_eval_iter, max(list_num_iter))

                save_info = sl.MemoryAccess(
                    graph=str(graph),
                    embedding_type=str(embedding),
                    num_iterations=num_iterations,
                    diff_type=dt.DiffType.
                    MOST_SIMILAR_EMBS_DIFF_ONE_INIT_CONTINUE)

                tested_nodes, training_nodes = pe.train_embedding_per_graph(
                    graph=graph,
                    embedding=embedding,
                    save_info=save_info,
                    num_of_embeddings=num_iterations,
                    num_of_training_graphs=num_tr_graphs,
                    run_experiments_on_embedding=False,
                    num_of_test_evaluations_per_degree_level=num_test_eval)

            for diff_type in diff_types:
                save_info.set_diff_type(diff_type)
                for num_iter in list_num_iter:
                    save_info.set_num_iter(num_iter)
                    for num_bins in list_num_bins:
                        cf.compute_training_features(
                            save_info=save_info,
                            graph=graph,
                            feature_type=feature_type,
                            num_of_bins=num_bins,
                            list_nodes_to_predict=tested_nodes,
                            nodes_to_train_on=training_nodes,
                            num_eval_iterations=num_eval_iter)

                        te.test(save_info=save_info,
                                graph=graph,
                                feature_type=feature_type,
                                num_of_bins=num_bins,
                                limit_num_training_graphs=num_tr_graphs,
                                list_nodes_to_predict=tested_nodes,
                                nodes_to_train_on=training_nodes,
                                num_eval_iterations=num_eval_iter)
Beispiel #3
0
def main():
    emb = Line()
    graph = gc.Graph.init_karate_club_graph()
    save_info = sl.MemoryAccess(graph=str(graph),
                                embedding_type=str(emb),
                                num_iterations=1)
    emb.train_embedding(graph=graph,
                        save_info=save_info,
                        removed_nodes=[],
                        num_of_embeddings=3)

    return
def main():
    graph = gc.Graph.init_karate_club_graph()
    graph = gc.Graph.init_sampled_aps_pacs052030()
    embedding_function = n2v.Node2VecPathSnapEmbGensim()

    num_of_bins = 10
    num_iterations = 30
    # nodes_to_predict = list(graph.nodes)
    save_info = sl.MemoryAccess(graph=str(graph),
                                embedding_type=str(embedding_function),
                                num_iterations=num_iterations)

    for i in range(34):
        removed_nodes = [i]
        diff = save_info.load_diff_matrix(removed_nodes)
        create_feature_from_diff_bins_with_dim(diff=diff,
                                               removed_nodes=removed_nodes,
                                               original_graph=graph,
                                               num_of_bins=num_of_bins,
                                               save_info=save_info,
                                               save=True,
                                               check_for_existing=False)

        for j in range(34):
            if i != j:
                removed_nodes = [i, j]

                diff = save_info.load_diff_matrix(removed_nodes)
                create_feature_from_diff_bins_with_dim(
                    diff=diff,
                    removed_nodes=removed_nodes,
                    original_graph=graph,
                    num_of_bins=num_of_bins,
                    save_info=save_info,
                    save=True,
                    check_for_existing=False)
Beispiel #5
0
    if save:
        save_info.save_distance_matrix(removed_nodes, iteration, dm)

    return dm


if __name__ == '__main__':
    import embeddings.transE as em_transe
    from embeddings import node2vec_gensim as em_node2vec
    import networkx as nx

    graph = nx.karate_club_graph()

    embedding_function = em_transe.train_transe_embedding
    save_info = sl.MemoryAccess(graph=str(graph),
                                embedding_type="TransE",
                                num_iterations=30)

    embedding_transe = em_transe.train_transe_embedding_from_networkx(
        nx.karate_club_graph(),
        save_info=save_info,
        removed_nodes=[],
        iteration=0)
    dm_transe = calc_distances(model=embedding_transe,
                               graph=graph,
                               save_info=save_info,
                               removed_nodes=[],
                               iteration=0,
                               save=False)

    embedding_node2vec = em_node2vec.train_node2vec_embedding(
Beispiel #6
0
                    func_p(i)
                '''
            else:
                if num_features == 0:
                    raise ValueError(
                        "no embeddings found to create training features for")
                else:
                    print(
                        f"All features are already trained. Number of training features {num_features}"
                    )


if __name__ == '__main__':
    import embeddings.node2vec_felix as n2v

    graph = gc.Graph.init_karate_club_graph()
    emb = n2v.Node2VecF()

    save_info = sl.MemoryAccess(
        graph=str(graph),
        embedding_type="Node2Vec",
        num_iterations=30,
        diff_type=dt.DiffType.MOST_SIMILAR_EMBS_DIFF_ONE_INIT_CONTINUE.
        set_iter(5))

    compute_training_features(save_info=save_info,
                              graph=graph,
                              num_of_bins=10,
                              list_nodes_to_predict=[0],
                              nodes_to_train_on={0: [1, 2]})
Beispiel #7
0
                                      dim: int,
                                      walk_length: int,
                                      num_of_walks_per_node: int,
                                      window_size: int,
                                      emb_description: str = None,
                                      return_embedding: bool = False,
                                      graph: Graph = None):
    pass


if __name__ == "__main__":
    os.chdir("..")

    removed_node = 6
    num_of_embeddings = 1

    emb = Node2VecPathSnapEmbGensim()
    base_graph = Graph.init_karate_club_graph()

    graph = base_graph.delete_node(removed_node)
    save_info = sl.MemoryAccess(graph=str(graph),
                                embedding_type="Node2Vec_Test",
                                num_iterations=num_of_embeddings)

    emb.train_embedding(graph=graph,
                        save_info=save_info,
                        removed_nodes=[removed_node],
                        num_of_embeddings=num_of_embeddings)
    # res = emb.load_embedding(graph=graph,save_info=save_info,iteration=0)
    # print(res)