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) 2011-2013 Sergey Lisitsyn 00008 * Copyright (C) 2011-2013 Berlin Institute of Technology and Max-Planck-Society 00009 */ 00010 00011 #ifndef LOCALLYLINEAREMBEDDING_H_ 00012 #define LOCALLYLINEAREMBEDDING_H_ 00013 #include <shogun/lib/config.h> 00014 #ifdef HAVE_EIGEN3 00015 #include <shogun/converter/EmbeddingConverter.h> 00016 #include <shogun/features/Features.h> 00017 #include <shogun/features/DenseFeatures.h> 00018 #include <shogun/distance/Distance.h> 00019 00020 namespace shogun 00021 { 00022 00023 class CFeatures; 00024 class CDistance; 00025 00047 class CLocallyLinearEmbedding: public CEmbeddingConverter 00048 { 00049 public: 00050 00052 CLocallyLinearEmbedding(); 00053 00055 virtual ~CLocallyLinearEmbedding(); 00056 00060 virtual CFeatures* apply(CFeatures* features); 00061 00065 void set_k(int32_t k); 00066 00070 int32_t get_k() const; 00071 00075 void set_reconstruction_shift(float64_t reconstruction_shift); 00076 00080 float64_t get_reconstruction_shift() const; 00081 00085 void set_nullspace_shift(float64_t nullspace_shift); 00086 00090 float64_t get_nullspace_shift() const; 00091 00093 virtual const char* get_name() const; 00094 00096 protected: 00097 00099 void init(); 00100 00102 protected: 00103 00105 int32_t m_k; 00106 00108 float64_t m_reconstruction_shift; 00109 00111 float64_t m_nullspace_shift; 00112 00113 }; 00114 } 00115 00116 #endif /* HAVE_EIGEN3 */ 00117 #endif /* LOCALLYLINEAREMBEDDING_H_ */