Zurück zu allen Blogbeiträgen

Gemeinschaftsdetektion mit Louvain und Infomap

  • Data Visualization
  • R
04. März 2020
·

Team statworx

In meinem letzten Blogpost habe ich über Netzwerke und deren Visualisierung in R geschrieben. Für die Farbgebung der Objekte habe ich die Les Misérables-Charaktere mithilfe von Louvain, einem Community Detection Algorithmus, in mehrere Gruppen geclustert.

Community Detection Algorithmen sind nicht nur nützlich, um Charaktere in französischen Liedtexten zu gruppieren. Bei statworx nutzen wir diese Methoden, um unseren Kunden Einblicke in ihr Produktportfolio, ihre Kunden- oder Marktstruktur zu geben. In diesem Blogpost möchte ich dir die Magie hinter Community Detection zeigen und eine theoretische Einführung in die Louvain- und Infomap-Algorithmen geben.

Finde Gruppen mit hoher Dichte an Verbindungen innerhalb und niedriger Dichte zwischen Gruppen

Netzwerke sind nützliche Konstrukte, um die Organisation von Interaktionen in sozialen und biologischen Systemen zu schematisieren. Sie eignen sich ebenso gut zur Darstellung von Interaktionen in der Wirtschaft, insbesondere im Marketing. Eine solche Interaktion kann ein gemeinsamer Kauf von zwei oder mehr Produkten sein oder ein gemeinsamer Vergleich von Produkten in Online-Shops oder auf Preisvergleichsportalen.

Netzwerke bestehen aus Objekten und Verbindungen zwischen den Objekten. Die Verbindungen, auch Kanten genannt, können nach bestimmten Kriterien gewichtet werden. Im Marketing ist beispielsweise die Anzahl oder Häufigkeit gemeinsamer Käufe zweier Produkte eine sinnvolle Gewichtung der Verbindung zwischen diesen beiden Produkten. Meist sind solche realen Netzwerke so groß und komplex, dass wir ihre Struktur vereinfachen müssen, um nützliche Informationen aus ihnen zu gewinnen. Die Methoden der Community Detection helfen dabei, Gruppen im Netzwerk zu finden, mit einer hohen Dichte an Verbindungen innerhalb der Gruppen und einer geringen Dichte an Verbindungen zwischen den Gruppen.

Wir schauen uns die beiden Methoden Louvain Community Detection und Infomap an, da sie in der Studie von Lancchinetti und Fortunato (2009) die besten Ergebnisse lieferten, als sie auf verschiedene Benchmarks von Community Detection Methoden angewendet wurden.

Louvain: Baue Cluster mit hoher Modularität in großen Netzwerken

Die Louvain Community Detection Methode, entwickelt von Blondel et al. (2008), ist ein einfacher Algorithmus, der schnell Cluster mit hoher Modularität in großen Netzwerken finden kann.

Modularität

Die sogenannte Modularität misst die Dichte der Verbindungen innerhalb von Clustern im Vergleich zur Dichte der Verbindungen zwischen Clustern (Blondel 2008). Sie wird als Zielfunktion verwendet, die bei einigen Community Detection Techniken maximiert werden soll, und nimmt Werte zwischen -1 und 1 an. Im Falle gewichteter Verbindungen zwischen den Objekten können wir die Modularität mit folgender Formel definieren:

$$ Q=frac{1}{2m}sumnolimits_{p,q} [A_{pq}-frac{k_{p}k_{q}}{2m}]delta(C_{p}, C_{q}) $$

mit:

$A_{pq}$: Gewicht einer Verbindung zwischen Objekt $p$ und $q$

$k_{p}$: $sumnolimits_{q}A_{pq}$ = Summe der Gewichte aller vom Objekt $p$ ausgehenden Verbindungen

$C_{p}$: Cluster, dem das Objekt $p$ zugeordnet wurde

