1
$\begingroup$

I want to apply kmeans clustering algorithm on dataset of 12008 samples. This dataset is actually an eigenvector matrix of size (12008 * 12008) generated from given laplacian matrix. In order to estimate the best value of k, I used a technique called Elbow method using R as the following:

set.seed(1)
k.max <- 10
wss <- sapply(1:k.max, function(k){kmeans(df1, k, nstart=3,iter.max=10 )$tot.withinss})
wss
png(file="plot.png")
plot(1:k.max, wss,
     type="b", pch = 19, frame = FALSE, 
     xlab="K",
     ylab="within-clusters sum of squares")
dev.off()

The resulting plot looks like:

enter image description here

Clearly, there is no way to find out the possible k as the line is not curvey. Does anyone see why I am getting such a straight line instead of curve line?

$\endgroup$
  • 1
    $\begingroup$ Note the y axis. It's pretty much constant. But the root cause probably is the kind of matrix you input. K-means and the elbow method are meant to run on the original data. $\endgroup$ – Has QUIT--Anony-Mousse Apr 24 '17 at 0:42

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.