专业网站建设行业现状,辽宁建设工程信息网新版网址,网站建设的相关费用,网站建设实训课文章目录一. 术语解释二. 拐点检测肘部法则是经常使用的法则。很多时候#xff0c;可以凭人工经验去找最优拐点#xff0c;但有时需要自动寻找拐点。最近解决了一下这个问题#xff0c;希望对各位有用。一. 术语解释
**肘形曲线(elbow curve)**类似人胳膊状的曲线#xff…
文章目录一. 术语解释二. 拐点检测肘部法则是经常使用的法则。很多时候可以凭人工经验去找最优拐点但有时需要自动寻找拐点。最近解决了一下这个问题希望对各位有用。一. 术语解释
**肘形曲线(elbow curve)**类似人胳膊状的曲线拐点在肘部。**膝形曲线knee curve人腿形的曲线拐点在膝盖。这类曲线和二八原则即帕托累法则**不谋而合做决策时自然选择肘点或膝点做参考。按照拐点在左还是右侧来分细分为左膝点曲线右膝点曲线左肘点曲线右肘点曲线。 曲线示意图如下 左膝点曲线膝点在左边的曲线术语是我自己起的明白意思就好膝点在左边如下
从形状上四种曲线没有大的区别可以相互转化
肘曲线与膝曲线相互转化用曲线最大值减去曲线各点值即可。同类型曲线左右拐点转化就是切换升序降序排序即可。 它们都可以计算拐点其中以左膝点曲线(见下图)计算拐点最简单所以以其为标准曲线。
二. 拐点检测
左膝点曲线原理是其二次曲线导数最大点如下 对于离散序列来说当x轴差为1时二次曲线计算公式为 f′′(xi)f(xi−1)f(xi1)−2∗f(xi)f(x_i) f(x_{i-1}) f(x_{i1}) - 2*f(x_i)f′′(xi)f(xi−1)f(xi1)−2∗f(xi) 推荐一个简单的包kneed Github地址 支持:Python 3.7, 3.8, 3.9, and 3.10. 安装如下
$ conda install -c conda-forge kneed
# 或者
$ pip install kneed # To install only knee-detection algorithm
$ pip install kneed[plot] # To also install plotting functions for quick 使用如下
from kneed import DataGenerator, KneeLocatorx, y DataGenerator.figure2()print([round(i, 3) for i in x])
print([round(i, 3) for i in y])# out: [0.0, 0.111, 0.222, 0.333, 0.444, 0.556, 0.667, 0.778, 0.889, 1.0]
# out: [-5.0, 0.263, 1.897, 2.692, 3.163, 3.475, 3.696, 3.861, 3.989, 4.091]kneedle KneeLocator(x, y, S1.0, curveconcave, directionincreasing)print(round(kneedle.knee, 3))
# out: 0.222print(round(kneedle.elbow, 3))
# out: 0.222