$delta(C_{p}, C_{q})$: Dummy-Variable, die den Wert 1 annimmt, wenn beide Objekte $p$ und $q$ demselben Cluster zugeordnet sind

$m$: $frac{1}{2}sumnolimits_{p,q} A_{pq}$ = Summe der Gewichte aller Verbindungen zwischen allen vorhandenen Objekten, geteilt durch 2

Phasen

Der Algorithmus ist in zwei Phasen unterteilt, die wiederholt werden, bis die Modularität nicht weiter maximiert werden kann. In der 1. Phase wird jedes Objekt als ein separates Cluster betrachtet. Für jedes Objekt $p$ $(p = 1, …, N)$ wird geprüft, ob sich die Modularität erhöht, wenn $p$ aus seinem Cluster entfernt und dem Cluster eines Objekts $q$ $(q = 1, …, N)$ zugewiesen wird. Das Objekt $p$ wird dann dem Cluster zugewiesen, das den größten Anstieg der Modularität bewirkt. Dies gilt jedoch nur im Fall eines positiven Anstiegs. Falls durch die Verschiebung kein positiver Anstieg der Modularität erreicht werden kann, bleibt das Objekt $p$ in seinem bisherigen Cluster. Der oben beschriebene Prozess wird wiederholt und sequentiell für alle Objekte durchgeführt, bis keine Verbesserung der Modularität mehr erreicht werden kann. Ein Objekt wird dabei häufig mehrfach betrachtet und zugewiesen. Die 1. Phase endet also, wenn ein lokales Maximum gefunden wurde, d.h., wenn keine einzelne Verschiebung eines Objekts die Modularität verbessern kann.

Aufbauend auf den in der 1. Phase gebildeten Clustern wird in der 2. Phase ein neues Netzwerk erzeugt, dessen Objekte nun die Cluster selbst sind, die in der 1. Phase gebildet wurden. Um Gewichtungen für die Verbindungen zwischen den Clustern zu erhalten, wird die Summe der Gewichtungen der Verbindungen zwischen den Objekten zweier entsprechender Cluster verwendet. Wenn ein solches neues Netzwerk mit „Metacluster“ gebildet wurde, werden die Schritte der 1. Phase im nächsten Schritt auf das neue Netzwerk angewendet und die Modularität weiter optimiert. Ein vollständiger Durchlauf beider Phasen wird als Pass bezeichnet. Solche Pässe werden wiederholt durchgeführt, bis sich keine Veränderung der Cluster mehr ergibt und ein Maximum der Modularität erreicht ist.

Infomap: Minimiere die Beschreibungslänge eines Random Walks

Die Infomap-Methode wurde erstmals von Rosvall und Bergstrom (2008) vorgestellt. Das Vorgehen des Algorithmus ist im Kern identisch mit dem Verfahren von Blondel. Der Algorithmus wiederholt die zwei beschriebenen Phasen, bis eine Zielfunktion optimiert ist. Allerdings verwendet Infomap als zu optimierende Zielfunktion nicht die Modularität, sondern die sogenannte Map Equation.

Map Equation

Die Map Equation nutzt die Dualität zwischen dem Auffinden von Clusterstrukturen in Netzwerken und der Minimierung der Beschreibungslänge der Bewegung eines sogenannten Random Walks (Bohlin 2014). Dieser Random Walker bewegt sich zufällig von Objekt zu Objekt im Netzwerk. Je stärker die Verbindung eines Objekts gewichtet ist, desto wahrscheinlicher wird der Random Walker diese Verbindung nutzen, um zum nächsten Objekt zu gelangen. Ziel ist es, Cluster zu bilden, in denen sich der Random Walker möglichst lange aufhält, d.h., die Gewichtungen der Verbindungen innerhalb des Clusters sollen größere Werte annehmen als die Gewichtungen der Verbindungen zwischen Objekten verschiedener Cluster. Die Struktur des Map-Equation-Codes ist so ausgelegt, dass sie die Beschreibungslänge des Random Walks komprimiert, wenn sich der Random Walker über längere Zeiträume in bestimmten Bereichen des Netzwerks aufhält. Daher besteht das Ziel darin, die Map Equation zu minimieren, die für gewichtete, aber ungerichtete Netzwerke wie folgt definiert ist (Rosvall 2009):

