Skip to content

Commit

Permalink
refactored directory structure
Browse files Browse the repository at this point in the history
  • Loading branch information
lambday authored and karlnapf committed Jul 4, 2016
1 parent 5277aa0 commit abadf67
Show file tree
Hide file tree
Showing 23 changed files with 45 additions and 61 deletions.
8 changes: 1 addition & 7 deletions src/shogun/statistical_testing/MMD.cpp
Expand Up @@ -41,18 +41,12 @@
#include <shogun/statistical_testing/QuadraticTimeMMD.h>
#include <shogun/statistical_testing/BTestMMD.h>
#include <shogun/statistical_testing/LinearTimeMMD.h>
#include <shogun/statistical_testing/KernelSelectionStrategy.h>
#include <shogun/statistical_testing/kernelselection/KernelSelectionStrategy.h>
#include <shogun/statistical_testing/internals/NextSamples.h>
#include <shogun/statistical_testing/internals/DataManager.h>
#include <shogun/statistical_testing/internals/FeaturesUtil.h>
#include <shogun/statistical_testing/internals/KernelManager.h>
#include <shogun/statistical_testing/internals/ComputationManager.h>
#include <shogun/statistical_testing/internals/MaxMeasure.h>
#include <shogun/statistical_testing/internals/MaxTestPower.h>
#include <shogun/statistical_testing/internals/MaxXValidation.h>
#include <shogun/statistical_testing/internals/MedianHeuristic.h>
#include <shogun/statistical_testing/internals/WeightedMaxMeasure.h>
#include <shogun/statistical_testing/internals/WeightedMaxTestPower.h>
#include <shogun/statistical_testing/internals/mmd/BiasedFull.h>
#include <shogun/statistical_testing/internals/mmd/UnbiasedFull.h>
#include <shogun/statistical_testing/internals/mmd/UnbiasedIncomplete.h>
Expand Down
Expand Up @@ -34,15 +34,15 @@
#include <shogun/lib/SGMatrix.h>
#include <shogun/distance/CustomDistance.h>
#include <shogun/statistical_testing/MMD.h>
#include <shogun/statistical_testing/KernelSelectionStrategy.h>
#include <shogun/statistical_testing/internals/KernelManager.h>
#include <shogun/statistical_testing/internals/KernelSelection.h>
#include <shogun/statistical_testing/internals/MaxMeasure.h>
#include <shogun/statistical_testing/internals/MaxTestPower.h>
#include <shogun/statistical_testing/internals/MaxXValidation.h>
#include <shogun/statistical_testing/internals/MedianHeuristic.h>
#include <shogun/statistical_testing/internals/WeightedMaxMeasure.h>
#include <shogun/statistical_testing/internals/WeightedMaxTestPower.h>
#include <shogun/statistical_testing/kernelselection/KernelSelectionStrategy.h>
#include <shogun/statistical_testing/kernelselection/internals/KernelSelection.h>
#include <shogun/statistical_testing/kernelselection/internals/MaxMeasure.h>
#include <shogun/statistical_testing/kernelselection/internals/MaxTestPower.h>
#include <shogun/statistical_testing/kernelselection/internals/MaxXValidation.h>
#include <shogun/statistical_testing/kernelselection/internals/MedianHeuristic.h>
#include <shogun/statistical_testing/kernelselection/internals/WeightedMaxMeasure.h>
#include <shogun/statistical_testing/kernelselection/internals/WeightedMaxTestPower.h>

using namespace shogun;
using namespace internal;
Expand Down
Expand Up @@ -32,7 +32,7 @@
#include <shogun/io/SGIO.h>
#include <shogun/statistical_testing/MMD.h>
#include <shogun/statistical_testing/internals/KernelManager.h>
#include <shogun/statistical_testing/internals/KernelSelection.h>
#include <shogun/statistical_testing/kernelselection/internals/KernelSelection.h>

using namespace shogun;
using namespace internal;
Expand Down
Expand Up @@ -34,8 +34,8 @@
#include <shogun/lib/SGMatrix.h>
#include <shogun/kernel/Kernel.h>
#include <shogun/statistical_testing/MMD.h>
#include <shogun/statistical_testing/internals/MaxMeasure.h>
#include <shogun/statistical_testing/internals/KernelManager.h>
#include <shogun/statistical_testing/kernelselection/internals/MaxMeasure.h>

