Führen Sie eine OLS-Regression mit Pandas Data Frame aus
Ich habe eine pandas
Daten-frame, und ich möchte in der Lage, vorherzusagen, die Werte der Spalte A aus den Werten in den Spalten B und C. Hier ist ein Spielzeug-Beispiel:
import pandas as pd
df = pd.DataFrame({"A": [10,20,30,40,50],
"B": [20, 30, 10, 40, 50],
"C": [32, 234, 23, 23, 42523]})
Im Idealfall würde ich so etwas wie ols(A ~ B + C, data = df)
aber wenn ich mir die Beispiele von Algorithmus Bibliotheken, wie scikit-learn
es erscheint zum einspeisen der Daten auf das Modell mit einer Liste von Zeilen statt Spalten. Dazu müsste ich Sie neu formatieren die Daten in Listen innerhalb von Listen, das scheint die Niederlage der Zweck der Verwendung von pandas in den ersten Platz. Was ist die pythonic way to run eine OLS-regression (oder jede machine-learning-Algorithmus im Allgemeinen mehr), die auf Daten in einem Pandabären-Daten-frame?
InformationsquelleAutor der Frage Michael | 2013-11-15
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich denke, man kann fast genau das, was Sie dachten, es wäre ideal, mit der statsmodels Paket, das eine
pandas
' optionale Abhängigkeiten (es wird benutzt, um ein paar Dinge inpandas.stats
.)InformationsquelleAutor der Antwort DSM
Hinweis:
pandas.stats
entfernt wurde mit 0.20.0Es möglich, dies zu tun mit
pandas.stats.ols
:Beachten Sie, dass Sie brauchen, um
statsmodels
- Paket installiert ist, es wird intern verwendet, durch diepandas.stats.ols
Funktion.InformationsquelleAutor der Antwort Roman Pekar
Ich weiß nicht, ob das ist neu in
sklearn
oderpandas
aber ich bin in der Lage, übergeben Sie die Daten-frame direkt zusklearn
ohne Konvertierung in die Daten-Frames in ein numpy-array oder eine andere Daten-Typen.InformationsquelleAutor der Antwort 3novak
Nein ist es nicht, nur konvertieren in ein NumPy-array:
Dies benötigt Konstante Zeit, weil es erzeugt nur eine Ansicht auf Ihre Daten. Dann füttern Sie es zu scikit-learn:
InformationsquelleAutor der Antwort Fred Foo