1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- #ifndef _NICE_OBJREC_REGGAUSSIANPROCESSINCLUDE
- #define _NICE_OBJREC_REGGAUSSIANPROCESSINCLUDE
- #include "core/basics/Config.h"
- #include "vislearning/math/kernels/KernelData.h"
- #include "vislearning/math/kernels/TraceApproximation.h"
- #include "vislearning/math/kernels/ParameterizedKernel.h"
- #include "vislearning/regression/regressionbase/RegressionAlgorithmKernel.h"
- #include "vislearning/regression/regressionbase/TeachWithInverseKernelMatrix.h"
- #include "vislearning/regression/gpregression/modelselcrit/genericGPModelSelection.h"
- #include "vislearning/regression/regressionbase/RegressionAlgorithmKernel.h"
- namespace OBJREC {
-
- class RegGaussianProcess : public RegressionAlgorithmKernel
- {
- protected:
- enum {
- OPTIMIZATION_METHOD_RASMUSSEN = 0,
- OPTIMIZATION_METHOD_TRUSTREGION
- };
- NICE::Vector kInvY;
- bool verbose;
- bool optimizeParameters;
- int optimizationMethod;
- int maxIterations;
- TraceApproximation *traceApproximation;
- GPMSCLooLikelihoodRegression *modelselcrit;
- bool useLooParameters;
- public:
-
-
- RegGaussianProcess( const NICE::Config *conf,
- Kernel *kernelFunction = NULL,
- const std::string & section = "RegGaussianProcess" );
-
- RegGaussianProcess ( const RegGaussianProcess & src );
-
-
- virtual ~RegGaussianProcess();
-
- using RegressionAlgorithmKernel::teach;
-
-
- void teach ( KernelData *kernelData, const NICE::Vector & y );
-
- double predictKernel ( const NICE::Vector & kernelVector, double kernelSelf );
-
- virtual RegGaussianProcess *clone(void) const;
- void setOptimization ( bool optimizeParameters ) { this->optimizeParameters = optimizeParameters; };
-
- void restore(std::istream& ifs, int type = 0);
- void store(std::ostream& ofs, int type = 0) const;
-
-
- };
- }
- #endif
|