график кривой SN (нелинейная модель регрессии) с использованием python - PullRequest
0 голосов
/ 24 апреля 2020

Входные данные и форма функции известны. Вы должны узнать коэффициенты функции. Значения этих коэффициентов, которые необходимо определить, также известны (60,351, 4,388, 4,806). При написании кода меня вдохновили: нелинейная регрессия с python Единственное отличие - для входных данных и для определения функции.

xData = numpy.array([1, 23385, 35800, 63699, 106798, 222064, 4272000, 20296, 461351, 175300, 11815])
yData = numpy.array([198.9, 112.2, 100.3, 89.8, 80.3, 69.8, 60.8, 120.1, 65.3, 74.9, 127.7])


def func(x, a, b, Offset): # Sigmoid A With Offset from zunzun.com
    return  Offset + 139.0/ ((numpy.exp((log10(x))/a))**b)

Я полагаю, что есть некоторые проблема с начальными параметрами, когда я использую функцию log10 (). Ниже приведена ошибка: ошибка захвата

1 Ответ

0 голосов
/ 25 апреля 2020

После нескольких поисков ( [StackOverFlow [1] ) я переопределил функцию: Offset + 139.0/ ((numpy.exp(np.log10(np.abs(x))/a))**b) Функции, не являющиеся numpy, такие как math.log10 (), плохо работают с массивами numpy

...