Ignore:
Timestamp:
May 7, 2009, 5:30:58 PM (14 years ago)
Author:
Jari Häkkinen
Message:

Merged patch release 0.5.3 to the trunk. Delta 0.5.3 - 0.5.2

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/yat/classifier/EnsembleBuilder.h

    r1487 r1954  
    99  Copyright (C) 2007 Jari Häkkinen, Peter Johansson
    1010  Copyright (C) 2008 Jari Häkkinen, Peter Johansson, Markus Ringnér
     11  Copyright (C) 2009 Jari Häkkinen
    1112
    1213  This file is part of the yat library, http://dev.thep.lu.se/yat
     
    128129  // implementation
    129130
    130   template <class C, class D>
    131   EnsembleBuilder<C,D>::EnsembleBuilder(const C& sc, const D& data,
    132                                         const Sampler& sampler)
    133     : mother_(sc),subset_(new SubsetGenerator<D>(sampler,data))
    134   {
    135   }
    136 
    137 
    138   template <class C, class D>
    139   EnsembleBuilder<C, D>::EnsembleBuilder(const C& sc, const D& data,
    140                                          const Sampler& sampler,
    141                                          FeatureSelector& fs)
     131  template <class Classifier, class Data>
     132  EnsembleBuilder<Classifier, Data>::EnsembleBuilder(const Classifier& sc,
     133                                                     const Data& data,
     134                                                     const Sampler& sampler)
     135    : mother_(sc),subset_(new SubsetGenerator<Data>(sampler,data))
     136  {
     137  }
     138
     139
     140  template <class Classifier, class Data>
     141  EnsembleBuilder<Classifier, Data>::EnsembleBuilder(const Classifier& sc,
     142                                                     const Data& data,
     143                                                     const Sampler& sampler,
     144                                                     FeatureSelector& fs)
    142145    : mother_(sc),
    143       subset_(new SubsetGenerator<D>(sampler,data,fs))
    144   {
    145   }
    146 
    147 
    148   template <class C, class D>
    149   EnsembleBuilder<C, D>::~EnsembleBuilder(void)
     146      subset_(new SubsetGenerator<Data>(sampler,data,fs))
     147  {
     148  }
     149
     150
     151  template <class Classifier, class Data>
     152  EnsembleBuilder<Classifier, Data>::~EnsembleBuilder(void)
    150153  {
    151154    for(size_t i=0; i<classifier_.size(); i++)
     
    155158
    156159
    157   template <class C, class D>
    158   void EnsembleBuilder<C, D>::build(void)
     160  template <class Classifier, class Data>
     161  void EnsembleBuilder<Classifier, Data>::build(void)
    159162  {
    160163    if (classifier_.empty()){
    161164      for(unsigned long i=0; i<subset_->size();++i) {
    162         C* classifier = mother_.make_classifier();
     165        Classifier* classifier = mother_.make_classifier();
    163166        classifier->train(subset_->training_data(i),
    164167                          subset_->training_target(i));
     
    169172
    170173
    171   template <class C, class D>
    172   const C& EnsembleBuilder<C, D>::classifier(size_t i) const
     174  template <class Classifier, class Data>
     175  const Classifier& EnsembleBuilder<Classifier, Data>::classifier(size_t i) const
    173176  {
    174177    return *(classifier_[i]);
     
    176179
    177180
    178   template <class C, class D>
    179   void EnsembleBuilder<C, D>::predict
    180   (const D& data, std::vector<std::vector<statistics::Averager> >& result)
     181  template <class Classifier, class Data>
     182  void EnsembleBuilder<Classifier, Data>::predict
     183  (const Data& data, std::vector<std::vector<statistics::Averager> >& result)
    181184  {
    182185    result = std::vector<std::vector<statistics::Averager> >
     
    187190
    188191    for(unsigned long k=0;k<size();++k) {       
    189       D sub_data =  test_data(data, k);
     192      Data sub_data = test_data(data, k);
    190193      classifier(k).predict(sub_data,prediction);
    191194    }
     
    197200
    198201 
    199   template <class C, class D>
    200   unsigned long EnsembleBuilder<C, D>::size(void) const
     202  template <class Classifier, class Data>
     203  unsigned long EnsembleBuilder<Classifier, Data>::size(void) const
    201204  {
    202205    return classifier_.size();
     
    204207
    205208
    206   template <class C, class D>
    207   MatrixLookup EnsembleBuilder<C, D>::test_data(const MatrixLookup& data,
     209  template <class Classifier, class Data>
     210  MatrixLookup EnsembleBuilder<Classifier,
     211                               Data>::test_data(const MatrixLookup& data,
    208212                                                size_t k)
    209213  {
     
    212216 
    213217
    214   template <class C, class D>
     218  template <class Classifier, class Data>
    215219  MatrixLookupWeighted
    216   EnsembleBuilder<C, D>::test_data(const MatrixLookupWeighted& data, size_t k)
     220  EnsembleBuilder<Classifier, Data>::test_data(const MatrixLookupWeighted& data,
     221                                               size_t k)
    217222  {
    218223    return MatrixLookupWeighted(data, subset_->training_features(k), true);
     
    220225 
    221226
    222   template <class C, class D>
     227  template <class Classifier, class Data>
    223228  KernelLookup
    224   EnsembleBuilder<C, D>::test_data(const KernelLookup& kernel, size_t k)
     229  EnsembleBuilder<Classifier, Data>::test_data(const KernelLookup& kernel,
     230                                               size_t k)
    225231  {
    226232    // weighted case
     
    245251 
    246252
    247   template <class C, class D>
     253  template <class Classifier, class Data>
    248254  const std::vector<std::vector<statistics::Averager> >&
    249   EnsembleBuilder<C, D>::validate(void)
     255  EnsembleBuilder<Classifier, Data>::validate(void)
    250256  {
    251257    // Don't recalculate validation_result_
Note: See TracChangeset for help on using the changeset viewer.