00001 #ifndef __ASeparateFeatureClassifier__ 00002 #define __ASeparateFeatureClassifier__ 00003 00023 #include <stdio.h> 00024 00025 #include "RealVector.hpp" 00026 00027 class ASeparateFeatureClassifier 00028 { 00029 protected: 00030 00031 int nFeatures; 00032 double PI; 00033 00034 public: 00035 00036 00037 ASeparateFeatureClassifier(int n); 00038 virtual ~ASeparateFeatureClassifier(){} 00039 00040 virtual int numberOfFeatures(){ return nFeatures; } 00041 virtual int numberOfCounts()=0; 00042 00043 // learning 00044 virtual void start()=0; 00045 virtual void learn(double newValue){ /* Fast way; only for one feature */ } 00046 virtual void unlearn(double newValue){ /* Fast way; only for one feature */ } 00047 00048 virtual void learn(RealVector& newValue){} 00049 virtual void unlearn(RealVector& newValue){} 00050 virtual void end()=0; 00051 00052 virtual double distance2(RealVector& featureVector); 00053 virtual double distance2(double feature); 00054 00055 // probability 00056 virtual double P(RealVector& featureVector); 00057 virtual double P(double feature); 00058 00059 00060 // likelihood 00061 virtual double L(double featureVector); 00062 virtual double L(RealVector& featureVector); 00063 00064 virtual void output(FILE* file); 00065 virtual void output(); 00066 }; 00067 00068 #endif