Zurück zu allen Blogbeiträgen

Wie man Gradient Boosting um den Faktor Zwei beschleunigt

  • Coding
  • Python
  • Statistics & Methods
22. März 2019
·

Team statworx

Einführung

Bei statworx helfen wir nicht nur Kunden dabei, eine geeignete Datenstrategie zu finden, zu entwickeln und umzusetzen, sondern wir verbringen auch Zeit damit, Forschung zu betreiben, um unseren eigenen Werkzeugstapel zu verbessern. Auf diese Weise können wir der Open-Source-Community etwas zurückgeben.

Ein besonderer Schwerpunkt meiner Forschung liegt auf baumbasierten Ensemble-Methoden. Diese Algorithmen sind unverzichtbare Werkzeuge im Bereich des prädiktiven Lernens und du findest sie als eigenständiges Modell oder als Bestandteil eines Ensembles in fast jeder überwachten Lern-Herausforderung auf Kaggle. Bekannte Modelle sind der Random Forest von Leo Breiman, Extrem zufällig ausgewählte Bäume (Extra-Trees) von Pierre Geurts, Damien Ernst & Louis Wehenkel und Multiple Additive Regression Trees (MART; auch bekannt als Gradient Boosted Trees) von Jerome Friedman.

Besonders interessiert hat mich, wie sehr Randomisierungstechniken dazu beigetragen haben, die Vorhersageleistung in all den oben genannten Algorithmen zu verbessern. Bei Random Forest und Extra-Trees ist es ziemlich offensichtlich. Hier ist die Randomisierung der Grund, warum die Ensembles eine Verbesserung gegenüber dem Bagging bieten; durch die Dekorrelation der Basislerner verringert sich die Varianz des Ensembles und damit der Vorhersagefehler. Letztendlich erreicht man die Dekorrelation durch das „Aufschütteln“ der Basisbäume, wie es in den beiden Ensembles getan wird. Allerdings profitiert auch MART von der Randomisierung. Im Jahr 2002 veröffentlichte Friedman ein weiteres Papier über Boosting, das zeigt, dass du die Vorhersageleistung von gebooteten Bäumen verbessern kannst, indem du jeden Baum nur auf einer zufälligen Teilmenge deiner Daten trainierst. Als Nebeneffekt verkürzt sich auch die Trainingszeit. Darüber hinaus schlugen Rashmi und Gilad im Jahr 2015 vor, eine Methode namens Dropout zum Boosting-Ensemble hinzuzufügen: eine Methode, die in neuronalen Netzen gefunden und verwendet wird.

Die Idee hinter Random Boost

Inspiriert von theoretischen Lesungen über randomization techniques im Boosting habe ich einen neuen Algorithmus entwickelt, den ich Random Boost (RB) nannte. Im Wesentlichen wächst Random Boost sequenziell Regression-Bäume mit zufälliger Tiefe. Genauer gesagt ist der Algorithmus fast identisch mit und hat genau die gleichen Eingabeargumente wie MART. Der einzige Unterschied ist der Parameter $d_{max}$. In MART bestimmt $d_{max}$ die maximale Tiefe aller Bäume im Ensemble. In Random Boost stellt das Argument die obere Grenze der möglichen Baumgrößen dar. In jeder Boosting-Iteration $i$ wird eine zufällige Zahl $d_i$ zwischen 1 und $d_{max}$ gezogen, die dann die maximale Tiefe des Baums $T_i(d_i)$ definiert.

Im Vergleich zu MART hat dies zwei Vorteile:

Erstens ist RB im Durchschnitt schneller als MART, wenn es mit dem gleichen Wert für die Baumgröße ausgestattet ist. Wenn RB und MART mit einem Wert für die maximale Baumtiefe gleich $d_{max}$ trainiert werden, wird Random Boost in vielen Fällen von Natur aus Bäume der Größe $d$<$d_{max}$ wachsen lassen. Wenn du davon ausgehst, dass bei MART alle Bäume auf ihre volle Größe $d_{max}$ wachsen (d. h. es gibt genug Daten in jedem inneren Knoten, sodass das Baumwachstum nicht vor Erreichen der maximalen Größe stoppt), kannst du eine Formel ableiten, die den relativen Rechengewinn von RB gegenüber MART zeigt:

$t_{rel}(d_{max}) = frac{t_{mathrm{RB}}(d_{max})}{t_{mathrm{MART}}(d_{max})} approx frac{2}{d_{max}}left(1 - left(frac{1}{2}right)^{d_{max}} right).$

