12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- /**
- * @file KCGPApproxOneClass.h
- * @brief One-Class Gaussian Process Regression for Classification: we approximate the inverse of the regularized kernel matrix using a diagonal matrix
- * @author Alexander Lütz
- * @date 22-05-2012 (dd-mm-yyyy)
- */
- #ifndef KCGPAPPROXONECLASSINCLUDE
- #define KCGPAPPROXONECLASSINCLUDE
- #include "vislearning/cbaselib/ClassificationResult.h"
- #include "vislearning/classifier/classifierbase/KernelClassifier.h"
- #include "vislearning/math/kernels/Kernel.h"
- #define VARIANCE_DETECTION_MODE 1
- #define MEAN_DETECTION_MODE 2
- namespace OBJREC {
-
- class KCGPApproxOneClass : public KernelClassifier
- {
- protected:
- NICE::Vector matrixDInv;
- NICE::Vector InvDY;
- int mode;
- double staticNoise;
-
- public:
-
- /** simple constructor */
- KCGPApproxOneClass( const NICE::Config *conf, Kernel *kernel = NULL, const std::string & section = "OneClassGP" );
- /** copy constructor */
- KCGPApproxOneClass( const KCGPApproxOneClass & src );
-
- /** simple destructor */
- virtual ~KCGPApproxOneClass();
-
- /** teach the classifier with a kernel matrix and the corresponding class labels @param y ! */
- void teach ( KernelData *kernelData, const NICE::Vector & y );
-
- void teach (const LabeledSetVector &teachSet);
-
- /** classify an example by using its kernel values with the training set,
- be careful with the order in @param kernelVector */
- virtual ClassificationResult classifyKernel ( const NICE::Vector & kernelVector, double kernelSelf ) const;
-
- /** clone this object */
- KCGPApproxOneClass *clone() const;
- void restore(std::istream&, int);
- void store(std::ostream&, int) const;
- void clear();
- };
- }
- #endif
|