Skip to content

Commit

Permalink
removed convenient ctor from hypothesis testing classes (#4268)
Browse files Browse the repository at this point in the history
  • Loading branch information
lambday authored and karlnapf committed May 1, 2018
1 parent 9a14c52 commit b85020c
Show file tree
Hide file tree
Showing 13 changed files with 136 additions and 126 deletions.
Expand Up @@ -3,12 +3,12 @@ GaussianBlobsDataGenerator features_q()

#![create_instance]
LinearTimeMMD mmd()
GaussianKernel kernel(10, 1)
mmd.set_kernel(kernel)
mmd.set_p(features_p)
mmd.set_q(features_q)
mmd.set_num_samples_p(1000)
mmd.set_num_samples_q(1000)
Kernel k = kernel("GaussianKernel", log_width = 1.0)
mmd.set_kernel(k)
real alpha = 0.05
#![create_instance]

Expand Down
Expand Up @@ -7,9 +7,11 @@ Features features_q = features(f_features_q)
#![create_features]

#![create_instance]
QuadraticTimeMMD mmd(features_p, features_q)
GaussianKernel kernel(10, 1)
mmd.set_kernel(kernel)
QuadraticTimeMMD mmd()
mmd.set_p(features_p)
mmd.set_q(features_q)
Kernel k = kernel("GaussianKernel", log_width = 1.0)
mmd.set_kernel(k)
real alpha = 0.05
#![create_instance]

Expand Down
6 changes: 0 additions & 6 deletions src/shogun/statistical_testing/LinearTimeMMD.cpp
Expand Up @@ -46,12 +46,6 @@ CLinearTimeMMD::CLinearTimeMMD() : CStreamingMMD()
{
}

CLinearTimeMMD::CLinearTimeMMD(CFeatures* samples_from_p, CFeatures* samples_from_q) : CStreamingMMD()
{
set_p(samples_from_p);
set_q(samples_from_q);
}

CLinearTimeMMD::~CLinearTimeMMD()
{
}
Expand Down
1 change: 0 additions & 1 deletion src/shogun/statistical_testing/LinearTimeMMD.h
Expand Up @@ -42,7 +42,6 @@ class CLinearTimeMMD : public CStreamingMMD
public:
typedef std::function<float32_t(SGMatrix<float32_t>)> operation;
CLinearTimeMMD();
CLinearTimeMMD(CFeatures* samples_from_p, CFeatures* samples_from_q);
virtual ~CLinearTimeMMD();

void set_num_blocks_per_burst(index_t num_blocks_per_burst);
Expand Down
5 changes: 0 additions & 5 deletions src/shogun/statistical_testing/MMD.cpp
Expand Up @@ -134,11 +134,6 @@ CMMD::CMMD() : CTwoSampleTest()
init();
}

CMMD::CMMD(CFeatures* samples_from_p, CFeatures* samples_from_q) : CTwoSampleTest(samples_from_p, samples_from_q)
{
init();
}

void CMMD::init()
{
#if EIGEN_VERSION_AT_LEAST(3,1,0)
Expand Down
8 changes: 0 additions & 8 deletions src/shogun/statistical_testing/MMD.h
Expand Up @@ -123,14 +123,6 @@ class CMMD : public CTwoSampleTest
/** Default constructor */
CMMD();

/**
* Convenience constructor that initializes the samples from two distributions.
*
* @param samples_from_p Samples from \f$p\f$
* @param samples_from_q Samples from \f$q\f$
*/
CMMD(CFeatures* samples_from_p, CFeatures* samples_from_q);

/** Destructor */
virtual ~CMMD();

Expand Down
5 changes: 0 additions & 5 deletions src/shogun/statistical_testing/QuadraticTimeMMD.cpp
Expand Up @@ -184,11 +184,6 @@ CQuadraticTimeMMD::CQuadraticTimeMMD() : CMMD()
init();
}

