微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何评估python中曲线的平滑度平坦度?

如何解决如何评估python中曲线的平滑度平坦度?

我想知道如果有一个可以描述的评分函数或可以与其他评分函数进行比较的曲线的平滑度。

我之前最初使用标准差来评估曲线的平滑度,当曲线在平坦条件下平均时效果很好。但是,如果曲线有一个斜率使它变得更高,它不能给出预期的结果,因为它可能受到最大值或最小值的影响,但我只想考虑平滑度。

这是我的想法的一个例子:

Graph 1

Graph 2

(只见绿线) 第一张图中绿线的分数或比率应该更高,因为它看起来比第二张更平滑。

我正在考虑是否可以使用 Scipy 信令模块或其他东西。如果您有任何想法,请给我评论,这将对我有很大帮助。非常感谢。

解决方法

“平滑度”有很多不同的定义。根据您要查找的内容,您可以使用不同的方法来评估曲线的平滑度。

正如汤姆所建议的,您可以评估导数的标准偏差。

另一种在数学上更准确的方法是评估函数的二阶导数平方的积分。在this answer中查看更多信息。

enter image description here

无论哪种情况,要评估离散数据集的导数,您都可以计算数据集中每两个点之间的斜率。因此它看起来像这样:

from numpy import diff

y_dataset = [...]
x_dataset = [...]
dy_dx = diff(y_dataset)/diff(x_dataset)

from numpy import diff

y_dataset = [...]
dx = n
dy_dx = diff(y_dataset)/dx

希望有所帮助:)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。