using namespace shogun;
using namespace internal;
Expand Down
Expand Up @@ -33,7 +33,7 @@
#define MAX_MEASURE_H__

#include <shogun/lib/common.h>
#include <shogun/statistical_testing/internals/KernelSelection.h>
#include <shogun/statistical_testing/kernelselection/internals/KernelSelection.h>

namespace shogun
{
Expand Down
Expand Up @@ -34,8 +34,8 @@
#include <shogun/kernel/Kernel.h>
#include <shogun/mathematics/Math.h>
#include <shogun/statistical_testing/MMD.h>
#include <shogun/statistical_testing/internals/MaxTestPower.h>
#include <shogun/statistical_testing/internals/KernelManager.h>
#include <shogun/statistical_testing/kernelselection/internals/MaxTestPower.h>

using namespace shogun;
using namespace internal;
Expand Down
Expand Up @@ -33,7 +33,7 @@
#define MAX_TEST_POWER_H__

#include <shogun/lib/common.h>
#include <shogun/statistical_testing/internals/MaxMeasure.h>
#include <shogun/statistical_testing/kernelselection/internals/MaxMeasure.h>

namespace shogun
{
Expand Down
Expand Up @@ -34,9 +34,9 @@
#include <shogun/lib/SGMatrix.h>
#include <shogun/kernel/Kernel.h>
#include <shogun/statistical_testing/MMD.h>
#include <shogun/statistical_testing/internals/MaxXValidation.h>
#include <shogun/statistical_testing/internals/KernelManager.h>
#include <shogun/statistical_testing/internals/DataManager.h>
#include <shogun/statistical_testing/kernelselection/internals/MaxXValidation.h>

using namespace shogun;
using namespace internal;
Expand Down Expand Up @@ -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;
}
}

Expand Down
Expand Up @@ -33,7 +33,7 @@
#define MAX_XVALIDATIN_H__

#include <shogun/lib/common.h>
#include <shogun/statistical_testing/internals/KernelSelection.h>
#include <shogun/statistical_testing/kernelselection/internals/KernelSelection.h>

