Я пытаюсь распределить точки по группам на основе евклидова расстояния. Например, в приведенных ниже данных есть три точки, которые представляют три разные группы (One, Two, Three
, не зеленые точки на рисунке). Я хотел бы назначить оставшиеся точки (Scatter
зеленые точки) в группу на основе минимального евклидова расстояния (т. Е. Изменить Scatter
на ближайшую из One
Two
или Three
точек.
Я пытался сделать это вне kmeans
или другой функции кластеризации и просто использовать минимальное евклидово расстояние, но приветствую и ценим предложения.
set.seed(123)
Data <- data.frame(
x = c(c(3,5,8), runif(20, 1, 10)),
y = c(c(3,5,8), runif(20, 1, 10)),
Group = c(c("One", "Two", "Three"), rep("Scatter", 20))
)
ggplot(Data, aes(x, y, color = Group)) +
geom_point(size = 3) +
theme_bw()