neighbours {UBL} | R Documentation |
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)
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 |
k |
The number of nearest neighbours to return for each example. |
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.
Value
The function returns a matrix with the indexes of the k nearest neighbours for each example in the data set.
Author(s)
Paula Branco paobranco@gmail.com, Rita Ribeiro rpribeiro@dcc.fc.up.pt and Luis Torgo ltorgo@dcc.fc.up.pt
References
Wilson, D.R. and Martinez, T.R. (1997). Improved heterogeneous distance functions. Journal of artificial intelligence research, pp.1-34.
See Also
Examples
## Not run:
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)
## End(Not run)