SHOGUN
v2.0.0
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
converter
MultidimensionalScaling.h
Go to the documentation of this file.
1
/*
2
* This program is free software; you can redistribute it and/or modify
3
* it under the terms of the GNU General Public License as published by
4
* the Free Software Foundation; either version 3 of the License, or
5
* (at your option) any later version.
6
*
7
* Written (W) 2011 Sergey Lisitsyn
8
* Copyright (C) 2011 Berlin Institute of Technology and Max-Planck-Society
9
*/
10
11
#ifndef MULTIDIMENSIONALSCALING_H_
12
#define MULTIDIMENSIONALSCALING_H_
13
#include <
shogun/lib/config.h
>
14
#ifdef HAVE_LAPACK
15
#include <
shogun/converter/EmbeddingConverter.h
>
16
#include <
shogun/features/Features.h
>
17
#include <
shogun/distance/Distance.h
>
18
19
namespace
shogun
20
{
21
22
class
CFeatures;
23
class
CDistance;
24
64
class
CMultidimensionalScaling
:
public
CEmbeddingConverter
65
{
66
public
:
67
68
/* constructor */
69
CMultidimensionalScaling
();
70
71
/* destructor */
72
virtual
~CMultidimensionalScaling
();
73
78
virtual
CDenseFeatures<float64_t>
*
embed_distance
(
CDistance
*
distance
);
79
85
virtual
CFeatures
*
apply
(
CFeatures
* features);
86
88
const
char
*
get_name
()
const
;
89
93
SGVector<float64_t>
get_eigenvalues
()
const
;
94
100
void
set_landmark_number
(int32_t num);
101
105
int32_t
get_landmark_number
()
const
;
106
110
void
set_landmark
(
bool
landmark);
111
115
bool
get_landmark
()
const
;
116
118
protected
:
119
121
virtual
void
init
();
122
127
SGMatrix<float64_t>
classic_embedding
(
SGMatrix<float64_t>
distance_matrix);
128
133
SGMatrix<float64_t>
landmark_embedding
(
SGMatrix<float64_t>
distance_matrix);
134
139
virtual
SGMatrix<float64_t>
process_distance_matrix
(
SGMatrix<float64_t>
distance_matrix);
140
142
protected
:
143
145
SGVector<float64_t>
m_eigenvalues
;
146
148
bool
m_landmark
;
149
151
int32_t
m_landmark_number
;
152
154
protected
:
155
159
static
void
*
run_triangulation_thread
(
void
* p);
160
167
static
SGVector<int32_t>
shuffle
(int32_t count, int32_t total_count);
168
169
};
170
171
}
172
#endif
/* HAVE_LAPACK */
173
#endif
/* MULTIDIMENSIONALSCALING_H_ */
SHOGUN
Machine Learning Toolbox - Documentation