$t_{RB}(d_{max})$ ist zum Beispiel die Trainingszeit eines RB-Boosting-Ensembles mit dem Baumgrößenparameter gleich $d_{max}$.

Um es etwas praktischer zu machen, sagt die Formel voraus, dass RB für $d_{max}=2, 3$ und $4$ jeweils $75%, 58%$ bzw. $47%$ der Rechenzeit von MART benötigt. Diese Vorhersagen sollten jedoch als RB's Best-Case-Szenario angesehen werden, da MART auch nicht unbedingt vollständige Bäume wachsen lässt. Dennoch deuten die Berechnungen darauf hin, dass Effizienzgewinne erwartet werden können (mehr dazu später).

Zweitens gibt es auch Gründe anzunehmen, dass die Randomisierung über Baumtiefen einen positiven Effekt auf die Vorhersageleistung haben kann. Wie bereits erwähnt, leidet Boosting aus verschiedenen Gründen unter Überkapazität. Einer davon ist die Wahl eines zu komplexen Basislerners in Bezug auf die Tiefe. Wenn beispielsweise angenommen wird, dass die dominante Interaktion im datengenerierenden Prozess von Ordnung drei ist, würde man einen Baum mit entsprechender Tiefe in MART wählen, um diese Interaktions-Tiefe zu erfassen. Dies kann jedoch übermäßig sein, da vollständig gewachsene Bäume mit einer Tiefe von $3$ acht Blätter haben und daher Rauschen in den Daten lernen, wenn es nur wenige solcher hochrangiger Interaktionen gibt. Vielleicht wäre in diesem Fall ein Baum mit Tiefe $3$, aber weniger als acht Blättern optimal. Dies wird in MART nicht berücksichtigt, wenn man nicht jeden Boosting-Iteration einen Pruning-Schritt hinzufügen möchte, was auf Kosten von zusätzlichem Rechenaufwand geht. Random Boost könnte ein effizienteres Mittel zur Lösung dieses Problems bieten. Mit Wahrscheinlichkeit $1 / d_{max}$ wird ein Baum gewachsen, der in der Lage ist, den hochrangigen Effekt zu erfassen, jedoch auch Rauschen lernt. In allen anderen Fällen konstruiert Random Boost kleinere Bäume, die nicht das Überkapazitätsverhalten zeigen und sich auf Interaktionen geringerer Ordnung konzentrieren können. Wenn Überkapazität bei MART aufgrund unterschiedlicher Interaktionen in den Daten, die von einer kleinen Anzahl hochrangiger Interaktionen geregelt werden, ein Problem darstellt, könnte Random Boost besser abschneiden als MART. Darüber hinaus dekorreliert Random Boost auch Bäume durch die zusätzliche Quelle von Zufälligkeit, die einen varianzreduzierenden Effekt auf das Ensemble hat.

Das Konzept von Random Boost stellt eine leichte Änderung von MART dar. Ich habe das sklearn-Paket als Grundlage für meinen Code verwendet. Daher wird der Algorithmus basierend auf sklearn.ensemle.GradientBoostingRegressor und sklearn.ensemle.GradientBoostingClassifier entwickelt und genau auf die gleiche Weise verwendet (d. h. Argumentnamen stimmen genau überein und CV kann mit sklearn.model_selection.GridSearchCV durchgeführt werden). Der einzige Unterschied ist, dass das RandomBoosting*-Objekt max_depth verwendet, um Baumtiefen zufällig für jede Iteration zu ziehen. Als Beispiel kannst du es so verwenden:

rb = RandomBoostingRegressor(learning_rate=0.1, max_depth=4, n_estimators=100)
rb = rb.fit(X_train, y_train)
rb.predict(X_test)

Für den vollständigen Code, schau dir meinen GitHub-Account an.

Random Boost versus MART – Eine Simulationsstudie

