繁体   English   中英

R k-means算法自定义中心

[英]R k-means algorithm custom centers

我有一个以R - (x,y)坐标导入的2D数据集。 我想在这个数据集上执行k-means聚类,但我想将具体坐标设置为初始中心。 例如,我想从5个中心开始,其值为(5, 10), (3, 8), (46, 22), (87, 66), (39, 41)

我在kmeans函数中看到了一个center参数,但我不明白如何将我的值设置为centeres。

kmeans(data, centers = ...) # what to set here?

centers参数采用整数k ,在这种情况下,选择来自data k随机点作为初始中心,或初始中心的矩阵,其中列数与data一样多。 试试这个:

x <- rbind(matrix(rnorm(100, sd = 0.3), ncol = 2),
                 matrix(rnorm(100, mean = 1, sd = 0.3), ncol = 2))
kmeans(x,centers=3)
kmeans(x,centers=x[1:3,])

只需传递一个matrix ,这是一个简单的例子:

data = matrix(c(1.1,1,0.97,0.99,0.95,0.8,0.91,2.1,2,2.4,4.1,4.4,4.5,3.9,1.5,1.2,1.7,2.6,2.7,2.44), ncol=2)

现在让我们提两个起点C1 (x1=1,y1=3)C2 (x2=2,y2=4) (即使有明显的3组):

km = kmeans(data, centers=matrix(c(1,2,3,4),ncol=2))

应用算法后的一些绘图:df = transform(as.data.frame(data),group = as.character(km $ cluster))library(ggplot2)

ggplot(df, aes(V1, V2, color=group)) + geom_point()

在此输入图像描述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM