【发布时间】:2021-08-22 23:15:10
【问题描述】:
我正在尝试找到一种方法来找到曲线的拐点,给定一组点,并找到 python 包膝盖,这似乎是完成工作的正确工具。这里的曲线“拐点”是指曲线中斜率急剧上升的点。我正在专门寻找发生这种情况的 x 轴上的值。虽然我在解释我的结果时遇到了一些问题,因为它们似乎不是我所期望的。
这是我想学习的跪式文档:https://kneed.readthedocs.io/en/stable/parameters.html
这是我尝试过的代码:
x = np.array([30, 60, 90, 120, 150, 180, 210, 240, 270, 300, 330, 360, 390, 420, 450, 480, 510, 540, 570, 600, 630, 660, 690, 720, 750])
y = np.array([1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,15,15,15,16,16,])
kneedle = KneeLocator(x, y, curve="convex", direction="increasing")
kneedle.knee
通过此代码,我正在创建具有 x 轴值和 y 轴值的数据。仅观察数据,我们可以看到 y 值的最大“跳跃”是从 2 到 15,在 x 轴上的 600 到 630 处可见。正如数据所表示的,曲线是凸的,数据在增加。我想这个代码会产生 600 或 630 作为膝盖。相反,此代码生成 750 作为拐点,这肯定不是曲线的拐点。
生成正确的膝盖值可能会出错?我将使用python。
【问题讨论】: