00001 #ifndef _INSTANCEMULTIPLIER_H 00002 #define _INSTANCEMULTIPLIER_H 00003 #include "osl/stat/sparseRegressionMultiplier.h" 00004 #include "osl/stat/sparseInstance.h" 00005 #include <valarray> 00006 namespace osl 00007 { 00008 namespace stat 00009 { 00010 class ActivityCount; 00011 typedef std::valarray<double> valarray_t; 00012 00017 class InstanceMultiplier : public SparseRegressionMultiplier 00018 { 00019 protected: 00020 const SparseInstanceVector& instances; 00021 const ActivityCount& activity; 00022 mutable unsigned int cur; 00023 const int threshold; 00024 valarray_t& weights; 00025 mutable double best_correlation; 00026 mutable unsigned int cur_iteration; 00027 mutable unsigned int best_iteration; 00028 const unsigned int reserve_for_validation; 00029 const char *filename; 00030 public: 00034 InstanceMultiplier(unsigned int dimension, 00035 unsigned int reserve_for_validation, 00036 const SparseInstanceVector& instances, 00037 const ActivityCount& activity, 00038 valarray_t& w, int t, const char *f); 00039 ~InstanceMultiplier(); 00040 void printCurrentDate() const; 00041 void newIteration() const; 00042 bool getVectorX(unsigned int& num_elements, 00043 unsigned int *non_zero_indices, 00044 double *non_zero_values) const; 00045 virtual double validate() const = 0; 00046 }; 00047 00048 } // namespace stat 00049 } // namespace osl 00050 00051 #endif /* _INSTANCEMULTIPLIER_H */ 00052 // ;;; Local Variables: 00053 // ;;; mode:c++ 00054 // ;;; c-basic-offset:2 00055 // ;;; End: