Scikit-learn (sklearn) ist die beste Wahl für maschinelles Lernen unter den drei aufgeführten. Pandas und Stats-Modelle enthalten zwar einige prädiktive Lernalgorithmen, sie sind jedoch noch nicht für die Produktion bereit. Da Autoren an verschiedenen Projekten arbeiten, sind die Bibliotheken häufig kostenlos. Beispielsweise wurden kürzlich die Datenrahmen von Pandas in Statsmodels integriert. Eine Beziehung zwischen sklearn und Pandas ist (noch) nicht vorhanden.
Funktionalität definieren. Sie alle rennen. Wenn Sie meinen, was am nützlichsten ist, dann hängt es von Ihrer Anwendung ab. Ich würde Pandas hier definitiv eine +1 geben, da es Python (Datenrahmen) eine großartige neue Datenstruktur hinzugefügt hat. Pandas hat wahrscheinlich auch die beste API.
Sie werden alle aktiv unterstützt, obwohl ich sagen würde, dass Pandas die beste Codebasis hat. Sklearn und Pandas sind aktiver als Statsmodels.
Die klare Wahl ist Sklearn. Es ist einfach und klar, wie es durchzuführen ist.
from sklearn.linear_models import LogisticRegression as LR
logr = LR()
logr.fit( X, Y )
results = logr.predict( test_data)
linear_model
(singulär) sein und nichtlinear_models
.Ich möchte die akzeptierte Antwort ein wenig näher erläutern.
Die drei Pakete ergänzen sich gegenseitig, da sie unterschiedliche Bereiche abdecken, unterschiedliche Hauptziele verfolgen oder unterschiedliche Bereiche des maschinellen Lernens / der Statistik hervorheben.
statsmodels hat pandas als abhängigkeit, pandas verwendet für einige statistiken optional statsmodels. statsmodels verwendet
patsy
, um eine ähnliche Formelschnittstelle für die Modelle wie R bereitzustellen.In den Modellen gibt es einige Überschneidungen zwischen Scikit-Learn- und Statistikmodellen, jedoch mit unterschiedlichen Zielen. siehe zum Beispiel Die zwei Kulturen: Statistik vs. maschinelles Lernen?
mehr über statsmodels
statsmodels hat die niedrigste Entwicklungsaktivität und den längsten Veröffentlichungszyklus der drei. statsmodels hat viele Mitwirkende, aber leider immer noch nur zwei "Betreuer" (ich bin einer von ihnen.)
Der Kern von Statistikmodellen ist "produktionsbereit": Lineare Modelle, robuste lineare Modelle, verallgemeinerte lineare Modelle und diskrete Modelle gibt es seit mehreren Jahren und sie werden mit Stata verifiziert. R. Statistikmodelle umfassen auch einen Teil zur Zeitreihenanalyse, der AR, ARMA und VAR-Regression (Vector Autoregressive), die in keinem anderen Python-Paket verfügbar ist.
Einige Beispiele, um einige spezifische Unterschiede zwischen dem Ansatz des maschinellen Lernens beim Scikit-Lernen und dem Ansatz der Statistik und Ökonometrie bei Statistikmodellen aufzuzeigen:
Einfache lineare Regression,
OLS
hat eine große Anzahl von Post-Schätzungsanalyse http://statsmodels.sourceforge.net/devel/generated/statsmodels.regression.linear_model.OLSResults.html einschließlich Tests auf Parameter, Ausreißer Maßnahmen und Spezifikationstests http: / /statsmodels.sourceforge.net/devel/stats.html#residual-diagnostics-and-specification-testsDie logistische Regression kann in Statistikmodellen entweder als
Logit
Modell in diskreten oder als Familie in verallgemeinerten linearen Modellen (GLM
) durchgeführt werden. http://statsmodels.sourceforge.net/devel/glm.html#module-referenceGLM
Umfasst die üblichen Familien, diskrete Modelle enthält zudemLogit
auchProbit
Multinomial- und Count-Regression.Logit
Die Verwendung
Logit
ist so einfach wie diese http://statsmodels.sourceforge.net/devel/examples/generated/example_discrete.htmlquelle