Многомерная полиномиальная регрессия

Я пытаюсь сделать многомерную полиномиальную регрессию для своих данных в python. У меня 4 независимых и 1 зависимая переменная. Я даже не знаю, с чего начать. Я просмотрел много блогов за последние несколько дней, но не получил большой ясности. Большинство блогов посвящено одномерным данным. Есть ли где-нибудь хороший пост, куда кто-нибудь мог бы направить меня, который объясняет концепцию и содержит образец кода? Любая помощь горячо приветствуется.

Спасибо!


person frisbeee    schedule 11.09.2018    source источник
comment
Не могли бы вы прояснить, каковы ваши входные и выходные данные? У вас есть набор данных из m выборок зависимых переменных xi[0],..,x[3] с соответствующим набором m выборок yi зависимой переменной, для которой вы хотите подогнать многомерную полиномиальную модель (т. Е. Ваш результат - это коэффициенты подходящего полинома)? Или ваша проблема другая?   -  person Iddo Hanniel    schedule 12.09.2018


Ответы (1)


Здесь у scipy есть отличное решение https://docs.scipy.org/doc/scipy/reference/generated/scipy.optimize.curve_fit.html

def defa(x, a,b,c,d):
    return a*b*c*d # the form for regresion you want to do
var1, var2 = scipy.optimize.curve_fit(defa,[x cordinates],[y cordinates])
print(var1)
# your a b c and d will ne printed out in order

Кстати, если вы впервые устанавливаете scipy, вы должны знать, что scipy также требует, чтобы у вас был numpy :)

f.x.

import numpy as np
from scipy.optimize import curve_fit

def defa(x,a,b,c,d,e):
    return a**2+b**3+c**4+d**5+e
print(curve_fit(defa,range(1000),range(1000)))

ВЫХОД:

(array([9.32720415, 4.0480121, 3.12719445, 2.49008364, 154.80388797]),array([...]))

это означает, что

a = 9.32720415
b = 4.0480121
c = 3.12719445
d = 2.49008364
e = 154.80388797
person Jonas Wolff    schedule 11.09.2018