diff --git a/src/shogun/statistical_testing/MMD.cpp b/src/shogun/statistical_testing/MMD.cpp index 1289492b6a3..944a94db1c3 100644 --- a/src/shogun/statistical_testing/MMD.cpp +++ b/src/shogun/statistical_testing/MMD.cpp @@ -41,18 +41,12 @@ #include #include #include -#include +#include #include #include #include #include #include -#include -#include -#include -#include -#include -#include #include #include #include diff --git a/src/shogun/statistical_testing/KernelSelectionStrategy.cpp b/src/shogun/statistical_testing/kernelselection/KernelSelectionStrategy.cpp similarity index 91% rename from src/shogun/statistical_testing/KernelSelectionStrategy.cpp rename to src/shogun/statistical_testing/kernelselection/KernelSelectionStrategy.cpp index b93729e1976..d7f4242b8cf 100644 --- a/src/shogun/statistical_testing/KernelSelectionStrategy.cpp +++ b/src/shogun/statistical_testing/kernelselection/KernelSelectionStrategy.cpp @@ -34,15 +34,15 @@ #include #include #include -#include #include -#include -#include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include +#include +#include +#include using namespace shogun; using namespace internal; diff --git a/src/shogun/statistical_testing/KernelSelectionStrategy.h b/src/shogun/statistical_testing/kernelselection/KernelSelectionStrategy.h similarity index 100% rename from src/shogun/statistical_testing/KernelSelectionStrategy.h rename to src/shogun/statistical_testing/kernelselection/KernelSelectionStrategy.h diff --git a/src/shogun/statistical_testing/internals/KernelSelection.cpp b/src/shogun/statistical_testing/kernelselection/internals/KernelSelection.cpp similarity index 96% rename from src/shogun/statistical_testing/internals/KernelSelection.cpp rename to src/shogun/statistical_testing/kernelselection/internals/KernelSelection.cpp index a9970558ef5..c0467c19f59 100644 --- a/src/shogun/statistical_testing/internals/KernelSelection.cpp +++ b/src/shogun/statistical_testing/kernelselection/internals/KernelSelection.cpp @@ -32,7 +32,7 @@ #include #include #include -#include +#include using namespace shogun; using namespace internal; diff --git a/src/shogun/statistical_testing/internals/KernelSelection.h b/src/shogun/statistical_testing/kernelselection/internals/KernelSelection.h similarity index 100% rename from src/shogun/statistical_testing/internals/KernelSelection.h rename to src/shogun/statistical_testing/kernelselection/internals/KernelSelection.h diff --git a/src/shogun/statistical_testing/internals/MaxMeasure.cpp b/src/shogun/statistical_testing/kernelselection/internals/MaxMeasure.cpp similarity index 97% rename from src/shogun/statistical_testing/internals/MaxMeasure.cpp rename to src/shogun/statistical_testing/kernelselection/internals/MaxMeasure.cpp index 82a23f66d37..26db3ca6144 100644 --- a/src/shogun/statistical_testing/internals/MaxMeasure.cpp +++ b/src/shogun/statistical_testing/kernelselection/internals/MaxMeasure.cpp @@ -34,8 +34,8 @@ #include #include #include -#include #include +#include using namespace shogun; using namespace internal; diff --git a/src/shogun/statistical_testing/internals/MaxMeasure.h b/src/shogun/statistical_testing/kernelselection/internals/MaxMeasure.h similarity index 96% rename from src/shogun/statistical_testing/internals/MaxMeasure.h rename to src/shogun/statistical_testing/kernelselection/internals/MaxMeasure.h index ba8efee57ce..20b9d686afd 100644 --- a/src/shogun/statistical_testing/internals/MaxMeasure.h +++ b/src/shogun/statistical_testing/kernelselection/internals/MaxMeasure.h @@ -33,7 +33,7 @@ #define MAX_MEASURE_H__ #include -#include +#include namespace shogun { diff --git a/src/shogun/statistical_testing/internals/MaxTestPower.cpp b/src/shogun/statistical_testing/kernelselection/internals/MaxTestPower.cpp similarity index 97% rename from src/shogun/statistical_testing/internals/MaxTestPower.cpp rename to src/shogun/statistical_testing/kernelselection/internals/MaxTestPower.cpp index f65d1b3f670..b27dfd7fc29 100644 --- a/src/shogun/statistical_testing/internals/MaxTestPower.cpp +++ b/src/shogun/statistical_testing/kernelselection/internals/MaxTestPower.cpp @@ -34,8 +34,8 @@ #include #include #include -#include #include +#include using namespace shogun; using namespace internal; diff --git a/src/shogun/statistical_testing/internals/MaxTestPower.h b/src/shogun/statistical_testing/kernelselection/internals/MaxTestPower.h similarity index 96% rename from src/shogun/statistical_testing/internals/MaxTestPower.h rename to src/shogun/statistical_testing/kernelselection/internals/MaxTestPower.h index 10164a1d856..9386ff2459b 100644 --- a/src/shogun/statistical_testing/internals/MaxTestPower.h +++ b/src/shogun/statistical_testing/kernelselection/internals/MaxTestPower.h @@ -33,7 +33,7 @@ #define MAX_TEST_POWER_H__ #include -#include +#include namespace shogun { diff --git a/src/shogun/statistical_testing/internals/MaxXValidation.cpp b/src/shogun/statistical_testing/kernelselection/internals/MaxXValidation.cpp similarity index 96% rename from src/shogun/statistical_testing/internals/MaxXValidation.cpp rename to src/shogun/statistical_testing/kernelselection/internals/MaxXValidation.cpp index dc8ae64b679..20694977382 100644 --- a/src/shogun/statistical_testing/internals/MaxXValidation.cpp +++ b/src/shogun/statistical_testing/kernelselection/internals/MaxXValidation.cpp @@ -34,9 +34,9 @@ #include #include #include -#include #include #include +#include using namespace shogun; using namespace internal; @@ -111,7 +111,7 @@ void MaxXValidation::compute_measures() { auto begin=rejections.get_column_vector(j); auto size=rejections.num_rows; - measures[j]=std::accumulate(begin, begin+size, 0)/float64_t(size); + measures[j]=std::accumulate(begin, begin+size, 0.0)/size; } } diff --git a/src/shogun/statistical_testing/internals/MaxXValidation.h b/src/shogun/statistical_testing/kernelselection/internals/MaxXValidation.h similarity index 96% rename from src/shogun/statistical_testing/internals/MaxXValidation.h rename to src/shogun/statistical_testing/kernelselection/internals/MaxXValidation.h index 6388884989f..7a30987c665 100644 --- a/src/shogun/statistical_testing/internals/MaxXValidation.h +++ b/src/shogun/statistical_testing/kernelselection/internals/MaxXValidation.h @@ -33,7 +33,7 @@ #define MAX_XVALIDATIN_H__ #include -#include +#include namespace shogun { diff --git a/src/shogun/statistical_testing/internals/MedianHeuristic.cpp b/src/shogun/statistical_testing/kernelselection/internals/MedianHeuristic.cpp similarity index 98% rename from src/shogun/statistical_testing/internals/MedianHeuristic.cpp rename to src/shogun/statistical_testing/kernelselection/internals/MedianHeuristic.cpp index 276a59df455..72219946796 100644 --- a/src/shogun/statistical_testing/internals/MedianHeuristic.cpp +++ b/src/shogun/statistical_testing/kernelselection/internals/MedianHeuristic.cpp @@ -36,7 +36,7 @@ #include #include #include -#include +#include #include using namespace shogun; diff --git a/src/shogun/statistical_testing/internals/MedianHeuristic.h b/src/shogun/statistical_testing/kernelselection/internals/MedianHeuristic.h similarity index 96% rename from src/shogun/statistical_testing/internals/MedianHeuristic.h rename to src/shogun/statistical_testing/kernelselection/internals/MedianHeuristic.h index 1086c1ac258..a81faa81efd 100644 --- a/src/shogun/statistical_testing/internals/MedianHeuristic.h +++ b/src/shogun/statistical_testing/kernelselection/internals/MedianHeuristic.h @@ -33,7 +33,7 @@ #define MEDIAN_HEURISTIC_H__ #include -#include +#include namespace shogun { diff --git a/src/shogun/statistical_testing/internals/OptimizationSolver.cpp b/src/shogun/statistical_testing/kernelselection/internals/OptimizationSolver.cpp similarity index 98% rename from src/shogun/statistical_testing/internals/OptimizationSolver.cpp rename to src/shogun/statistical_testing/kernelselection/internals/OptimizationSolver.cpp index 47d944566e7..f9e175032ee 100644 --- a/src/shogun/statistical_testing/internals/OptimizationSolver.cpp +++ b/src/shogun/statistical_testing/kernelselection/internals/OptimizationSolver.cpp @@ -14,7 +14,7 @@ #include #include #include -#include +#include //#ifdef USE_GPL_SHOGUN #include diff --git a/src/shogun/statistical_testing/internals/OptimizationSolver.h b/src/shogun/statistical_testing/kernelselection/internals/OptimizationSolver.h similarity index 100% rename from src/shogun/statistical_testing/internals/OptimizationSolver.h rename to src/shogun/statistical_testing/kernelselection/internals/OptimizationSolver.h diff --git a/src/shogun/statistical_testing/internals/WeightedMaxMeasure.cpp b/src/shogun/statistical_testing/kernelselection/internals/WeightedMaxMeasure.cpp similarity index 94% rename from src/shogun/statistical_testing/internals/WeightedMaxMeasure.cpp rename to src/shogun/statistical_testing/kernelselection/internals/WeightedMaxMeasure.cpp index 52ace838d09..4ce92028c0d 100644 --- a/src/shogun/statistical_testing/internals/WeightedMaxMeasure.cpp +++ b/src/shogun/statistical_testing/kernelselection/internals/WeightedMaxMeasure.cpp @@ -35,8 +35,8 @@ #include #include #include -#include -#include +#include +#include using namespace shogun; using namespace internal; diff --git a/src/shogun/statistical_testing/internals/WeightedMaxMeasure.h b/src/shogun/statistical_testing/kernelselection/internals/WeightedMaxMeasure.h similarity index 96% rename from src/shogun/statistical_testing/internals/WeightedMaxMeasure.h rename to src/shogun/statistical_testing/kernelselection/internals/WeightedMaxMeasure.h index 8b365836d30..fde5d8cc6b4 100644 --- a/src/shogun/statistical_testing/internals/WeightedMaxMeasure.h +++ b/src/shogun/statistical_testing/kernelselection/internals/WeightedMaxMeasure.h @@ -33,7 +33,7 @@ #define WEIGHTED_MAX_MEASURE_H__ #include -#include +#include namespace shogun { diff --git a/src/shogun/statistical_testing/internals/WeightedMaxTestPower.cpp b/src/shogun/statistical_testing/kernelselection/internals/WeightedMaxTestPower.cpp similarity index 93% rename from src/shogun/statistical_testing/internals/WeightedMaxTestPower.cpp rename to src/shogun/statistical_testing/kernelselection/internals/WeightedMaxTestPower.cpp index 6f8e7e3aa5e..b892a30d96a 100644 --- a/src/shogun/statistical_testing/internals/WeightedMaxTestPower.cpp +++ b/src/shogun/statistical_testing/kernelselection/internals/WeightedMaxTestPower.cpp @@ -35,8 +35,8 @@ #include #include #include -#include -#include +#include +#include using namespace shogun; using namespace internal; diff --git a/src/shogun/statistical_testing/internals/WeightedMaxTestPower.h b/src/shogun/statistical_testing/kernelselection/internals/WeightedMaxTestPower.h similarity index 100% rename from src/shogun/statistical_testing/internals/WeightedMaxTestPower.h rename to src/shogun/statistical_testing/kernelselection/internals/WeightedMaxTestPower.h diff --git a/tests/unit/statistical_testing/KernelSelectionMaxMMD_unittest.cc b/tests/unit/statistical_testing/KernelSelectionMaxMMD_unittest.cc index cbd77d8599d..291fd447224 100644 --- a/tests/unit/statistical_testing/KernelSelectionMaxMMD_unittest.cc +++ b/tests/unit/statistical_testing/KernelSelectionMaxMMD_unittest.cc @@ -38,7 +38,7 @@ #include #include #include -#include +#include #include using namespace shogun; diff --git a/tests/unit/statistical_testing/KernelSelectionMaxPower_unittest.cc b/tests/unit/statistical_testing/KernelSelectionMaxPower_unittest.cc index fa7ff51716b..63a6e2101eb 100644 --- a/tests/unit/statistical_testing/KernelSelectionMaxPower_unittest.cc +++ b/tests/unit/statistical_testing/KernelSelectionMaxPower_unittest.cc @@ -38,7 +38,7 @@ #include #include #include -#include +#include #include using namespace shogun; diff --git a/tests/unit/statistical_testing/KernelSelectionMaxXValidation_unittest.cc b/tests/unit/statistical_testing/KernelSelectionMaxXValidation_unittest.cc index 9f17ac926da..d501db8e6ca 100644 --- a/tests/unit/statistical_testing/KernelSelectionMaxXValidation_unittest.cc +++ b/tests/unit/statistical_testing/KernelSelectionMaxXValidation_unittest.cc @@ -1,6 +1,5 @@ /* * Copyright (c) The Shogun Machine Learning Toolbox - * Written (W) 2012-2013 Heiko Strathmann * Written (w) 2016 Soumyajit De * All rights reserved. * @@ -31,55 +30,46 @@ #include #include -#include #include #include -#include -#include -#include #include -#include +#include #include using namespace shogun; TEST(KernelSelectionMaxXValidation, single_kernel) { - const index_t m=10; - const index_t n=15; - const index_t dim=2; + const index_t m=5; + const index_t n=10; + const index_t dim=1; const float64_t difference=0.5; const index_t num_kernels=10; + const index_t num_runs=1; + const index_t num_folds=5; + const float64_t alpha=0.05; - // use fixed seed sg_rand->set_seed(12345); - // streaming data generator for mean shift distributions - auto gen_p=new CMeanShiftDataGenerator(0, dim, 0); - auto gen_q=new CMeanShiftDataGenerator(difference, dim, 0); - + auto gen_p=some(0, dim, 0); + auto gen_q=some(difference, dim, 0); auto feats_p=gen_p->get_streamed_features(m); auto feats_q=gen_q->get_streamed_features(n); - SG_UNREF(gen_p); - SG_UNREF(gen_q); - - // create MMD instance, convienience constructor auto mmd=some(feats_p, feats_q); - mmd->set_statistic_type(ST_BIASED_FULL); - for (auto i=0; iadd_kernel(new CGaussianKernel(10, sq_sigma_twice)); + float64_t tau=pow(2, sigma); + mmd->add_kernel(new CGaussianKernel(10, tau)); } - mmd->set_kernel_selection_strategy(KSM_MAXIMIZE_XVALIDATION, 5, 0.05); + mmd->set_kernel_selection_strategy(KSM_MAXIMIZE_XVALIDATION, num_runs, alpha); mmd->set_train_test_mode(true); - mmd->set_train_test_ratio(4); + mmd->set_train_test_ratio(num_folds-1); mmd->select_kernel(); + mmd->set_train_test_mode(false); + auto selected_kernel=static_cast(mmd->get_kernel()); - EXPECT_NEAR(selected_kernel->get_width(), 0.5, 1E-10); + EXPECT_NEAR(selected_kernel->get_width(), 0.03125, 1E-10); } diff --git a/tests/unit/statistical_testing/KernelSelectionMedianHeuristic_unittest.cc b/tests/unit/statistical_testing/KernelSelectionMedianHeuristic_unittest.cc index 6c3298668c9..242f5520369 100644 --- a/tests/unit/statistical_testing/KernelSelectionMedianHeuristic_unittest.cc +++ b/tests/unit/statistical_testing/KernelSelectionMedianHeuristic_unittest.cc @@ -35,7 +35,7 @@ #include #include #include -#include +#include #include using namespace shogun;