Um die beiden Algorithmen zu vergleichen, führte ich eine Simulation auf 25 Datensätzen durch, die von einem Random Target Function Generator erzeugt wurden, der von Jerome Friedman in seinem berühmten Boosting-Papier von 2001 eingeführt wurde (Details findest du in seinem Paper. Python-Code findest du hier. Jeder Datensatz (mit 20.000 Beobachtungen) wurde zufällig in einen 25% Testsatz und einen 75% Trainingssatz aufgeteilt. RB und MART wurden über 5-fache CV auf dem gleichen Tuning-Gitter abgestimmt.

learning_rate = 0.1
max_depth = (2, 3, ..., 8)
n_estimators = (100, 105, 110, ..., 195)

Für jeden Datensatz stimmte ich beide Modelle ab, um die beste Parameterkonstellation zu erhalten. Dann trainierte ich jedes Modell erneut an jedem Punkt des Tuning-Gitters und speicherte die Test-MAE sowie die gesamte Trainingszeit in Sekunden. Warum habe ich jedes Modell erneut trainiert und nicht einfach die Vorhersagegenauigkeit der abgestimmten Modelle zusammen mit der gesamten Abstimmungszeit gespeichert? Nun, ich wollte sehen können, wie sich die Trainingszeit mit dem Baumgrößenparameter ändert.

Ein Vergleich der Vorhersagegenauigkeiten

Du kannst die Verteilung der MAEs der besten Modelle auf allen 25 Datensätzen unten sehen.

absolute MAE

Offensichtlich schneiden beide Algorithmen ähnlich ab.

Für einen besseren Vergleich berechne ich die relative Differenz zwischen der Vorhersageleistung von RB und MART für jeden Datensatz j, d. h. $j$, i.e. $MAE_{rel,j}=frac{MAE_{RB,j}-MAE_{MART,j}}{MAE_{MART,j}}$. Wenn $MAE_{rel,j}$>$0$, dann hatte RB einen größeren mittleren absoluten Fehler als MART auf Datensatz $j$, und umgekehrt.MAE nach Datensatz mit Boxplot

MAE by dataset with boxplot

In den meisten Fällen schnitt RB schlechter ab als MART in Bezug auf die Vorhersagegenauigkeit ($MAE_{rel}$>$0$). Im schlimmsten Fall hatte RB einen 1% höheren MAE als MART. Im Median hat RB einen 0,19% höheren MAE. Ich überlasse es Ihnen zu entscheiden, ob dieser Unterschied praktisch signifikant ist.

Ein Vergleich der Trainingszeiten

Wenn wir uns die Trainingszeit ansehen, erhalten wir ein ziemlich klares Bild. In absoluten Zahlen dauerte es durchschnittlich 433 Sekunden, um alle Parameterkombinationen von RB zu trainieren, im Gegensatz zu 803 Sekunden für MART.durchschnittliche Trainingszeit

average training time

Die kleinen schwarzen Linien oben auf jeder Leiste sind die Fehlerbalken (2-mal die mittlere Standardabweichung; in diesem Fall eher klein).

Um dir ein besseres Gefühl dafür zu geben, wie jedes Modell auf jedem Datensatz abschneidet, habe ich auch die Trainingszeiten für jede Runde geplottet.

total training time

Wenn du jetzt das Trainingszeitverhältnis zwischen MART und RB berechnen ($frac{t_{MART}}{t_{RB}}$), siehst du, dass RB im Durchschnitt etwa 1,8-mal schneller als MART ist.

Eine weitere Perspektive auf den Fall ist das relative Training  $t_{rel,j}=frac{t_{RB,j}}{t_{MART,j}}$ zu berechnen, das nur 1 durch die Beschleunigung ist. Beachte, dass diese Maßnahme etwas anders interpretiert werden muss als das relative MAE-Maß oben. Wenn $t_{rel,j}=1$, dann ist RB genauso schnell wie MART, wenn $t_{rel,j}$>$1$, dann dauert es länger, RB zu trainieren als MART, und wenn $t_{rel,j}$<$1$, dann ist RB schneller als MART.

Im Durchschnitt benötigt RB nur etwa 54% der Abstimmungszeit von MART im Median und ist in allen Fällen merklich schneller. Ich habe mich auch gefragt, wie das relative Training mit $d_{max}$ variiert und wie gut die theoretisch abgeleitete untere Grenze von oben zur tatsächlich gemessenen relativen Trainingszeit passt. Deshalb habe ich die relative Trainingszeit über alle 25 Datensätze nach Baumgröße berechnet.

Tree size ($max_depth$) Actual Training time (RB / MART) Theoretical lower bound
2 0.751 0.750
3 0.652 0.583
4 0.596 0.469
5 0.566 0.388
6 0.532 0.328
7 0.505 0.283
8 0.479 0.249


Die theoretischen Zahlen sind optimistisch, aber der relative Leistungsgewinn von RB steigt mit der Baumgröße.

Ergebnisse in Kürze und nächste Schritte

Im Rahmen meiner Forschung zu baumbasierten Ensemble-Methoden habe ich einen neuen Algorithmus namens Random Boost entwickelt. Random Boost basiert auf Jerome Friedmans MART, mit dem kleinen Unterschied, dass es Bäume zufälliger Größe passt. Insgesamt kann diese kleine Änderung das Problem des Overfittings reduzieren und die Berechnung deutlich beschleunigen. Mithilfe eines von Friedman vorgeschlagenen Random Target Function Generator fand ich heraus, dass RB im Durchschnitt etwa doppelt so schnell wie MART ist, mit einer vergleichbaren Vorhersagegenauigkeit in Erwartung.

Da das Durchführen der gesamten Simulation ziemlich viel Zeit in Anspruch nimmt (das Finden der optimalen Parameter und das erneute Training jedes Modells dauert etwa eine Stunde für jeden Datensatz auf meinem Mac), konnte ich nicht Hunderte oder mehr Simulationen für diesen Blogbeitrag durchführen. Das ist das Ziel für zukünftige Forschung zu Random Boost. Außerdem möchte ich den Algorithmus an realen Datensätzen benchmarken.

In der Zwischenzeit können Sie gerne meinen Code ansehen und die Simulationen selbst durchführen. Alles ist auf GitHub. Darüber hinaus, wenn Sie etwas Interessantes finden und es mit mir teilen möchten, zögern Sie nicht, mir eine E-Mail zu schicken.

Referenzen

  • Breiman, Leo (2001). Random Forests. Machine Learning, 45, 5–32
  • Chang, Tianqi, and Carlos Guestrin. 2016. XGBoost: A Scalable Tree Boosting System. Proceedings of the 22nd ACM SIGKDD International Conference on Knowledge Discovery and Data Mining, Pages 785-794
  • Chapelle, Olivier, and Yi Chang. 2011. “Yahoo! learning to rank challenge overview”. In Proceedings of the Learning to Rank Challenge, 1–24.
  • Friedman, J. H. (2001). Greedy function approximation: a gradient boosting machine. Annals of statistics, 1189-1232.
  • Friedman, J. H. (2002). “Stochastic gradient boosting”. Computational Statistics & Data Analysis 38 (4): 367–378.
  • Geurts, Pierre, Damien Ernst, and Louis Wehenkel (2006). “Extremely randomized trees”. Machine learning 63 (1): 3–42.
  • Rashmi, K. V., and Ran Gilad-Bachrach (2015). Proceedings of the 18th International Conference on Artificial Intelligence and Statistics (AISTATS) 2015, San Diego, CA, USA. JMLR: W&CP volume 38.

Linkedin Logo
Marcel Plaschke
Head of Strategy, Sales & Marketing
Beratung vereinbaren
Zugehörige Leistungen
No items found.

Weitere Blogartikel

  • Artificial Intelligence
AI Trends Report 2025: Die 16 Trends im Überblick
Tarik Ashry
05. Februar 2025
Mehr erfahren
  • Artificial Intelligence
  • Data Science
  • Human-centered AI
Explainable AI in der Praxis: Mit der richtigen Methode die Black Box öffnen
Jonas Wacker
15. November 2024
Mehr erfahren
  • Artificial Intelligence
  • Data Science
  • GenAI
Wie ein CustomGPT Effizienz und Kreativität bei hagebau fördert
Tarik Ashry
06. November 2024
Mehr erfahren
  • Artificial Intelligence
  • Data Culture
  • Data Science
  • Deep Learning
  • GenAI
  • Machine Learning
AI Trends Report 2024: statworx COO Fabian Müller zieht eine Zwischenbilanz
Tarik Ashry
05. September 2024
Mehr erfahren
  • Artificial Intelligence
  • Human-centered AI
  • Strategy
Der AI-Act ist da – diese Risikoklassen sollte man kennen
Fabian Müller
05. August 2024
Mehr erfahren
  • Artificial Intelligence
  • GenAI
  • statworx
Zurück in die Zukunft: Die Geschichte von Generativer KI (Episode 4)
Tarik Ashry
31. Juli 2024
Mehr erfahren
  • Artificial Intelligence
  • GenAI
  • statworx
Zurück in die Zukunft: Die Geschichte von Generativer KI (Episode 3)
Tarik Ashry
24. Juli 2024
Mehr erfahren
  • Artificial Intelligence
  • GenAI
  • statworx
Zurück in die Zukunft: Die Geschichte von Generativer KI (Episode 2)
Tarik Ashry
17. Juli 2024
Mehr erfahren
  • Artificial Intelligence
  • GenAI
  • statworx
Zurück in die Zukunft: Die Geschichte von Generativer KI (Episode 1)
Tarik Ashry
10. Juli 2024
Mehr erfahren
  • Artificial Intelligence
  • GenAI
  • statworx
Generative KI als Denkmaschine? Ein medientheoretischer Blick
Tarik Ashry
13. Juni 2024
Mehr erfahren
  • Artificial Intelligence
  • GenAI
  • statworx
Maßgeschneiderte KI-Chatbots: Hohe Leistung und schnelle Integration vereint
Tarik Ashry
10. April 2024
Mehr erfahren
  • Artificial Intelligence
  • Data Culture
  • Human-centered AI
Wie Führungskräfte die Datenkultur im Unternehmen stärken können
Tarik Ashry
21. Februar 2024
Mehr erfahren
  • Artificial Intelligence
  • Data Culture
  • Human-centered AI
KI in der Arbeitswelt: Wie wir Skepsis in Zuversicht verwandeln
Tarik Ashry
08. Februar 2024
Mehr erfahren
  • Artificial Intelligence
  • Data Science
Wie wir für Microsoft einen Chatbot mit echtem Wissen entwickelt haben
Team statworx
27. September 2023
Mehr erfahren
  • Data Science
  • Data Visualization
  • Frontend Solution
Warum Frontend-Entwicklung in Data Science-Anwendungen nützlich ist
Jakob Gepp
30. August 2023
Mehr erfahren
  • Artificial Intelligence
  • Human-centered AI
  • statworx
the byte - Wie wir ein KI-gesteuertes Pop-up Restaurant aufgebaut haben
Sebastian Heinz
14. Juni 2023
Mehr erfahren
  • Artificial Intelligence
  • Recap
  • statworx
Big Data & AI World 2023 Recap
Team statworx
24. Mai 2023
Mehr erfahren
  • Data Science
  • Human-centered AI
  • Statistics & Methods
Die Black-Box entschlüsseln – 3 Explainable AI Methoden zur Vorbereitung auf den AI-Act
Team statworx
17. Mai 2023
Mehr erfahren
  • Artificial Intelligence
  • Human-centered AI
  • Strategy
Wie der AI-Act die KI-Branche verändern wird: Alles, was man jetzt darüber wissen muss
Team statworx
11. Mai 2023
Mehr erfahren
  • Artificial Intelligence
  • Human-centered AI
  • Machine Learning
Genderdarstellung in der KI – Teil 2: Automatisierte Erzeugung genderneutraler Versionen von Gesichtsbildern
Team statworx
03. Mai 2023
Mehr erfahren
  • Artificial Intelligence
  • Data Science
  • Statistics & Methods
Ein erster Einblick in unser Forecasting Recommender Tool
Team statworx
26. April 2023
Mehr erfahren
  • Artificial Intelligence
  • Data Science
Vom Können, Tun und Wollen – Warum Datenkultur und Death Metal einiges miteinander gemeinsam haben
David Schlepps
19. April 2023
Mehr erfahren
  • Artificial Intelligence
  • Human-centered AI
  • Machine Learning
GPT-4 – Eine Einordnung der wichtigsten Neuerungen
Mareike Flögel
17. März 2023
Mehr erfahren
  • Artificial Intelligence
  • Data Science
  • Strategy
Das Geheimnis der Datenkultur entschlüsseln: Diese Faktoren beeinflussen Kultur und Erfolg von Unternehmen
Team statworx
16. März 2023
Mehr erfahren
  • Artificial Intelligence
  • Deep Learning
  • Machine Learning
Wie man KI-generierte Avatare mit Hilfe von Stable Diffusion und Textual Inversion erstellt
Team statworx
08. März 2023
Mehr erfahren
  • Artificial Intelligence
  • Human-centered AI
  • Strategy
Knowledge Management mit NLP: So einfach verarbeitet man E-Mails mit KI
Team statworx
02. März 2023
Mehr erfahren
  • Artificial Intelligence
  • Deep Learning
  • Machine Learning
3 Anwendungsfälle, wie ChatGPT die Kommunikation in Unternehmen revolutionieren wird
Ingo Marquart
16. Februar 2023
Mehr erfahren
  • Recap
  • statworx
Ho ho ho – weihnachtlicher Küchenabriss
Julius Heinz
22. Dezember 2022
Mehr erfahren
  • Artificial Intelligence
  • Deep Learning
  • Machine Learning
Real-time Computer Vision: Gesichter erkennen mit einem Roboter
Sarah Sester
30. November 2022
Mehr erfahren
  • Data Engineering
  • Tutorial
Data Engineering – From Zero to Hero
Thomas Alcock
23. November 2022
Mehr erfahren
  • Recap
  • statworx
statworx @ UXDX Conf 2022
Markus Berroth
18. November 2022
Mehr erfahren
  • Artificial Intelligence
  • Machine Learning
  • Tutorial
Paradigmenwechsel in NLP: 5 Ansätze, um bessere Prompts zu schreiben
Team statworx
26. Oktober 2022
Mehr erfahren
  • Recap
  • statworx
statworx @ vuejs.de Conf 2022
Jakob Gepp
14. Oktober 2022
Mehr erfahren
  • Data Engineering
  • Data Science
Überwachung und Protokollierung von Anwendungen und Infrastruktur: Metriken und (Ereignis-)Protokolle
Team statworx
29. September 2022
Mehr erfahren
  • Coding
  • Data Science
  • Machine Learning
Zero-Shot Textklassifikation
Fabian Müller
29. September 2022
Mehr erfahren
  • Cloud Technology
  • Data Engineering
  • Data Science
Wie du dein Data Science Projekt fit für die Cloud machst
Alexander Broska
14. September 2022
Mehr erfahren
  • Artificial Intelligence
  • Human-centered AI
  • Machine Learning
Geschlechter­darstellung in der KI – Teil 1: Verwendung von StyleGAN zur Erforschung von Geschlechter­vielfalt bei der Bild­bearbeitung
Isabel Hermes
18. August 2022
Mehr erfahren
  • Artificial Intelligence
  • Human-centered AI
statworx AI Principles: Warum wir eigene KI-Prinzipien entwickeln
Team statworx
04. August 2022
Mehr erfahren
  • Data Engineering
  • Data Science
  • Python
Wie Du Deinen Code und Deine Abhängigkeiten in Python scannst
Thomas Alcock
21. Juli 2022
Mehr erfahren
  • Data Engineering
  • Data Science
  • Machine Learning
Data-Centric AI: Von Model-First zu Data-First KI-Prozessen
Team statworx
13. Juli 2022
Mehr erfahren
  • Artificial Intelligence
  • Deep Learning
  • Human-centered AI
  • Machine Learning
DALL-E 2: Warum Diskriminierung in der KI-Entwicklung nicht ignoriert werden kann
Team statworx
28. Juni 2022
Mehr erfahren
  • R
Das helfRlein Package – Eine Sammlung nützlicher Funktionen
Team statworx
23. Juni 2022
Mehr erfahren
  • Recap
  • statworx
Unfold 2022 in Bern – by Cleverclip
Team statworx
11. Mai 2022
Mehr erfahren
  • Artificial Intelligence
  • Data Science
  • Human-centered AI
  • Machine Learning
Vorurteile in KI abbauen
Team statworx
08. März 2022
Mehr erfahren
  • Artificial Intelligence
  • Cloud Technology
  • Data Science
  • Sustainable AI
Wie du als Data Scientist deinen KI CO₂ Fußabdruck verringerst
Team statworx
02. Februar 2022
Mehr erfahren
  • Recap
  • statworx
2022 und die Reise zu statworx next
Sebastian Heinz
06. Januar 2022
Mehr erfahren
  • Recap
  • statworx
5 Highlights vom Digital Festival Zürich 2021
Team statworx
25. November 2021
Mehr erfahren
  • Data Science
  • Human-centered AI
  • Machine Learning
  • Strategy
Warum Data Science und KI-Initiativen scheitern – eine Reflektion zu nicht-technischen Faktoren
Team statworx
22. September 2021
Mehr erfahren
  • Artificial Intelligence
  • Data Science
  • Human-centered AI
  • Machine Learning
  • statworx
Kolumne: Mensch und Maschine Seite an Seite
Sebastian Heinz
03. September 2021
Mehr erfahren
  • Coding
  • Data Science
  • Python
Wie man mit Call Graph automatisch Projektgrafiken erstellt
Team statworx
25. August 2021
Mehr erfahren
  • Coding
  • Python
  • Tutorial
statworx Cheatsheets – Python Basics Cheatsheet für Data Science
Team statworx
13. August 2021
Mehr erfahren
  • Data Science
  • statworx
  • Strategy
STATWORX meets DHBW – Data Science Real-World Use Cases
Team statworx
04. August 2021
Mehr erfahren
  • Data Engineering
  • Data Science
  • Machine Learning
Machine Learning Modelle bereitstellen und skalieren mit Kubernetes
Team statworx
29. Juli 2021
Mehr erfahren
  • Cloud Technology
  • Data Engineering
  • Machine Learning

3 Szenarien zum Deployment von Machine Learning Workflows mittels MLflow
Team statworx
30. Juni 2021
Mehr erfahren
  • Artificial Intelligence
  • Deep Learning
  • Machine Learning

Car Model Classification III: Erklärbarkeit von Deep Learning Modellen mit Grad-CAM
Team statworx
19. Mai 2021
Mehr erfahren
  • Artificial Intelligence
  • Coding
  • Deep Learning
Car Model Classification II: Deployment von TensorFlow-Modellen in Docker mit TensorFlow Serving
Team statworx
12. Mai 2021
Mehr erfahren
  • Coding
  • Deep Learning
Car Model Classification I: Transfer Learning mit ResNet
Team statworx
05. Mai 2021
Mehr erfahren
  • Artificial Intelligence
  • Deep Learning
  • Machine Learning
Car Model Classification IV: Integration von Deep Learning Modellen mit Dash
Dominique Lade
05. Mai 2021
Mehr erfahren
  • AI Act
Potenzial noch nicht ausgeschöpft – Ein Kommentar zur vorgeschlagenen KI-Regulierung der EU
Team statworx
Mehr erfahren
  • Artificial Intelligence
  • Deep Learning
  • statworx
Creaition – Revolutionierung des Designprozesses mit Machine Learning
Team statworx
31. März 2021
Mehr erfahren
  • Artificial Intelligence
  • Data Science
  • Machine Learning
5 Typen von Machine Learning Algorithmen (Mit Anwendungsfällen)
Team statworx
24. März 2021
Mehr erfahren
  • Recaps
  • statworx
2020 – Ein Rückblick für mich und GPT-3
Sebastian Heinz
23. Dezember 2020
Mehr erfahren
  • Artificial Intelligence
  • Deep Learning
  • Machine Learning
5 praxisnahe Beispiele für NLP Use Cases
Team statworx
12. November 2020
Mehr erfahren
  • Data Science
  • Deep Learning
Die 5 wichtigsten Use Cases für Computer Vision
Team statworx
05. November 2020
Mehr erfahren
  • Data Science
  • Deep Learning
Neue Trends im Natural Language Processing – Wie NLP massentauglich wird
Dominique Lade
29. Oktober 2020
Mehr erfahren
  • Data Engineering
5 Technologien, die jeder Data Engineer kennen sollte
Team statworx
22. Oktober 2020
Mehr erfahren
  • Artificial Intelligence
  • Data Science
  • Machine Learning
Generative Adversarial Networks: Wie mit Neuronalen Netzen Daten generiert werden können
Team statworx
15. Oktober 2020
Mehr erfahren
  • Coding
  • Data Science
  • Deep Learning
Finetuning von Tesseract-OCR für deutsche Rechnungen
Team statworx
08. Oktober 2020
Mehr erfahren
  • Artificial Intelligence
  • Machine Learning
Whitepaper: Ein Reifegradmodell für Künstliche Intelligenz
Team statworx
06. Oktober 2020
Mehr erfahren
  • Data Engineering
  • Data Science
  • Machine Learning
Machine Learning Modelle mit Hilfe von Docker Containern bereitstellen
Thomas Alcock
01. Oktober 2020
Mehr erfahren
  • Recap
  • statworx
STATWORX 2.0 – Das neue Headquarter in Frankfurt ist eröffnet
Julius Heinz
24. September 2020
Mehr erfahren
  • Machine Learning
  • Python
  • Tutorial
Wie man eine Machine Learning API mit Python und Flask erstellt
Team statworx
29. Juli 2020
Mehr erfahren
  • Data Science
  • Statistics & Methods
Modellregularisierung – The Bayesian Way
Thomas Alcock
15. Juli 2020
Mehr erfahren
  • Recap
  • statworx
Auf zu neuen Abenteuern: Soft Opening des STATWORX Büros
Team statworx
14. Juli 2020
Mehr erfahren
  • Data Engineering
  • R
  • Tutorial
Wie Du ShinyApps in Docker-Images einbauen kannst
Team statworx
15. Mai 2020
Mehr erfahren
  • Coding
  • Python
Making Of: Eine kostenlose API für COVID-19-Daten
Sebastian Heinz
01. April 2020
Mehr erfahren
  • Frontend
  • Python
  • Tutorial
Wie Du ein Dashboard In Python baust – Plotly Dash Step-by-Step Tutorial
Alexander Blaufuss
26. März 2020
Mehr erfahren
  • Coding
  • R
Warum heißen sie so?! – Ursprung und Bedeutung von R-Paketnamen
Team statworx
19. März 2020
Mehr erfahren
  • Data Visualization
  • R
Gemeinschaftsdetektion mit Louvain und Infomap
Team statworx
04. März 2020
Mehr erfahren
  • Coding
  • Data Engineering
  • Data Science
Testen von REST-APIs mit Newman
Team statworx
26. Februar 2020
Mehr erfahren
  • Coding
  • Frontend
  • R
Dynamische UI-Elemente in Shiny - Teil 2
Team statworx
19. Februar 2020
Mehr erfahren
  • Coding
  • Data Visualization
  • R
Animierte Plots mit ggplot und gganimate
Team statworx
14. Februar 2020
Mehr erfahren
  • Machine Learning
Machine Learning Goes Causal II: Der kausale Bruder des Random Forests
Team statworx
05. Februar 2020
Mehr erfahren
  • Artificial Intelligence
  • Machine Learning
  • Statistics & Methods
Machine Learning Goes Causal I: Warum Kausalität wichtig ist
Team statworx
29.01.2020
Mehr erfahren
  • Data Engineering
  • R
  • Tutorial
Wie man REST-APIs mit R Plumber erstellt
Stephan Emmer
23. Januar 2020
Mehr erfahren
  • Recaps
  • statworx
statworx 2019 – Ein Jahresrückblick
Sebastian Heinz
20. Dezember 2019
Mehr erfahren
  • Artificial Intelligence
  • Deep Learning
Deep Learning – Überblick und Einstieg
Team statworx
04. Dezember 2019
Mehr erfahren
  • Coding
  • Machine Learning
  • R
Abstimmung von Random Forest auf Zeitreihendaten
Team statworx
21. November 2019
Mehr erfahren
  • Data Science
  • R
Kombination von Preiselastizitäten und Verkaufsprognosen zur Verkaufssteigerung
Team statworx
06. November 2019
Mehr erfahren
  • Data Engineering
  • Python
Von überall aus auf deinen Spark-Cluster zugreifen – mit Apache Livy
Team statworx
30. Oktober 2019
Mehr erfahren
  • Recap
  • statworx
STATWORX auf Tour: Wein, Burgen & Wandern!
Team statworx
18. Oktober 2019
Mehr erfahren
  • Data Science
  • R
  • Statistics & Methods
Wie man eine Kreuzvalidierung zur Evaluation der Modellperformance von Grund auf selbst erstellt
Team statworx
02. Oktober 2019
Mehr erfahren
  • Data Science
  • Machine Learning
  • R
Zeitreihenvorhersage mit Random Forest
Team statworx
25. September 2019
Mehr erfahren
  • Coding
  • Frontend
  • R
Dynamische UI Elemente in Shiny – Teil 1
Team statworx
11. September 2019
Mehr erfahren
  • Machine Learning
  • R
  • Statistics & Methods
Was dem MAPE fälschlicherweise vorgeworfen wird, seine WAHREN Schwächen und BESSERE Alternativen!
Team statworx
16. August 2019
Mehr erfahren
  • Coding
  • Python
Web Scraping 101 in Python mit Requests & BeautifulSoup
Team statworx
31. Juli 2019
Mehr erfahren
  • Coding
  • Frontend
  • R
Einstieg in Flexdashboards in R
Thomas Alcock
19. Juli 2019
Mehr erfahren
  • Recap
  • statworx
statworx Sommer-Barbecue 2019
Team statworx
21. Juni 2019
Mehr erfahren
  • Data Visualization
  • R
Interaktive Netzwerkvisualisierung mit R
Team statworx
12. Juni 2019
Mehr erfahren
  • Deep Learning
  • Python
  • Tutorial
Verwendung von Reinforcement Learning zum Spielen von Super Mario Bros auf NES mit TensorFlow
Sebastian Heinz
29. Mai 2019
Mehr erfahren
This is some text inside of a div block.
This is some text inside of a div block.