2016-08-12 4 views
1

Ich bin auf der Suche nach einem Vorhersagemodell und arbeite mit unserem aktuellen JMP-Modell. Unser aktueller Ansatz besteht darin, ein Polynom n-ten Grades zu erraten und dann zu schauen, welche Terme keine signifikanten Modelleffekte sind. Polynome sind nicht immer die besten und das führt zu viel Verwirrung und schlechten Modellen. Unsere Daten können zwischen 2 und 7 Auswirkungen haben und haben immer eine Antwort.Python Modell Targeting n Variable Vorhersage Gleichung

Ich möchte Python dafür verwenden, aber Paketdokumentation oder Online-Anleitungen für so etwas sind schwer zu finden. Ich weiß, wie man ein bestimmtes Polynom n-ten Grades anpasst oder eine lineare Regression in Python vornimmt, aber nicht, wie man den besten Funktionstyp für den Datensatz "rät".

Fehle ich etwas offensichtlich oder sollte ich etwas schreiben, das durch eine Vielzahl von Funktionstypen untersucht? Präzision ist das Wichtigste. Ich arbeite mit einem kleinen (~ 2000x100) Datensatz.

Potenziell kann ich kleinere Trainingssätze regressieren, sie mit dem Validierungssatz vergleichen, dann die Modelle ordnen und die besten auswählen. Gibt es etwas Besseres?

Antwort

1

Verwenden Sie andere Regressionsmodelle als das lineare Modell von Vanilla.

Sie können so etwas für Polynomregression verwenden:

poly = PolynomialFeatures(degree=2) 
X_ = poly.fit_transform(input_data) 

Und Sie können die Gewichte durch die Lasso Regression

clf = linear_model.Lasso(alpha = 0.5, positive = True) 
clf.fit(X_,Y_) 

Constraint wo Y_ der Ausgang ist man gegen trainieren wollen.

Wenn Alpha auf 0 gesetzt wird, wird daraus eine einfache lineare Regression. Alpha ist im Grunde die Strafe für kleinere Gewichte. Sie können die Gewichte auch streng positiv machen. Überprüfen Sie dies here.

Führen Sie es mit einem kleinen Grad und führen Sie eine Kreuzvalidierung, um zu überprüfen, wie gut es passt.

Die Erhöhung des Polynoms führt in der Regel zu einer Überanpassung. Wenn Sie also Grad 4 oder 5 verwenden müssen, sollten Sie nach anderen Modellen suchen.

Sie sollten auch einen Blick darauf werfen question. Dies erklärt, wie Sie die Kurve anpassen können.

0

ANOVA (analysis of variance) verwendet Kovarianz, um zu bestimmen, welche Auswirkungen statistisch signifikant sind ... Sie sollten nicht zufällig Begriffe wählen müssen. Wenn Sie jedoch sagen, dass Ihre Daten inhomogen sind (dh Sie sollten nicht ein einziges Modell für alle Daten einfügen), sollten Sie das Toolkit scikit-learn verwenden, um einen Klassifikator zu erstellen, der eine Teilmenge davon auswählen kann die Daten passen.

Verwandte Themen