簡體   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