$$ L(M)=wcurvearrowright log(wcurvearrowright)-2sum_{k=1}^K w_{k}curvearrowright log(w_{i}curvearrowright)-sum_{i=1}^N w_{i}log(w_{i})+sum_{k=1}^K (w_{k}curvearrowright+w_{i})log(w_{k}curvearrowright+w_{k}) $$  

mit:

$M$: Netzwerk mit $N$ Objekten ($i = 1, ..., N$) und $K$ Clustern ($k = 1, ..., K$)

$w_{i}$: relatives Gewicht aller Verbindungen eines Objekts i, d.h. die Summe der Gewichte aller Verbindungen eines Objekts geteilt durch die Summe der Gewichte aller Verbindungen des Netzes

$w_{k}$: $sumnolimits_{iin k}w_{i}$: Summe der relativen Gewichte aller Verbindungen der Objekte des Clusters $k$

$w_{k}curvearrowright$: Summe der relativen Gewichte aller Verbindungen der Objekte des Clusters $k$, die den Cluster verlassen (Verbindungen zu Objekten aus anderen Clustern)

$wcurvearrowright$: $sum_{k=1}^K w_{k}$ = Summe der Gewichte aller Verbindungen zwischen Objekten aus verschiedenen Clustern

Diese Definition der Map Equation basiert auf der sogenannten Entropie, dem durchschnittlichen Informationsgehalt bzw. der Informationsdichte einer Nachricht. Dieser Begriff basiert auf dem Source-Coding-Theorem von Shannon aus dem Bereich der Informationstheorie (Rosvall 2009).

Das oben beschriebene Vorgehen wird im Folgenden als Hauptalgorithmus bezeichnet. Objekte, die im ersten Schritt des Hauptalgorithmus beim Erstellen des neuen Netzwerks demselben Cluster zugewiesen wurden, können in der zweiten Phase nur gemeinsam verschoben werden. Eine zuvor optimale Verschiebung in einen bestimmten Cluster muss in einem späteren Durchlauf nicht mehr unbedingt optimal sein (Rosvall 2009).

Erweiterungen

Es kann also theoretisch noch bessere Clusteraufteilungen geben als die Lösung des Hauptalgorithmus. Um die Lösung des Hauptalgorithmus zu verbessern, gibt es im Vergleich zur Louvain Community Detection zwei Erweiterungen:

Subcluster-Verschiebung: Die Subcluster-Verschiebung betrachtet jedes Cluster als eigenes Netzwerk und wendet den Hauptalgorithmus auf dieses Netzwerk an. So entsteht in jedem Cluster, im vorherigen Schritt, durch ein oder mehrere Subcluster eine optimale Partitionierung des Netzwerks. Alle Subcluster werden erneut ihrem Cluster zugewiesen und können nun frei zwischen den Clustern verschoben werden. Durch Anwendung des Hauptalgorithmus kann geprüft werden, ob die Verschiebung eines Subclusters in ein anderes Cluster zu einer Minimierung der Map Equation gegenüber der zuvor optimalen Clusterverteilung führt (Rosvall 2009).

Einzelobjekt-Verschiebung: Jedes Objekt wird erneut als separates Cluster betrachtet, sodass eine Verschiebung einzelner Objekte zwischen den im vorherigen Schritt bestimmten optimalen Clustern möglich ist. Durch Anwendung des Hauptalgorithmus kann festgestellt werden, ob die Verschiebung einzelner Objekte zwischen den Clustern zu einer weiteren Optimierung der Map Equation führen kann (Rosvall 2009). Die beiden Erweiterungen werden sequentiell wiederholt, bis die Map Equation nicht weiter minimiert werden kann und ein Optimum erreicht ist.

