美文网首页
数据拐点

数据拐点

作者: AsdilFibrizo | 来源:发表于2020-11-18 14:51 被阅读0次

对于一组数据,如何求拐点是一个经常需要做的事情,特别是对于拖尾的数据,这里介绍一个python工具包可以简单的判断一组list<int>的拐点


拐点图

1. 安装

下面任意一种方式都可

1. conda install -c conda-forge kneed
2. pip install kneed
3. git clone https://github.com/arvkevi/kneed.git
   python setup.py install

2.使用方法

假设我们有一组数据:

from kneed import KneeLocator
import matplotlib.pyplot as plt
# 需要注意x,y的长度必须一致
x = [1, 2, 3.4,  4, 5.3,  6.6, 7.4, 8.2, 9.7, 10.1]
y = [1, 2, 10, 14, 16, 17, 20, 54, 75, 89]
kneedle = KneeLocator(x, y, S=1.0, curve='convex', direction='increasing')
print(f'拐点所在的x轴是: {kneedle.elbow}')
kneedle.plot_knee() # 将数据画出来

['out']: 拐点所在的x轴是: 7.4
拐点图

3.参数介绍及说明

1. 当你的数据是一个凹函数,并且是递增的,请使用:
curve='convex' and direction='increasing'
如下:
x = [1,2, 3.4, 4, 5.3, 6.6, 7.4, 8.2, 9.7, 10.1]
y = [1, 2, 10, 14, 16, 17, 20, 54, 75, 89]
kneedle = KneeLocator(x, y, S=1.0, curve='convex', direction='increasing')
kneedle.plot_knee()
print(f'拐点所在的x轴是: {kneedle.elbow}') # 拐点所在x轴的值(不是x轴索引索引)

['out'] : 
拐点所在的x轴是: 7.4
凹函数递增
2. 当你的数据是一个凹函数, 并且是递减少的, 请使用:
curve='convex' and direction='decreasing'
如下:
x = [1,2, 3.4, 4, 5.3, 6.6, 7.4, 8.2, 9.7, 10.1]
y = [89, 75, 54, 20, 17, 16, 14, 10, 2, 1]
kneedle = KneeLocator(x, y, S=1.0, curve='convex', direction='decreasing')
kneedle.plot_knee()
print(f'拐点所在的x轴是: {kneedle.elbow}')

['out']:
拐点所在的x轴是: 4.0
凹函数递增
3. 当你的数据是一个凸函数, 并且是递增的, 请使用:
curve='concave' and direction='increasing'
x = [1,2, 3.4, 4, 5.3, 6.6, 7.4, 8.2, 9.7, 10.1]
y = [1, 10, 15, 30, 37, 38, 39, 42, 41, 41.2]
kneedle = KneeLocator(x, y, S=1.0, curve='concave', direction='increasing')
kneedle.plot_knee()
print(f'拐点所在的x轴是: {kneedle.elbow}')

['out']:
拐点所在的x轴是: 5.3
凸函数递增
4. 当你的数据是一个凸函数, 并且是递减的, 请使用:
curve='concave' and direction='decreasing'
x = [1,2, 3.4, 4, 5.3, 6.6, 7.4, 8.2, 9.7, 10.1]
y = [41.2, 41, 42, 39, 38, 37, 30, 15, 10, 1]
kneedle = KneeLocator(x, y, S=1.0, curve='concave', direction='decreasing')
kneedle.plot_knee()
print(f'拐点所在的x轴是: {kneedle.elbow}')

['out']:
拐点所在的x轴是: 6.6
凸函数递减

其它参数:

s:  敏感性, 原论文默认推荐为 1.0 
curve:  'concave', 算法将会计算 knees(可以理解为凸函数),这时输出拐点所在x轴使用 kneedle.knees
        'convex', 算法将会计算 elbows(可以理解为凹函数),这时输出拐点所在x轴使用 kneedle.elbows
direction: "increasing", "decreasing" 其中一个,分别代表递增和递减
还有一些不常用的参数详见:
https://pypi.org/project/kneed/

相关文章

  • 数据拐点

    对于一组数据,如何求拐点是一个经常需要做的事情,特别是对于拖尾的数据,这里介绍一个python工具包可以简单的判断...

  • 2020,云的拐点之年

    撰稿|吴俊宇 一 拐点之年到来 2020年可能是云的拐点之年。 我们可以先看看两组数据。 2020Q1,AWS单季...

  • 克服疫情防控中的侥幸心理和麻痹思想Ⅲ

    “心理拐点”不等于真的拐点 面对新增病例数据的迅速下降和出院人数的逐日增加,在和煦的阳光下和温暖的春风里,...

  • 特殊的元宵节

    除夕之后,就盼望着元宵节,因为专家说可能在元宵节出现数据图拐点,确诊人数下降,疫情得到控制。可是到了元宵节,拐点没...

  • 方向

    业务方向数据分析、数据运营、数据产品监控指标、分析异常、提出建议 如何判断抖音用户量和自然传播拐点 A/B tes...

  • 新冠肺炎对中国股市的影响操作

    这些天每天的第一件事就是看疫情的数据,寻找疫情从鼎盛到衰退的拐点,对这个拐点我有一个量化的判断标准,就是新增确诊病...

  • 现在的夜只为了等待天亮的樱花

    “拐点” 最近看疫情图经常会出现的一个词,很多人认识的“拐点”是错误的,要知道拐点并不是波峰或者波谷。 “拐点...

  • 学习笔记

    1:未来决胜盘,不在于起点,而在于拐点。 思考:“拐点”是什么意思?哪里出现的拐点是机会?拐点出现之前有没有预兆?...

  • 2019Q3移动互联网报告:宝宝树月活用户量蝉联母婴行业第一

    拐点来临:移动互联网用户规模增长停滞,人均时长封顶 根据第三方数据机构Questmobile的数据,2019年9月...

  • 隐形的海洋——大数据

    正处在时代拐点的我们,面对海量数据,是否还在疑惑大数据的作用,对它产生的各种政治价值和经济价值还未察觉,但我...

网友评论

      本文标题:数据拐点

      本文链接:https://www.haomeiwen.com/subject/gbrciktx.html