source: trunk/lib/classifier/DataLookup2D.h @ 482

Last change on this file since 482 was 482, checked in by Peter, 17 years ago

modified interface to CrossSplitter?, added functions to DataLookup2D
that extracts trainingdata and validation data. For the time being
weights are not supported in CrossSplitter?.

File size: 2.1 KB
Line 
1// $Id$
2
3#ifndef _theplu_classifier_DataLookup2D_
4#define _theplu_classifier_DataLookup2D_
5
6#include <vector>
7#include <iostream>
8
9namespace theplu {
10namespace classifier { 
11
12  ///
13  /// Interface class for classifier data
14  ///
15
16  class DataLookup2D
17  {
18 
19  public:
20
21    ///
22    /// Constructor taking the row index vector and column index vector
23    /// as input.
24    ///
25    DataLookup2D(const std::vector<size_t>&, const std::vector<size_t>&);
26
27    ///
28    /// Constructor taking the row index vector or
29    /// column index vector (default)
30    ///
31    DataLookup2D(const std::vector<size_t>&, bool row=false);
32
33
34    ///
35    /// Copy constructor.
36    ///
37    DataLookup2D(const DataLookup2D&);
38
39    ///
40    ///
41    ///
42    DataLookup2D(const DataLookup2D&, const std::vector<size_t>& row, 
43               const std::vector<size_t>& col);
44
45    ///
46    ///
47    ///
48    DataLookup2D(const DataLookup2D&, const std::vector<size_t>& index, 
49               const bool row);
50
51
52    ///
53    /// Destructor
54    ///
55    virtual ~DataLookup2D() {};
56
57    ///
58    /// @return number of columns
59    ///
60    inline size_t columns(void) const { return column_index_.size(); } 
61
62    ///
63    /// @return sub-Lookup of the DataLookup2D
64    ///
65    /// @Note Returns a dynamically allocated DataLookup2D, which has
66    /// to be deleted by the caller to avoid memory leaks.
67    ///
68    virtual const DataLookup2D* 
69    training_data(const std::vector<size_t>&) const=0; 
70
71    ///
72    /// @return number of rows
73    ///
74    inline size_t rows(void) const { return row_index_.size(); } 
75
76    ///
77    /// @return sub-Lookup of the DataLookup2D
78    ///
79    /// @Note Returns a dynamically allocated DataLookup2D, which has
80    /// to be deleted by the caller to avoid memory leaks.
81    ///
82    virtual const DataLookup2D* 
83    validation_data(const std::vector<size_t>& train,
84                    const std::vector<size_t>& val) const=0; 
85
86    ///
87    /// @return
88    ///
89    virtual double operator()(const size_t row, const size_t column) const=0;
90
91  protected:
92    std::vector<size_t> row_index_;
93    std::vector<size_t> column_index_;
94   
95    ///
96    /// Default constructor.
97    ///
98    DataLookup2D() {};
99
100  }; 
101 
102}} // of namespace classifier and namespace theplu
103
104#endif
Note: See TracBrowser for help on using the repository browser.