| @@ -0,0 +1,87 @@ | |||||
| # -*- coding: utf-8 -*- | |||||
| """compute_graph_kernel.ipynb | |||||
| Automatically generated by Colaboratory. | |||||
| Original file is located at | |||||
| https://colab.research.google.com/drive/17Q2QCl9CAtDweGF8LiWnWoN2laeJqT0u | |||||
| **This script demonstrates how to compute a graph kernel.** | |||||
| --- | |||||
| **0. Install `graphkit-learn`.** | |||||
| """ | |||||
| """**1. Get dataset.**""" | |||||
| from gklearn.utils import Dataset | |||||
| # Predefined dataset name, use dataset "MUTAG". | |||||
| ds_name = 'MUTAG' | |||||
| # Initialize a Dataset. | |||||
| dataset = Dataset() | |||||
| # Load predefined dataset "MUTAG". | |||||
| dataset.load_predefined_dataset(ds_name) | |||||
| len(dataset.graphs) | |||||
| """**2. Compute graph kernel.**""" | |||||
| from gklearn.kernels import PathUpToH | |||||
| # Initailize parameters for graph kernel computation. | |||||
| kernel_options = {'depth': 3, | |||||
| 'k_func': 'MinMax', | |||||
| 'compute_method': 'trie' | |||||
| } | |||||
| # Initialize graph kernel. | |||||
| graph_kernel = PathUpToH(node_labels=dataset.node_labels, # list of node label names. | |||||
| edge_labels=dataset.edge_labels, # list of edge label names. | |||||
| ds_infos=dataset.get_dataset_infos(keys=['directed']), # dataset information required for computation. | |||||
| **kernel_options, # options for computation. | |||||
| ) | |||||
| print('done.') | |||||
| import multiprocessing | |||||
| import matplotlib.pyplot as plt | |||||
| # Compute Gram matrix. | |||||
| gram_matrix, run_time = graph_kernel.compute(dataset.graphs, | |||||
| parallel='imap_unordered', # or None. | |||||
| n_jobs=multiprocessing.cpu_count(), # number of parallel jobs. | |||||
| normalize=True, # whether to return normalized Gram matrix. | |||||
| verbose=2 # whether to print out results. | |||||
| ) | |||||
| # Print results. | |||||
| print() | |||||
| print(gram_matrix) | |||||
| print(run_time) | |||||
| plt.imshow(gram_matrix) | |||||
| import multiprocessing | |||||
| # Compute grah kernels between a graph and a list of graphs. | |||||
| kernel_list, run_time = graph_kernel.compute(dataset.graphs, # a list of graphs. | |||||
| dataset.graphs[0], # a single graph. | |||||
| parallel='imap_unordered', # or None. | |||||
| n_jobs=multiprocessing.cpu_count(), # number of parallel jobs. | |||||
| verbose=2 # whether to print out results. | |||||
| ) | |||||
| # Print results. | |||||
| print() | |||||
| print(kernel_list) | |||||
| print(run_time) | |||||
| import multiprocessing | |||||
| # Compute a grah kernel between two graphs. | |||||
| kernel, run_time = graph_kernel.compute(dataset.graphs[0], # a single graph. | |||||
| dataset.graphs[1], # another single graph. | |||||
| verbose=2 # whether to print out results. | |||||
| ) | |||||
| # Print results. | |||||
| print() | |||||
| print(kernel) | |||||
| print(run_time) | |||||