Есть ли в Python функция или библиотека для автоматического вычисления наилучшего соответствия полинома для набора точек данных? Я не очень заинтересован в случае использования ML для обобщения набора новых данных, я просто сосредотачиваюсь на данных, которые у меня есть. Я понимаю, что чем выше степень, тем лучше. Тем не менее, я хочу что-то, что оштрафует или смотрит, где ошибка локти? Когда я говорю о локтях, я имею в виду нечто подобное (хотя обычно это не так резко или очевидно):
Одна из идей, которые у меня возникли, состояла в том, чтобы использовать полифит Нампи: https://docs.scipy.org/doc/numpy-1.15.0/reference/generated/numpy.polyfit.html для вычисления полиномиальной регрессии для диапазона порядков / градусов. Polyfit требует от пользователя указать степень полинома, что создает проблему, потому что у меня нет никаких предположений или предвзятых представлений. Чем выше степень соответствия, тем ниже будет погрешность, но в конечном итоге она становится плато, как на изображении выше. Поэтому, если я хочу автоматически вычислить степень полинома, в которой кривая ошибки изгибается: если моя ошибка - E, а d - моя степень, я хочу максимизировать (E [d + 1] -E [d]) - (E [d +1] - E [d]).
Это даже правильный подход? Существуют ли другие инструменты и подходы в хорошо зарекомендовавших себя библиотеках Python, такие как Numpy или Scipy, которые могут помочь в поиске подходящего полиномиального соответствия (без необходимости указывать порядок / степень)? Буду признателен за любые мысли или предложения! Спасибо!