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.

README.md 3.1 kB

7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. # py-graph
  2. A python package for graph kernels.
  3. ## Requirements
  4. * numpy - 1.13.3
  5. * scipy - 1.0.0
  6. * matplotlib - 2.1.0
  7. * networkx - 2.0
  8. * sklearn - 0.19.1
  9. * tabulate - 0.8.2
  10. ## Results with minimal test RMSE for each kernel on dataset Asyclic
  11. All kernels are tested on dataset Asyclic, which consists of 185 molecules (graphs).
  12. The criteria used for prediction are SVM for classification and kernel Ridge regression for regression.
  13. For predition we randomly divide the data in train and test subset, where 90% of entire dataset is for training and rest for testing. 10 splits are performed. For each split, we first train on the train data, then evaluate the performance on the test set. We choose the optimal parameters for the test set and finally provide the corresponding performance. The final results correspond to the average of the performances on the test sets.
  14. | Kernels | RMSE(℃) | STD(℃) | Parameter | k_time |
  15. |---------------|:---------:|:--------:|-------------:|-------:|
  16. | Shortest path | 35.19 | 4.50 | - | 14.58" |
  17. | Marginalized | 18.02 | 6.29 | p_quit = 0.1 | 4'19" |
  18. | Path | 14.00 | 6.93 | - | 36.21" |
  19. | WL subtree | 7.55 | 2.33 | height = 1 | 0.84" |
  20. | Treelet | 8.31 | 3.38 | - | 49.58" |
  21. * RMSE stands for arithmetic mean of the root mean squared errors on all splits.
  22. * STD stands for standard deviation of the root mean squared errors on all splits.
  23. * Paremeter is the one with which the kenrel achieves the best results.
  24. * k_time is the time spent on building the kernel matrix.
  25. * The targets of training data are normalized before calculating *path kernel* and *treelet kernel*.
  26. * See detail results in [results.md](pygraph/kernels/results.md).
  27. ## Updates
  28. ### 2018.01.16
  29. * ADD *treelet kernel* and its result on dataset Asyclic. - linlin
  30. * MOD the way to calculate WL subtree kernel, correct its results. - linlin
  31. * ADD *kernel_train_test* and *split_train_test* to wrap training and testing process. - linlin
  32. * MOD readme.md file, add detailed results of each kernel. - linlin
  33. ### 2017.12.22
  34. * ADD calculation of the time spend to acquire kernel matrices for each kernel. - linlin
  35. * MOD floydTransformation function, calculate shortest paths taking into consideration user-defined edge weight. - linlin
  36. * MOD implementation of nodes and edges attributes genericity for all kernels. - linlin
  37. * ADD detailed results file results.md. - linlin
  38. ### 2017.12.21
  39. * MOD Weisfeiler-Lehman subtree kernel and the test code. - linlin
  40. ### 2017.12.20
  41. * ADD *Weisfeiler-Lehman subtree kernel* and its result on dataset Asyclic. - linlin
  42. ### 2017.12.07
  43. * ADD *mean average path kernel* and its result on dataset Asyclic. - linlin
  44. * ADD delta kernel. - linlin
  45. * MOD reconstruction the code of marginalized kernel. - linlin
  46. ### 2017.12.05
  47. * ADD *marginalized kernel* and its result. - linlin
  48. * ADD list required python packages in file README.md. - linlin
  49. ### 2017.11.24
  50. * ADD *shortest path kernel* and its result. - linlin

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