Changeset 636
- Timestamp:
- Sep 6, 2006, 3:51:13 AM (17 years ago)
- Location:
- trunk/c++_tools/classifier
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/c++_tools/classifier/SubsetGenerator.cc
r632 r636 26 26 27 27 training_data_.reserve(sampler_.size()); 28 training_weight_.reserve(sampler_.size());29 28 validation_data_.reserve(sampler_.size()); 30 validation_weight_.reserve(sampler_.size());31 29 for (size_t i=0; i<sampler_.size(); ++i){ 32 30 // Dynamically allocated. Must be deleted in destructor. 33 31 training_data_.push_back(data.training_data(sampler.training_index(i))); 34 training_weight_.push_back35 (new MatrixLookup(training_data_.back()->rows(),36 training_data_.back()->columns(),1));37 32 validation_data_.push_back(data.validation_data(sampler.training_index(i), 38 33 sampler.validation_index(i))); 39 validation_weight_.push_back40 (new MatrixLookup(validation_data_.back()->rows(),41 validation_data_.back()->columns(),1));42 34 43 35 training_target_.push_back(Target(target(),sampler.training_index(i))); … … 45 37 sampler.validation_index(i))); 46 38 assert(training_data_.size()==i+1); 47 assert(training_weight_.size()==i+1);48 39 assert(training_target_.size()==i+1); 49 40 assert(validation_data_.size()==i+1); 50 assert(validation_weight_.size()==i+1);51 41 assert(validation_target_.size()==i+1); 52 42 } … … 60 50 61 51 assert(training_data_.size()==size()); 62 assert(training_weight_.size()==size());63 52 assert(training_target_.size()==size()); 64 53 assert(validation_data_.size()==size()); 65 assert(validation_weight_.size()==size());66 54 assert(validation_target_.size()==size()); 67 }68 69 SubsetGenerator::SubsetGenerator(const Sampler& sampler,70 const DataLookup2D& data,71 const MatrixLookup& weight)72 : f_selector_(NULL),sampler_(sampler), state_(0), weighted_(true)73 {74 assert(target().size()==data.columns());75 training_data_.reserve(size());76 training_weight_.reserve(size());77 validation_data_.reserve(size());78 validation_weight_.reserve(size());79 for (reset(); more(); next()){80 81 // Dynamically allocated. Must be deleted in destructor.82 training_data_.push_back(data.training_data(training_index()));83 validation_data_.push_back(data.validation_data(training_index(),84 validation_index()));85 training_weight_.push_back(weight.training_data(training_index()));86 validation_weight_.push_back(weight.validation_data(training_index(),87 validation_index()));88 89 90 training_target_.push_back(Target(target(),training_index()));91 validation_target_.push_back(Target(target(),validation_index()));92 }93 // No feature selection, hence features same for all partitions94 // and can be stored in features_[0]95 features_.resize(1);96 features_[0].reserve(data.rows());97 for (size_t i=0; i<data.rows(); ++i)98 features_[0].push_back(i);99 100 assert(training_data_.size()==size());101 assert(training_weight_.size()==size());102 assert(training_target_.size()==size());103 assert(validation_data_.size()==size());104 assert(validation_weight_.size()==size());105 assert(validation_target_.size()==size());106 reset();107 55 } 108 56 … … 117 65 features_.reserve(size()); 118 66 training_data_.reserve(size()); 119 training_weight_.reserve(size());120 67 validation_data_.reserve(size()); 121 validation_weight_.reserve(size());122 123 68 124 69 // Taking care of three different case. … … 140 85 training_data_.push_back(ml->training_data(features_.back(), 141 86 training_index())); 142 training_weight_.push_back143 (new MatrixLookup(training_data_.back()->rows(),144 training_data_.back()->columns(),1));145 87 validation_data_.push_back(ml->validation_data(features_.back(), 146 88 training_index(), 147 89 validation_index())); 148 validation_weight_.push_back149 (new MatrixLookup(validation_data_.back()->rows(),150 validation_data_.back()->columns(),1));151 152 90 153 91 training_target_.push_back(Target(target(),training_index())); … … 174 112 training_data_.push_back(ml->training_data(features_.back(), 175 113 training_index())); 176 training_weight_.push_back177 (new MatrixLookup(training_data_.back()->rows(),178 training_data_.back()->columns(),1));179 114 validation_data_.push_back(ml->validation_data(features_.back(), 180 115 training_index(), 181 116 validation_index())); 182 validation_weight_.push_back183 (new MatrixLookup(validation_data_.back()->rows(),184 validation_data_.back()->columns(),1));185 186 117 187 118 training_target_.push_back(Target(target(),training_index())); … … 225 156 training_data_.push_back(kl->training_data(features_.back(), 226 157 training_index())); 227 training_weight_.push_back228 (new MatrixLookup(training_data_.back()->rows(),229 training_data_.back()->columns(),1));230 158 validation_data_.push_back(kl->validation_data(features_.back(), 231 159 training_index(), 232 160 validation_index())); 233 validation_weight_.push_back234 (new MatrixLookup(validation_data_.back()->rows(),235 validation_data_.back()->columns(),1));236 237 161 238 162 training_target_.push_back(Target(target(),training_index())); … … 250 174 } 251 175 assert(training_data_.size()==size()); 252 assert(training_weight_.size()==size());253 176 assert(training_target_.size()==size()); 254 177 assert(validation_data_.size()==size()); 255 assert(validation_weight_.size()==size());256 178 assert(validation_target_.size()==size()); 257 179 reset(); … … 266 188 for (size_t i=0; i<validation_data_.size(); i++) 267 189 delete validation_data_[i]; 268 for (size_t i=0; i<training_weight_.size(); i++)269 delete training_weight_[i];270 for (size_t i=0; i<validation_weight_.size(); i++)271 delete validation_weight_[i];272 190 } 273 191 -
trunk/c++_tools/classifier/SubsetGenerator.h
r632 r636 51 51 /// 52 52 SubsetGenerator(const Sampler& sampler, const DataLookup2D& data); 53 54 55 ///56 /// @brief Constructor with weights57 ///58 /// @parameter data data to split up in validation and training.59 /// @parameter weights accompanying data.60 ///61 /// @todo This most likely be removed.62 SubsetGenerator(const Sampler& sampler, const DataLookup2D& data,63 const MatrixLookup& weight);64 53 65 54 … … 136 125 137 126 /// 138 /// @return training data weight139 /// @todo remove this function140 inline const MatrixLookup& training_weight(void) const141 { return *(training_weight_[state_]); }142 143 ///144 127 /// @return validation data 145 128 /// … … 160 143 161 144 /// 162 /// @return validation data weights163 /// @todo remove this function164 inline const MatrixLookup& validation_weight(void) const165 { return *(validation_weight_[state_]); }166 167 ///168 145 /// @return true if weighted 169 146 /// @todo remove this function 170 inline bool weighted(void) const { return weighted_; }147 //inline bool weighted(void) const { return weighted_; } 171 148 172 149 private: … … 180 157 std::vector<const DataLookup2D*> training_data_; 181 158 std::vector<Target> training_target_; 182 std::vector<const MatrixLookup*> training_weight_;183 159 std::vector<const DataLookup2D*> validation_data_; 184 160 std::vector<Target> validation_target_; 185 std::vector<const MatrixLookup*> validation_weight_;186 161 const bool weighted_; 187 162
Note: See TracChangeset
for help on using the changeset viewer.