generate.knn | R Documentation |
This function generates the k-Nearest Neighbors (kNN) graph which is a subgraph contains edges between nodes if, and only if, they are one of the k nearest neighbors considering the edges costs (distances). Each node represents an object of the complete graph.
generate.knn(edges.complete.graph, suggested.k)
edges.complete.graph |
A object of class "data.frame" with three columns (object_i, object_j, d_ij) representing the distance d_ij between object_i and object_j. |
suggested.k |
It is an optional argument. A numeric value representing the suggested number of k-nearest neighbors to consider to generate the kNN graph. |
During its generation, the k value is automatically determined by the definition:
k = min{\lfloor \ln(|nodes.list|) \rfloor; min k | kNN is connected; suggested.k }
If suggested.k parameter is not provided, it is not considered by the definition.
A list with the elements
edges.knn.graph |
A object of class "data.frame" with three columns (object_i, object_j, d_ij) representing the d_ij between object_i and object_j that are part of the kNN graph. |
knn.graph |
A object of class "igraph" which is the k-Nearest Neighbors (kNN) graph generated. |
k |
The k value determined by the definition. |
Mario Inostroza-Ponta, Jorge Parraga-Alava, Pablo Moscato
set.seed(1987) ##Generates a data matrix of dimension 50X13 n=50; m=13 x <- matrix(runif(n*m, min = -5, max = 10), nrow=n, ncol=m) ##Computes a distance matrix of x. library("stats") d <- base::as.matrix(stats::dist(x, method="euclidean")) ##Generates complete graph (CG) without suggested.k parameter cg <- generate.complete.graph(1:nrow(x),d) ##Generates kNN graph knn <- generate.knn(cg) ##Visualizing kNN graph plot(knn$knn.graph, main=paste("kNN \n k=", knn$k, sep="")) ##Generates complete graph (CG) with suggested.k parameter cg <- generate.complete.graph(1:nrow(x),d) ##Generates kNN graph knn <- generate.knn(cg, suggested.k=4) ##Visualizing kNN graph plot(knn$knn.graph, main=paste("kNN \n k=", knn$k, sep=""))
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.