yat  0.21pre
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
theplu::yat::utility::WeNNI Class Reference

Weighted Nearest Neighbour Imputation. More...

#include <yat/utility/WeNNI.h>

Inheritance diagram for theplu::yat::utility::WeNNI:
theplu::yat::utility::NNI

Public Member Functions

 WeNNI (const MatrixBase &matrix, const MatrixBase &weight, const unsigned int neighbours)
 
unsigned int estimate (void)
 Function doing WeNNI imputation. More...
 
const Matriximputed_data_raw (void) const
 
const utility::Matriximputed_data (void) const
 
const std::vector< size_t > & not_imputed (void) const
 

Protected Member Functions

std::vector< std::pair< size_t, double > > calculate_distances (const size_t) const
 
std::vector< size_t > nearest_neighbours (const size_t, const std::vector< std::pair< size_t, double > > &) const
 

Protected Attributes

const utility::MatrixBasedata_
 
utility::Matrix imputed_data_
 
unsigned int neighbours_
 
std::vector< size_t > not_imputed_
 
const utility::MatrixBaseweight_
 

Detailed Description

Weighted Nearest Neighbour Imputation.

WeNNI is a continuous weights generalization of the (binary weights) kNNI algorithm presented by Troyanskaya et al. A reference to this paper is found in the NNI document referred to in the NNI class documentation. The NNI document also describes WeNNI in depth.

Note
Missing values should be represented with a zero weight. WeNNI will treat the corresponding data values as zero, i.e., this implies that NaNs and Infs with zero weight will not have any impact on calculations.a
See also
NNI and kNNI

Constructor & Destructor Documentation

◆ WeNNI()

theplu::yat::utility::WeNNI::WeNNI ( const MatrixBase matrix,
const MatrixBase weight,
const unsigned int  neighbours 
)

Constructor

Member Function Documentation

◆ calculate_distances()

std::vector<std::pair<size_t,double> > theplu::yat::utility::NNI::calculate_distances ( const size_t  ) const
protectedinherited

$ d_{ij}^2=\frac {\sum_{k=1}^C w_{ik} w_{jk} (x_{ik}-x_{jk})^2 }{\sum_{k=l}^C w_{ik} w_{jk} } $ where C is the number of columns

◆ estimate()

unsigned int theplu::yat::utility::WeNNI::estimate ( void  )
virtual

Function doing WeNNI imputation.

Perform WeNNI on data in matrix with continuous uncertainty weights in weight using neighbours for the new impute value.

The return value can be used as an indication of how well the imputation worked. The return value should be zero if proper pre-processing of data is done. An example of bad data is a matrix with a column of zero weights, another is a corresponding situation with a row with all weights zero.

Returns
The number of rows that have at least one value not imputed.

Implements theplu::yat::utility::NNI.

◆ imputed_data()

const utility::Matrix& theplu::yat::utility::NNI::imputed_data ( void  ) const
inherited
Returns
A const reference to the modified data.

◆ imputed_data_raw()

const Matrix& theplu::yat::utility::WeNNI::imputed_data_raw ( void  ) const
Returns
A const reference to imputed_data_raw.

◆ nearest_neighbours()

std::vector<size_t> theplu::yat::utility::NNI::nearest_neighbours ( const size_t  ,
const std::vector< std::pair< size_t, double > > &   
) const
protectedinherited

Contributing nearest neighbours are added up to the user set number, and neighbours are disqualified if their element (column) weight is zero

◆ not_imputed()

const std::vector<size_t>& theplu::yat::utility::NNI::not_imputed ( void  ) const
inherited
Returns
indices of rows in data matrix not imputed

Member Data Documentation

◆ data_

const utility::MatrixBase& theplu::yat::utility::NNI::data_
protectedinherited

original data matrix

◆ imputed_data_

utility::Matrix theplu::yat::utility::NNI::imputed_data_
protectedinherited

data after imputation

◆ neighbours_

unsigned int theplu::yat::utility::NNI::neighbours_
protectedinherited

number of neighbor to use

◆ not_imputed_

std::vector<size_t> theplu::yat::utility::NNI::not_imputed_
protectedinherited

which rows are not imputed due to lack of data

◆ weight_

const utility::MatrixBase& theplu::yat::utility::NNI::weight_
protectedinherited

weight matrix


The documentation for this class was generated from the following file:

Generated on Wed Jan 25 2023 03:34:30 for yat by  doxygen 1.8.14