Wie funktioniert der Louvain-Algorithmus in einem einfachen Beispiel?

Wie wir sehen, besteht der Kern beider Methoden darin, Cluster zu bilden und Objekte in zwei Phasen neu zuzuweisen, um eine Zielfunktion zu optimieren. Um ein besseres Verständnis dafür zu bekommen, wie diese beiden Phasen funktionieren, möchte ich die Louvain Community Detection Methode anhand eines einfachen Beispiels veranschaulichen, eines Netzwerks mit sechs Knoten:

1. Phase

Zu Beginn wird jedes Objekt in einen eigenen Cluster eingeteilt, und wir müssen prüfen, ob die Modularität maximiert wird, wenn wir es einem anderen Cluster zuordnen. Nur eine positive Veränderung der Modularität führt zu einer Verschiebung des Clusters.

Für das Objekt A zum Beispiel sehen die Berechnungen wie folgt aus:

A → B: $ Q_{AB}=5-frac{10*7}{30}=2.667 $

A → C: $ Q_{AC}=4-frac{10*13}{30}=-0.333 $

A → E: $ Q_{AE}=1-frac{10*9}{30}=-2 $

In ähnlicher Weise können wir für alle anderen Objekte prüfen, ob eine Verschiebung in einen anderen Cluster die Modularität maximiert:

B → C: $Q_{BC}=2-frac{7*13}{30}=-1.033$

C → D: $Q_{CD}=7-frac{13*10}{30}=2.667$

D → F: $Q_{CD}=3-frac{10*11}{30}=-0.667$

E → F: $Q_{AB}=8-frac{9*11}{30}=4.7$

2. Phase

Nun versuchen wir, die in der 1. Phase gebildeten Cluster zu kombinieren:

Orange → Green: $ Q_{Or,Gr}=6-frac{7*9}{10}=-0.3 $

Orange → Yellow: $ Q_{Or, Ye}=1-frac{7*4}{10}=-1.8 $

Green → Yellow: $ Q_{Gr, Ye}=3-frac{9*4}{10}=-0.6 $

Wir können sehen, dass keine der Zuordnungen eines Clusters zu einem anderen Cluster die Modularität verbessern kann. Daher können wir Pass 1 beenden.

Da wir in der zweiten Phase des ersten Durchlaufs keine Veränderung haben, sind keine weiteren Durchläufe erforderlich, da bereits ein Maximum der Modularität erreicht ist. In größeren Netzwerken sind natürlich mehr Durchläufe erforderlich, da die Cluster dort aus deutlich mehr Objekten bestehen können.

In R wird nur das Paket igraph benötigt, um beide Methoden anzuwenden

Alles, was wir zur Anwendung dieser beiden Community Detection Algorithmen benötigen, ist das Paket igraph, das eine Sammlung von Netzwerk-Analysetools enthält, sowie zusätzlich eine Liste oder Matrix mit den Verbindungen zwischen den Objekten in unserem Netzwerk.

In unserem Beispiel verwenden wir das Les Misérables Characters Netzwerk, um die Charaktere in mehrere Gruppen zu clustern. Dazu laden wir den Datensatz lesmis, den man im Paket geomnet findet.

Wir müssen die Kanten aus lesmis extrahieren und in ein data.frame umwandeln. Anschließend muss dieses in einen igraph-Graphen konvertiert werden. Um die Gewichtungen jeder Verbindung zu nutzen, müssen wir die Spalte mit den Gewichten umbenennen, sodass der Algorithmus die Gewichtungen erkennen kann. Der resultierende Graph kann dann als Eingabe für die beiden Algorithmen verwendet werden.

# Libraries --------------------------------------------------------------

library(igraph)
library(geomnet)


# Data Preparation -------------------------------------------------------

#Load dataset
data(lesmis)

#Edges
edges <- as.data.frame(lesmis[1])
colnames(edges) <- c("from", "to", "weight")

