Calculate and plot the k-Nearest Neighbor Distance

Share:

Description

Fast caclulation of the k-nearest neighbor distances in a matrix of points. The plot can be used to help find a suitable value for the eps neighborhood for DBSCAN. Look for the knee in the plot.

Usage

1
2
kNNdist(x, k, ...)
kNNdistplot(x, k = 4, ...)

Arguments

x

the data set as a matrix or a dist object.

k

number of nearest neighbors used (use minPoints).

...

further arguments are passed on to kNN.

Details

See kNN for a discusion of the kd-tree related parameters.

Value

kNNdist returns a numeric vector with the distance to its k nearest neighbor.

Author(s)

Michael Hahsler

See Also

kNN.

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
data(iris)
iris <- as.matrix(iris[,1:4])

kNNdist(iris, k=4, search="kd")
kNNdistplot(iris, k=4)
## the knee is around a distance of .5

cl <- dbscan(iris, eps = .5, minPts = 4)
pairs(iris, col = cl$cluster+1L)
## Note: black are noise points