Möglich, GLM in Python / Scikit-Learn mit den Poisson-, Gamma- oder Tweedie-Verteilungen als Familie für die Fehlerverteilung zu bewerten?

12

Ich versuche, Python und Sklearn zu lernen, aber für meine Arbeit muss ich Regressionen ausführen, die Fehlerverteilungen aus den Familien Poisson, Gamma und insbesondere Tweedie verwenden.

Ich sehe nichts in der Dokumentation darüber, aber sie befinden sich in mehreren Teilen der R-Distribution. Ich habe mich gefragt, ob jemand irgendwo Implementierungen für Python gesehen hat. Es wäre besonders cool, wenn Sie mich auf SGD-Implementierungen der Tweedie-Distribution hinweisen könnten!

Joe
quelle
Die robustesten GLM-Implementierungen in Python befinden sich in [statsmodels] statsmodels.sourceforge.net, obwohl ich nicht sicher bin, ob es SGD-Implementierungen gibt.
Trey
Danke Trey. Es sieht so aus, als gäbe es keine Unterstützung für Tweedie, aber es gibt einige Diskussionen über Poisson- und Gamma-Verteilungen.
Joe

Antworten:

12

Es gibt Bewegung , verallgemeinerte lineare Modelle mit Poisson-, Gamma- und Tweedie-Fehlerverteilungen in Scikit-Learn zu implementieren.

Statsmodels implementiert verallgemeinerte lineare Modelle mit Poisson-, Tweedie- und Gammafehlerverteilungen .

Während ich diese Antwort aktualisiere, unterstützt Spark ML (experimentell) auch Poisson-, Tweedie- und Gamma-Verteilungen.

Neal
quelle
5
Ich arbeite daran: github.com/madrury/py-glm
Matthew Drury
@ MatthewDrury Super!
Neal
@ MatthewDrury schön! Ich habe gerade angefangen, GLMs zu verwenden, und Statistikmodelle haben einige Einschränkungen. Sie sind sich nicht sicher, ob ich die Mathematik vollständig verstehe, aber könnte Ihre innere Lösung durch einen beliebigen Löser vom Typ der kleinsten Quadrate ersetzt werden? Ich dachte, dies würde die Flexibilität erhöhen (z. B. sklearn.ElasticNet übergeben , um Skalierbarkeit / Regularisierung / etc. "Kostenlos" zu erhalten?).
GeoMatt22
2

H2O hat verallgemeinerte lineare Modelle .

Sie verwenden jedoch H2O-Frames, sodass Sie Pandas / Numpy nicht direkt verwenden können.

Jakub Bartczuk
quelle