Computation of nearest neighbours using a selected distance function.
Computation of nearest neighbours using a selected distance function.
This function allows to obtain the nearest neighbours of each example in a data set using a distance function selected by the user.
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 dist is "p-norm".
k: The number of nearest neighbours to return for each example.
Returns
The function returns a matrix with the indexes of the k nearest neighbours for each example in the data set.
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.
## 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 functionneig2 <- neighbours(3, ImbC,"HEOM", k=2)# check the differenceshead(neig1)head(neig2)## End(Not run)