Ngayee J Law wrote:> Hi all,
>
> I am trying to run the k-means cluster analysis using the function kmeans
> in the package cluster.
> The data are:
> x = c(-0.26, -0.23, -0.05, -0.20, 0.30, -0.84, -0.10, -0.12, 0.10, -0.31,
> -0.19, 0.18, -0.26,
> -0.23, -0.37, -0.23)
> I've got two different solutions when I ran this function over a few
times:
> kmeans(x, centers=2)
>
> The first solution gives the following:
> $cluster
> [1] 2 2 1 2 1 2 2 2 1 2 2 1 2 2 2 2
> $centers
> [,1]
> 1 0.1325000
> 2 -0.2783333
> $withinss
> [1] 0.0646750 0.4033667
> $size
> [1] 4 12
>
> The second solution gives the following:
> $cluster
> [1] 1 1 1 1 1 2 1 1 1 1 1 1 1 1 1 1
> $centers
> [,1]
> 1 -0.1313333
> 2 -0.8400000
> $withinss
> [1] 0.5035733 0.0000000
> $size
> [1] 15 1
>
> I don't understand why this is happening, and how do I choose between
the
> two solutions. Also, how can I ensure
> consistent solution over times? Thanks a lot!
>
> - Jacqueline
>
From the help page for `kmeans':
centers: Either the number of clusters or a set of initial cluster
centers. If the first, a random set of rows in `x' are chosen
as the initial centers.
If you want the same results try supplying an initial center, as in:
kmeans(x, centers = c(0.1, -0.2))
However, choosing bad starting values could cause kmeans to crash, as in:
kmeans(x, centers = c(0, 0))
Regards,
Sundar