Knee or elbow detection for curves
Find the knee of a curve or the elbow of a curve.
How it works
kneebow builds upon a very simple idea: if we want to find the elbow of a curve, we can simply rotate the data so that curve looks down and then take the minimum value. If we want to find the knee of the curve, we take the maximum value instead. It's as simple as that.
You can install the package via pip:
pip install kneebow
Alternatively, you can also install the latest version from GitHub:
pip install git+https://github.com/georg-un/kneebow.git
Let's assume, we try to find the elbow of the following data:
import numpy as np data = np.array([[1, 1], [2, 2], [3, 3], [4, 4], [5, 5], [6, 6], [7, 7], [8, 8], # linear until (8,8) [9, 16], [10, 32], [11, 64], [12, 128], [13, 256], [14, 512]]) # exponential afterwards
Let's have a peak how this data looks like:
To find the elbow, we create an instance of the
Rotor class and use its
from kneebow.rotor import Rotor rotor = Rotor() rotor.fit_rotate(data)
Now we can get the index of the elbow as follows:
elbow_idx = rotor.get_elbow_index() print(elbow_idx) # 11
Rotor class also comes with plot methods to inspect the data visually together with the estimated elbow/knee:
Distributed under the MIT License. See
LICENSE for more information.
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
|Filename, size & hash||File type||Python version||Upload date|
|kneebow-0.1.1.tar.gz (3.4 kB) View hashes||Source||None|