示例#1
0
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}
示例#2
0
    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
示例#3
0
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}