source: trunk/yat/utility/kNNI.h

Last change on this file was 2119, checked in by Peter, 12 years ago

converted files to utf-8. fixes #577

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 2.3 KB
Line 
1#ifndef _theplu_yat_utility_knni_
2#define _theplu_yat_utility_knni_
3
4// $Id: kNNI.h 2119 2009-12-12 23:11:43Z peter $
5
6/*
7  Copyright (C) 2004 Jari Häkkinen
8  Copyright (C) 2005 Jari Häkkinen, 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 and/or
16  modify it under the terms of the GNU General Public License as
17  published by the Free Software Foundation; either version 3 of the
18  License, or (at your option) any later version.
19
20  The yat library is distributed in the hope that it will be useful,
21  but WITHOUT ANY WARRANTY; without even the implied warranty of
22  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
31#include <vector>
32
33namespace theplu {
34namespace yat {
35namespace utility {
36
37  ///
38  /// @brief kNNimpute
39  ///
40  /// kNNI is the binary weight implementation of NNI. This follows
41  /// the work done by Troyanskaya et al. cited in the NNI document
42  /// referred to in the NNI class documentation.
43  ///
44  /// This is a special case of the WeNNI, but is maintained since it
45  /// is faster than the more general WeNNI.
46  ///
47  /// @see NNI and WeNNI
48  ///
49  class kNNI : public NNI
50  {
51  public:
52    ///
53    /// Constructor
54    ///
55    kNNI(const utility::Matrix& matrix,const utility::Matrix& weight,
56         const unsigned int neighbours);
57
58    /**
59       \brief Function doing kNNI imputation.
60
61       Perform kNNI on data in \a matrix with binary uncertainty
62       weights in \a weight using \a neighbours for the new impute
63       value.
64
65       The return value can be used as an indication of how well the
66       imputation worked. The return value should be zero if proper
67       pre-processing of data is done. An example of bad data is a
68       matrix with a column of zero weights, another is a
69       corresponding situation with a row with all weights zero.
70
71       \return The number of rows that have at least one value not
72       imputed.
73    */
74    unsigned int estimate(void);
75
76  private:
77    std::vector<size_t> mv_rows_; // index to rows that have values to estimate
78  };
79
80}}} // of namespace utility, yat, and theplu
81
82#endif
Note: See TracBrowser for help on using the repository browser.