kneeliverse
Kneeliverse: A Universal Knee/ElbowDetection Library for Performance Curves
Estimating the knee/elbow point in performance curves is a challenging task. However, most of the time these points represent ideal compromises between cost and performance.
This library implements several well-known knee detection algorithms:
- Discrete Curvature
- DFDT
- Kneedle
- L-method
- Menger curvature
Furthermore, the code in this library expands the ideas on these algorithms to detect multi-knee/elbow points in complex curves. We implemented a recursive method that allows each of the previously mentioned methods to detect multi-knee and elbow points. Some methods natively support multi-knee detection, such as:
- Kneedle
- Fusion
- Z-method
Finally, we also implemented additional methods that help with knee detection tasks. As a preprocessing step, we develop a custom RDP algorithm that reduced a discrete set of points while keeping the reconstruction error to a minimum. As a post-processing step we implemented several algorithms:
- 1D dimensional clustering, is used to merge close knee points
- Several filters out non-relevant knees
- Knee ranking algorithms that used several criteria to assess the quality of a knee point
1""" 2Kneeliverse: A Universal Knee/ElbowDetection Library for Performance Curves 3 4Estimating the knee/elbow point in performance curves is a challenging task. 5However, most of the time these points represent ideal compromises between cost and performance. 6 7This library implements several well-known knee detection algorithms: 81. Discrete Curvature 92. DFDT 103. Kneedle 114. L-method 125. Menger curvature 13 14Furthermore, the code in this library expands the ideas on these algorithms to 15detect multi-knee/elbow points in complex curves. 16We implemented a recursive method that allows each of the previously mentioned methods 17to detect multi-knee and elbow points. 18Some methods natively support multi-knee detection, such as: 191. Kneedle 202. Fusion 213. Z-method 22 23Finally, we also implemented additional methods that help with knee detection tasks. 24As a preprocessing step, we develop a custom RDP algorithm that reduced a discrete 25set of points while keeping the reconstruction error to a minimum. 26As a post-processing step we implemented several algorithms: 271. 1D dimensional clustering, is used to merge close knee points 282. Several filters out non-relevant knees 293. Knee ranking algorithms that used several criteria to assess the quality of a knee point 30""" 31 32import kneeliverse.clustering 33import kneeliverse.convex_hull 34import kneeliverse.curvature 35import kneeliverse.dfdt 36import kneeliverse.evaluation 37import kneeliverse.knee_ranking 38import kneeliverse.kneedle 39import kneeliverse.linear_fit 40import kneeliverse.lmethod 41import kneeliverse.menger 42import kneeliverse.metrics 43import kneeliverse.multi_knee 44import kneeliverse.postprocessing 45import kneeliverse.rdp 46import kneeliverse.zmethod