K-means算法
采用周志华的《机器学习》中第九章表9.1的西瓜数据集4.0
melon_data <- read.csv("C:\\Users\\Andrew\\Desktop\\melon.csv")
melon_attr <- melon_data[,c(1,2)]
head(melon_attr)
使用数据集生成聚类
kmeans(x, centers, iter.max = 10, nstart = 1,
algorithm = c("Hartigan-Wong", "Lloyd", "Forgy",
"MacQueen"), trace=FALSE)
参数说明:
x : 矩阵或者可以被强制转换成矩阵的对象(如:数字向量或者数值型数据框)
centers:聚类的数量k,或者是一组初始向量作为聚类中心
iter.max:允许的最大迭代次数
nstart:如果centers是一个数,重复做kmeans的次数,当然啦,每次center都是随机选取的
algorithm:算法的选择
trace:目前仅在默认方法(“Hartigan-Wong”)中使用:如果为TRUE,则生成跟踪算法进度的信息。较高的值可能会产生更多的跟踪信息。
result <- kmeans(melon_attr, centers = 3)
result
plot
plot(melon_attr, col = result$cluster)
points(result$centers, col = 1:3, pch = 8, cex = 2)