python-以稳定的方式找到曲线的肘点?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python-以稳定的方式找到曲线的肘点?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1569字,纯文字阅读大概需要3分钟。
内容图文
![python-以稳定的方式找到曲线的肘点?](/upload/InfoBanner/zyjiaocheng/654/90eb586ac0dc44829e0fe90945b1cc31.jpg)
我知道这个主题存在this和this.但是,这次我想最后确定Python的实际实现.
我唯一的问题是,肘点似乎随着代码的不同实例而变化.观察这篇文章中显示的两个图.尽管它们在视觉上看起来相似,但肘点的值发生了显着变化.两条曲线均来自平均20次不同的运行.即使那样,肘点的值也有明显的变化.我可以采取什么预防措施来确保该值在一定范围内?
我的尝试如下所示:
def elbowPoint(points):
secondDerivative = collections.defaultdict(lambda:0)
for i in range(1, len(points) - 1):
secondDerivative[i] = points[i+1] + points[i-1] - 2*points[i]
max_index = secondDerivative.values().index(max(secondDerivative.values()))
elbow_point = max_index + 1
return elbow_point
points = [0.80881476685027154, 0.79457906121371058, 0.78071124401504677, 0.77110686192601441, 0.76062373158581287, 0.75174963969985187, 0.74356408965979193, 0.73577573557299236, 0.72782434749305047, 0.71952590556748364, 0.71417942487824781, 0.7076502559300516, 0.70089375208028415, 0.69393584640497064, 0.68550490458450741, 0.68494440529025913, 0.67920157634796108, 0.67280267176628761]
max_point = elbowPoint(points)
解决方法:
听起来您实际关心的是如何平滑包含噪声的数据?在这种情况下,您应该首先将曲线拟合到数据,然后找到拟合曲线的弯头?
这是否有效取决于噪声源,以及噪声是否对您的应用很重要?顺便说一句,当您从拟合中忽略点时,您可能希望通过查看数据的变化(或希望没有变化)来查看拟合对数据的敏感性(显然,有了足够高的多项式,您总会得到一个很好的拟合度)一组特定的数据,但您大概对一般情况感兴趣)
我不知道这种方法是否可以接受,虽然我认为对小错误的敏感性很差,但直觉上还是不可行的.最终,通过拟合曲线可以说,在理想情况下,基础过程是由曲线建模的,与曲线的任何偏差都是误差/噪声
内容总结
以上是互联网集市为您收集整理的python-以稳定的方式找到曲线的肘点?全部内容,希望文章能够帮你解决python-以稳定的方式找到曲线的肘点?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。