def test_neighborhood_subgraph_pairwise_distance(): """Eigenvalue test for the neighborhood subgraph pairwise distance kernel.""" nspd_kernel = NeighborhoodSubgraphPairwiseDistance(verbose=verbose, normalize=normalize) if verbose: print_kernel("NSPD", nspd_kernel, dataset_tr, dataset_te) else: positive_eig(nspd_kernel, dataset)
def test_neighborhood_subgraph_pairwise_distance(): """Picklability test for the Neighborhood Subgraph Pairwise Distance kernel [+ generic-wrapper].""" train, _ = generate_dataset(n_graphs=100, r_vertices=(5, 10), r_connectivity=(0.4, 0.8), r_weight_edges=(1, 1), n_graphs_test=40, random_state=rs, features=('nl', 5, 'el', 4)) nspd_kernel = NeighborhoodSubgraphPairwiseDistance(verbose=verbose, normalize=normalize) gk = GraphKernel( kernel={"name": "neighborhood_subgraph_pairwise_distance"}, verbose=verbose, normalize=normalize) nspd_kernel.fit(train) assert is_picklable(nspd_kernel) gk.fit(train) assert is_picklable(gk)
def test_neighborhood_subgraph_pairwise_distance(): """Random input test for the Neighborhood Subgraph Pairwise Distance kernel [+ generic-wrapper].""" train, test = generate_dataset(n_graphs=100, r_vertices=(5, 10), r_connectivity=(0.4, 0.8), r_weight_edges=(1, 1), n_graphs_test=40, random_state=rs, features=('nl', 5, 'el', 4)) nspd_kernel = NeighborhoodSubgraphPairwiseDistance(verbose=verbose, normalize=normalize) gk = GraphKernel(kernel="NSPD", verbose=verbose, normalize=normalize) try: nspd_kernel.fit_transform(train) nspd_kernel.transform(test) gk.fit_transform(train) gk.transform(test) assert True except Exception as exception: assert False, exception
lambda: HadamardCode( n_iter=1, n_jobs=N_JOBS, normalize=NORMALIZING_GRAPH_KERNELS), "GK-HC-2": lambda: HadamardCode( n_iter=2, n_jobs=N_JOBS, normalize=NORMALIZING_GRAPH_KERNELS), "GK-HC-3": lambda: HadamardCode( n_iter=3, n_jobs=N_JOBS, normalize=NORMALIZING_GRAPH_KERNELS), "GK-HC-4": lambda: HadamardCode( n_iter=4, n_jobs=N_JOBS, normalize=NORMALIZING_GRAPH_KERNELS), "GK-HC-5": lambda: HadamardCode( n_iter=5, n_jobs=N_JOBS, normalize=NORMALIZING_GRAPH_KERNELS), "GK-NSPD": lambda: NeighborhoodSubgraphPairwiseDistance(normalize= NORMALIZING_GRAPH_KERNELS), "GK-WL-OA-1": lambda: WeisfeilerLehmanOptimalAssignment( n_iter=1, n_jobs=N_JOBS, normalize=NORMALIZING_GRAPH_KERNELS), "GK-WL-OA-2": lambda: WeisfeilerLehmanOptimalAssignment( n_iter=2, n_jobs=N_JOBS, normalize=NORMALIZING_GRAPH_KERNELS), "GK-WL-OA-3": lambda: WeisfeilerLehmanOptimalAssignment( n_iter=3, n_jobs=N_JOBS, normalize=NORMALIZING_GRAPH_KERNELS), "GK-WL-OA-4": lambda: WeisfeilerLehmanOptimalAssignment( n_iter=4, n_jobs=N_JOBS, normalize=NORMALIZING_GRAPH_KERNELS), "GK-WL-OA-5": lambda: WeisfeilerLehmanOptimalAssignment( n_iter=5, n_jobs=N_JOBS, normalize=NORMALIZING_GRAPH_KERNELS),
for i in range(n_samples): node_labels = dict() for j in range(height): for k in range(width): node_labels[j * height + k] = int(images[i, j, k] / 4) graphs.append( Graph(edges, node_labels=node_labels, edge_labels=edge_labels)) print("Splitting dataset into train/test (1000/100 instances)\n") graphs_train, graphs_test = graphs[:1000], graphs[1000:1100] y_train, y_test = y[:1000], y[1000:1100] # Initialize neighborhood subgraph pairwise distance kernel gk = NeighborhoodSubgraphPairwiseDistance(r=3, d=2) print("Computing kernel matrics\n") t0 = time.time() K_train = gk.fit_transform(graphs_train) K_test = gk.transform(graphs_test) print("done in %0.3fs\n" % (time.time() - t0)) print("Classifying digits\n") # Initialize SVM clf = SVC(kernel='precomputed') # Fit on the train Kernel clf.fit(K_train, y_train) # Predict and test.