SHOGUN
v3.2.0
|
00001 /* 00002 * This program is free software; you can redistribute it and/or modify 00003 * it under the terms of the GNU General Public License as published by 00004 * the Free Software Foundation; either version 3 of the License, or 00005 * (at your option) any later version. 00006 * 00007 * Written (W) 2013 Vladyslav S. Gorbatiuk 00008 * Copyright (C) 2011-2013 Vladyslav S. Gorbatiuk 00009 */ 00010 00011 #ifndef TDISTRIBUTEDSTOCHASTICNEIGHBOREMBEDDING_H_ 00012 #define TDISTRIBUTEDSTOCHASTICNEIGHBOREMBEDDING_H_ 00013 #include <shogun/lib/config.h> 00014 #ifdef HAVE_EIGEN3 00015 #include <shogun/converter/EmbeddingConverter.h> 00016 #include <shogun/features/Features.h> 00017 00018 namespace shogun 00019 { 00020 00028 class CTDistributedStochasticNeighborEmbedding : public CEmbeddingConverter 00029 { 00030 public: 00031 00033 CTDistributedStochasticNeighborEmbedding(); 00034 00036 virtual ~CTDistributedStochasticNeighborEmbedding(); 00037 00039 virtual const char* get_name() const; 00040 00045 virtual CFeatures* apply(CFeatures* features); 00046 00051 void set_theta(const float64_t theta); 00052 00057 float64_t get_theta() const; 00058 00063 void set_perplexity(const float64_t perplexity); 00064 00069 float64_t get_perplexity() const; 00070 00071 private: 00072 00074 void init(); 00075 00076 private: 00077 00079 float64_t m_theta; 00080 00082 float64_t m_perplexity; 00083 00084 }; /* class CTDistributedStochasticNeighborEmbedding */ 00085 00086 } /* namespace shogun */ 00087 00088 #endif /* HAVE_EIGEN3 */ 00089 #endif /* TDISTRIBUTEDSTOCHASTICNEIGHBOREMBEDDING_H_ */