2016-05-09 4 views
1

Ich habe einige Daten, die nicht eine lineare Regression passen,Was ist der einfachste Weg, um eine Polynomregression mit sklearn zu machen?

enter image description here

In der Tat passen 'genau' soll eine quadratische Funktion:

P = R*I**2 

ich diese Mikrofonierung bin:

model = sklearn.linear_model.LinearRegression()

X = alambres[alambre]['mediciones'][x].reshape(-1, 1) 
Y = alambres[alambre]['mediciones'][y].reshape(-1, 1) 
model.fit(X,Y) 

Gibt es eine Chance, es zu lösen, indem Sie so etwas tun:

model.fit([X,X**2],Y)?

+1

Ein Beispiel, wie die Verwendung 'scikit-learn' mit Polynom-Funktionen finden Sie hier http://scikit-learn.org/stable/ gefunden modules/linear_model.html # polynomial-regression-extending-linear-models-with-basis-funktionen – ncfirth

Antwort

3

Sie können numpys polyfit verwenden.

import numpy as np 
from matplotlib import pyplot as plt 
X = np.linspace(0, 100, 50) 
Y = 23.24 + 2.2*X + 0.24*(X**2) + 10*np.random.randn(50) #added some noise 
coefs = np.polyfit(X, Y, 2) 
print(coefs) 
p = np.poly1d(coefs) 
plt.plot(X, Y, "bo", markersize= 2) 
plt.plot(X, p(X), "r-") #p(X) evaluates the polynomial at X 
plt.show() 

Out:

[ 0.24052058 2.1426103 25.59437789] 

enter image description here

+1

Sorry, ich habe nicht bemerkt, dass der Titel nach einer Lösung von sklearn fragt. Ich werde das als eine Alternative verlassen. – ayhan

Verwandte Themen