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.

xp_random_preimage.py 40 kB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192
  1. #!/usr/bin/env python3
  2. # -*- coding: utf-8 -*-
  3. """
  4. Created on Tue Jan 14 15:39:29 2020
  5. @author: ljia
  6. """
  7. import multiprocessing
  8. import functools
  9. import sys
  10. import os
  11. import logging
  12. from gklearn.utils.kernels import deltakernel, gaussiankernel, kernelproduct
  13. from gklearn.preimage import generate_random_preimages_by_class
  14. from gklearn.utils import compute_gram_matrices_by_class
  15. dir_root = '../results/xp_random_preimage/'
  16. def xp_median_preimage_15_1():
  17. """xp 15_1: AIDS, StructuralSP, using CONSTANT, symbolic only.
  18. """
  19. # set parameters.
  20. ds_name = 'AIDS' #
  21. rpg_options = {'k': 5,
  22. 'r_max': 10, #
  23. 'l': 500,
  24. 'alphas': None,
  25. 'parallel': True,
  26. 'verbose': 2}
  27. mixkernel = functools.partial(kernelproduct, deltakernel, gaussiankernel)
  28. sub_kernels = {'symb': deltakernel, 'nsymb': gaussiankernel, 'mix': mixkernel}
  29. kernel_options = {'name': 'StructuralSP',
  30. 'edge_weight': None,
  31. 'node_kernels': sub_kernels,
  32. 'edge_kernels': sub_kernels,
  33. 'compute_method': 'naive',
  34. 'parallel': 'imap_unordered',
  35. # 'parallel': None,
  36. 'n_jobs': multiprocessing.cpu_count(),
  37. 'normalize': True,
  38. 'verbose': 0}
  39. save_results = True
  40. dir_save = dir_root + ds_name + '.' + kernel_options['name'] + '.symb/'
  41. irrelevant_labels = {'node_attrs': ['chem', 'charge', 'x', 'y'], 'edge_labels': ['valence']} #
  42. edge_required = False #
  43. if not os.path.exists(dir_save):
  44. os.makedirs(dir_save)
  45. file_output = open(dir_save + 'output.txt', 'a')
  46. sys.stdout = file_output
  47. # print settings.
  48. print('parameters:')
  49. print('dataset name:', ds_name)
  50. print('kernel_options:', kernel_options)
  51. print('save_results:', save_results)
  52. print('irrelevant_labels:', irrelevant_labels)
  53. print()
  54. # generate preimages.
  55. try:
  56. generate_random_preimages_by_class(ds_name, rpg_options, kernel_options, save_results=save_results, save_preimages=True, load_gm='auto', dir_save=dir_save, irrelevant_labels=irrelevant_labels, edge_required=edge_required)
  57. except Exception as exp:
  58. print('An exception occured when running this experiment:')
  59. LOG_FILENAME = dir_save + 'error.txt'
  60. logging.basicConfig(filename=LOG_FILENAME, level=logging.DEBUG)
  61. logging.exception('')
  62. print(repr(exp))
  63. def xp_median_preimage_15_2():
  64. """xp 15_2: AIDS, PathUpToH, using CONSTANT, symbolic only.
  65. """
  66. # set parameters.
  67. ds_name = 'AIDS' #
  68. rpg_options = {'k': 5,
  69. 'r_max': 10, #
  70. 'l': 500,
  71. 'alphas': None,
  72. 'parallel': True,
  73. 'verbose': 2}
  74. kernel_options = {'name': 'PathUpToH',
  75. 'depth': 1, #
  76. 'k_func': 'MinMax', #
  77. 'compute_method': 'trie',
  78. 'parallel': 'imap_unordered',
  79. # 'parallel': None,
  80. 'n_jobs': multiprocessing.cpu_count(),
  81. 'normalize': True,
  82. 'verbose': 0}
  83. save_results = True
  84. dir_save = dir_root + ds_name + '.' + kernel_options['name'] + '.symb/'
  85. irrelevant_labels = {'node_attrs': ['chem', 'charge', 'x', 'y'], 'edge_labels': ['valence']} #
  86. edge_required = False #
  87. if not os.path.exists(dir_save):
  88. os.makedirs(dir_save)
  89. file_output = open(dir_save + 'output.txt', 'a')
  90. sys.stdout = file_output
  91. # print settings.
  92. print('parameters:')
  93. print('dataset name:', ds_name)
  94. print('kernel_options:', kernel_options)
  95. print('save_results:', save_results)
  96. print('irrelevant_labels:', irrelevant_labels)
  97. print()
  98. # generate preimages.
  99. try:
  100. generate_random_preimages_by_class(ds_name, rpg_options, kernel_options, save_results=save_results, save_preimages=True, load_gm='auto', dir_save=dir_save, irrelevant_labels=irrelevant_labels, edge_required=edge_required)
  101. except Exception as exp:
  102. print('An exception occured when running this experiment:')
  103. LOG_FILENAME = dir_save + 'error.txt'
  104. logging.basicConfig(filename=LOG_FILENAME, level=logging.DEBUG)
  105. logging.exception('')
  106. print(repr(exp))
  107. def xp_median_preimage_15_3():
  108. """xp 15_3: AIDS, Treelet, using CONSTANT, symbolic only.
  109. """
  110. from gklearn.utils.kernels import polynomialkernel
  111. # set parameters.
  112. ds_name = 'AIDS' #
  113. rpg_options = {'k': 5,
  114. 'r_max': 10, #
  115. 'l': 500,
  116. 'alphas': None,
  117. 'parallel': True,
  118. 'verbose': 2}
  119. pkernel = functools.partial(polynomialkernel, d=1, c=1e+2)
  120. kernel_options = {'name': 'Treelet', #
  121. 'sub_kernel': pkernel,
  122. 'parallel': 'imap_unordered',
  123. # 'parallel': None,
  124. 'n_jobs': multiprocessing.cpu_count(),
  125. 'normalize': True,
  126. 'verbose': 0}
  127. save_results = True
  128. dir_save = dir_root + ds_name + '.' + kernel_options['name'] + '.symb/'
  129. irrelevant_labels = {'node_attrs': ['chem', 'charge', 'x', 'y'], 'edge_labels': ['valence']} #
  130. edge_required = False #
  131. if not os.path.exists(dir_save):
  132. os.makedirs(dir_save)
  133. file_output = open(dir_save + 'output.txt', 'a')
  134. sys.stdout = file_output
  135. # print settings.
  136. print('parameters:')
  137. print('dataset name:', ds_name)
  138. print('kernel_options:', kernel_options)
  139. print('save_results:', save_results)
  140. print('irrelevant_labels:', irrelevant_labels)
  141. print()
  142. # generate preimages.
  143. try:
  144. generate_random_preimages_by_class(ds_name, rpg_options, kernel_options, save_results=save_results, save_preimages=True, load_gm='auto', dir_save=dir_save, irrelevant_labels=irrelevant_labels, edge_required=edge_required)
  145. except Exception as exp:
  146. print('An exception occured when running this experiment:')
  147. LOG_FILENAME = dir_save + 'error.txt'
  148. logging.basicConfig(filename=LOG_FILENAME, level=logging.DEBUG)
  149. logging.exception('')
  150. print(repr(exp))
  151. def xp_median_preimage_15_4():
  152. """xp 15_4: AIDS, WeisfeilerLehman, using CONSTANT, symbolic only.
  153. """
  154. # set parameters.
  155. ds_name = 'AIDS' #
  156. rpg_options = {'k': 5,
  157. 'r_max': 10, #
  158. 'l': 500,
  159. 'alphas': None,
  160. 'parallel': True,
  161. 'verbose': 2}
  162. kernel_options = {'name': 'WeisfeilerLehman',
  163. 'height': 10,
  164. 'base_kernel': 'subtree',
  165. 'parallel': 'imap_unordered',
  166. # 'parallel': None,
  167. 'n_jobs': multiprocessing.cpu_count(),
  168. 'normalize': True,
  169. 'verbose': 0}
  170. save_results = True
  171. dir_save = dir_root + ds_name + '.' + kernel_options['name'] + '.symb/'
  172. irrelevant_labels = {'node_attrs': ['chem', 'charge', 'x', 'y'], 'edge_labels': ['valence']} #
  173. edge_required = False #
  174. if not os.path.exists(dir_save):
  175. os.makedirs(dir_save)
  176. file_output = open(dir_save + 'output.txt', 'a')
  177. sys.stdout = file_output
  178. # print settings.
  179. print('parameters:')
  180. print('dataset name:', ds_name)
  181. print('kernel_options:', kernel_options)
  182. print('save_results:', save_results)
  183. print('irrelevant_labels:', irrelevant_labels)
  184. print()
  185. # # compute gram matrices for each class a priori.
  186. # print('Compute gram matrices for each class a priori.')
  187. # compute_gram_matrices_by_class(ds_name, kernel_options, save_results=True, dir_save=dir_save, irrelevant_labels=irrelevant_labels)
  188. # generate preimages.
  189. try:
  190. generate_random_preimages_by_class(ds_name, rpg_options, kernel_options, save_results=save_results, save_preimages=True, load_gm='auto', dir_save=dir_save, irrelevant_labels=irrelevant_labels, edge_required=edge_required)
  191. except Exception as exp:
  192. print('An exception occured when running this experiment:')
  193. LOG_FILENAME = dir_save + 'error.txt'
  194. logging.basicConfig(filename=LOG_FILENAME, level=logging.DEBUG)
  195. logging.exception('')
  196. print(repr(exp))
  197. def xp_median_preimage_14_1():
  198. """xp 14_1: DD, PathUpToH, using CONSTANT.
  199. """
  200. # set parameters.
  201. ds_name = 'DD' #
  202. rpg_options = {'k': 5,
  203. 'r_max': 10, #
  204. 'l': 500,
  205. 'alphas': None,
  206. 'parallel': True,
  207. 'verbose': 2}
  208. kernel_options = {'name': 'PathUpToH',
  209. 'depth': 2, #
  210. 'k_func': 'MinMax', #
  211. 'compute_method': 'trie',
  212. 'parallel': 'imap_unordered',
  213. # 'parallel': None,
  214. 'n_jobs': multiprocessing.cpu_count(),
  215. 'normalize': True,
  216. 'verbose': 0}
  217. save_results = True
  218. dir_save = dir_root + ds_name + '.' + kernel_options['name'] + '/'
  219. irrelevant_labels = None #
  220. edge_required = False #
  221. if not os.path.exists(dir_save):
  222. os.makedirs(dir_save)
  223. file_output = open(dir_save + 'output.txt', 'a')
  224. sys.stdout = file_output
  225. # # compute gram matrices for each class a priori.
  226. # print('Compute gram matrices for each class a priori.')
  227. # compute_gram_matrices_by_class(ds_name, kernel_options, save_results=save_results, dir_save=dir_save, irrelevant_labels=irrelevant_labels, edge_required=edge_required)
  228. # print settings.
  229. print('parameters:')
  230. print('dataset name:', ds_name)
  231. print('kernel_options:', kernel_options)
  232. print('save_results:', save_results)
  233. print('irrelevant_labels:', irrelevant_labels)
  234. print()
  235. # generate preimages.
  236. try:
  237. generate_random_preimages_by_class(ds_name, rpg_options, kernel_options, save_results=save_results, save_preimages=True, load_gm='auto', dir_save=dir_save, irrelevant_labels=irrelevant_labels, edge_required=edge_required)
  238. except Exception as exp:
  239. print('An exception occured when running this experiment:')
  240. LOG_FILENAME = dir_save + 'error.txt'
  241. logging.basicConfig(filename=LOG_FILENAME, level=logging.DEBUG)
  242. logging.exception('')
  243. print(repr(exp))
  244. def xp_median_preimage_12_1():
  245. """xp 12_1: PAH, StructuralSP, using NON_SYMBOLIC, unlabeled.
  246. """
  247. # set parameters.
  248. ds_name = 'PAH' #
  249. rpg_options = {'k': 5,
  250. 'r_max': 10, #
  251. 'l': 500,
  252. 'alphas': None,
  253. 'parallel': True,
  254. 'verbose': 2}
  255. mixkernel = functools.partial(kernelproduct, deltakernel, gaussiankernel)
  256. sub_kernels = {'symb': deltakernel, 'nsymb': gaussiankernel, 'mix': mixkernel}
  257. kernel_options = {'name': 'StructuralSP',
  258. 'edge_weight': None,
  259. 'node_kernels': sub_kernels,
  260. 'edge_kernels': sub_kernels,
  261. 'compute_method': 'naive',
  262. 'parallel': 'imap_unordered',
  263. # 'parallel': None,
  264. 'n_jobs': multiprocessing.cpu_count(),
  265. 'normalize': True,
  266. 'verbose': 0}
  267. save_results = True
  268. dir_save = dir_root + ds_name + '.' + kernel_options['name'] + '.unlabeled/'
  269. irrelevant_labels = {'node_attrs': ['x', 'y', 'z'], 'edge_labels': ['bond_stereo']} #
  270. edge_required = False #
  271. if not os.path.exists(dir_save):
  272. os.makedirs(dir_save)
  273. file_output = open(dir_save + 'output.txt', 'a')
  274. sys.stdout = file_output
  275. # print settings.
  276. print('parameters:')
  277. print('dataset name:', ds_name)
  278. print('kernel_options:', kernel_options)
  279. print('save_results:', save_results)
  280. print('irrelevant_labels:', irrelevant_labels)
  281. print()
  282. # generate preimages.
  283. try:
  284. generate_random_preimages_by_class(ds_name, rpg_options, kernel_options, save_results=save_results, save_preimages=True, load_gm='auto', dir_save=dir_save, irrelevant_labels=irrelevant_labels, edge_required=edge_required)
  285. except Exception as exp:
  286. print('An exception occured when running this experiment:')
  287. LOG_FILENAME = dir_save + 'error.txt'
  288. logging.basicConfig(filename=LOG_FILENAME, level=logging.DEBUG)
  289. logging.exception('')
  290. print(repr(exp))
  291. def xp_median_preimage_12_2():
  292. """xp 12_2: PAH, PathUpToH, using CONSTANT, unlabeled.
  293. """
  294. # set parameters.
  295. ds_name = 'PAH' #
  296. rpg_options = {'k': 5,
  297. 'r_max': 10, #
  298. 'l': 500,
  299. 'alphas': None,
  300. 'parallel': True,
  301. 'verbose': 2}
  302. kernel_options = {'name': 'PathUpToH',
  303. 'depth': 1, #
  304. 'k_func': 'MinMax', #
  305. 'compute_method': 'trie',
  306. 'parallel': 'imap_unordered',
  307. # 'parallel': None,
  308. 'n_jobs': multiprocessing.cpu_count(),
  309. 'normalize': True,
  310. 'verbose': 0}
  311. save_results = True
  312. dir_save = dir_root + ds_name + '.' + kernel_options['name'] + '.unlabeled/'
  313. irrelevant_labels = {'node_attrs': ['x', 'y', 'z'], 'edge_labels': ['bond_stereo']} #
  314. edge_required = False #
  315. if not os.path.exists(dir_save):
  316. os.makedirs(dir_save)
  317. file_output = open(dir_save + 'output.txt', 'a')
  318. sys.stdout = file_output
  319. # print settings.
  320. print('parameters:')
  321. print('dataset name:', ds_name)
  322. print('kernel_options:', kernel_options)
  323. print('save_results:', save_results)
  324. print('irrelevant_labels:', irrelevant_labels)
  325. print()
  326. # generate preimages.
  327. try:
  328. generate_random_preimages_by_class(ds_name, rpg_options, kernel_options, save_results=save_results, save_preimages=True, load_gm='auto', dir_save=dir_save, irrelevant_labels=irrelevant_labels, edge_required=edge_required)
  329. except Exception as exp:
  330. print('An exception occured when running this experiment:')
  331. LOG_FILENAME = dir_save + 'error.txt'
  332. logging.basicConfig(filename=LOG_FILENAME, level=logging.DEBUG)
  333. logging.exception('')
  334. print(repr(exp))
  335. def xp_median_preimage_12_3():
  336. """xp 12_3: PAH, Treelet, using CONSTANT, unlabeled.
  337. """
  338. from gklearn.utils.kernels import gaussiankernel
  339. # set parameters.
  340. ds_name = 'PAH' #
  341. rpg_options = {'k': 5,
  342. 'r_max': 10, #
  343. 'l': 500,
  344. 'alphas': None,
  345. 'parallel': True,
  346. 'verbose': 2}
  347. pkernel = functools.partial(gaussiankernel, gamma=None) # @todo
  348. kernel_options = {'name': 'Treelet', #
  349. 'sub_kernel': pkernel,
  350. 'parallel': 'imap_unordered',
  351. # 'parallel': None,
  352. 'n_jobs': multiprocessing.cpu_count(),
  353. 'normalize': True,
  354. 'verbose': 0}
  355. save_results = True
  356. dir_save = dir_root + ds_name + '.' + kernel_options['name'] + '.unlabeled/'
  357. irrelevant_labels = {'node_attrs': ['x', 'y', 'z'], 'edge_labels': ['bond_stereo']} #
  358. edge_required = False #
  359. if not os.path.exists(dir_save):
  360. os.makedirs(dir_save)
  361. file_output = open(dir_save + 'output.txt', 'a')
  362. sys.stdout = file_output
  363. # print settings.
  364. print('parameters:')
  365. print('dataset name:', ds_name)
  366. print('kernel_options:', kernel_options)
  367. print('save_results:', save_results)
  368. print('irrelevant_labels:', irrelevant_labels)
  369. print()
  370. # generate preimages.
  371. try:
  372. generate_random_preimages_by_class(ds_name, rpg_options, kernel_options, save_results=save_results, save_preimages=True, load_gm='auto', dir_save=dir_save, irrelevant_labels=irrelevant_labels, edge_required=edge_required)
  373. except Exception as exp:
  374. print('An exception occured when running this experiment:')
  375. LOG_FILENAME = dir_save + 'error.txt'
  376. logging.basicConfig(filename=LOG_FILENAME, level=logging.DEBUG)
  377. logging.exception('')
  378. print(repr(exp))
  379. def xp_median_preimage_12_4():
  380. """xp 12_4: PAH, WeisfeilerLehman, using CONSTANT, unlabeled.
  381. """
  382. # set parameters.
  383. ds_name = 'PAH' #
  384. rpg_options = {'k': 5,
  385. 'r_max': 10, #
  386. 'l': 500,
  387. 'alphas': None,
  388. 'parallel': True,
  389. 'verbose': 2}
  390. kernel_options = {'name': 'WeisfeilerLehman',
  391. 'height': 14,
  392. 'base_kernel': 'subtree',
  393. 'parallel': 'imap_unordered',
  394. # 'parallel': None,
  395. 'n_jobs': multiprocessing.cpu_count(),
  396. 'normalize': True,
  397. 'verbose': 0}
  398. save_results = True
  399. dir_save = dir_root + ds_name + '.' + kernel_options['name'] + '.unlabeled/'
  400. irrelevant_labels = {'node_attrs': ['x', 'y', 'z'], 'edge_labels': ['bond_stereo']} #
  401. edge_required = False #
  402. if not os.path.exists(dir_save):
  403. os.makedirs(dir_save)
  404. file_output = open(dir_save + 'output.txt', 'a')
  405. sys.stdout = file_output
  406. # print settings.
  407. print('parameters:')
  408. print('dataset name:', ds_name)
  409. print('kernel_options:', kernel_options)
  410. print('save_results:', save_results)
  411. print('irrelevant_labels:', irrelevant_labels)
  412. print()
  413. # # compute gram matrices for each class a priori.
  414. # print('Compute gram matrices for each class a priori.')
  415. # compute_gram_matrices_by_class(ds_name, kernel_options, save_results=True, dir_save=dir_save, irrelevant_labels=irrelevant_labels)
  416. # generate preimages.
  417. try:
  418. generate_random_preimages_by_class(ds_name, rpg_options, kernel_options, save_results=save_results, save_preimages=True, load_gm='auto', dir_save=dir_save, irrelevant_labels=irrelevant_labels, edge_required=edge_required)
  419. except Exception as exp:
  420. print('An exception occured when running this experiment:')
  421. LOG_FILENAME = dir_save + 'error.txt'
  422. logging.basicConfig(filename=LOG_FILENAME, level=logging.DEBUG)
  423. logging.exception('')
  424. print(repr(exp))
  425. def xp_median_preimage_12_5():
  426. """xp 12_5: PAH, ShortestPath, using NON_SYMBOLIC, unlabeled.
  427. """
  428. # set parameters.
  429. ds_name = 'PAH' #
  430. rpg_options = {'k': 5,
  431. 'r_max': 10, #
  432. 'l': 500,
  433. 'alphas': None,
  434. 'parallel': True,
  435. 'verbose': 2}
  436. mixkernel = functools.partial(kernelproduct, deltakernel, gaussiankernel)
  437. sub_kernels = {'symb': deltakernel, 'nsymb': gaussiankernel, 'mix': mixkernel}
  438. kernel_options = {'name': 'ShortestPath',
  439. 'edge_weight': None,
  440. 'node_kernels': sub_kernels,
  441. 'parallel': 'imap_unordered',
  442. # 'parallel': None,
  443. 'n_jobs': multiprocessing.cpu_count(),
  444. 'normalize': True,
  445. 'verbose': 0}
  446. save_results = True
  447. dir_save = dir_root + ds_name + '.' + kernel_options['name'] + '.unlabeled/' #
  448. irrelevant_labels = {'node_attrs': ['x', 'y', 'z'], 'edge_labels': ['bond_stereo']} #
  449. edge_required = True #
  450. if not os.path.exists(dir_save):
  451. os.makedirs(dir_save)
  452. file_output = open(dir_save + 'output.txt', 'a')
  453. sys.stdout = file_output
  454. # print settings.
  455. print('parameters:')
  456. print('dataset name:', ds_name)
  457. print('kernel_options:', kernel_options)
  458. print('save_results:', save_results)
  459. print('irrelevant_labels:', irrelevant_labels)
  460. print()
  461. # generate preimages.
  462. try:
  463. generate_random_preimages_by_class(ds_name, rpg_options, kernel_options, save_results=save_results, save_preimages=True, load_gm='auto', dir_save=dir_save, irrelevant_labels=irrelevant_labels, edge_required=edge_required)
  464. except Exception as exp:
  465. print('An exception occured when running this experiment:')
  466. LOG_FILENAME = dir_save + 'error.txt'
  467. logging.basicConfig(filename=LOG_FILENAME, level=logging.DEBUG)
  468. logging.exception('')
  469. print(repr(exp))
  470. def xp_median_preimage_9_1():
  471. """xp 9_1: MAO, StructuralSP, using CONSTANT, symbolic only.
  472. """
  473. # set parameters.
  474. ds_name = 'MAO' #
  475. rpg_options = {'k': 5,
  476. 'r_max': 10, #
  477. 'l': 500,
  478. 'alphas': None,
  479. 'parallel': True,
  480. 'verbose': 2}
  481. mixkernel = functools.partial(kernelproduct, deltakernel, gaussiankernel)
  482. sub_kernels = {'symb': deltakernel, 'nsymb': gaussiankernel, 'mix': mixkernel}
  483. kernel_options = {'name': 'StructuralSP',
  484. 'edge_weight': None,
  485. 'node_kernels': sub_kernels,
  486. 'edge_kernels': sub_kernels,
  487. 'compute_method': 'naive',
  488. 'parallel': 'imap_unordered',
  489. # 'parallel': None,
  490. 'n_jobs': multiprocessing.cpu_count(),
  491. 'normalize': True,
  492. 'verbose': 0}
  493. save_results = True
  494. dir_save = dir_root + ds_name + '.' + kernel_options['name'] + '.symb/'
  495. irrelevant_labels = {'node_attrs': ['x', 'y', 'z'], 'edge_labels': ['bond_type', 'bond_stereo']} #
  496. edge_required = False #
  497. if not os.path.exists(dir_save):
  498. os.makedirs(dir_save)
  499. file_output = open(dir_save + 'output.txt', 'a')
  500. sys.stdout = file_output
  501. # print settings.
  502. print('parameters:')
  503. print('dataset name:', ds_name)
  504. print('kernel_options:', kernel_options)
  505. print('save_results:', save_results)
  506. print('irrelevant_labels:', irrelevant_labels)
  507. print()
  508. # generate preimages.
  509. try:
  510. generate_random_preimages_by_class(ds_name, rpg_options, kernel_options, save_results=save_results, save_preimages=True, load_gm='auto', dir_save=dir_save, irrelevant_labels=irrelevant_labels, edge_required=edge_required)
  511. except Exception as exp:
  512. print('An exception occured when running this experiment:')
  513. LOG_FILENAME = dir_save + 'error.txt'
  514. logging.basicConfig(filename=LOG_FILENAME, level=logging.DEBUG)
  515. logging.exception('')
  516. print(repr(exp))
  517. def xp_median_preimage_9_2():
  518. """xp 9_2: MAO, PathUpToH, using CONSTANT, symbolic only.
  519. """
  520. # set parameters.
  521. ds_name = 'MAO' #
  522. rpg_options = {'k': 5,
  523. 'r_max': 10, #
  524. 'l': 500,
  525. 'alphas': None,
  526. 'parallel': True,
  527. 'verbose': 2}
  528. kernel_options = {'name': 'PathUpToH',
  529. 'depth': 9, #
  530. 'k_func': 'MinMax', #
  531. 'compute_method': 'trie',
  532. 'parallel': 'imap_unordered',
  533. # 'parallel': None,
  534. 'n_jobs': multiprocessing.cpu_count(),
  535. 'normalize': True,
  536. 'verbose': 0}
  537. save_results = True
  538. dir_save = dir_root + ds_name + '.' + kernel_options['name'] + '.symb/'
  539. irrelevant_labels = {'node_attrs': ['x', 'y', 'z'], 'edge_labels': ['bond_type', 'bond_stereo']} #
  540. edge_required = False #
  541. if not os.path.exists(dir_save):
  542. os.makedirs(dir_save)
  543. file_output = open(dir_save + 'output.txt', 'a')
  544. sys.stdout = file_output
  545. # print settings.
  546. print('parameters:')
  547. print('dataset name:', ds_name)
  548. print('kernel_options:', kernel_options)
  549. print('save_results:', save_results)
  550. print('irrelevant_labels:', irrelevant_labels)
  551. print()
  552. # generate preimages.
  553. try:
  554. generate_random_preimages_by_class(ds_name, rpg_options, kernel_options, save_results=save_results, save_preimages=True, load_gm='auto', dir_save=dir_save, irrelevant_labels=irrelevant_labels, edge_required=edge_required)
  555. except Exception as exp:
  556. print('An exception occured when running this experiment:')
  557. LOG_FILENAME = dir_save + 'error.txt'
  558. logging.basicConfig(filename=LOG_FILENAME, level=logging.DEBUG)
  559. logging.exception('')
  560. print(repr(exp))
  561. def xp_median_preimage_9_3():
  562. """xp 9_3: MAO, Treelet, using CONSTANT, symbolic only.
  563. """
  564. from gklearn.utils.kernels import polynomialkernel
  565. # set parameters.
  566. ds_name = 'MAO' #
  567. rpg_options = {'k': 5,
  568. 'r_max': 10, #
  569. 'l': 500,
  570. 'alphas': None,
  571. 'parallel': True,
  572. 'verbose': 2}
  573. pkernel = functools.partial(polynomialkernel, d=4, c=1e+7)
  574. kernel_options = {'name': 'Treelet', #
  575. 'sub_kernel': pkernel,
  576. 'parallel': 'imap_unordered',
  577. # 'parallel': None,
  578. 'n_jobs': multiprocessing.cpu_count(),
  579. 'normalize': True,
  580. 'verbose': 0}
  581. save_results = True
  582. dir_save = dir_root + ds_name + '.' + kernel_options['name'] + '.symb/'
  583. irrelevant_labels = {'node_attrs': ['x', 'y', 'z'], 'edge_labels': ['bond_type', 'bond_stereo']} #
  584. edge_required = False #
  585. if not os.path.exists(dir_save):
  586. os.makedirs(dir_save)
  587. file_output = open(dir_save + 'output.txt', 'a')
  588. sys.stdout = file_output
  589. # print settings.
  590. print('parameters:')
  591. print('dataset name:', ds_name)
  592. print('kernel_options:', kernel_options)
  593. print('save_results:', save_results)
  594. print('irrelevant_labels:', irrelevant_labels)
  595. print()
  596. # generate preimages.
  597. try:
  598. generate_random_preimages_by_class(ds_name, rpg_options, kernel_options, save_results=save_results, save_preimages=True, load_gm='auto', dir_save=dir_save, irrelevant_labels=irrelevant_labels, edge_required=edge_required)
  599. except Exception as exp:
  600. print('An exception occured when running this experiment:')
  601. LOG_FILENAME = dir_save + 'error.txt'
  602. logging.basicConfig(filename=LOG_FILENAME, level=logging.DEBUG)
  603. logging.exception('')
  604. print(repr(exp))
  605. def xp_median_preimage_9_4():
  606. """xp 9_4: MAO, WeisfeilerLehman, using CONSTANT, symbolic only.
  607. """
  608. # set parameters.
  609. ds_name = 'MAO' #
  610. rpg_options = {'k': 5,
  611. 'r_max': 10, #
  612. 'l': 500,
  613. 'alphas': None,
  614. 'parallel': True,
  615. 'verbose': 2}
  616. kernel_options = {'name': 'WeisfeilerLehman',
  617. 'height': 6,
  618. 'base_kernel': 'subtree',
  619. 'parallel': 'imap_unordered',
  620. # 'parallel': None,
  621. 'n_jobs': multiprocessing.cpu_count(),
  622. 'normalize': True,
  623. 'verbose': 0}
  624. save_results = True
  625. dir_save = dir_root + ds_name + '.' + kernel_options['name'] + '.symb/'
  626. irrelevant_labels = {'node_attrs': ['x', 'y', 'z'], 'edge_labels': ['bond_type', 'bond_stereo']} #
  627. edge_required = False #
  628. if not os.path.exists(dir_save):
  629. os.makedirs(dir_save)
  630. file_output = open(dir_save + 'output.txt', 'a')
  631. sys.stdout = file_output
  632. # print settings.
  633. print('parameters:')
  634. print('dataset name:', ds_name)
  635. print('kernel_options:', kernel_options)
  636. print('save_results:', save_results)
  637. print('irrelevant_labels:', irrelevant_labels)
  638. print()
  639. # # compute gram matrices for each class a priori.
  640. # print('Compute gram matrices for each class a priori.')
  641. # compute_gram_matrices_by_class(ds_name, kernel_options, save_results=True, dir_save=dir_save, irrelevant_labels=irrelevant_labels)
  642. # generate preimages.
  643. try:
  644. generate_random_preimages_by_class(ds_name, rpg_options, kernel_options, save_results=save_results, save_preimages=True, load_gm='auto', dir_save=dir_save, irrelevant_labels=irrelevant_labels, edge_required=edge_required)
  645. except Exception as exp:
  646. print('An exception occured when running this experiment:')
  647. LOG_FILENAME = dir_save + 'error.txt'
  648. logging.basicConfig(filename=LOG_FILENAME, level=logging.DEBUG)
  649. logging.exception('')
  650. print(repr(exp))
  651. def xp_median_preimage_8_1():
  652. """xp 8_1: Monoterpenoides, StructuralSP, using CONSTANT.
  653. """
  654. # set parameters.
  655. ds_name = 'Monoterpenoides' #
  656. rpg_options = {'k': 5,
  657. 'r_max': 10, #
  658. 'l': 500,
  659. 'alphas': None,
  660. 'parallel': True,
  661. 'verbose': 2}
  662. mixkernel = functools.partial(kernelproduct, deltakernel, gaussiankernel)
  663. sub_kernels = {'symb': deltakernel, 'nsymb': gaussiankernel, 'mix': mixkernel}
  664. kernel_options = {'name': 'StructuralSP',
  665. 'edge_weight': None,
  666. 'node_kernels': sub_kernels,
  667. 'edge_kernels': sub_kernels,
  668. 'compute_method': 'naive',
  669. 'parallel': 'imap_unordered',
  670. # 'parallel': None,
  671. 'n_jobs': multiprocessing.cpu_count(),
  672. 'normalize': True,
  673. 'verbose': 0}
  674. save_results = True
  675. dir_save = dir_root + ds_name + '.' + kernel_options['name'] + '/'
  676. irrelevant_labels = {'edge_labels': ['valence']} #
  677. edge_required = False #
  678. if not os.path.exists(dir_save):
  679. os.makedirs(dir_save)
  680. file_output = open(dir_save + 'output.txt', 'a')
  681. sys.stdout = file_output
  682. # print settings.
  683. print('parameters:')
  684. print('dataset name:', ds_name)
  685. print('kernel_options:', kernel_options)
  686. print('save_results:', save_results)
  687. print('irrelevant_labels:', irrelevant_labels)
  688. print()
  689. # generate preimages.
  690. try:
  691. generate_random_preimages_by_class(ds_name, rpg_options, kernel_options, save_results=save_results, save_preimages=True, load_gm='auto', dir_save=dir_save, irrelevant_labels=irrelevant_labels, edge_required=edge_required)
  692. except Exception as exp:
  693. print('An exception occured when running this experiment:')
  694. LOG_FILENAME = dir_save + 'error.txt'
  695. logging.basicConfig(filename=LOG_FILENAME, level=logging.DEBUG)
  696. logging.exception('')
  697. print(repr(exp))
  698. def xp_median_preimage_8_2():
  699. """xp 8_2: Monoterpenoides, PathUpToH, using CONSTANT.
  700. """
  701. # set parameters.
  702. ds_name = 'Monoterpenoides' #
  703. rpg_options = {'k': 5,
  704. 'r_max': 10, #
  705. 'l': 500,
  706. 'alphas': None,
  707. 'parallel': True,
  708. 'verbose': 2}
  709. kernel_options = {'name': 'PathUpToH',
  710. 'depth': 7, #
  711. 'k_func': 'MinMax', #
  712. 'compute_method': 'trie',
  713. 'parallel': 'imap_unordered',
  714. # 'parallel': None,
  715. 'n_jobs': multiprocessing.cpu_count(),
  716. 'normalize': True,
  717. 'verbose': 0}
  718. save_results = True
  719. dir_save = dir_root + ds_name + '.' + kernel_options['name'] + '/'
  720. irrelevant_labels = {'edge_labels': ['valence']} #
  721. edge_required = False #
  722. if not os.path.exists(dir_save):
  723. os.makedirs(dir_save)
  724. file_output = open(dir_save + 'output.txt', 'a')
  725. sys.stdout = file_output
  726. # print settings.
  727. print('parameters:')
  728. print('dataset name:', ds_name)
  729. print('kernel_options:', kernel_options)
  730. print('save_results:', save_results)
  731. print('irrelevant_labels:', irrelevant_labels)
  732. print()
  733. # generate preimages.
  734. try:
  735. generate_random_preimages_by_class(ds_name, rpg_options, kernel_options, save_results=save_results, save_preimages=True, load_gm='auto', dir_save=dir_save, irrelevant_labels=irrelevant_labels, edge_required=edge_required)
  736. except Exception as exp:
  737. print('An exception occured when running this experiment:')
  738. LOG_FILENAME = dir_save + 'error.txt'
  739. logging.basicConfig(filename=LOG_FILENAME, level=logging.DEBUG)
  740. logging.exception('')
  741. print(repr(exp))
  742. def xp_median_preimage_8_3():
  743. """xp 8_3: Monoterpenoides, Treelet, using CONSTANT.
  744. """
  745. from gklearn.utils.kernels import polynomialkernel
  746. # set parameters.
  747. ds_name = 'Monoterpenoides' #
  748. rpg_options = {'k': 5,
  749. 'r_max': 10, #
  750. 'l': 500,
  751. 'alphas': None,
  752. 'parallel': True,
  753. 'verbose': 0}
  754. pkernel = functools.partial(polynomialkernel, d=2, c=1e+5)
  755. kernel_options = {'name': 'Treelet',
  756. 'sub_kernel': pkernel,
  757. 'parallel': 'imap_unordered',
  758. # 'parallel': None,
  759. 'n_jobs': multiprocessing.cpu_count(),
  760. 'normalize': True,
  761. 'verbose': 0}
  762. save_results = True
  763. dir_save = dir_root + ds_name + '.' + kernel_options['name'] + '/'
  764. irrelevant_labels = {'edge_labels': ['valence']} #
  765. edge_required = False #
  766. if not os.path.exists(dir_save):
  767. os.makedirs(dir_save)
  768. file_output = open(dir_save + 'output.txt', 'a')
  769. sys.stdout = file_output
  770. # print settings.
  771. print('parameters:')
  772. print('dataset name:', ds_name)
  773. print('kernel_options:', kernel_options)
  774. print('save_results:', save_results)
  775. print('irrelevant_labels:', irrelevant_labels)
  776. print()
  777. # generate preimages.
  778. try:
  779. generate_random_preimages_by_class(ds_name, rpg_options, kernel_options, save_results=save_results, save_preimages=True, load_gm='auto', dir_save=dir_save, irrelevant_labels=irrelevant_labels, edge_required=edge_required)
  780. except Exception as exp:
  781. print('An exception occured when running this experiment:')
  782. LOG_FILENAME = dir_save + 'error.txt'
  783. logging.basicConfig(filename=LOG_FILENAME, level=logging.DEBUG)
  784. logging.exception('')
  785. print(repr(exp))
  786. def xp_median_preimage_8_4():
  787. """xp 8_4: Monoterpenoides, WeisfeilerLehman, using CONSTANT.
  788. """
  789. # set parameters.
  790. ds_name = 'Monoterpenoides' #
  791. rpg_options = {'k': 5,
  792. 'r_max': 10, #
  793. 'l': 500,
  794. 'alphas': None,
  795. 'parallel': True,
  796. 'verbose': 2}
  797. kernel_options = {'name': 'WeisfeilerLehman',
  798. 'height': 4,
  799. 'base_kernel': 'subtree',
  800. 'parallel': 'imap_unordered',
  801. # 'parallel': None,
  802. 'n_jobs': multiprocessing.cpu_count(),
  803. 'normalize': True,
  804. 'verbose': 0}
  805. save_results = True
  806. dir_save = dir_root + ds_name + '.' + kernel_options['name'] + '/'
  807. irrelevant_labels = {'edge_labels': ['valence']} #
  808. edge_required = False #
  809. if not os.path.exists(dir_save):
  810. os.makedirs(dir_save)
  811. file_output = open(dir_save + 'output.txt', 'a')
  812. sys.stdout = file_output
  813. # print settings.
  814. print('parameters:')
  815. print('dataset name:', ds_name)
  816. print('kernel_options:', kernel_options)
  817. print('save_results:', save_results)
  818. print('irrelevant_labels:', irrelevant_labels)
  819. print()
  820. # generate preimages.
  821. try:
  822. generate_random_preimages_by_class(ds_name, rpg_options, kernel_options, save_results=save_results, save_preimages=True, load_gm='auto', dir_save=dir_save, irrelevant_labels=irrelevant_labels, edge_required=edge_required)
  823. except Exception as exp:
  824. print('An exception occured when running this experiment:')
  825. LOG_FILENAME = dir_save + 'error.txt'
  826. logging.basicConfig(filename=LOG_FILENAME, level=logging.DEBUG)
  827. logging.exception('')
  828. print(repr(exp))
  829. def xp_median_preimage_7_1():
  830. """xp 7_1: MUTAG, StructuralSP, using CONSTANT.
  831. """
  832. # set parameters.
  833. ds_name = 'MUTAG' #
  834. rpg_options = {'k': 5,
  835. 'r_max': 10, #
  836. 'l': 500,
  837. 'alphas': None,
  838. 'parallel': True,
  839. 'verbose': 2}
  840. mixkernel = functools.partial(kernelproduct, deltakernel, gaussiankernel)
  841. sub_kernels = {'symb': deltakernel, 'nsymb': gaussiankernel, 'mix': mixkernel}
  842. kernel_options = {'name': 'StructuralSP',
  843. 'edge_weight': None,
  844. 'node_kernels': sub_kernels,
  845. 'edge_kernels': sub_kernels,
  846. 'compute_method': 'naive',
  847. 'parallel': 'imap_unordered',
  848. # 'parallel': None,
  849. 'n_jobs': multiprocessing.cpu_count(),
  850. 'normalize': True,
  851. 'verbose': 0}
  852. save_results = True
  853. dir_save = dir_root + ds_name + '.' + kernel_options['name'] + '/'
  854. irrelevant_labels = {'edge_labels': ['label_0']} #
  855. edge_required = False #
  856. if not os.path.exists(dir_save):
  857. os.makedirs(dir_save)
  858. file_output = open(dir_save + 'output.txt', 'a')
  859. sys.stdout = file_output
  860. # print settings.
  861. print('parameters:')
  862. print('dataset name:', ds_name)
  863. print('kernel_options:', kernel_options)
  864. print('save_results:', save_results)
  865. print('irrelevant_labels:', irrelevant_labels)
  866. print()
  867. # generate preimages.
  868. try:
  869. generate_random_preimages_by_class(ds_name, rpg_options, kernel_options, save_results=save_results, save_preimages=True, load_gm='auto', dir_save=dir_save, irrelevant_labels=irrelevant_labels, edge_required=edge_required)
  870. except Exception as exp:
  871. print('An exception occured when running this experiment:')
  872. LOG_FILENAME = dir_save + 'error.txt'
  873. logging.basicConfig(filename=LOG_FILENAME, level=logging.DEBUG)
  874. logging.exception('')
  875. print(repr(exp))
  876. def xp_median_preimage_7_2():
  877. """xp 7_2: MUTAG, PathUpToH, using CONSTANT.
  878. """
  879. # set parameters.
  880. ds_name = 'MUTAG' #
  881. rpg_options = {'k': 5,
  882. 'r_max': 10, #
  883. 'l': 500,
  884. 'alphas': None,
  885. 'parallel': True,
  886. 'verbose': 2}
  887. kernel_options = {'name': 'PathUpToH',
  888. 'depth': 2, #
  889. 'k_func': 'MinMax', #
  890. 'compute_method': 'trie',
  891. 'parallel': 'imap_unordered',
  892. # 'parallel': None,
  893. 'n_jobs': multiprocessing.cpu_count(),
  894. 'normalize': True,
  895. 'verbose': 0}
  896. save_results = True
  897. dir_save = dir_root + ds_name + '.' + kernel_options['name'] + '/'
  898. irrelevant_labels = {'edge_labels': ['label_0']} #
  899. edge_required = False #
  900. if not os.path.exists(dir_save):
  901. os.makedirs(dir_save)
  902. file_output = open(dir_save + 'output.txt', 'a')
  903. sys.stdout = file_output
  904. # print settings.
  905. print('parameters:')
  906. print('dataset name:', ds_name)
  907. print('kernel_options:', kernel_options)
  908. print('save_results:', save_results)
  909. print('irrelevant_labels:', irrelevant_labels)
  910. print()
  911. # generate preimages.
  912. try:
  913. generate_random_preimages_by_class(ds_name, rpg_options, kernel_options, save_results=save_results, save_preimages=True, load_gm='auto', dir_save=dir_save, irrelevant_labels=irrelevant_labels, edge_required=edge_required, cut_range=None)
  914. except Exception as exp:
  915. print('An exception occured when running experiment on xp_median_preimage_7_2:')
  916. LOG_FILENAME = dir_save + 'error.txt'
  917. logging.basicConfig(filename=LOG_FILENAME, level=logging.DEBUG)
  918. logging.exception('')
  919. print(repr(exp))
  920. def xp_median_preimage_7_3():
  921. """xp 7_3: MUTAG, Treelet, using CONSTANT.
  922. """
  923. from gklearn.utils.kernels import polynomialkernel
  924. # set parameters.
  925. ds_name = 'MUTAG' #
  926. rpg_options = {'k': 5,
  927. 'r_max': 10, #
  928. 'l': 500,
  929. 'alphas': None,
  930. 'parallel': True,
  931. 'verbose': 2}
  932. pkernel = functools.partial(polynomialkernel, d=3, c=1e+8)
  933. kernel_options = {'name': 'Treelet',
  934. 'sub_kernel': pkernel,
  935. 'parallel': 'imap_unordered',
  936. # 'parallel': None,
  937. 'n_jobs': multiprocessing.cpu_count(),
  938. 'normalize': True,
  939. 'verbose': 0}
  940. save_results = True
  941. dir_save = dir_root + ds_name + '.' + kernel_options['name'] + '/'
  942. irrelevant_labels = {'edge_labels': ['label_0']} #
  943. edge_required = False #
  944. if not os.path.exists(dir_save):
  945. os.makedirs(dir_save)
  946. file_output = open(dir_save + 'output.txt', 'a')
  947. sys.stdout = file_output
  948. # print settings.
  949. print('parameters:')
  950. print('dataset name:', ds_name)
  951. print('kernel_options:', kernel_options)
  952. print('save_results:', save_results)
  953. print('irrelevant_labels:', irrelevant_labels)
  954. print()
  955. # generate preimages.
  956. try:
  957. generate_random_preimages_by_class(ds_name, rpg_options, kernel_options, save_results=save_results, save_preimages=True, load_gm='auto', dir_save=dir_save, irrelevant_labels=irrelevant_labels, edge_required=edge_required)
  958. except Exception as exp:
  959. print('An exception occured when running this experiment:')
  960. LOG_FILENAME = dir_save + 'error.txt'
  961. logging.basicConfig(filename=LOG_FILENAME, level=logging.DEBUG)
  962. logging.exception('')
  963. print(repr(exp))
  964. def xp_median_preimage_7_4():
  965. """xp 7_4: MUTAG, WeisfeilerLehman, using CONSTANT.
  966. """
  967. # set parameters.
  968. ds_name = 'MUTAG' #
  969. rpg_options = {'k': 5,
  970. 'r_max': 10, #
  971. 'l': 500,
  972. 'alphas': None,
  973. 'parallel': True,
  974. 'verbose': 2}
  975. kernel_options = {'name': 'WeisfeilerLehman',
  976. 'height': 1,
  977. 'base_kernel': 'subtree',
  978. 'parallel': 'imap_unordered',
  979. # 'parallel': None,
  980. 'n_jobs': multiprocessing.cpu_count(),
  981. 'normalize': True,
  982. 'verbose': 0}
  983. save_results = True
  984. dir_save = dir_root + ds_name + '.' + kernel_options['name'] + '/'
  985. irrelevant_labels = {'edge_labels': ['label_0']} #
  986. edge_required = False #
  987. if not os.path.exists(dir_save):
  988. os.makedirs(dir_save)
  989. file_output = open(dir_save + 'output.txt', 'a')
  990. sys.stdout = file_output
  991. # print settings.
  992. print('parameters:')
  993. print('dataset name:', ds_name)
  994. print('kernel_options:', kernel_options)
  995. print('save_results:', save_results)
  996. print('irrelevant_labels:', irrelevant_labels)
  997. print()
  998. # generate preimages.
  999. try:
  1000. generate_random_preimages_by_class(ds_name, rpg_options, kernel_options, save_results=save_results, save_preimages=True, load_gm='auto', dir_save=dir_save, irrelevant_labels=irrelevant_labels, edge_required=edge_required)
  1001. except Exception as exp:
  1002. print('An exception occured when running this experiment:')
  1003. LOG_FILENAME = dir_save + 'error.txt'
  1004. logging.basicConfig(filename=LOG_FILENAME, level=logging.DEBUG)
  1005. logging.exception('')
  1006. print(repr(exp))
  1007. if __name__ == "__main__":
  1008. # #### xp 7_2: MUTAG, PathUpToH, using CONSTANT.
  1009. xp_median_preimage_7_2()
  1010. # #### xp 7_3: MUTAG, Treelet, using CONSTANT.
  1011. xp_median_preimage_7_3()
  1012. # #### xp 7_4: MUTAG, WeisfeilerLehman, using CONSTANT.
  1013. xp_median_preimage_7_4()
  1014. #
  1015. # #### xp 7_1: MUTAG, StructuralSP, using CONSTANT.
  1016. xp_median_preimage_7_1()
  1017. # #### xp 8_2: Monoterpenoides, PathUpToH, using CONSTANT.
  1018. xp_median_preimage_8_2()
  1019. # #### xp 8_3: Monoterpenoides, Treelet, using CONSTANT.
  1020. xp_median_preimage_8_3()
  1021. # #### xp 8_4: Monoterpenoides, WeisfeilerLehman, using CONSTANT.
  1022. xp_median_preimage_8_4()
  1023. # #### xp 8_1: Monoterpenoides, StructuralSP, using CONSTANT.
  1024. xp_median_preimage_8_1()
  1025. # #### xp 9_2: MAO, PathUpToH, using CONSTANT, symbolic only.
  1026. xp_median_preimage_9_2()
  1027. # #### xp 9_3: MAO, Treelet, using CONSTANT, symbolic only.
  1028. xp_median_preimage_9_3()
  1029. # #### xp 9_4: MAO, WeisfeilerLehman, using CONSTANT, symbolic only.
  1030. xp_median_preimage_9_4()
  1031. # #### xp 9_1: MAO, StructuralSP, using CONSTANT, symbolic only.
  1032. xp_median_preimage_9_1()
  1033. #### xp 12_1: PAH, StructuralSP, using NON_SYMBOLIC, unlabeled.
  1034. xp_median_preimage_12_1()
  1035. #### xp 12_2: PAH, PathUpToH, using CONSTANT, unlabeled.
  1036. xp_median_preimage_12_2()
  1037. #### xp 12_3: PAH, Treelet, using CONSTANT, unlabeled.
  1038. xp_median_preimage_12_3()
  1039. #### xp 12_4: PAH, WeisfeilerLehman, using CONSTANT, unlabeled.
  1040. xp_median_preimage_12_4()
  1041. #### xp 12_5: PAH, ShortestPath, using NON_SYMBOLIC, unlabeled.
  1042. xp_median_preimage_12_5()
  1043. # #### xp 15_1: AIDS, StructuralSP, using CONSTANT, symbolic only.
  1044. xp_median_preimage_15_1()
  1045. # #### xp 15_2: AIDS, PathUpToH, using CONSTANT, symbolic only.
  1046. xp_median_preimage_15_2()
  1047. # #### xp 15_3: AIDS, Treelet, using CONSTANT, symbolic only.
  1048. xp_median_preimage_15_3()
  1049. # #### xp 15_4: AIDS, WeisfeilerLehman, using CONSTANT, symbolic only.
  1050. xp_median_preimage_15_4()
  1051. #
  1052. #### xp 14_1: DD, PathUpToH, using CONSTANT.
  1053. xp_median_preimage_14_1()

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