00001 // 00002 // C++ Interface: cdatafactory 00003 // 00004 // Description: 00005 // 00006 // 00007 // Author: Neumann Gerhard <gerhard@tu-graz.ac.at>, (C) 2006 00008 // 00009 // Copyright: See COPYING file that comes with this distribution 00010 // 00011 // 00012 00013 #ifndef CDATAFACTORY__H 00014 #define CDATAFACTORY__H 00015 00016 #include "ctrees.h" 00017 #include <newmat/newmat.h> 00018 00019 class CDataSet1D; 00020 class CDataSet; 00021 00022 class CRegressionFactory : public CTreeDataFactory<double> 00023 { 00024 protected: 00025 CDataSet1D *outputData; 00026 CDataSet1D *weightData; 00027 public: 00028 CRegressionFactory(CDataSet1D *outputData, CDataSet1D *weightData); 00029 virtual ~CRegressionFactory(); 00030 00031 virtual double createTreeData(DataSubset *dataSubset, int numLeaves); 00032 }; 00033 00034 class CSubsetFactory : public CTreeDataFactory<DataSubset *> 00035 { 00036 protected: 00037 00038 00039 public: 00040 virtual ~CSubsetFactory() {}; 00041 00042 virtual DataSubset *createTreeData(DataSubset *dataSubset, int numLeaves) ; 00043 virtual void deleteData(DataSubset *dataSet); 00044 }; 00045 00046 00047 class CVectorQuantizationFactory : public CTreeDataFactory<ColumnVector *> 00048 { 00049 protected: 00050 CDataSet *inputData; 00051 public: 00052 CVectorQuantizationFactory(CDataSet *inputData); 00053 virtual ~CVectorQuantizationFactory(); 00054 00055 00056 virtual ColumnVector *createTreeData(DataSubset *dataSubset, int numLeaves) ; 00057 virtual void deleteData(ColumnVector *dataSet); 00058 }; 00059 00060 class CLeafIndexFactory : public CTreeDataFactory<int> 00061 { 00062 virtual int createTreeData(DataSubset *dataSubset, int numLeaves); 00063 }; 00064 00065 #endif