Browse Source

[To finish] Remove dummy labels in treelet kernel (for the contest.)

v0.2.x
jajupmochi 4 years ago
parent
commit
231c050f88
1 changed files with 19 additions and 2 deletions
  1. +19
    -2
      gklearn/kernels/treelet.py

+ 19
- 2
gklearn/kernels/treelet.py View File

@@ -369,13 +369,13 @@ class Treelet(GraphKernel):


def _compute_single_kernel_series(self, g1, g2):
self._add_dummy_labels([g1] + [g2])
# self._add_dummy_labels([g1] + [g2])
canonkeys_1 = self._get_canonkeys(g1)
canonkeys_2 = self._get_canonkeys(g2)
kernel = self._kernel_do(canonkeys_1, canonkeys_2)
return kernel

# @profile
def _kernel_do(self, canonkey1, canonkey2):
"""Compute treelet graph kernel between 2 graphs.

@@ -392,6 +392,23 @@ class Treelet(GraphKernel):
keys = set(canonkey1.keys()) & set(canonkey2.keys()) # find same canonical keys in both graphs
vector1 = np.array([(canonkey1[key] if (key in canonkey1.keys()) else 0) for key in keys])
vector2 = np.array([(canonkey2[key] if (key in canonkey2.keys()) else 0) for key in keys])

# vector1, vector2 = [], []
# keys1, keys2 = canonkey1, canonkey2
# keys_searched = {}
# for k, v in canonkey1.items():
# if k in keys2:
# vector1.append(v)
# vector2.append(canonkey2[k])
# keys_searched[k] = v

# for k, v in canonkey2.items():
# if k in keys1 and k not in keys_searched:
# vector1.append(canonkey1[k])
# vector2.append(v)

# vector1, vector2 = np.array(vector1), np.array(vector2)

kernel = self.sub_kernel(vector1, vector2)
return kernel



Loading…
Cancel
Save