def job_qhsic_med(paired_source, tr, te, r): """ Quadratic-time HSIC using the permutation test. - Gaussian kernels. - No parameter selection procedure. Use the median heuristic for both X and Y. - Use full sample for testing. """ # use full sample for testing. Merge training and test sets pdata = tr + te n_permute = 500 if pdata.sample_size() >= 5000: # give up. Too big. k, l = kl_kgauss_median(pdata) qhsic = it.QuadHSIC(k, l, n_permute, alpha=alpha, seed=r + 1) fake_result = { 'alpha': alpha, 'pvalue': 1, 'test_stat': -1, 'h0_rejected': False, 'time_secs': 0, 'n_permute': n_permute } return {'indtest': qhsic, 'test_result': fake_result, 'time_secs': 0} # Actually do the test with util.ContextTimer() as t: k, l = kl_kgauss_median(pdata) qhsic = it.QuadHSIC(k, l, n_permute, alpha=alpha, seed=r + 1) qhsic_result = qhsic.perform_test(pdata) return {'indtest': qhsic, 'test_result': qhsic_result, 'time_secs': t.secs}
def setUp(self): n = 50 dx = 2 pdata_mean = get_pdata_mean(n, dx) k, l = kl_median(pdata_mean) self.qhsic = it.QuadHSIC(k, l, n_permute=60, alpha=0.01) self.pdata_mean = pdata_mean
def job_qhsic_med(paired_source, tr, te, r): """ Quadratic-time HSIC using the permutation test. - Gaussian kernels. - No parameter selection procedure. Use the median heuristic for both X and Y. - Use full sample for testing. """ # use full sample for testing. Merge training and test sets pdata = tr + te n_permute = 300 with util.ContextTimer() as t: k, l = kl_kgauss_median(pdata) qhsic = it.QuadHSIC(k, l, n_permute, alpha=alpha, seed=r + 1) qhsic_result = qhsic.perform_test(pdata) return {'indtest': qhsic, 'test_result': qhsic_result, 'time_secs': t.secs}