Become an expert in R — Interactive courses, Cheat Sheets, certificates and more!
Get Started for Free

make.kNNG

Making the kNN Graph


Description

Making the kNN graph from given distance matrix.

Usage

make.kNNG(DM, k = as.integer(2 * log(nrow(DM))), symm = FALSE, weight = FALSE)

Arguments

DM

A distance matrix.

k

Number of neighbers

symm

If TRUE, then the connectivity matrix is symmetrized.

weight

If TRUE, then the weighted kNN graph is created.

Value

The adjacency matrix of a kNN graph.

Author(s)

Yoshikazu Terada

Examples

#Create a toy data
x <- seq(-5,5,by=1)
y <- seq(1,6,by=1)
hx1 <- seq(-3.5,-1.5,by=0.5)
hx2 <- seq(1.5,3.5,by=0.5)
hy <- seq(2.5,4.5,by=0.5)
D1 <- matrix(0,66,2)
for(i in 1:11){
	for(j in 1:6){
		D1[i+11*(j-1),] <- c(x[i],y[j])
	}
}
D2n <- matrix(0,25,2)
D2p <- matrix(0,25,2)
for(i in 1:5){
	for(j in 1:5){
		D2n[i+5*(j-1),] <- c(hx1[i],hy[j])
		D2p[i+5*(j-1),] <- c(hx2[i],hy[j])
	}
}
D2n <- D2n[-c(7,9,17,19),]
D2p <- D2p[-c(7,9,17,19),]
Data <- rbind(D1,D2n,D2p)
Data <- scale(Data[order(Data[,1]),], scale=FALSE)

#Visualization of Data
plot(Data,pch=20,xlab="",ylab="",cex=1,col=rainbow(108,start=.7,end=.9),
xlim=c(-7,7),ylim=c(-7,7))

#Creating a k-NN graph based on Data
DM <- as.matrix(dist(Data))
ADM <- make.kNNG(DM,k=25)

loe

Local Ordinal Embedding

v1.1
GPL (>= 2)
Authors
Yoshikazu Terada, Ulrike von Luxburg
Initial release
2016-02-09

We don't support your browser anymore

Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.