SHOGUN
3.2.1
Main Page
Related Pages
Modules
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
src
shogun
statistics
QuadraticTimeMMD.h
Go to the documentation of this file.
1
/*
2
* Copyright (c) The Shogun Machine Learning Toolbox
3
* Written (w) 2012-2013 Heiko Strathmann
4
* All rights reserved.
5
*
6
* Redistribution and use in source and binary forms, with or without
7
* modification, are permitted provided that the following conditions are met:
8
*
9
* 1. Redistributions of source code must retain the above copyright notice, this
10
* list of conditions and the following disclaimer.
11
* 2. Redistributions in binary form must reproduce the above copyright notice,
12
* this list of conditions and the following disclaimer in the documentation
13
* and/or other materials provided with the distribution.
14
*
15
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
16
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
17
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
18
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
19
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
20
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
21
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
22
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
23
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
24
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25
*
26
* The views and conclusions contained in the software and documentation are those
27
* of the authors and should not be interpreted as representing official policies,
28
* either expressed or implied, of the Shogun Development Team.
29
*/
30
31
#ifndef __QUADRACTIMEMMD_H_
32
#define __QUADRACTIMEMMD_H_
33
34
#include <
shogun/statistics/KernelTwoSampleTest.h
>
35
36
namespace
shogun
37
{
38
39
class
CFeatures;
40
class
CKernel;
41
class
CCustomKernel;
42
44
enum
EQuadraticMMDType
45
{
46
BIASED
,
UNBIASED
47
};
48
107
class
CQuadraticTimeMMD
:
public
CKernelTwoSampleTest
108
{
109
public
:
110
CQuadraticTimeMMD
();
111
122
CQuadraticTimeMMD
(
CKernel
* kernel,
CFeatures
* p_and_q,
index_t
m);
123
135
CQuadraticTimeMMD
(
CKernel
* kernel,
CFeatures
* p,
CFeatures
* q);
136
146
CQuadraticTimeMMD
(
CCustomKernel
* custom_kernel,
index_t
m);
147
148
virtual
~CQuadraticTimeMMD
();
149
156
virtual
float64_t
compute_statistic
();
157
165
virtual
SGVector<float64_t>
compute_statistic
(
bool
multiple_kernels);
166
178
virtual
float64_t
compute_p_value
(
float64_t
statistic);
179
190
virtual
float64_t
compute_threshold
(
float64_t
alpha);
191
192
virtual
const
char
*
get_name
()
const
193
{
194
return
"QuadraticTimeMMD"
;
195
};
196
198
virtual
EStatisticType
get_statistic_type
()
const
199
{
200
return
S_QUADRATIC_TIME_MMD
;
201
}
202
203
#ifdef HAVE_LAPACK
204
226
SGVector<float64_t>
sample_null_spectrum
(
index_t
num_samples,
227
index_t
num_eigenvalues);
228
#endif // HAVE_LAPACK
229
236
void
set_num_samples_sepctrum
(
index_t
num_samples_spectrum);
237
244
void
set_num_eigenvalues_spectrum
(
index_t
num_eigenvalues_spectrum);
245
247
void
set_statistic_type
(
EQuadraticMMDType
statistic_type);
248
269
SGVector<float64_t>
fit_null_gamma
();
270
271
protected
:
273
virtual
float64_t
compute_unbiased_statistic
();
274
276
virtual
float64_t
compute_biased_statistic
();
277
278
private
:
279
void
init();
280
281
protected
:
283
index_t
m_num_samples_spectrum
;
284
286
index_t
m_num_eigenvalues_spectrum
;
287
289
EQuadraticMMDType
m_statistic_type
;
290
};
291
292
}
293
294
#endif
/* __QUADRACTIMEMMD_H_ */
SHOGUN
Machine Learning Toolbox - Documentation