相关: R: Marking slope changes in LOESS curve using ggplot2
This question is trying to find the min/max y (slope=0); 我想找到最小值/最大值
作为背景,我正在执行一些不同的建模技术,并认为在迭代神经网络结果时,我可能会使用斜率来衡量随机种子产生的最佳模型。
获取数据:
nn <- read.csv("http://pastebin.com/raw.php?i=6SSCb3QR", header=T)
rbf <- read.csv("http://pastebin.com/raw.php?i=hfmY1g46", header=T)
例如,以下是经过训练的神经网络对我的数据的结果:
library(ggplot2)
ggplot(nn, aes(x=x, y=y, colour=factor(group))) +
geom_point() + stat_smooth(method="loess", se=F)
同样,这是一个 rbf 模型:
ggplot(rbf, aes(x=x, y=y, colour=factor(group))) +
geom_point() + stat_smooth(method="loess", se=F)
RBF 模型更好地拟合数据,并且与变量的背景知识更好地吻合。我想尝试计算拟合线的最小/最大斜率,以便修剪陡峭悬崖与更平缓曲线的 NN。识别交叉线将是另一种修剪方法,但这是一个不同的问题。
感谢您的任何建议。
注意:我ggplot2
在这里使用并相应地标记了问题,但这并不意味着它不能用其他一些功能来完成。我只是想直观地说明我为什么要这样做。我想一个循环可以用 y 1 -y 0 /x 1 -x 0做到这一点,但也许有更好的方法。?