You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

run_commonwalkkernel.ipynb 23 kB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233
  1. {
  2. "cells": [
  3. {
  4. "cell_type": "code",
  5. "execution_count": 1,
  6. "metadata": {},
  7. "outputs": [
  8. {
  9. "name": "stdout",
  10. "output_type": "stream",
  11. "text": [
  12. "\n",
  13. "Acyclic\n",
  14. "\n",
  15. "--- This is a regression problem ---\n",
  16. "\n",
  17. "1. Loading dataset from file...\n",
  18. "\n",
  19. "2. Calculating gram matrices. This could take a while...\n",
  20. "\n",
  21. "calculating kernels: 1%| | 87/16836.0 [00:00<00:37, 451.37it/s]"
  22. ]
  23. },
  24. {
  25. "name": "stderr",
  26. "output_type": "stream",
  27. "text": [
  28. "../pygraph/kernels/commonWalkKernel.py:170: ComplexWarning: Casting complex values to real discards the imaginary part\n",
  29. " D[i][i] = np.exp(beta * ew[i])\n",
  30. "../pygraph/kernels/commonWalkKernel.py:81: ComplexWarning: Casting complex values to real discards the imaginary part\n",
  31. " edge_label, weight)\n"
  32. ]
  33. },
  34. {
  35. "name": "stdout",
  36. "output_type": "stream",
  37. "text": [
  38. "calculating kernels: 5%|▍ | 795/16836.0 [00:01<00:42, 374.66it/s]"
  39. ]
  40. },
  41. {
  42. "ename": "LinAlgError",
  43. "evalue": "singular matrix",
  44. "output_type": "error",
  45. "traceback": [
  46. "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
  47. "\u001b[0;31mLinAlgError\u001b[0m Traceback (most recent call last)",
  48. "\u001b[0;32m<ipython-input-1-bdaea04c845f>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m()\u001b[0m\n\u001b[1;32m 58\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0mds\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'task'\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0;34m'task'\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mds\u001b[0m \u001b[0;32melse\u001b[0m \u001b[0;34m'classification'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mNUM_TRIALS\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m30\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 59\u001b[0m \u001b[0mdatafile_y\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mds\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'dataset_y'\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0;34m'dataset_y'\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mds\u001b[0m \u001b[0;32melse\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 60\u001b[0;31m extra_params=(ds['extra_params'] if 'extra_params' in ds else None))\n\u001b[0m\u001b[1;32m 61\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
  49. "\u001b[0;32m/media/ljia/DATA/research-repo/codes/Linlin/py-graph/pygraph/utils/model_selection_precomputed.py\u001b[0m in \u001b[0;36mmodel_selection_for_precomputed_kernel\u001b[0;34m(datafile, estimator, param_grid_precomputed, param_grid, model_type, NUM_TRIALS, datafile_y, extra_params)\u001b[0m\n\u001b[1;32m 99\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'gram matrix with parameters'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mparams_out\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'is: '\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 100\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 101\u001b[0;31m \u001b[0mKmatrix\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcurrent_run_time\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mestimator\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdataset\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mparams_out\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 102\u001b[0m \u001b[0mKmatrix_diag\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mKmatrix\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdiagonal\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcopy\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 103\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
  50. "\u001b[0;32m/media/ljia/DATA/research-repo/codes/Linlin/py-graph/pygraph/kernels/commonWalkKernel.py\u001b[0m in \u001b[0;36mcommonwalkkernel\u001b[0;34m(node_label, edge_label, n, weight, compute_method, *args)\u001b[0m\n\u001b[1;32m 79\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mj\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mrange\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mi\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mlen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mGn\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 80\u001b[0m Kmatrix[i][j] = _untilnwalkkernel_exp(Gn[i], Gn[j], node_label,\n\u001b[0;32m---> 81\u001b[0;31m edge_label, weight)\n\u001b[0m\u001b[1;32m 82\u001b[0m \u001b[0mKmatrix\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mj\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mi\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mKmatrix\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mi\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mj\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 83\u001b[0m \u001b[0mpbar\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mupdate\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
  51. "\u001b[0;32m/media/ljia/DATA/research-repo/codes/Linlin/py-graph/pygraph/kernels/commonWalkKernel.py\u001b[0m in \u001b[0;36m_untilnwalkkernel_exp\u001b[0;34m(G1, G2, node_label, edge_label, beta)\u001b[0m\n\u001b[1;32m 177\u001b[0m \u001b[0;31m# print(ev)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 178\u001b[0m \u001b[0;31m# print(np.linalg.inv(ev))\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 179\u001b[0;31m \u001b[0mexp_D\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mev\u001b[0m \u001b[0;34m*\u001b[0m \u001b[0mD\u001b[0m \u001b[0;34m*\u001b[0m \u001b[0mev\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mI\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 180\u001b[0m \u001b[0;31m# print(exp_D)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 181\u001b[0m \u001b[0;31m# print(np.exp(weight * A))\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
  52. "\u001b[0;32m/usr/local/lib/python3.5/dist-packages/numpy/matrixlib/defmatrix.py\u001b[0m in \u001b[0;36mgetI\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 936\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 937\u001b[0m \u001b[0;32mfrom\u001b[0m \u001b[0mnumpy\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdual\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0mpinv\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0mfunc\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 938\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0masmatrix\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfunc\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 939\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 940\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mgetA\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
  53. "\u001b[0;32m~/.local/lib/python3.5/site-packages/scipy/linalg/basic.py\u001b[0m in \u001b[0;36minv\u001b[0;34m(a, overwrite_a, check_finite)\u001b[0m\n\u001b[1;32m 974\u001b[0m \u001b[0minv_a\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0minfo\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mgetri\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mlu\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mpiv\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mlwork\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mlwork\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0moverwrite_lu\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 975\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0minfo\u001b[0m \u001b[0;34m>\u001b[0m \u001b[0;36m0\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 976\u001b[0;31m \u001b[0;32mraise\u001b[0m \u001b[0mLinAlgError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"singular matrix\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 977\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0minfo\u001b[0m \u001b[0;34m<\u001b[0m \u001b[0;36m0\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 978\u001b[0m raise ValueError('illegal value in %d-th argument of internal '\n",
  54. "\u001b[0;31mLinAlgError\u001b[0m: singular matrix"
  55. ]
  56. }
  57. ],
  58. "source": [
  59. "%load_ext line_profiler\n",
  60. "%matplotlib inline\n",
  61. "import numpy as np\n",
  62. "import sys\n",
  63. "sys.path.insert(0, \"../\")\n",
  64. "from pygraph.utils.model_selection_precomputed import model_selection_for_precomputed_kernel\n",
  65. "from pygraph.kernels.commonWalkKernel import commonwalkkernel\n",
  66. "\n",
  67. "dslist = [ \n",
  68. " {'name': 'Acyclic', 'dataset': '../datasets/acyclic/dataset_bps.ds', 'task': 'regression'}, # node_labeled\n",
  69. "# {'name': 'COIL-DEL', 'dataset': '../datasets/COIL-DEL/COIL-DEL_A.txt'}, # edge_labeled\n",
  70. "# {'name': 'PAH', 'dataset': '../datasets/PAH/dataset.ds',}, # unlabeled\n",
  71. "# {'name': 'Mutagenicity', 'dataset': '../datasets/Mutagenicity/Mutagenicity_A.txt'}, # fully_labeled\n",
  72. " {'name': 'MAO', 'dataset': '../datasets/MAO/dataset.ds',},\n",
  73. "\n",
  74. "# {'name': 'MUTAG', 'dataset': '../datasets/MUTAG/MUTAG.mat',\n",
  75. "# 'extra_params': {'am_sp_al_nl_el': [0, 0, 3, 1, 2]}},\n",
  76. "# {'name': 'Alkane', 'dataset': '../datasets/Alkane/dataset.ds', 'task': 'regression', \n",
  77. "# 'dataset_y': '../datasets/Alkane/dataset_boiling_point_names.txt',},\n",
  78. "# {'name': 'BZR', 'dataset': '../datasets/BZR_txt/BZR_A_sparse.txt'},\n",
  79. "# {'name': 'COX2', 'dataset': '../datasets/COX2_txt/COX2_A_sparse.txt'}, \n",
  80. " {'name': 'ENZYMES', 'dataset': '../datasets/ENZYMES_txt/ENZYMES_A_sparse.txt'},\n",
  81. "# {'name': 'DHFR', 'dataset': '../datasets/DHFR_txt/DHFR_A_sparse.txt'},\n",
  82. "# {'name': 'SYNTHETIC', 'dataset': '../datasets/SYNTHETIC_txt/SYNTHETIC_A_sparse.txt'},\n",
  83. "# {'name': 'MSRC9', 'dataset': '../datasets/MSRC_9_txt/MSRC_9_A.txt'},\n",
  84. "# {'name': 'MSRC21', 'dataset': '../datasets/MSRC_21_txt/MSRC_21_A.txt'},\n",
  85. "# {'name': 'FIRSTMM_DB', 'dataset': '../datasets/FIRSTMM_DB/FIRSTMM_DB_A.txt'},\n",
  86. "\n",
  87. "# {'name': 'PROTEINS', 'dataset': '../datasets/PROTEINS_txt/PROTEINS_A_sparse.txt'},\n",
  88. "# {'name': 'PROTEINS_full', 'dataset': '../datasets/PROTEINS_full_txt/PROTEINS_full_A_sparse.txt'},\n",
  89. "# {'name': 'D&D', 'dataset': '../datasets/D&D/DD.mat',\n",
  90. "# 'extra_params': {'am_sp_al_nl_el': [0, 1, 2, 1, -1]}},\n",
  91. "# {'name': 'AIDS', 'dataset': '../datasets/AIDS/AIDS_A.txt'},\n",
  92. "# {'name': 'NCI1', 'dataset': '../datasets/NCI1/NCI1.mat',\n",
  93. "# 'extra_params': {'am_sp_al_nl_el': [1, 1, 2, 0, -1]}},\n",
  94. "# {'name': 'NCI109', 'dataset': '../datasets/NCI109/NCI109.mat',\n",
  95. "# 'extra_params': {'am_sp_al_nl_el': [1, 1, 2, 0, -1]}},\n",
  96. "# {'name': 'NCI-HIV', 'dataset': '../datasets/NCI-HIV/AIDO99SD.sdf',\n",
  97. "# 'dataset_y': '../datasets/NCI-HIV/aids_conc_may04.txt',},\n",
  98. " \n",
  99. "# # not working below\n",
  100. "# {'name': 'PTC_FM', 'dataset': '../datasets/PTC/Train/FM.ds',},\n",
  101. "# {'name': 'PTC_FR', 'dataset': '../datasets/PTC/Train/FR.ds',},\n",
  102. "# {'name': 'PTC_MM', 'dataset': '../datasets/PTC/Train/MM.ds',},\n",
  103. "# {'name': 'PTC_MR', 'dataset': '../datasets/PTC/Train/MR.ds',},\n",
  104. "]\n",
  105. "estimator = commonwalkkernel\n",
  106. "param_grid_precomputed = {}\n",
  107. "param_grid = [{'C': np.logspace(-10, 10, num = 41, base = 10)}, \n",
  108. " {'alpha': np.logspace(-10, 10, num = 41, base = 10)}]\n",
  109. "\n",
  110. "for ds in dslist:\n",
  111. " print()\n",
  112. " print(ds['name'])\n",
  113. " model_selection_for_precomputed_kernel(\n",
  114. " ds['dataset'], estimator, param_grid_precomputed, \n",
  115. " (param_grid[1] if ('task' in ds and ds['task'] == 'regression') else param_grid[0]), \n",
  116. " (ds['task'] if 'task' in ds else 'classification'), NUM_TRIALS=30,\n",
  117. " datafile_y=(ds['dataset_y'] if 'dataset_y' in ds else None),\n",
  118. " extra_params=(ds['extra_params'] if 'extra_params' in ds else None))\n",
  119. " print()"
  120. ]
  121. },
  122. {
  123. "cell_type": "code",
  124. "execution_count": 1,
  125. "metadata": {
  126. "scrolled": true
  127. },
  128. "outputs": [
  129. {
  130. "name": "stdout",
  131. "output_type": "stream",
  132. "text": [
  133. "\n",
  134. "--- This is a regression problem ---\n",
  135. "\n",
  136. "1. Loading dataset from file...\n",
  137. "\n",
  138. "2. Calculating gram matrices. This could take a while...\n",
  139. "\n",
  140. "gram matrix with parameters {'n': 0.0} is: \n"
  141. ]
  142. },
  143. {
  144. "ename": "IndexError",
  145. "evalue": "index 1 is out of bounds for axis 0 with size 1",
  146. "output_type": "error",
  147. "traceback": [
  148. "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
  149. "\u001b[0;31mIndexError\u001b[0m Traceback (most recent call last)",
  150. "\u001b[0;32m<ipython-input-1-2b1121e86472>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m()\u001b[0m\n\u001b[1;32m 13\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 14\u001b[0m model_selection_for_precomputed_kernel(datafile, estimator, param_grid_precomputed, param_grid, \n\u001b[0;32m---> 15\u001b[0;31m 'regression', NUM_TRIALS=30)\n\u001b[0m",
  151. "\u001b[0;32m/media/ljia/DATA/research-repo/codes/Linlin/py-graph/pygraph/utils/model_selection_precomputed.py\u001b[0m in \u001b[0;36mmodel_selection_for_precomputed_kernel\u001b[0;34m(datafile, estimator, param_grid_precomputed, param_grid, model_type, NUM_TRIALS, datafile_y)\u001b[0m\n\u001b[1;32m 94\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'gram matrix with parameters'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mparams_out\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'is: '\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 95\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 96\u001b[0;31m \u001b[0mKmatrix\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcurrent_run_time\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mestimator\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdataset\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mparams_out\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 97\u001b[0m \u001b[0mKmatrix_diag\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mKmatrix\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdiagonal\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcopy\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 98\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
  152. "\u001b[0;32m/media/ljia/DATA/research-repo/codes/Linlin/py-graph/pygraph/kernels/untilnWalkKernel.py\u001b[0m in \u001b[0;36muntilnwalkkernel\u001b[0;34m(node_label, edge_label, labeled, n, weight, compute_method, *args)\u001b[0m\n\u001b[1;32m 65\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mj\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mrange\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mi\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mlen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mGn\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 66\u001b[0m Kmatrix[i][j] = _untilnwalkkernel_direct(\n\u001b[0;32m---> 67\u001b[0;31m Gn[i], Gn[j], node_label, edge_label, labeled, weight)\n\u001b[0m\u001b[1;32m 68\u001b[0m \u001b[0mKmatrix\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mj\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mi\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mKmatrix\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mi\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mj\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 69\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
  153. "\u001b[0;32m/media/ljia/DATA/research-repo/codes/Linlin/py-graph/pygraph/kernels/untilnWalkKernel.py\u001b[0m in \u001b[0;36m_untilnwalkkernel_direct\u001b[0;34m(G1, G2, node_label, edge_label, labeled, weight)\u001b[0m\n\u001b[1;32m 129\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mi\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mj\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mproduct\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mgp\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mgp\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 130\u001b[0m \u001b[0mmat_tmp\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mT\u001b[0m \u001b[0;34m*\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mexp\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mweight\u001b[0m \u001b[0;34m*\u001b[0m \u001b[0mD\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m*\u001b[0m \u001b[0mT\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mI\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 131\u001b[0;31m \u001b[0mkernel\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mkernel\u001b[0m \u001b[0;34m+\u001b[0m \u001b[0mmat_tmp\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mi\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mj\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 132\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 133\u001b[0m \u001b[0;31m# from matplotlib import pyplot as plt\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
  154. "\u001b[0;32m/usr/local/lib/python3.5/dist-packages/numpy/matrixlib/defmatrix.py\u001b[0m in \u001b[0;36m__getitem__\u001b[0;34m(self, index)\u001b[0m\n\u001b[1;32m 282\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 283\u001b[0m \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 284\u001b[0;31m \u001b[0mout\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mN\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mndarray\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m__getitem__\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mindex\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 285\u001b[0m \u001b[0;32mfinally\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 286\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_getitem\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;32mFalse\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
  155. "\u001b[0;31mIndexError\u001b[0m: index 1 is out of bounds for axis 0 with size 1"
  156. ]
  157. }
  158. ],
  159. "source": [
  160. "%load_ext line_profiler\n",
  161. "%matplotlib inline\n",
  162. "import numpy as np\n",
  163. "import sys\n",
  164. "sys.path.insert(0, \"../\")\n",
  165. "from pygraph.utils.model_selection_precomputed import model_selection_for_precomputed_kernel\n",
  166. "from pygraph.kernels.untilnWalkKernel import untilnwalkkernel\n",
  167. "\n",
  168. "datafile = '../../../../datasets/acyclic/Acyclic/dataset_bps.ds'\n",
  169. "estimator = untilnwalkkernel\n",
  170. "param_grid_precomputed = {'n': np.linspace(0, 10, 11)}\n",
  171. "param_grid = {'alpha': np.logspace(-10, 10, num = 41, base = 10)}\n",
  172. "\n",
  173. "model_selection_for_precomputed_kernel(datafile, estimator, param_grid_precomputed, param_grid, \n",
  174. " 'regression', NUM_TRIALS=30)"
  175. ]
  176. },
  177. {
  178. "cell_type": "code",
  179. "execution_count": null,
  180. "metadata": {},
  181. "outputs": [],
  182. "source": [
  183. "# results\n",
  184. "\n",
  185. "# untiln kernel when h = 2\n",
  186. " lmda rmse_test std_test rmse_train std_train k_time\n",
  187. "----------- ----------- ---------- ------------ ----------- --------\n",
  188. " 1e-10 7.46524 1.71862 5.99486 0.356634 38.1447\n",
  189. " 1e-09 7.37326 1.77195 5.96155 0.374395 37.4921\n",
  190. " 1e-08 7.35105 1.78349 5.96481 0.378047 37.9971\n",
  191. " 1e-07 7.35213 1.77903 5.96728 0.382251 38.3182\n",
  192. " 1e-06 7.3524 1.77992 5.9696 0.3863 39.6428\n",
  193. " 1e-05 7.34958 1.78141 5.97114 0.39017 37.3711\n",
  194. " 0.0001 7.3513 1.78136 5.94251 0.331843 37.3967\n",
  195. " 0.001 7.35822 1.78119 5.9326 0.32534 36.7357\n",
  196. " 0.01 7.37552 1.79037 5.94089 0.34763 36.8864\n",
  197. " 0.1 7.32951 1.91346 6.42634 1.29405 36.8382\n",
  198. " 1 7.27134 2.20774 6.62425 1.2242 37.2425\n",
  199. " 10 7.49787 2.36815 6.81697 1.50182 37.8286\n",
  200. " 100 7.42887 2.64789 6.68766 1.34809 36.3701\n",
  201. " 1000 7.24914 2.65554 6.81906 1.41008 36.1695\n",
  202. " 10000 7.08183 2.6248 6.93431 1.38441 37.5723\n",
  203. "100000 8.021 3.43694 8.69813 0.909839 37.8158\n",
  204. " 1e+06 8.49625 3.6332 9.59333 0.96626 38.4688\n",
  205. " 1e+07 10.9067 3.17593 11.5642 2.07792 36.9926\n",
  206. " 1e+08 61.1524 10.4355 65.3527 13.9538 37.1321\n",
  207. " 1e+09 99.943 13.6994 98.8848 5.27014 36.7443\n",
  208. " 1e+10 100.083 13.8503 97.9168 3.22768 37.096\n"
  209. ]
  210. }
  211. ],
  212. "metadata": {
  213. "kernelspec": {
  214. "display_name": "Python 3",
  215. "language": "python",
  216. "name": "python3"
  217. },
  218. "language_info": {
  219. "codemirror_mode": {
  220. "name": "ipython",
  221. "version": 3
  222. },
  223. "file_extension": ".py",
  224. "mimetype": "text/x-python",
  225. "name": "python",
  226. "nbconvert_exporter": "python",
  227. "pygments_lexer": "ipython3",
  228. "version": "3.5.2"
  229. }
  230. },
  231. "nbformat": 4,
  232. "nbformat_minor": 2
  233. }

A Python package for graph kernels, graph edit distances and graph pre-image problem.