有没有一种方法可以通过使用斜率而不是值的K均值对r中的曲线进行聚类?

问题描述

我正在尝试使用K-means方法将r中的以下曲线分为2组。当我运行K均值时,我得到正值聚类在一起,而负值聚类在一起。我正在尝试根据它们的斜率对它们进行聚类,当斜率为正时,第一组为斜率,当斜率为负时,第二组为斜率。 我很确定答案将是将曲线转换为其斜率值,但不确定如何获得曲线的运动斜率。 多谢您的协助。谢谢!

2

解决方法

这可能是您想要的。我创建了一些垃圾测试数据。

##  Some sample data - not sin,but pretty close.
set.seed(1234)
x = sort(runif(200,-pi,pi))
y = sin(x) * (1 + x/20)


## Get derivative
DERIV = diff(y)/diff(x)

## Set up blank plot
plot(x,y,type='n')

## Add curve
segments(x[-length(x)],y[-length(y)],x[-1],y[-1],col=as.numeric(DERIV>0)+1)

Curve - colored by sign of the slope