set.seed(1)
d <- gen.fuzzy(n = 300,
dataset = "spirals",
noise = 0.18)
plot.fuzzy(d) # visualize data generating process
adj <- make.adjacency(data = d$X,
method = "vw",
isLocWeighted = TRUE,
isModWeighted = FALSE,
isSparse = FALSE,
ModMethod = NULL,
scale = FALSE,
sig = 1,
radius = NULL,
cv.method = "cv.ls") # vwla-id from paper
spectRes <- fuzzy.spectral.clustering(W = adj,
k = 3,
m = 1.5,
method = "CM",
nstart = 50,
max.iter = 1000)
head(spectRes$u) # first 6 rows of U
plotDf <- list(
X = d$X,
y = factor(spectRes$cluster),
U = spectRes$u,
k = 3
)
plot.fuzzy(plotDf) # visualize results
clustering.accuracy(d$y, spectRes$cluster) # compare results
Run the code above in your browser using DataLab