{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "--- This is a regression problem ---\n", "\n", "1. Loading dataset from file...\n", "\n", "2. Calculating gram matrices. This could take a while...\n", "\n", " --- treelet kernel matrix of size 183 built in 0.47826528549194336 seconds ---\n", "\n", "gram matrix with parameters {} is: \n", "[[4.00000000e+00 2.60653066e+00 1.00000000e+00 ... 1.26641655e-14\n", " 1.26641655e-14 1.26641655e-14]\n", " [2.60653066e+00 6.00000000e+00 1.00000000e+00 ... 1.26641655e-14\n", " 1.26641655e-14 1.26641655e-14]\n", " [1.00000000e+00 1.00000000e+00 4.00000000e+00 ... 3.00000000e+00\n", " 3.00000000e+00 3.00000000e+00]\n", " ...\n", " [1.26641655e-14 1.26641655e-14 3.00000000e+00 ... 1.80000000e+01\n", " 1.30548713e+01 8.19020657e+00]\n", " [1.26641655e-14 1.26641655e-14 3.00000000e+00 ... 1.30548713e+01\n", " 2.20000000e+01 9.71901120e+00]\n", " [1.26641655e-14 1.26641655e-14 3.00000000e+00 ... 8.19020657e+00\n", " 9.71901120e+00 1.60000000e+01]]\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "\n", "3. Fitting and predicting using nested cross validation. This could really take a while...\n", "calculate performance: 0%| | 1/630 [00:00<01:12, 8.65it/s]" ] }, { "name": "stderr", "output_type": "stream", "text": [ "/home/ljia/.local/lib/python3.5/site-packages/sklearn/linear_model/ridge.py:154: UserWarning: Singular matrix in solving dual problem. Using least-squares solution instead.\n", " warnings.warn(\"Singular matrix in solving dual problem. Using \"\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " \n", "4. Getting final performances...\n", "\n", "best_params_out: [{}]\n", "best_params_in: [{'alpha': 1.584893192461114}]\n", "\n", "best_val_perf: 14.495962226690725\n", "best_val_std: 1.231113106094586\n", "final_performance: 14.486961234514974\n", "final_confidence: 3.0828755678322097\n", "train_performance: 7.445811458092056\n", "train_std: 0.44699023975297714\n", "\n", "time to calculate gram matrix with different hyperpapams: 0.48±nan\n", "time to calculate best gram matrix: 0.47826528549194336 s\n", "\n", "params train_perf valid_perf test_perf gram_matrix_time\n", "--------------------- ------------ ------------- -------------- ------------------\n", "{'alpha': '1.00e-01'} 80.89±188.06 270.73±507.22 566.39±2186.33 0.48\n", "{'alpha': '1.26e-01'} 42.51±97.80 163.73±364.07 140.89±312.95 0.48\n", "{'alpha': '1.58e-01'} 16.53±11.13 59.49±49.03 63.71±64.12 0.48\n", "{'alpha': '2.00e-01'} 24.75±39.36 113.35±310.71 69.50±80.80 0.48\n", "{'alpha': '2.51e-01'} 14.39±14.38 42.48±32.86 46.53±43.66 0.48\n", "{'alpha': '3.16e-01'} 15.52±20.51 47.37±70.76 54.82±97.04 0.48\n", "{'alpha': '3.98e-01'} 10.48±7.77 30.43±26.87 30.20±22.35 0.48\n", "{'alpha': '5.01e-01'} 9.16±7.71 24.96±26.10 29.34±42.29 0.48\n", "{'alpha': '6.31e-01'} 7.15±1.17 17.36±3.20 18.40±8.21 0.48\n", "{'alpha': '7.94e-01'} 6.95±0.76 15.87±2.10 16.51±6.11 0.48\n", "{'alpha': '1.00e+00'} 6.98±0.55 15.08±1.69 15.45±4.65 0.48\n", "{'alpha': '1.26e+00'} 7.20±0.61 14.81±2.06 14.97±3.73 0.48\n", "{'alpha': '1.58e+00'} 7.45±0.45 14.50±1.23 14.49±3.08 0.48\n", "{'alpha': '2.00e+00'} 7.86±0.44 14.53±1.02 14.37±2.75 0.48\n", "{'alpha': '2.51e+00'} 8.37±0.44 14.74±0.89 14.46±2.62 0.48\n", "{'alpha': '3.16e+00'} 9.00±0.43 15.10±0.78 14.71±2.63 0.48\n", "{'alpha': '3.98e+00'} 9.73±0.41 15.59±0.69 15.11±2.76 0.48\n", "{'alpha': '5.01e+00'} 10.57±0.39 16.20±0.61 15.65±2.95 0.48\n", "{'alpha': '6.31e+00'} 11.53±0.36 16.95±0.53 16.33±3.19 0.48\n", "{'alpha': '7.94e+00'} 12.64±0.33 17.85±0.47 17.18±3.46 0.48\n", "{'alpha': '1.00e+01'} 13.90±0.30 18.91±0.41 18.20±3.75 0.48\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "/usr/local/lib/python3.5/dist-packages/numpy/core/_methods.py:135: RuntimeWarning: Degrees of freedom <= 0 for slice\n", " keepdims=keepdims)\n", "/usr/local/lib/python3.5/dist-packages/numpy/core/_methods.py:127: RuntimeWarning: invalid value encountered in double_scalars\n", " ret = ret.dtype.type(ret / rcount)\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "calculate performance: 100%|██████████| 630/630 [01:10<00:00, 11.33it/s]" ] } ], "source": [ "%load_ext line_profiler\n", "%matplotlib inline\n", "import numpy as np\n", "import sys\n", "sys.path.insert(0, \"../\")\n", "from pygraph.utils.model_selection_precomputed import model_selection_for_precomputed_kernel\n", "from pygraph.kernels.treeletKernel import treeletkernel\n", "\n", "datafile = '../../../../datasets/acyclic/Acyclic/dataset_bps.ds'\n", "estimator = treeletkernel\n", "param_grid_precomputed = {}\n", "param_grid = {'alpha': np.logspace(-1, 1, num = 21, base = 10)}\n", "\n", "model_selection_for_precomputed_kernel(datafile, estimator, param_grid_precomputed, param_grid, \n", " 'regression', NUM_TRIALS=30)" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", " --- This is a regression problem ---\n", "\n", "\n", " Loading dataset from file...\n", "\n", " Calculating kernel matrix, this could take a while...\n", "\n", " --- treelet kernel matrix of size 185 built in 0.47543811798095703 seconds ---\n", "[[4.00000000e+00 2.60653066e+00 1.00000000e+00 ... 1.26641655e-14\n", " 1.26641655e-14 1.26641655e-14]\n", " [2.60653066e+00 6.00000000e+00 1.00000000e+00 ... 1.26641655e-14\n", " 1.26641655e-14 1.26641655e-14]\n", " [1.00000000e+00 1.00000000e+00 4.00000000e+00 ... 3.00000000e+00\n", " 3.00000000e+00 3.00000000e+00]\n", " ...\n", " [1.26641655e-14 1.26641655e-14 3.00000000e+00 ... 1.80000000e+01\n", " 1.30548713e+01 8.19020657e+00]\n", " [1.26641655e-14 1.26641655e-14 3.00000000e+00 ... 1.30548713e+01\n", " 2.20000000e+01 9.71901120e+00]\n", " [1.26641655e-14 1.26641655e-14 3.00000000e+00 ... 8.19020657e+00\n", " 9.71901120e+00 1.60000000e+01]]\n", "\n", " Starting calculate accuracy/rmse...\n", "calculate performance: 98%|█████████▊| 983/1000 [00:01<00:00, 796.45it/s]\n", " Mean performance on train set: 2.688029\n", "With standard deviation: 1.541623\n", "\n", " Mean performance on test set: 10.099738\n", "With standard deviation: 5.035844\n", "calculate performance: 100%|██████████| 1000/1000 [00:01<00:00, 745.11it/s]\n", "\n", "\n", " rmse_test std_test rmse_train std_train k_time\n", "----------- ---------- ------------ ----------- --------\n", " 10.0997 5.03584 2.68803 1.54162 0.475438\n" ] } ], "source": [ "%load_ext line_profiler\n", "\n", "import sys\n", "sys.path.insert(0, \"../\")\n", "from pygraph.utils.utils import kernel_train_test\n", "from pygraph.kernels.treeletKernel import treeletkernel\n", "\n", "datafile = '../../../../datasets/acyclic/Acyclic/dataset_bps.ds'\n", "kernel_file_path = 'kernelmatrices_path_acyclic/'\n", "\n", "kernel_para = dict(node_label = 'atom', edge_label = 'bond_type', labeled = True)\n", "\n", "kernel_train_test(datafile, kernel_file_path, treeletkernel, kernel_para, normalize = False)\n", "\n", "# %lprun -f treeletkernel \\\n", "# kernel_train_test(datafile, kernel_file_path, treeletkernel, kernel_para, normalize = False)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# results\n", "\n", "# with y normalization\n", " RMSE_test std_test RMSE_train std_train k_time\n", "----------- ---------- ------------ ----------- --------\n", " 8.3079 3.37838 2.90887 1.2679 0.500302\n", "\n", "# without y normalization\n", " RMSE_test std_test RMSE_train std_train k_time\n", "----------- ---------- ------------ ----------- --------\n", " 10.0997 5.03584 2.68803 1.54162 0.484171\n", "\n", " \n", "\n", "# G0 -> WL subtree h = 0\n", " rmse_test std_test rmse_train std_train k_time\n", "----------- ---------- ------------ ----------- --------\n", " 13.9223 2.88611 13.373 0.653301 0.186731\n", "\n", "# G0 U G1 U G6 U G8 U G13 -> WL subtree h = 1\n", " rmse_test std_test rmse_train std_train k_time\n", "----------- ---------- ------------ ----------- --------\n", " 8.97706 2.90771 6.7343 1.17505 0.223171\n", " \n", "# all patterns \\ { G3 U G4 U G5 U G10 } -> WL subtree h = 2 \n", " rmse_test std_test rmse_train std_train k_time\n", "----------- ---------- ------------ ----------- --------\n", " 7.31274 1.96289 3.73909 0.406267 0.294902\n", "\n", "# all patterns \\ { G4 U G5 } -> WL subtree h = 3\n", " rmse_test std_test rmse_train std_train k_time\n", "----------- ---------- ------------ ----------- --------\n", " 8.39977 2.78309 3.8606 1.58686 0.348912\n", "\n", "# all patterns \\ { G5 } \n", " rmse_test std_test rmse_train std_train k_time\n", "----------- ---------- ------------ ----------- --------\n", " 9.47647 4.22113 3.18029 1.5669 0.423638\n", " \n", " \n", " \n", "# G0, -> WL subtree h = 0\n", " rmse_test std_test rmse_train std_train k_time\n", "----------- ---------- ------------ ----------- --------\n", " 13.9223 2.88611 13.373 0.653301 0.186731 \n", " \n", "# G0 U G1 U G2 U G6 U G8 U G13 -> WL subtree h = 1\n", " rmse_test std_test rmse_train std_train k_time\n", "----------- ---------- ------------ ----------- --------\n", " 8.62431 2.54327 5.63422 0.255002 0.290797\n", " \n", "# all patterns \\ { G5 U G10 } -> WL subtree h = 2\n", " rmse_test std_test rmse_train std_train k_time\n", "----------- ---------- ------------ ----------- --------\n", " 10.1294 3.50275 3.69664 1.55116 0.418498" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "{0: 'C', 1: 'C', 2: 'C', 3: 'C', 4: 'C', 5: 'O', 6: 'O'}\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "{0: 'C', 1: 'C', 2: 'C', 3: 'C', 4: 'C', 5: 'C', 6: 'O', 7: 'O'}\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "\n", " pattern 0: [0, 1, 2, 3, 4, 5, 6, 7]\n", " treelet 0: ['C', 'C', 'C', 'C', 'C', 'C', 'O', 'O']\n", "\n", " pattern 1 : [[4, 0], [4, 1], [5, 4], [6, 2], [6, 5], [7, 3], [7, 5]]\n", " treelet 1 : ['1C1C', '1C1C', '1C1C', '1C1O', '1C1O', '1C1O', '1C1O']\n", "\n", " pattern 2 : [[1, 4, 0], [5, 4, 0], [5, 4, 1], [5, 6, 2], [5, 7, 3], [6, 5, 4], [7, 5, 4], [7, 5, 6]]\n", " treelet 2 : ['2C1C1C', '2C1C1C', '2C1C1C', '2C1O1C', '2C1O1C', '2C1C1O', '2C1C1O', '2O1C1O']\n", "\n", " pattern 3 : [[4, 5, 6, 2], [4, 5, 7, 3], [6, 5, 4, 0], [6, 5, 4, 1], [6, 5, 7, 3], [7, 5, 4, 0], [7, 5, 4, 1], [7, 5, 6, 2]]\n", " treelet 3 : ['3C1C1O1C', '3C1C1O1C', '3C1C1C1O', '3C1C1C1O', '3C1O1C1O', '3C1C1C1O', '3C1C1C1O', '3C1O1C1O']\n", "\n", " pattern 4 : [[2, 6, 5, 4, 0], [2, 6, 5, 4, 1], [3, 7, 5, 4, 0], [3, 7, 5, 4, 1], [3, 7, 5, 6, 2]]\n", " treelet 4 : ['4C1C1C1O1C', '4C1C1C1O1C', '4C1C1C1O1C', '4C1C1C1O1C', '4C1O1C1O1C']\n", "\n", " pattern 5 : []\n", " treelet 5 : []\n", "\n", " pattern 3 star: [[4, 0, 1, 5], [5, 4, 6, 7]]\n", " treelet 3 star: ['6CC1C1C1', '6CC1O1O1']\n", "\n", " pattern 4 star: []\n", " treelet 4 star: []\n", "\n", " pattern 5 star: []\n", " treelet 5 star: []\n", "\n", " pattern 7: [[4, 0, 1, 5, 6], [4, 0, 1, 5, 7], [5, 7, 6, 4, 0], [5, 7, 6, 4, 1], [5, 4, 7, 6, 2], [5, 4, 6, 7, 3]]\n", " treelet 7: ['7CC1C1C1O1', '7CC1C1C1O1', '7CO1O1C1C1', '7CO1O1C1C1', '7CC1O1O1C1', '7CC1O1O1C1']\n", "\n", " pattern 11: []\n", " treelet 11: []\n", "\n", " pattern 10: [[4, 0, 1, 5, 6, 2], [4, 0, 1, 5, 7, 3]]\n", " treelet 10: ['aCO1C1C1C1C1', 'aCO1C1C1C1C1']\n", "\n", " pattern 12: [[4, 0, 1, 5, 7, 6]]\n", " treelet 12: ['cCC1C1C1O1O1']\n", "\n", " pattern 9: [[5, 7, 6, 4, 2, 0], [5, 7, 6, 4, 2, 1], [5, 6, 7, 4, 3, 0], [5, 6, 7, 4, 3, 1], [5, 4, 7, 6, 3, 2]]\n", " treelet 9: ['9CO1C1O1C1C1', '9CO1C1O1C1C1', '9CO1C1O1C1C1', '9CO1C1O1C1C1', '9CC1O1O1C1C1']\n", "\n", " numbers of canonical keys: {'2O1C1O': 1, '7CC1C1C1O1': 2, '7CC1O1O1C1': 2, 'aCO1C1C1C1C1': 2, '2C1C1C': 3, '6CC1C1C1': 1, '9CO1C1O1C1C1': 4, '1C1C': 3, '3C1C1C1O': 4, '4C1C1C1O1C': 4, '7CO1O1C1C1': 2, '2C1C1O': 2, '1C1O': 4, '9CC1O1O1C1C1': 1, '3C1C1O1C': 2, '6CC1O1O1': 1, '2C1O1C': 2, '0O': 2, '4C1O1C1O1C': 1, 'cCC1C1C1O1O1': 1, '0C': 6, '3C1O1C1O': 2}\n", "\n", " pattern 0: [0, 1, 2, 3, 4, 5, 6]\n", " treelet 0: ['C', 'C', 'C', 'C', 'C', 'O', 'O']\n", "\n", " pattern 1 : [[2, 0], [3, 1], [5, 2], [5, 4], [6, 3], [6, 4]]\n", " treelet 1 : ['1C1C', '1C1C', '1C1O', '1C1O', '1C1O', '1C1O']\n", "\n", " pattern 2 : [[4, 5, 2], [4, 6, 3], [5, 2, 0], [6, 3, 1], [6, 4, 5]]\n", " treelet 2 : ['2C1O1C', '2C1O1C', '2C1C1O', '2C1C1O', '2O1C1O']\n", "\n", " pattern 3 : [[4, 5, 2, 0], [4, 6, 3, 1], [5, 4, 6, 3], [6, 4, 5, 2]]\n", " treelet 3 : ['3C1C1O1C', '3C1C1O1C', '3C1O1C1O', '3C1O1C1O']\n", "\n", " pattern 4 : [[3, 6, 4, 5, 2], [5, 4, 6, 3, 1], [6, 4, 5, 2, 0]]\n", " treelet 4 : ['4C1O1C1O1C', '4C1C1O1C1O', '4C1C1O1C1O']\n", "\n", " pattern 5 : [[2, 5, 4, 6, 3, 1], [3, 6, 4, 5, 2, 0]]\n", " treelet 5 : ['5C1C1O1C1O1C', '5C1C1O1C1O1C']\n", "\n", " pattern 3 star: []\n", " treelet 3 star: []\n", "\n", " pattern 4 star: []\n", " treelet 4 star: []\n", "\n", " pattern 5 star: []\n", " treelet 5 star: []\n", "\n", " pattern 7: []\n", " treelet 7: []\n", "\n", " pattern 11: []\n", " treelet 11: []\n", "\n", " pattern 10: []\n", " treelet 10: []\n", "\n", " pattern 12: []\n", " treelet 12: []\n", "\n", " pattern 9: []\n", " treelet 9: []\n", "\n", " numbers of canonical keys: {'3C1C1O1C': 2, '2O1C1O': 1, '1C1O': 4, '2C1O1C': 2, '0O': 2, '5C1C1O1C1O1C': 2, '1C1C': 2, '4C1O1C1O1C': 1, '0C': 5, '3C1O1C1O': 2, '4C1C1O1C1O': 2, '2C1C1O': 2}\n" ] } ], "source": [ "import sys\n", "import pathlib\n", "from collections import Counter\n", "from itertools import chain\n", "sys.path.insert(0, \"../\")\n", "\n", "import networkx as nx\n", "import numpy as np\n", "import time\n", "\n", "from sklearn.metrics.pairwise import rbf_kernel, paired_distances\n", "import matplotlib.pyplot as plt\n", "\n", "# main\n", "import sys\n", "from collections import Counter\n", "import networkx as nx\n", "sys.path.insert(0, \"../\")\n", "from pygraph.utils.graphfiles import loadDataset\n", "\n", "\n", "def main(): \n", " dataset, y = loadDataset(\"../../../../datasets/acyclic/Acyclic/dataset_bps.ds\")\n", " G1 = dataset[15]\n", " print(nx.get_node_attributes(G1, 'label'))\n", " nx.draw_networkx(G1)\n", " plt.show()\n", " G2 = dataset[57] # 180 double 4, 57, 3, double 3\n", " print(nx.get_node_attributes(G2, 'label'))\n", " nx.draw_networkx(G2)\n", " plt.show()\n", "\n", " treeletkernel(G1, G2, labeled = True)\n", " # Kmatrix = weisfeilerlehmankernel(G1, G2)\n", " \n", "def find_paths(G, source_node, length):\n", " if length == 0:\n", " return [[source_node]]\n", " path = [ [source_node] + path for neighbor in G[source_node] \\\n", " for path in find_paths(G, neighbor, length - 1) if source_node not in path ]\n", " return path\n", "\n", "def find_all_paths(G, length):\n", " all_paths = []\n", " for node in G:\n", " all_paths.extend(find_paths(G, node, length))\n", " all_paths_r = [ path[::-1] for path in all_paths ]\n", " \n", " # remove double direction\n", " for idx, path in enumerate(all_paths[:-1]):\n", " for path2 in all_paths_r[idx+1::]:\n", " if path == path2:\n", " all_paths[idx] = []\n", " break\n", " \n", " return list(filter(lambda a: a != [], all_paths))\n", "\n", "def get_canonkey(G, node_label = 'atom', edge_label = 'bond_type', labeled = True):\n", " \n", " patterns = {}\n", " canonkey = {} # canonical key\n", " \n", " ### structural analysis ###\n", " # linear patterns\n", " patterns['0'] = G.nodes()\n", " canonkey['0'] = nx.number_of_nodes(G)\n", " for i in range(1, 6):\n", " patterns[str(i)] = find_all_paths(G, i)\n", " canonkey[str(i)] = len(patterns[str(i)])\n", " \n", " # n-star patterns\n", " patterns['3star'] = [ [node] + [neighbor for neighbor in G[node]] for node in G.nodes() if G.degree(node) == 3 ]\n", " patterns['4star'] = [ [node] + [neighbor for neighbor in G[node]] for node in G.nodes() if G.degree(node) == 4 ]\n", " patterns['5star'] = [ [node] + [neighbor for neighbor in G[node]] for node in G.nodes() if G.degree(node) == 5 ] \n", " # n-star patterns\n", " canonkey['6'] = len(patterns['3star'])\n", " canonkey['8'] = len(patterns['4star'])\n", " canonkey['d'] = len(patterns['5star'])\n", " \n", " # pattern 7\n", " patterns['7'] = []\n", " for pattern in patterns['3star']:\n", " for i in range(1, len(pattern)):\n", " if G.degree(pattern[i]) >= 2:\n", " pattern_t = pattern[:]\n", " pattern_t[i], pattern_t[3] = pattern_t[3], pattern_t[i]\n", " for neighborx in G[pattern[i]]:\n", " if neighborx != pattern[0]:\n", " new_pattern = pattern_t + [ neighborx ]\n", "# new_patterns = [ pattern + [neighbor] for neighbor in G[pattern[i]] if neighbor != pattern[0] ]\n", " patterns['7'].append(new_pattern)\n", " canonkey['7'] = len(patterns['7'])\n", " \n", " # pattern 11\n", " patterns['11'] = []\n", " for pattern in patterns['4star']:\n", " for i in range(1, len(pattern)):\n", " if G.degree(pattern[i]) >= 2:\n", " pattern_t = pattern[:]\n", " pattern_t[i], pattern_t[4] = pattern_t[4], pattern_t[i]\n", " for neighborx in G[pattern[i]]:\n", " if neighborx != pattern[0]:\n", " new_pattern = pattern_t + [ neighborx ]\n", "# new_patterns = [ pattern + [neighborx] for neighborx in G[pattern[i]] if neighborx != pattern[0] ]\n", " patterns['11'].append(new_pattern)\n", " canonkey['b'] = len(patterns['11'])\n", " \n", " # pattern 12\n", " patterns['12'] = []\n", " rootlist = []\n", " for pattern in patterns['3star']:\n", "# print(pattern)\n", " if pattern[0] not in rootlist:\n", " rootlist.append(pattern[0])\n", " for i in range(1, len(pattern)):\n", " if G.degree(pattern[i]) >= 3:\n", " rootlist.append(pattern[i])\n", " pattern_t = pattern[:]\n", " pattern_t[i], pattern_t[3] = pattern_t[3], pattern_t[i]\n", " for neighborx1 in G[pattern[i]]:\n", " if neighborx1 != pattern[0]:\n", " for neighborx2 in G[pattern[i]]:\n", " if neighborx1 > neighborx2 and neighborx2 != pattern[0]:\n", " new_pattern = pattern_t + [neighborx1] + [neighborx2]\n", "# new_patterns = [ pattern + [neighborx1] + [neighborx2] for neighborx1 in G[pattern[i]] if neighborx1 != pattern[0] for neighborx2 in G[pattern[i]] if (neighborx1 > neighborx2 and neighborx2 != pattern[0]) ]\n", " patterns['12'].append(new_pattern)\n", " canonkey['c'] = int(len(patterns['12']) / 2)\n", " \n", " # pattern 9\n", " patterns['9'] = []\n", " for pattern in patterns['3star']:\n", "# print('pattern: ', pattern)\n", " for pairs in [ [neighbor1, neighbor2] for neighbor1 in G[pattern[0]] if G.degree(neighbor1) >= 2 \\\n", " for neighbor2 in G[pattern[0]] if G.degree(neighbor2) >= 2 if neighbor1 > neighbor2 ]:\n", "# print('pairs: ', pairs)\n", " pattern_t = pattern[:]\n", "# print('pattern_t: ', pattern_t)\n", " pattern_t[pattern_t.index(pairs[0])], pattern_t[2] = pattern_t[2], pattern_t[pattern_t.index(pairs[0])]\n", "# print('pattern_t: ', pattern_t)\n", " pattern_t[pattern_t.index(pairs[1])], pattern_t[3] = pattern_t[3], pattern_t[pattern_t.index(pairs[1])]\n", "# print('pattern_t: ', pattern_t)\n", " for neighborx1 in G[pairs[0]]:\n", " if neighborx1 != pattern[0]:\n", " for neighborx2 in G[pairs[1]]:\n", " if neighborx2 != pattern[0]:\n", " new_pattern = pattern_t + [neighborx1] + [neighborx2]\n", "# new_patterns = [ pattern + [neighborx1] + [neighborx2] for neighborx1 in G[pairs[0]] if neighborx1 != pattern[0] for neighborx2 in G[pairs[1]] if neighborx2 != pattern[0] ]\n", " patterns['9'].append(new_pattern)\n", " canonkey['9'] = len(patterns['9'])\n", " \n", " # pattern 10\n", " patterns['10'] = []\n", " for pattern in patterns['3star']: \n", " for i in range(1, len(pattern)):\n", " if G.degree(pattern[i]) >= 2:\n", " for neighborx in G[pattern[i]]:\n", " if neighborx != pattern[0] and G.degree(neighborx) >= 2:\n", " pattern_t = pattern[:]\n", " pattern_t[i], pattern_t[3] = pattern_t[3], pattern_t[i]\n", " new_patterns = [ pattern_t + [neighborx] + [neighborxx] for neighborxx in G[neighborx] if neighborxx != pattern[i] ]\n", " patterns['10'].extend(new_patterns)\n", " canonkey['a'] = len(patterns['10'])\n", " \n", " ### labeling information ###\n", " if labeled == True:\n", " canonkey_l = {}\n", " \n", " # linear patterns\n", " canonkey_t = Counter(list(nx.get_node_attributes(G, node_label).values()))\n", " for key in canonkey_t:\n", " canonkey_l['0' + key] = canonkey_t[key]\n", " print('\\n pattern 0: ', patterns['0'])\n", " print(' treelet 0: ', list(nx.get_node_attributes(G, node_label).values()))\n", " \n", " for i in range(1, 6):\n", " treelet = []\n", " for pattern in patterns[str(i)]:\n", " canonlist = list(chain.from_iterable((G.node[node][node_label], \\\n", " G[node][pattern[idx+1]][edge_label]) for idx, node in enumerate(pattern[:-1])))\n", " canonlist.append(G.node[pattern[-1]][node_label])\n", " canonkey_t = ''.join(canonlist)\n", " canonkey_t = canonkey_t if canonkey_t < canonkey_t[::-1] else canonkey_t[::-1]\n", " treelet.append(str(i) + canonkey_t)\n", " canonkey_l.update(Counter(treelet))\n", " print('\\n pattern', i, ': ', patterns[str(i)])\n", " print(' treelet', i, ': ', treelet)\n", " \n", "# print(canonkey_l)\n", " \n", " # n-star patterns\n", " for i in range(3, 6):\n", " treelet = []\n", " for pattern in patterns[str(i) + 'star']:\n", " canonlist = [ G.node[leaf][node_label] + G[leaf][pattern[0]][edge_label] for leaf in pattern[1:] ]\n", " canonlist.sort()\n", " canonkey_t = ('d' if i == 5 else str(i * 2)) + G.node[pattern[0]][node_label] + ''.join(canonlist)\n", " treelet.append(canonkey_t)\n", " canonkey_l.update(Counter(treelet))\n", " print('\\n pattern', i, 'star: ', patterns[str(i) + 'star'])\n", " print(' treelet', i, 'star: ', treelet)\n", " \n", " # pattern 7\n", " treelet = []\n", " for pattern in patterns['7']:\n", " canonlist = [ G.node[leaf][node_label] + G[leaf][pattern[0]][edge_label] for leaf in pattern[1:3] ]\n", " canonlist.sort()\n", " canonkey_t = '7' + G.node[pattern[0]][node_label] + ''.join(canonlist) \\\n", " + G.node[pattern[3]][node_label] + G[pattern[3]][pattern[0]][edge_label] \\\n", " + G.node[pattern[4]][node_label] + G[pattern[4]][pattern[3]][edge_label]\n", " treelet.append(canonkey_t)\n", " canonkey_l.update(Counter(treelet))\n", " print('\\n pattern 7: ', patterns['7'])\n", " print(' treelet 7: ', treelet)\n", " \n", " # pattern 11\n", " treelet = []\n", " for pattern in patterns['11']:\n", " canonlist = [ G.node[leaf][node_label] + G[leaf][pattern[0]][edge_label] for leaf in pattern[1:4] ]\n", " canonlist.sort()\n", " canonkey_t = 'b' + G.node[pattern[0]][node_label] + ''.join(canonlist) \\\n", " + G.node[pattern[4]][node_label] + G[pattern[4]][pattern[0]][edge_label] \\\n", " + G.node[pattern[5]][node_label] + G[pattern[5]][pattern[4]][edge_label]\n", " treelet.append(canonkey_t)\n", " canonkey_l.update(Counter(treelet))\n", " print('\\n pattern 11: ', patterns['11'])\n", " print(' treelet 11: ', treelet)\n", "\n", " # pattern 10\n", " treelet = []\n", " for pattern in patterns['10']:\n", " canonkey4 = G.node[pattern[5]][node_label] + G[pattern[5]][pattern[4]][edge_label]\n", " canonlist = [ G.node[leaf][node_label] + G[leaf][pattern[0]][edge_label] for leaf in pattern[1:3] ]\n", " canonlist.sort()\n", " canonkey0 = ''.join(canonlist)\n", " canonkey_t = 'a' + G.node[pattern[3]][node_label] \\\n", " + G.node[pattern[4]][node_label] + G[pattern[4]][pattern[3]][edge_label] \\\n", " + G.node[pattern[0]][node_label] + G[pattern[0]][pattern[3]][edge_label] \\\n", " + canonkey4 + canonkey0\n", "# canonkey_t = 'a' + G.node[pattern[0]][node_label] + ''.join(canonlist) \\\n", "# + G.node[pattern[3]][node_label] + G[pattern[3]][pattern[0]][edge_label] \\\n", "# + G.node[pattern[4]][node_label] + G[pattern[4]][pattern[3]][edge_label]\n", " treelet.append(canonkey_t)\n", " canonkey_l.update(Counter(treelet))\n", " print('\\n pattern 10: ', patterns['10'])\n", " print(' treelet 10: ', treelet)\n", " \n", " # pattern 12\n", " treelet = []\n", " for pattern in patterns['12']:\n", " canonlist0 = [ G.node[leaf][node_label] + G[leaf][pattern[0]][edge_label] for leaf in pattern[1:3] ]\n", " canonlist0.sort()\n", " canonlist3 = [ G.node[leaf][node_label] + G[leaf][pattern[3]][edge_label] for leaf in pattern[4:6] ]\n", " canonlist3.sort()\n", " canonkey_t1 = 'c' + G.node[pattern[0]][node_label] \\\n", " + ''.join(canonlist0) \\\n", " + G.node[pattern[3]][node_label] + G[pattern[3]][pattern[0]][edge_label] \\\n", " + ''.join(canonlist3)\n", " \n", " canonkey_t2 = 'c' + G.node[pattern[3]][node_label] \\\n", " + ''.join(canonlist3) \\\n", " + G.node[pattern[0]][node_label] + G[pattern[0]][pattern[3]][edge_label] \\\n", " + ''.join(canonlist0)\n", " \n", " treelet.append(canonkey_t1 if canonkey_t1 < canonkey_t2 else canonkey_t2)\n", " canonkey_l.update(Counter(treelet))\n", " print('\\n pattern 12: ', patterns['12'])\n", " print(' treelet 12: ', treelet)\n", " \n", " # pattern 9\n", " treelet = []\n", " for pattern in patterns['9']:\n", " canonkey2 = G.node[pattern[4]][node_label] + G[pattern[4]][pattern[2]][edge_label]\n", " canonkey3 = G.node[pattern[5]][node_label] + G[pattern[5]][pattern[3]][edge_label]\n", " prekey2 = G.node[pattern[2]][node_label] + G[pattern[2]][pattern[0]][edge_label]\n", " prekey3 = G.node[pattern[3]][node_label] + G[pattern[3]][pattern[0]][edge_label]\n", " if prekey2 + canonkey2 < prekey3 + canonkey3:\n", " canonkey_t = G.node[pattern[1]][node_label] + G[pattern[1]][pattern[0]][edge_label] \\\n", " + prekey2 + prekey3 + canonkey2 + canonkey3\n", " else:\n", " canonkey_t = G.node[pattern[1]][node_label] + G[pattern[1]][pattern[0]][edge_label] \\\n", " + prekey3 + prekey2 + canonkey3 + canonkey2\n", " treelet.append('9' + G.node[pattern[0]][node_label] + canonkey_t)\n", " canonkey_l.update(Counter(treelet))\n", " print('\\n pattern 9: ', patterns['9'])\n", " print(' treelet 9: ', treelet)\n", " \n", "\n", " \n", " \n", " print('\\n numbers of canonical keys: ', canonkey_l)\n", " \n", " \n", " return canonkey_l\n", " \n", " return canonkey\n", " \n", "\n", "def treeletkernel(*args, node_label = 'atom', edge_label = 'bond_type', labeled = True):\n", " if len(args) == 1: # for a list of graphs\n", " Gn = args[0]\n", " Kmatrix = np.zeros((len(Gn), len(Gn)))\n", "\n", " start_time = time.time()\n", " \n", " for i in range(0, len(Gn)):\n", " print(i)\n", " for j in range(i, len(Gn)):\n", " Kmatrix[i][j] = treeletkernel(Gn[i], Gn[j], labeled = labeled, node_label = node_label, edge_label = edge_label)\n", " Kmatrix[j][i] = Kmatrix[i][j]\n", "\n", " run_time = time.time() - start_time\n", " print(\"\\n --- treelet kernel matrix of size %d built in %s seconds ---\" % (len(Gn), run_time))\n", " \n", " return Kmatrix, run_time\n", " \n", " else: # for only 2 graphs\n", " \n", " G1 = args[0]\n", " G = args[1]\n", " kernel = 0\n", " \n", "# start_time = time.time()\n", " \n", " \n", " canonkey2 = get_canonkey(G, node_label = node_label, edge_label = edge_label, labeled = labeled)\n", " canonkey1 = get_canonkey(G1, node_label = node_label, edge_label = edge_label, labeled = labeled)\n", " \n", " keys = set(canonkey1.keys()) & set(canonkey2.keys()) # find same canonical keys in both graphs\n", " vector1 = np.matrix([ (canonkey1[key] if (key in canonkey1.keys()) else 0) for key in keys ])\n", "# print(vector1)\n", " vector2 = np.matrix([ (canonkey2[key] if (key in canonkey2.keys()) else 0) for key in keys ]) \n", " kernel = np.sum(np.exp(- np.square(vector1 - vector2) / 2))\n", "# print(vector2)\n", " \n", " # labeling information\n", " \n", " # equal keys and graph isomorphism\n", " \n", "\n", "# run_time = time.time() - start_time\n", "# print(\"\\n --- treelet kernel built in %s seconds ---\" % (run_time))\n", " \n", "# print(kernel)\n", " return kernel#, run_time\n", " \n", "if __name__ == '__main__':\n", " main()" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.5.2" } }, "nbformat": 4, "nbformat_minor": 2 }