Ignore:
Timestamp:
Mar 11, 2006, 11:21:27 PM (17 years ago)
Author:
Peter
Message:

some changes in EB

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/lib/classifier/EnsembleBuilder.cc

    r531 r559  
    55#include <c++_tools/classifier/CrossSplitter.h>
    66#include <c++_tools/classifier/DataLookup2D.h>
     7#include <c++_tools/classifier/KernelLookup.h>
    78#include <c++_tools/classifier/SupervisedClassifier.h>
    89#include <c++_tools/classifier/Target.h>
     
    3132      const DataLookup2D& training=cross_splitter_.training_data();
    3233      const Target& targets=cross_splitter_.training_target();
     34
    3335      SupervisedClassifier* classifier=
    3436        mother_.make_classifier(training,targets);
     
    5254    size_t k=0;
    5355    gslapi::matrix prediction;   
    54     while(cross_splitter_.more()) {
    55       classifier(k++).predict(data,prediction);
     56   
    5657
    57       for(size_t i=0; i<prediction.rows();i++)
    58         for(size_t j=0; j<prediction.columns();j++)
    59           result[i][j].add(prediction(i,j));
    60 
    61       cross_splitter_.next();
     58    try {
     59      const KernelLookup& kernel = dynamic_cast<const KernelLookup&>(data);
     60      while(cross_splitter_.more()) {
     61        classifier(k++).predict(KernelLookup(kernel,
     62                                             cross_splitter_.training_index(),
     63                                             true),
     64                                prediction);
     65        for(size_t i=0; i<prediction.rows();i++)
     66          for(size_t j=0; j<prediction.columns();j++)
     67            result[i][j].add(prediction(i,j));
     68        cross_splitter_.next();
     69      }
    6270    }
    63 
     71    catch (std::bad_cast) {
     72      while(cross_splitter_.more()) {
     73        classifier(k++).predict(data,prediction);
     74        for(size_t i=0; i<prediction.rows();i++)
     75          for(size_t j=0; j<prediction.columns();j++)
     76            result[i][j].add(prediction(i,j));
     77       
     78        cross_splitter_.next();
     79      }
     80    }
    6481  }
    6582
Note: See TracChangeset for help on using the changeset viewer.