Wie macht man mit scikit-learn eine Gaußsche / Polynomische Regression?

7

Bietet scikit-learn die Möglichkeit, eine Regression mit einem Gauß- oder Polynomkern durchzuführen? Ich schaute auf die APIs und ich sehe keine. Hat jemand ein Paket über scikit-learn gebaut, das das macht?

    
Jagat 09.12.2013, 04:34
quelle

2 Antworten

7

Entweder Sie verwenden die Support Vector Regression sklearn.svm.SVR und setzen die appropritate kernel (siehe hier ).

Oder Sie installieren die neueste Master-Version von sklearn und verwenden das kürzlich hinzugefügte sklearn.preprocessing.PolynomialFeatures (siehe hier ) und dann noch OLS oder Ridge .

    
Peter Prettenhofer 09.12.2013, 13:55
quelle
16

Theorie

Die polynomiale Regression ist ein Spezialfall der linearen Regression. Mit der Grundidee, wie Sie Ihre Features auswählen. Betrachten Sie die multivariate Regression mit 2 Variablen: x1 und x2 . Die lineare Regression sieht folgendermaßen aus: y = a1 * x1 + a2 * x2.

Nun wollen Sie eine polynomische Regression (lassen Sie uns 2 Grad Polynom machen). Wir werden ein paar zusätzliche Features erstellen: x1*x2 , x1^2 und x2^2 . So erhalten wir Ihre "lineare Regression":

%Vor%

Dies zeigt schön ein wichtiges Konzept Fluch der Dimensionalität , weil die Anzahl der neuen Features viel schneller wächst als linear mit der Wachstum des Grades des Polynoms. Sie können über dieses Konzept hier nachsehen.

Übe mit scikit-learn

Sie müssen das alles nicht in Scikit machen. Polynomregression ist dort bereits verfügbar (in 0.15 Version. Überprüfen Sie wie Sie es hier aktualisieren ).

%Vor%     
Salvador Dali 19.11.2014 11:32
quelle