Learn R Programming

UBL (version 0.0.9)

neighbours: Computation of nearest neighbours using a selected distance function.

Description

This function allows to obtain the nearest neighbours of each example in a data set using a distance function selected by the user.

Usage

neighbours(tgt, dat, dist, p=2, k)

Value

The function returns a matrix with the indexes of the k nearest neighbours for each example in the data set.

Arguments

tgt

The column number of the problem target variable.

dat

A data frame containing the problem data.

dist

A character string specifying the distance function to use in the nearest neighbours evaluation.

p

An optional parameter that is only required if the distance function selected in parameter dist is "p-norm".

k

The number of nearest neighbours to return for each example.

Author

Paula Branco paobranco@gmail.com, Rita Ribeiro rpribeiro@dcc.fc.up.pt and Luis Torgo ltorgo@dcc.fc.up.pt

Details

Several distance function are implemented in UBL package. The goal of having such a diversity of distance functions is to provide the users more flexibility regarding the distance used and also to provide distance fucntions that are able to deal with nominal and numeric features. The options available for the distance functions are as follows:

data with only numeric features:

"Manhattan", "Euclidean", "Canberra", "Chebyshev", "p-norm";

data with only nominal features:

"Overlap";

data with both nominal and numeric features:

"HEOM", "HVDM".

When the "p-norm" is selected for the dist parameter, it is also necessary to define the value of parameter p. The value of parameter p sets which "p-norm" will be used. For instance, if p is set to 1, the "1-norm" (or Manhattan distance) is used, and if p is set to 2, the "2-norm" (or Euclidean distance) is applied. For more details regarding the distance functions implemented in UBL package please see the package vignettes.

References

Wilson, D.R. and Martinez, T.R. (1997). Improved heterogeneous distance functions. Journal of artificial intelligence research, pp.1-34.

See Also

distances

Examples

Run this code
if (FALSE) {
data(ImbC)
# determine the 2 nearest neighbours of each example in ImbC data set
# using the "HVDM" distance function.
neig1 <- neighbours(3, ImbC, "HVDM", k=2)

# now using the "HEOM" distance function
neig2 <- neighbours(3, ImbC, "HEOM", k=2)

# check the differences
head(neig1)
head(neig2)
}

Run the code above in your browser using DataLab