source: trunk/yat/utility/WeNNI.h @ 1797

Last change on this file since 1797 was 1797, checked in by Peter, 14 years ago

updating copyright statements

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 2.7 KB
Line 
1#ifndef _theplu_yat_utility_wenni_
2#define _theplu_yat_utility_wenni_
3
4// $Id: WeNNI.h 1797 2009-02-12 18:07:10Z peter $
5
6/*
7  Copyright (C) 2004 Jari Häkkinen
8  Copyright (C) 2005 Peter Johansson
9  Copyright (C) 2006 Jari Häkkinen
10  Copyright (C) 2007, 2008 Jari Häkkinen, Peter Johansson
11  Copyright (C) 2009 Jari Häkkinen
12
13  This file is part of the yat library, http://dev.thep.lu.se/yat
14
15  The yat library is free software; you can redistribute it
16  and/or modify it under the terms of the GNU General Public License
17  as published by the Free Software Foundation; either version 3 of
18  the License, or (at your option) any later version.
19
20  The yat library is distributed in the hope that it will be
21  useful, but WITHOUT ANY WARRANTY; without even the implied warranty
22  of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
23  General Public License for more details.
24
25  You should have received a copy of the GNU General Public License
26  along with yat. If not, see <http://www.gnu.org/licenses/>.
27*/
28
29#include "NNI.h"
30#include "Matrix.h"
31
32#include <iostream>
33
34namespace theplu {
35namespace yat {
36namespace utility {
37
38  /**
39     \brief Weighted Nearest Neighbour Imputation
40
41     WeNNI is a continuous weights generalization of the (binary
42     weights) kNNI algorithm presented by Troyanskaya et al. A
43     reference to this paper is found in the NNI document referred to
44     in the NNI class documentation. The NNI document also describes
45     WeNNI in depth.
46
47     \note Missing values should be represented with a zero
48     weight. WeNNI will treat the corresponding data values as zero,
49     i.e., this implies that NaNs and Infs with zero weight will not
50     have any impact on calculations.a
51
52     \see NNI and kNNI
53  */
54  class WeNNI : public NNI
55  {
56  public:
57    ///
58    /// Constructor
59    ///
60    WeNNI(const utility::Matrix& matrix,const utility::Matrix& weight,
61          const unsigned int neighbours);
62
63    /**
64       \brief Function doing WeNNI imputation.
65
66       Perform WeNNI on data in \a matrix with continuous uncertainty
67       weights in \a weight using \a neighbours for the new impute
68       value.
69
70       The return value can be used as an indication of how well the
71       imputation worked. The return value should be zero if proper
72       pre-processing of data is done. An example of bad data is a
73       matrix with a column of zero weights, another is a
74       corresponding situation with a row with all weights zero.
75
76       \return The number of rows that have at least one value not
77       imputed.
78    */
79    unsigned int estimate(void);
80
81    ///
82    /// @return A const reference to imputed_data_raw.
83    ///
84    const utility::Matrix& imputed_data_raw(void) const 
85    { return imputed_data_raw_; }
86
87
88  private:
89
90    utility::Matrix imputed_data_raw_;
91  };
92
93}}} // of namespace utility, yat, and theplu
94
95#endif
Note: See TracBrowser for help on using the repository browser.