Как я могу ограничить этот одномерный сплайн таким образом, чтобы градиент был строго положительным? - PullRequest
0 голосов
/ 25 октября 2019

У меня есть несколько наборов данных, для которых я подгоняю одномерный сплайн в Scipy:

spl = UnivariateSpline(x, y)
domain = np.linspace(min(x), max(x)), 10000)
plt.scatter(x, y, c='r', marker='x')
plt.plot(domain, spl(domain), 'b-')

Это пример «шумного» набора, для которого тренд в y ДОЛЖЕН увеличиваться с x, ноне то, что возвращает сплайн (см. ниже).

Есть ли способ оценить этот сплайн таким образом, чтобы его градиент был ВСЕГДА ПОЗИТИВНЫМ? Это было бы очень полезно.

Red points: data, Blue curve: output of spline

1 Ответ

0 голосов
/ 25 октября 2019

Не из коробки.

FITPACK, библиотека fortran, которую упаковывает UnivariateSpline, имеет некоторую ограниченную аппроксимацию сплайном, но она не доступна на уровне python. Если вы завернули его, рассмотрите возможность отправки запроса на извлечение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...