CQuadraticTimeMMD::CQuadraticTimeMMD(CFeatures* samples_from_p, CFeatures* samples_from_q) : CMMD(samples_from_p, samples_from_q)
{
init();
}

void CQuadraticTimeMMD::init()
{
self=unique_ptr<Self>(new Self(*this));
Expand Down
9 changes: 0 additions & 9 deletions src/shogun/statistical_testing/QuadraticTimeMMD.h
Expand Up @@ -102,15 +102,6 @@ class CQuadraticTimeMMD : public CMMD
/** Default constructor */
CQuadraticTimeMMD();

/**
* Convenience constructor. Initializes the features representing samples
* from both the distributions.
*
* @param samples_from_p Samples from p.
* @param samples_from_q Samples from q.
*/
CQuadraticTimeMMD(CFeatures* samples_from_p, CFeatures* samples_from_q);

/** Destructor */
virtual ~CQuadraticTimeMMD();

Expand Down
7 changes: 0 additions & 7 deletions src/shogun/statistical_testing/TwoSampleTest.cpp
Expand Up @@ -52,13 +52,6 @@ CTwoSampleTest::CTwoSampleTest() : CTwoDistributionTest()
self=std::unique_ptr<Self>(new Self(TwoSampleTest::num_kernels));
}

CTwoSampleTest::CTwoSampleTest(CFeatures* samples_from_p, CFeatures* samples_from_q) : CTwoDistributionTest()
{
self=std::unique_ptr<Self>(new Self(TwoSampleTest::num_kernels));
set_p(samples_from_p);
set_q(samples_from_q);
}

CTwoSampleTest::~CTwoSampleTest()
{
}
Expand Down
8 changes: 0 additions & 8 deletions src/shogun/statistical_testing/TwoSampleTest.h
Expand Up @@ -61,14 +61,6 @@ class CTwoSampleTest : public CTwoDistributionTest
/** Default constructor */
CTwoSampleTest();

/**
* Convenience constructor that initializes the samples from two distributions.
*
* @param samples_from_p Samples from \f$p\f$
* @param samples_from_q Samples from \f$q\f$
*/
CTwoSampleTest(CFeatures* samples_from_p, CFeatures* samples_from_q);

/** Destructor */
virtual ~CTwoSampleTest();

Expand Down
44 changes: 33 additions & 11 deletions tests/unit/statistical_testing/KernelSelection_unittest.cc
Expand Up @@ -55,7 +55,9 @@ TEST(KernelSelectionMaxMMD, linear_time_single_kernel_streaming)
auto gen_p=new CMeanShiftDataGenerator(0, dim, 0);
auto gen_q=new CMeanShiftDataGenerator(difference, dim, 0);

auto mmd=some<CLinearTimeMMD>(gen_p, gen_q);
auto mmd=some<CLinearTimeMMD>();
mmd->set_p(gen_p);
mmd->set_q(gen_q);
mmd->set_statistic_type(ST_BIASED_FULL);
mmd->set_num_samples_p(m);
mmd->set_num_samples_q(n);
Expand Down Expand Up @@ -91,7 +93,9 @@ TEST(KernelSelectionMaxMMD, quadratic_time_single_kernel_dense)
auto feats_p=gen_p->get_streamed_features(m);
auto feats_q=gen_q->get_streamed_features(n);

