GC.OS Logo
GC.OS Brandmark

pyGAM

pyGAM ist eine Open-Source-Python-Bibliothek für Generalized Additive Models.

Zurück zu Projekten

pyGAM ist eine Open-Source-Python-Bibliothek zur Erstellung von Generalized Additive Models (GAMs) mit einem starken Fokus auf Modularität, Performance und Interpretierbarkeit. Die API ist bewusst an scikit-learn und SciPy angelehnt und ermöglicht einen einfachen Einstieg in GAMs ohne Verlust statistischer Tiefe.

Die Bibliothek bietet ein flexibles Framework für Regression, Klassifikation und distributionsbasierte Modellierung mit erklärbaren, glatten Funktionen.

Zielsetzung

Generalized Additive Models stellen einen leistungsfähigen Mittelweg zwischen linearen Modellen und vollständig „Black-Box“-Ansätzen dar. pyGAM wurde entwickelt, um diese Modellklasse praxisnah nutzbar zu machen und gleichzeitig ihre zentralen Stärken zu bewahren: Interpretierbarkeit, Flexibilität und statistische Fundierung.

pyGAM eignet sich sowohl für explorative Datenanalyse als auch für angewandte Modellierung und Forschung.

Zentrale Merkmale

  • Generalized Additive Models für Regression und Klassifikation

  • Vertraute, scikit-learn-ähnliche API

  • Modulares Design für Terme, Strafen und Verteilungen

  • Automatische Glättung und Modell-Tuning

  • Leistungsfähige numerische Optimierung

  • Starker Fokus auf Modellinterpretierbarkeit

Generalized Additive Models

Additive Modellierung

pyGAM modelliert Zusammenhänge als Summe glatter Funktionen. Dadurch lassen sich nichtlineare Effekte abbilden, während der Einfluss einzelner Features klar interpretierbar bleibt.

Terme und Interaktionen

Die Bibliothek unterstützt:

  • Glatte Terme für kontinuierliche Variablen

  • Faktor-Terme für kategoriale Variablen

  • Interaktionsterme zwischen Features

  • Benutzerdefinierte Modellstrukturen

So lassen sich flexible Modelle ohne intransparente Repräsentationen erstellen.

Unterstützte Modellierungsaufgaben

Regression

pyGAM unterstützt Regressionsmodelle mit verschiedenen Verteilungen, darunter Gauß- und Poisson-Modelle, und eignet sich damit für kontinuierliche Daten, Zähldaten und Raten.

Klassifikation

Binäre und multiklassige Klassifikation wird über geeignete Link-Funktionen und Verteilungen unterstützt.

Distributionsbasierte Modellierung

Fortgeschrittene Anwendungsfälle umfassen:

  • Poisson-Regression und Histogramm-Glättung

  • Expectile-Regression

  • Benutzerdefinierte Likelihoods und Link-Funktionen

Optimierung und Nebenbedingungen

Strafen und Constraints

pyGAM bietet integrierte Unterstützung für Glattheitsstrafen und Nebenbedingungen, um:

  • Modellkomplexität zu steuern

  • Monotonie- oder Formrestriktionen durchzusetzen

  • Generalisierung und Stabilität zu verbessern

Automatisches Tuning

Glättungsparameter können automatisch optimiert werden, wodurch manueller Abstimmungsaufwand reduziert wird.

Performance und Abhängigkeiten

pyGAM ist auf hohe Performance ausgelegt und nutzt NumPy und SciPy für numerische Berechnungen. Für große oder stark eingeschränkte Modelle kann optionale Beschleunigung über Sparse-Linear-Algebra-Bibliotheken genutzt werden.

Die Bibliothek ist mit aktuellen Python-Versionen kompatibel und fügt sich nahtlos in wissenschaftliche Python-Umgebungen ein.

Einsatzgebiete

  • Interpretierbare Regression und Klassifikation

  • Explorative Datenanalyse

  • Modellierung nichtlinearer Zusammenhänge

  • Statistisches Lernen in angewandter Forschung

  • Transparente Alternativen zu Black-Box-Modellen

Wissenschaftliche Grundlage

pyGAM ist wissenschaftlich fundiert und über Zenodo zitierbar. Die Bibliothek wird in Forschung und Praxis eingesetzt, wo Nachvollziehbarkeit und statistische Korrektheit entscheidend sind.

Open Source

pyGAM ist freie Open-Source-Software und steht unter der Apache License 2.0. Die Entwicklung erfolgt offen auf GitHub, Beiträge, Bugreports und Verbesserungsvorschläge sind ausdrücklich willkommen.

GC.OS unterstützt pyGAM als Open-Source-Projekt für transparente, interpretierbare und statistisch fundierte Machine-Learning-Modelle.

Team

Daniel Servén

Daniel Servén