欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python實現(xiàn)曲線的肘部點檢測詳解

 更新時間:2023年02月28日 09:48:20   作者:mantoureganmian  
肘部法則是經(jīng)常使用的法則。很多時候,可以憑人工經(jīng)驗去找最優(yōu)拐點,但有時需要自動尋找拐點。本文為大家介紹了Python實現(xiàn)曲線的肘部點檢測的方法,希望對大家有所幫助

肘部法則是經(jīng)常使用的法則。很多時候,可以憑人工經(jīng)驗去找最優(yōu)拐點,但有時需要自動尋找拐點。最近解決了一下這個問題,希望對各位有用。

一. 術語解釋

**肘形曲線(elbow curve)**類似人胳膊狀的曲線,拐點在肘部。**膝形曲線(knee curve)人腿形的曲線,拐點在膝蓋。這類曲線和二八原則(即帕托累法則)**不謀而合,做決策時,自然選擇肘點或膝點做參考。按照拐點在左還是右側(cè)來分,細分為:左膝點曲線,右膝點曲線,左肘點曲線,右肘點曲線。

曲線示意圖如下:

左膝點曲線膝點在左邊的曲線(術語是我自己起的,明白意思就好,膝點在左邊)如下:

從形狀上,四種曲線沒有大的區(qū)別,可以相互轉(zhuǎn)化:

肘曲線與膝曲線相互轉(zhuǎn)化,用曲線最大值減去曲線各點值即可。同類型曲線,左右拐點轉(zhuǎn)化,就是切換升序降序排序即可。

它們都可以計算拐點,其中以左膝點曲線(見下圖)計算拐點最簡單,所以以其為標準曲線。

二. 拐點檢測

左膝點曲線,原理是其二次曲線導數(shù)最大點,如下:

對于離散序列來說,當x軸差為1時,二次曲線計算公式為:

f′′(xi?)=f(xi−1?)+f(xi+1?)−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, KneeLocator

x, 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, S=1.0, curve="concave", direction="increasing")

print(round(kneedle.knee, 3))
# out: 0.222

print(round(kneedle.elbow, 3))
# out: 0.222

到此這篇關于Python實現(xiàn)曲線的肘部點檢測詳解的文章就介紹到這了,更多相關Python曲線肘部點檢測內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • pyMySQL SQL語句傳參問題,單個參數(shù)或多個參數(shù)說明

    pyMySQL SQL語句傳參問題,單個參數(shù)或多個參數(shù)說明

    這篇文章主要介紹了pyMySQL SQL語句傳參問題,單個參數(shù)或多個參數(shù)說明,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-06-06
  • python:動態(tài)路由的Flask程序代碼

    python:動態(tài)路由的Flask程序代碼

    今天小編就為大家分享一篇python:動態(tài)路由的Flask程序代碼,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-11-11
  • Python集成開發(fā)環(huán)境pycharm配置git的實現(xiàn)步驟

    Python集成開發(fā)環(huán)境pycharm配置git的實現(xiàn)步驟

    本文主要介紹了Python集成開發(fā)環(huán)境pycharm配置git的實現(xiàn)步驟,文中通過圖文的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2024-05-05
  • 詳解Python圖像形態(tài)學處理(開運算,閉運算,梯度運算)

    詳解Python圖像形態(tài)學處理(開運算,閉運算,梯度運算)

    數(shù)學形態(tài)學(Mathematical Morphology)是一種應用于圖像處理和模式識別領域的新方法。本文將為大家介紹Python圖像形態(tài)學處理中的開運算、閉運算和梯度運算,感興趣的可以了解一下
    2022-06-06
  • Python中處理unchecked未捕獲異常實例

    Python中處理unchecked未捕獲異常實例

    這篇文章主要介紹了Python中處理unchecked未捕獲異常實例,本文講解使用回調(diào)或者是鉤子來處理unchecked異常,需要的朋友可以參考下
    2015-01-01
  • Python實現(xiàn)pdf轉(zhuǎn)word詳細代碼

    Python實現(xiàn)pdf轉(zhuǎn)word詳細代碼

    在日常工作中,我們經(jīng)常會遇到需要將PDF文件轉(zhuǎn)換成Word文件的需求。雖然市面上有許多PDF轉(zhuǎn)Word的工具,但是它們通常需要付費或者有轉(zhuǎn)換后的格式問題,這篇文章主要給大家介紹了關于Python實現(xiàn)pdf轉(zhuǎn)word的相關資料,需要的朋友可以參考下
    2023-09-09
  • 為什么說python更適合樹莓派編程

    為什么說python更適合樹莓派編程

    在本篇文章里小編給大家整理的是關于為什么說python更適合樹莓派編程的相關文章,需要的朋友們可以參考學習下。
    2020-07-07
  • 在python中畫正態(tài)分布圖像的實例

    在python中畫正態(tài)分布圖像的實例

    今天小編就為大家分享一篇在python中畫正態(tài)分布圖像的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-07-07
  • python中的裝飾器該如何使用

    python中的裝飾器該如何使用

    裝飾器經(jīng)常被用于有切面需求的場景,較為經(jīng)典的有插入日志、性能測試、事務處理等。裝飾器是解決這類問題的絕佳設計,有了裝飾器,我們就可以抽離出大量函數(shù)中與函數(shù)功能本身無關的雷同代碼并繼續(xù)重用。裝飾器的作用就是為已經(jīng)存在的對象添加額外的功能。
    2021-06-06
  • 詳細聊聊為什么Python中0.2+0.1不等于0.3

    詳細聊聊為什么Python中0.2+0.1不等于0.3

    最近在學習過程中發(fā)現(xiàn)在計算機JS時發(fā)現(xiàn)了一個非常有意思事,0.1+0.2的結(jié)果不是0.3,而是0.30000000000000004,下面這篇文章主要給大家介紹了關于為什么Python中0.2+0.1不等于0.3的相關資料,需要的朋友可以參考下
    2022-12-12

最新評論