auto mmd=some<CQuadraticTimeMMD>(feats_p, feats_q);
auto mmd=some<CQuadraticTimeMMD>();
mmd->set_p(feats_p);
mmd->set_q(feats_q);
mmd->set_statistic_type(ST_BIASED_FULL);
for (auto i=0, sigma=-5; i<num_kernels; ++i, sigma+=1)
{
Expand Down Expand Up @@ -127,7 +131,9 @@ TEST(
auto feats_p = gen_p->get_streamed_features(m);
auto feats_q = gen_q->get_streamed_features(n);

auto mmd = some<CQuadraticTimeMMD>(feats_p, feats_q);
auto mmd = some<CQuadraticTimeMMD>();
mmd->set_p(feats_p);
mmd->set_q(feats_q);
mmd->set_statistic_type(ST_BIASED_FULL);
for (auto i = 0, sigma = -5; i < num_kernels; ++i, sigma += 1)
{
Expand Down Expand Up @@ -155,7 +161,9 @@ TEST(KernelSelectionMaxMMD, linear_time_weighted_kernel_streaming)
auto gen_p=new CMeanShiftDataGenerator(0, dim, 0);
auto gen_q=new CMeanShiftDataGenerator(difference, dim, 0);

auto mmd=some<CLinearTimeMMD>(gen_p, gen_q);
auto mmd=some<CLinearTimeMMD>();
mmd->set_p(gen_p);
mmd->set_q(gen_q);
mmd->set_statistic_type(ST_BIASED_FULL);
mmd->set_num_samples_p(m);
mmd->set_num_samples_q(n);
Expand Down Expand Up @@ -194,7 +202,9 @@ TEST(KernelSelectionMaxTestPower, linear_time_single_kernel_streaming)
auto gen_p=new CMeanShiftDataGenerator(0, dim, 0);
auto gen_q=new CMeanShiftDataGenerator(difference, dim, 0);

auto mmd=some<CLinearTimeMMD>(gen_p, gen_q);
auto mmd=some<CLinearTimeMMD>();
mmd->set_p(gen_p);
mmd->set_q(gen_q);
mmd->set_statistic_type(ST_BIASED_FULL);
mmd->set_num_samples_p(m);
mmd->set_num_samples_q(n);
Expand Down Expand Up @@ -227,7 +237,9 @@ TEST(KernelSelectionMaxTestPower, quadratic_time_single_kernel)
auto gen_p=new CMeanShiftDataGenerator(0, dim, 0);
auto gen_q=new CMeanShiftDataGenerator(difference, dim, 0);

auto mmd=some<CQuadraticTimeMMD>(gen_p, gen_q);
auto mmd=some<CQuadraticTimeMMD>();
mmd->set_p(gen_p);
mmd->set_q(gen_q);
mmd->set_statistic_type(ST_UNBIASED_FULL);
mmd->set_num_samples_p(m);
mmd->set_num_samples_q(n);
Expand Down Expand Up @@ -260,7 +272,9 @@ TEST(KernelSelectionMaxTestPower, linear_time_weighted_kernel_streaming)
auto gen_p=new CMeanShiftDataGenerator(0, dim, 0);
auto gen_q=new CMeanShiftDataGenerator(difference, dim, 0);

auto mmd=some<CLinearTimeMMD>(gen_p, gen_q);
auto mmd=some<CLinearTimeMMD>();
mmd->set_p(gen_p);
mmd->set_q(gen_q);
mmd->set_statistic_type(ST_BIASED_FULL);
mmd->set_num_samples_p(m);
mmd->set_num_samples_q(n);
Expand Down Expand Up @@ -305,7 +319,9 @@ TEST(KernelSelectionMaxCrossValidation, quadratic_time_single_kernel_dense)
auto feats_p=gen_p->get_streamed_features(m);
auto feats_q=gen_q->get_streamed_features(n);

auto mmd=some<CQuadraticTimeMMD>(feats_p, feats_q);
auto mmd=some<CQuadraticTimeMMD>();
mmd->set_p(feats_p);
mmd->set_q(feats_q);
mmd->set_statistic_type(ST_BIASED_FULL);
mmd->set_null_approximation_method(NAM_PERMUTATION);
mmd->set_num_null_samples(10);
Expand Down Expand Up @@ -344,7 +360,9 @@ TEST(KernelSelectionMaxCrossValidation, linear_time_single_kernel_dense)
auto feats_p=gen_p->get_streamed_features(m);
auto feats_q=gen_q->get_streamed_features(n);

auto mmd=some<CLinearTimeMMD>(feats_p, feats_q);
auto mmd=some<CLinearTimeMMD>();
mmd->set_p(feats_p);
mmd->set_q(feats_q);
mmd->set_statistic_type(ST_BIASED_FULL);
for (auto i=0, sigma=-5; i<num_kernels; ++i, sigma+=1)
{
Expand Down Expand Up @@ -375,7 +393,9 @@ TEST(KernelSelectionMedianHeuristic, quadratic_time_single_kernel_dense)
auto gen_p=new CMeanShiftDataGenerator(0, dim, 0);
auto gen_q=new CMeanShiftDataGenerator(difference, dim, 0);

auto mmd=some<CQuadraticTimeMMD>(gen_p, gen_q);
auto mmd=some<CQuadraticTimeMMD>();
mmd->set_p(gen_p);
mmd->set_q(gen_q);
mmd->set_statistic_type(ST_BIASED_FULL);
mmd->set_num_samples_p(m);
mmd->set_num_samples_q(n);
Expand Down Expand Up @@ -407,7 +427,9 @@ TEST(KernelSelectionMedianHeuristic, linear_time_single_kernel_dense)
auto gen_p=new CMeanShiftDataGenerator(0, dim, 0);
auto gen_q=new CMeanShiftDataGenerator(difference, dim, 0);

auto mmd=some<CLinearTimeMMD>(gen_p, gen_q);
auto mmd=some<CLinearTimeMMD>();
mmd->set_p(gen_p);
mmd->set_q(gen_q);
mmd->set_statistic_type(ST_BIASED_FULL);
mmd->set_num_samples_p(m);
mmd->set_num_samples_q(n);
Expand Down
45 changes: 27 additions & 18 deletions tests/unit/statistical_testing/LinearTimeMMD_unittest.cc
Expand Up @@ -72,8 +72,9 @@ TEST(LinearTimeMMD, biased_same_num_samples)
float64_t sq_sigma_twice=sigma*sigma*2;
CGaussianKernel* kernel=new CGaussianKernel(10, sq_sigma_twice);

// create MMD instance, convienience constructor
auto mmd=some<CLinearTimeMMD>(features_p, features_q);
auto mmd=some<CLinearTimeMMD>();
mmd->set_p(features_p);
mmd->set_q(features_q);
mmd->set_statistic_type(ST_BIASED_FULL);
mmd->set_num_blocks_per_burst(1000);
mmd->set_kernel(kernel);
Expand Down Expand Up @@ -116,8 +117,9 @@ TEST(LinearTimeMMD, unbiased_same_num_samples)
float64_t sq_sigma_twice=sigma*sigma*2;
CGaussianKernel* kernel=new CGaussianKernel(10, sq_sigma_twice);

// create MMD instance, convienience constructor
auto mmd=some<CLinearTimeMMD>(features_p, features_q);
auto mmd=some<CLinearTimeMMD>();
mmd->set_p(features_p);
mmd->set_q(features_q);
mmd->set_statistic_type(ST_UNBIASED_FULL);
mmd->set_num_blocks_per_burst(1000);
mmd->set_kernel(kernel);
Expand Down Expand Up @@ -160,8 +162,9 @@ TEST(LinearTimeMMD, incomplete_same_num_samples)
float64_t sq_sigma_twice=sigma*sigma*2;
CGaussianKernel* kernel=new CGaussianKernel(10, sq_sigma_twice);

// create MMD instance, convienience constructor
auto mmd=some<CLinearTimeMMD>(features_p, features_q);
auto mmd=some<CLinearTimeMMD>();
mmd->set_p(features_p);
mmd->set_q(features_q);
mmd->set_statistic_type(ST_UNBIASED_INCOMPLETE);
mmd->set_num_blocks_per_burst(1000);
mmd->set_kernel(kernel);
Expand Down Expand Up @@ -204,8 +207,9 @@ TEST(LinearTimeMMD, biased_different_null_samples)
float64_t sq_sigma_twice=sigma*sigma*2;
CGaussianKernel* kernel=new CGaussianKernel(10, sq_sigma_twice);

// create MMD instance, convienience constructor
auto mmd=some<CLinearTimeMMD>(features_p, features_q);
auto mmd=some<CLinearTimeMMD>();
mmd->set_p(features_p);
mmd->set_q(features_q);
mmd->set_statistic_type(ST_BIASED_FULL);
mmd->set_num_blocks_per_burst(1000);
mmd->set_kernel(kernel);
Expand Down Expand Up @@ -248,8 +252,9 @@ TEST(LinearTimeMMD, unbiased_different_null_samples)
float64_t sq_sigma_twice=sigma*sigma*2;
CGaussianKernel* kernel=new CGaussianKernel(10, sq_sigma_twice);

// create MMD instance, convienience constructor
auto mmd=some<CLinearTimeMMD>(features_p, features_q);
auto mmd=some<CLinearTimeMMD>();
mmd->set_p(features_p);
mmd->set_q(features_q);
mmd->set_statistic_type(ST_UNBIASED_FULL);
mmd->set_num_blocks_per_burst(1000);
mmd->set_kernel(kernel);
Expand Down Expand Up @@ -292,8 +297,9 @@ TEST(LinearTimeMMD, compute_variance_null)
float64_t sq_sigma_twice=sigma*sigma*2;
CGaussianKernel* kernel=new CGaussianKernel(10, sq_sigma_twice);

// create MMD instance, convienience constructor
auto mmd=some<CLinearTimeMMD>(features_p, features_q);
auto mmd=some<CLinearTimeMMD>();
mmd->set_p(features_p);
mmd->set_q(features_q);
mmd->set_num_blocks_per_burst(1000);
mmd->set_kernel(kernel);

Expand Down Expand Up @@ -331,8 +337,9 @@ TEST(LinearTimeMMD, perform_test_gaussian_biased_full)
float64_t sq_sigma_twice=sigma*sigma*2;
CGaussianKernel* kernel=new CGaussianKernel(10, sq_sigma_twice);

// create MMD instance, convienience constructor
auto mmd=some<CLinearTimeMMD>(gen_p, gen_q);
auto mmd=some<CLinearTimeMMD>();
mmd->set_p(gen_p);
mmd->set_q(gen_q);
mmd->set_num_samples_p(m);
mmd->set_num_samples_q(n);
mmd->set_num_blocks_per_burst(1000);
Expand Down Expand Up @@ -371,8 +378,9 @@ TEST(LinearTimeMMD, perform_test_gaussian_unbiased_full)
float64_t sq_sigma_twice=sigma*sigma*2;
CGaussianKernel* kernel=new CGaussianKernel(10, sq_sigma_twice);

// create MMD instance, convienience constructor
auto mmd=some<CLinearTimeMMD>(gen_p, gen_q);
auto mmd=some<CLinearTimeMMD>();
mmd->set_p(gen_p);
mmd->set_q(gen_q);
mmd->set_num_samples_p(m);
mmd->set_num_samples_q(n);
mmd->set_num_blocks_per_burst(1000);
Expand Down Expand Up @@ -411,8 +419,9 @@ TEST(LinearTimeMMD, perform_test_gaussian_unbiased_incomplete)
float64_t sq_sigma_twice=sigma*sigma*2;
CGaussianKernel* kernel=new CGaussianKernel(10, sq_sigma_twice);

// create MMD instance, convienience constructor
auto mmd=some<CLinearTimeMMD>(gen_p, gen_q);
auto mmd=some<CLinearTimeMMD>();
mmd->set_p(gen_p);
mmd->set_q(gen_q);
mmd->set_num_samples_p(m);
mmd->set_num_samples_q(n);
mmd->set_num_blocks_per_burst(1000);
Expand Down

0 comments on commit b85020c

Please sign in to comment.