R k-means 算法自定义中心
R k-means algorithm custom centers
我在 R 中导入了一个二维数据集 - (x,y)
坐标。我想在此数据集上执行 k-means 聚类,但我想将具体坐标设置为初始中心。例如,我想从 5 个中心开始,它们的值为 (5, 10), (3, 8), (46, 22), (87, 66), (39, 41)
.
我在 kmeans 函数中看到一个中心参数,但我不明白如何将我的值设置为中心。
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)
现在提一下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))
图书馆(ggplot2)
ggplot(df, aes(V1, V2, color=group)) + geom_point()
我在 R 中导入了一个二维数据集 - (x,y)
坐标。我想在此数据集上执行 k-means 聚类,但我想将具体坐标设置为初始中心。例如,我想从 5 个中心开始,它们的值为 (5, 10), (3, 8), (46, 22), (87, 66), (39, 41)
.
我在 kmeans 函数中看到一个中心参数,但我不明白如何将我的值设置为中心。
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)
现在提一下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)) 图书馆(ggplot2)
ggplot(df, aes(V1, V2, color=group)) + geom_point()