# Why Elbow algorithm plot shows a straight line instead of curve line?

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:

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?

• 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. – Has QUIT--Anony-Mousse Apr 24 '17 at 0:42