namespace shogun
{
Expand Down
Expand Up @@ -36,7 +36,7 @@
#include <shogun/kernel/GaussianKernel.h>
#include <shogun/distance/CustomDistance.h>
#include <shogun/statistical_testing/MMD.h>
#include <shogun/statistical_testing/internals/MedianHeuristic.h>
#include <shogun/statistical_testing/kernelselection/internals/MedianHeuristic.h>
#include <shogun/statistical_testing/internals/KernelManager.h>

using namespace shogun;
Expand Down
Expand Up @@ -33,7 +33,7 @@
#define MEDIAN_HEURISTIC_H__

#include <shogun/lib/common.h>
#include <shogun/statistical_testing/internals/KernelSelection.h>
#include <shogun/statistical_testing/kernelselection/internals/KernelSelection.h>

namespace shogun
{
Expand Down
Expand Up @@ -14,7 +14,7 @@
#include <shogun/lib/SGVector.h>
#include <shogun/lib/SGMatrix.h>
#include <shogun/mathematics/Math.h>
#include <shogun/statistical_testing/internals/OptimizationSolver.h>
#include <shogun/statistical_testing/kernelselection/internals/OptimizationSolver.h>

//#ifdef USE_GPL_SHOGUN
#include <shogun/lib/external/libqp.h>
Expand Down
Expand Up @@ -35,8 +35,8 @@
#include <shogun/kernel/CombinedKernel.h>
#include <shogun/statistical_testing/MMD.h>
#include <shogun/statistical_testing/internals/KernelManager.h>
#include <shogun/statistical_testing/internals/WeightedMaxMeasure.h>
#include <shogun/statistical_testing/internals/OptimizationSolver.h>
#include <shogun/statistical_testing/kernelselection/internals/WeightedMaxMeasure.h>
#include <shogun/statistical_testing/kernelselection/internals/OptimizationSolver.h>

using namespace shogun;
using namespace internal;
Expand Down
Expand Up @@ -33,7 +33,7 @@
#define WEIGHTED_MAX_MEASURE_H__

#include <shogun/lib/common.h>
#include <shogun/statistical_testing/internals/MaxMeasure.h>
#include <shogun/statistical_testing/kernelselection/internals/MaxMeasure.h>

namespace shogun
{
Expand Down
Expand Up @@ -35,8 +35,8 @@
#include <shogun/kernel/CombinedKernel.h>
#include <shogun/statistical_testing/MMD.h>
#include <shogun/statistical_testing/internals/KernelManager.h>
#include <shogun/statistical_testing/internals/WeightedMaxTestPower.h>
#include <shogun/statistical_testing/internals/OptimizationSolver.h>
#include <shogun/statistical_testing/kernelselection/internals/WeightedMaxTestPower.h>
#include <shogun/statistical_testing/kernelselection/internals/OptimizationSolver.h>

using namespace shogun;
using namespace internal;
Expand Down
Expand Up @@ -38,7 +38,7 @@
#include <shogun/mathematics/eigen3.h>
#include <shogun/mathematics/Math.h>
#include <shogun/statistical_testing/LinearTimeMMD.h>
#include <shogun/statistical_testing/KernelSelectionStrategy.h>
#include <shogun/statistical_testing/kernelselection/KernelSelectionStrategy.h>
#include <gtest/gtest.h>

using namespace shogun;
Expand Down
Expand Up @@ -38,7 +38,7 @@
#include <shogun/mathematics/eigen3.h>
#include <shogun/mathematics/Math.h>
#include <shogun/statistical_testing/LinearTimeMMD.h>
#include <shogun/statistical_testing/KernelSelectionStrategy.h>
#include <shogun/statistical_testing/kernelselection/KernelSelectionStrategy.h>
#include <gtest/gtest.h>

using namespace shogun;
Expand Down
@@ -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.
*
Expand Down Expand Up @@ -31,55 +30,46 @@

#include <shogun/base/some.h>
#include <shogun/kernel/GaussianKernel.h>
#include <shogun/kernel/CombinedKernel.h>
#include <shogun/features/DenseFeatures.h>
#include <shogun/features/streaming/generators/MeanShiftDataGenerator.h>
#include <shogun/mathematics/Statistics.h>
#include <shogun/mathematics/eigen3.h>
#include <shogun/mathematics/Math.h>
#include <shogun/statistical_testing/QuadraticTimeMMD.h>
#include <shogun/statistical_testing/KernelSelectionStrategy.h>
#include <shogun/statistical_testing/kernelselection/KernelSelectionStrategy.h>
#include <gtest/gtest.h>

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<CMeanShiftDataGenerator>(0, dim, 0);
auto gen_q=some<CMeanShiftDataGenerator>(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<CQuadraticTimeMMD>(feats_p, feats_q);
mmd->set_statistic_type(ST_BIASED_FULL);

for (auto i=0; i<num_kernels; ++i)
for (auto i=0, sigma=-5; i<num_kernels; ++i, sigma+=1)
{
// shoguns kernel width is different
float64_t sigma=(i+1)*0.5;
float64_t sq_sigma_twice=sigma*sigma*2;
mmd->add_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<CGaussianKernel*>(mmd->get_kernel());
EXPECT_NEAR(selected_kernel->get_width(), 0.5, 1E-10);
EXPECT_NEAR(selected_kernel->get_width(), 0.03125, 1E-10);
}
Expand Up @@ -35,7 +35,7 @@
#include <shogun/features/streaming/generators/MeanShiftDataGenerator.h>
#include <shogun/statistical_testing/QuadraticTimeMMD.h>
#include <shogun/statistical_testing/LinearTimeMMD.h>
#include <shogun/statistical_testing/KernelSelectionStrategy.h>
#include <shogun/statistical_testing/kernelselection/KernelSelectionStrategy.h>
#include <gtest/gtest.h>

using namespace shogun;
Expand Down

0 comments on commit abadf67

Please sign in to comment.