#Create graph for the algorithms
g <- graph_from_data_frame(edges, directed = FALSE)

Nun sind wir bereit, die Gemeinschaften mit den Funktionen cluster_louvain() bzw. cluster_infomap() zu finden

Außerdem können wir nachsehen, zu welcher Gemeinschaft die Zeichen gehören (membership()) oder eine Liste mit allen Gemeinschaften und deren Mitgliedern erhalten (communities()).

# Community Detection ----------------------------------------------------

# Louvain
lc <- cluster_louvain(g)
membership(lc)
communities(lc)
plot(lc, g)

# Infomap
imc <- cluster_infomap(g)
membership(imc)
communities(imc)
plot(lc, g)

Wenn Sie diese Ergebnisse anschließend visualisieren möchten, schauen Sie sich meinen letzten Blogbeitrag an oder verwenden Sie die oben gezeigte plot()-Funktion zur schnellen Visualisierung. Wie Sie im Folgenden sehen können, ist die schnelle Plot-Option nicht so schön wie mit dem Paket visNetwork. Darüber hinaus ist sie auch nicht interaktiv.

Fazit

Beide Algorithmen übertreffen andere Community Detection Algorithmen (Lancchinetti, 2009). Sie zeigen eine ausgezeichnete Leistung, und Infomap liefert in dieser Studie leicht bessere Ergebnisse als Louvain. Darüber hinaus sollten wir zwei zusätzliche Punkte berücksichtigen, wenn wir zwischen diesen beiden Algorithmen wählen.

Erstens erledigen beide Algorithmen ihre Aufgabe sehr schnell. Wenn wir sie auf große Netzwerke anwenden, sehen wir, dass Louvain deutlich besser abschneidet.

Zweitens kann Louvain keine Ausreißer trennen. Dies könnte erklären, warum die Algorithmen Menschen in fast identische Cluster aufteilen, Infomap jedoch einige Personen aus bestimmten Clustern ausschließt, und diese dann ein eigenes Cluster bilden. Diese Punkte sollten wir im Hinterkopf behalten, wenn wir uns zwischen den beiden Algorithmen entscheiden müssen. Ein weiterer Ansatz könnte sein, beide zu verwenden und ihre Lösungen zu vergleichen.

Habe ich dein Interesse geweckt, deine eigenen Netzwerke zu clustern? Nutze gerne meinen Code oder kontaktiere mich, wenn du Fragen hast.

Literatur

  • Blondel, Vincent D. / Guillaume, Jean L. / Lambiotte, Renaud / Lefebvre, Etienne (2008), “Fast unfolding of communities in large networks”, Journal of Statistical Mechanics: Theory and Experiment, Jg.2008, Nr.10, P10008
  • Bohlin, Ludvig / Edler, Daniel / Lancichinetti, Andrea / Rosvall, Martin (2014), “Community Detection and Visualization of Networks with the Map Equation Framework”, in: Measuring Scholary Impact: Methods and Practice (Ding, Ying / Rousseau, Ronald / Wolfram, Dietmar, Eds.), S.3-34, Springer-Verlag, Berlin
  • Lancichinetti, Andrea / Fortunato, Santo (2009), ” Community detection algorithms: a comparative analysis”, Physical review E, Jg.80, Nr.5, 056117
  • Rosvall, Martin / Bergstrom, Carl T. (2008), “Maps of random walks on complexe net- works reveal community structure”, Proceedings of the National Academy of Sciences USA, Jg.105, Nr.4, S.1118-1123
  • Rosvall, Martin / Axellson, Daniel / Bergstrom, Carl T. (2009), “The map equation”, The European Physical Journal Special Topics, Jg.178, Nr.1, S.13-23
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
  • 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
  • Coding
  • Data Engineering
Automatisierte Erstellung von Docker Containern
Stephan Emmer
10. Mai 2019
Mehr erfahren
This is some text inside of a div block.
This is some text inside of a div block.