def test_poly_sg(self): d1 = np.random.randn(105, 32) d2 = np.random.randn(41, 32) sk = sgK.PolySGKernel() nk = npK.PolyKernel(coef0=1) ordervals = [1, 2, 3, 5, 7] for p in ordervals: sk.params.degree = p nk.params.degree = p sk.compute(d1, d2) nk.compute(d1, d2) self.kernel_equiv(nk, sk)
def test_custom_sg(self): lk = sgK.LinearSGKernel() cl = sgK.CustomSGKernel(sgK.sgk.LinearKernel) poly = sgK.PolySGKernel() poly_params = [('order', 2), ('inhomogenous', True)] if not exists('sg ge 0.6.5'): poly_params += [('use_normalization', False)] custom = sgK.CustomSGKernel(sgK.sgk.PolyKernel, kernel_params=poly_params) d = np.random.randn(253, 52) lk.compute(d) cl.compute(d) poly.compute(d) custom.compute(d) self.assertTrue(np.all(lk.as_np()._k == cl.as_np()._k), 'CustomSGKernel does not agree with Linear') self.assertTrue(np.all(poly.as_np()._k == custom.as_np()._k), 'CustomSGKernel does not agree with Poly')