43 using namespace internal;
45 MaxTestPower::MaxTestPower(KernelManager& km,
CMMD* est) : MaxMeasure(km, est), lambda(1E-5)
49 MaxTestPower::~MaxTestPower()
53 void MaxTestPower::compute_measures()
56 REQUIRE(estimator!=
nullptr,
"Estimator is not set!\n");
57 const auto m=estimator->get_num_samples_p();
58 const auto n=estimator->get_num_samples_q();
59 auto existing_kernel=estimator->get_kernel();
60 const auto num_kernels=kernel_mgr.num_kernels();
64 for (
auto i=0; i<num_kernels; ++i)
66 auto kernel=kernel_mgr.kernel_at(i);
68 auto estimates=streaming_mmd->compute_statistic_variance();
69 auto var_est=estimates.first;
70 auto mmd_est=estimates.second*(m+n)/m/n;
79 measures=quadratictime_mmd->multikernel()->test_power(kernel_mgr);
82 estimator->set_kernel(existing_kernel);
This class implements the quadratic time Maximum Mean Statistic as described in [1]. The MMD is the distance of two probability distributions and in a RKHS which we denote by .
all of classes and functions are contained in the shogun namespace
Abstract base class that provides an interface for performing kernel two-sample test using Maximum Me...
static float32_t sqrt(float32_t x)
virtual void set_kernel(CKernel *kernel)