基于线性接近度的聚类点

Clustering points based on their linear proximity

我有一些数据,我想根据它们的线性接近度将其分为两组(即将几乎共线的点归为一组)。这是我的数据示例:

data <- data.frame(Y=c(seq(0,10,1), seq(0,4,0.5)), X= c(0:10,0:8))
plot(jitter(data$Y), jitter(data$X), pch=19) 

我想要得到的结果是这样的:

显然,常规(hierarchicalK-means)集群不起作用。此外,我尝试 spectral 聚类也没有提供好的结果。

非常感谢任何有关如何执行此操作的建议(使用 clusteringregression 或其他方法)!谢谢

你可以试试这个包 mclust

## Add a little noise to the lines
data <- data.frame(Y=c(seq(0,10,1), seq(0,4,0.5))+rnorm(20,0,0.1), X= c(0:10,0:8))

library(mclust)
fit <- Mclust(data)
plot(fit)  # classification

转换您的数据。

尝试 clustering/analyzing 变量 z = x / y 而不是