graphLab
Im fruschtique-graphLab versuchen wir, Sammlungen von Rezepten zu analysieren und die in diesen Rezepten auftretenden Zutatenkombinationen anhand objektiver Maße zu bewerten. Hier erläutern wir unsere Herangehensweise und stellen dazu vor allem unser Analyseinstrument, die sog. Zutatengraphen vor. Wir zeigen, wie solche Graphen konstruiert werden und geben einen kurzen Überblick über die verwendeten statistischen Kenngrößen.
Darüberhinaus zeigen wir, wie wir Experimente mit Rezeptsammlungen planen und durchführen. In unseren Experimenten manipulieren wir einen Zutatengraphen, um dadurch eine vertiefte Einsicht in die Art und Weise der Zutatenkombination in der jeweiligen Rezeptsammlung zu gewinnen.
Wir starten mit einer Definition des Begriffs "Rezeptsammlung" (rechts bzw. unten).
←
Alle Analysen, die in dieser Website dargestellt werden, beziehen sich auf bestimmte Sammlungen von Rezepten. Eine Rezeptsammlung kann alle Rezepte eines Kochbuchs umfassen oder nur einige Kapitel daraus; sie kann aber auch aus Rezepten verschiedener Kochbücher zusammengesetzt sein.
Unser Ziel ist es, nicht ein einzelnes Rezept zu analysieren, sondern eine Menge von Rezepten im Zusammenhang zu erfassen. Es soll dabei deutlich werden, mit welchem "Kochstil" wir es bei diesen Rezepten zu tun haben.
"Kochstil" beschreibt nur sehr unpräzise, um was es geht. Um dem Begriff "Kochstil" kann man viele verschiedene Aspekte des Kochens zusammenfassen. Unser Blick richtet sich auf die Zutaten: Welche Zutaten bevorzugt eine Köchin, und noch viel wichtiger: Welche Zutaten kombiniert sie mit Vorliebe?
Wenn damit also die Kombination von Zutaten im Mittelpunkt unseres Interesses steht, dann wird klar, warum wir uns nicht nur auf ein einzelnes Rezept einer Köchin konzentrieren. Es müssen schon mehrere sein, damit wir sehen, ob sich bestimmte Kombinationen wiederholen, oder ob neben die "Standardkombinationen" auch ausgefallenere Kombinationen treten.
Unsere Sichtweise beschreiben wir wie folgt: In einem Rezept treten die verwendeten Zutaten in eine "soziale Beziehung" zueinander. Die gleichen Zutaten (oder nur einige davon) können auch in anderen Rezepten auftauchen, dort aber treten sie mit noch anderen Zutaten in eine solche "soziale Beziehung". Am Ende ergibt sich ein mehr oder weniger großer "Beziehungsgraph", der alle Beziehungen aller Zutaten zeigt. Wir nennen einen solchen Graphen einen Zutatengraphen.
Zutatengraphen sind eine Variante der sog. social graphs, mit deren Hilfe die Beziehungen zwischen Menschen untersucht werden. Für die Darstellung von social graphs gibt es eine Menge von Werkzeugen, die wir für unsere Zwecke nutzen können. Wichtiger noch ist, dass für die Analyse von social graphs diverse statistische Kenngrößen definiert sind, die es erlauben, auch große komplexe Graphen zu studieren. Überflüssig zu sagen, dass zur Berechnung solcher Kenngrößen ebenfalls Werkzeuge existieren und von uns genutzt werden.
Im nächsten Absatz erläutern wir, wie der Zutatengraph für eine Rezeptsammlung konstruiert wird.
Ein Zutatengraph ist ein ungerichteter (Kanten-)gewichteter Graph (s. auch hier). Die Knoten des Graphen repräsentieren die Zutaten von Rezepten. Wir sprechen von "Zutatenknoten" oder einfach: "Knoten". In der graphischen Darstellung werden die Zutatenknoten durch unterschiedlich eingefärbte Kreise (s.u.) repäsentiert. Der Kreisdurchmesser ist proportional zur Quadratwurzel aus der Prävalenz ("prevalence") der Zutat in der jeweiligen Rezeptsammlung.
Zutatenknoten stehen genau dann in einer sog. Nachbarbeziehung, wenn sie in der Zutatenliste mindestens eines Rezepts auftauchen. In der graphischen Darstellung wird die Nachbarbeziehung durch eine Linie ("Kante", "edge") zwischen Zutatenknoten repräsentiert. Betrachtet man die Zutaten eines Rezepts mit n Zutaten, dann umfasst dieses Rezept also ½ n · (n−1) Nachbarbeziehungen. Taucht eine Nachbarbeziehung in mehreren Rezepten auf, wird in der graphischen Darstellung die Linie rot eingefärbt und dicker gezeichnet; die Dicke ist proportional zur Häufigkeit der Nachbarbeziehung. Man spricht von einem Kantengewicht > 1 (engl. weight).
Der unten wiedergegebene Zutatengraph beschreibt eine Rezeptsammlung mit nur zwei Rezepten, nämlich dem Rezept für den Insalata Valtellina und dem Rezept für das Huhn in Aspik mit Frankfotter Grie Soß. Der Beitrag des Insalata Valtellina zum Zutatengraphen wird hervorgehoben, wenn man hier klickt; der Beitrag des "Huhns in Aspik mit Frankfotter Grie Soß" wird hervorgehoben, wenn man hier klickt. Klickt man an eine beliebige leere Stelle im Graphen, wird der gesamte Graph wieder sichtbar gemacht.
Man erkennt die vier Zutaten, die das Rezept für den Insalata Valtellina umfasst (wobei wir hier wie bei allen anderen Rezepten auch die Zutaten Salz, Pfeffer und Öl nicht in den Zutatengraphen aufgenommen haben, da sie in beinahe allen Rezepten auftauchen, so dass sie den Zutatengraphen unnötig unübersichtlich machen würden). Ebenso sieht man die 6 Kanten im Zutatengraphen, die anzeigen, dass die gezeigten Zutaten gemeinsam in einem Rezept auftauchen. Man sieht außerdem, dass die beiden ausgewählten Rezepte nur den Essig als gemeinsame Zutat haben.
| Fleisch | Fisch | ||
| Kräuter | Gewürz | ||
| Gemüse | Frucht | ||
| Zwiebel | Nüsse | ||
| Kohlenhydrate | süß | ||
| Alkohol | Würze | ||
| Milch | Ei | ||
| Fett | etc |
Aus dem gezeigten Zutatengraphen kann man ableiten, dass es genau ein Rezept gibt, in dem Parmesan gemeinsam mit Rucola verwendet wird, dass es aber kein Rezept gibt, in dem Parmesan und Petersilie gemeinsam verwendet werden.
Die Farbe eines Zutatenknotens zeigt an, zu welcher Zutatenklasse die jeweilige Zutat gehört. Die Farblegende zeigt die Zutatenklassen, die wir für unsere Zwecke definiert haben. Durch Klick auf ein Farbfeld in der Legende werden diejenigen Zutaten im Graphen hervorgehoben, die zur entsprechenden Klasse gehören. In diesem kleinen Graphen haben offensichtlich nicht alle Zutatenklassen einen Vertreter.
In diesen Tabs wird gezeigt, wie man mit dem Zutatengraphen interagieren kann:
- Beim Überfahren eines Zutatenknotens mit der Maus werden ihre Prävalenz, die Anzahl der Nachbarn, der Knotengrad und die betweenness in einem Popup angezeigt.
- Über dieses Eingabefeld kann man sich eine Zutat mitsamt ihren Nachbarn anzeigen lassen:
- Bei Links-Click auf einen Zutaten-Knoten werden seine Nachbarn hervorgehoben. Zum Wiederherstellen des unverschleierten Graphen bitte nochmals klicken.
- Bei Rechts-Click auf einen Zutaten-Knoten werden alle Rezepte angezeigt, in denen diese Zutat auftaucht.
- Über dieses Eingabefeld kann man sich ein Rezept im Zutaten-Graphen anzeigen lassen:
Bei Eingabe eines unteren und oberen Werts für die unten genannten Daten werden die Zutatenknoten hervorgehoben, deren entsprechender Wert zwischen den Eingabewerten liegt. Für die Eingabe sind max. 4 Stellen ohne Nachkommastellen vorgesehen.
Tipp: In dieser Rezeptsammlung ist der größte Prävalenzwert %. Für die Prävalenz bitte einen Prozentwert ohne Prozentzeichen eingeben.
Tipp: In dieser Rezeptsammlung tauchen Nachbar-Anzahlen zwischen 3 und auf.
Tipp: In dieser Rezeptsammlung tauchen Knotengrade zwischen 3 und auf.
Tipp: In dieser Rezeptsammlung tauchen betweenness-Werte zwischen 0 und auf.
Um mit dem Zutatengraphen wenigstens in einem sehr geringen Umfang experimentieren zu können, kann man hier einzelne Knoten aus Graphen löschen. Dazu Klickt man einen einzelnen Knoten mit der rechten Maustaste an, und dann wird dieser Knoten zusammen mit den Kanten, die zu seinen Nachbarn führen, aus dem Graphen gelöscht. Selbstverständlich kann man nacheinander auch mehrere Knoten aus dem Knoten löschen, und man kann die die Löschaktionen in umgekehrter Reihenfolge rückgängig machen oder sogar den ursprünglichen Graphen komplett wiederherstellen.
Was passiert, wenn man einzelne Knoten aus einem Zutatengraphen löscht? Löscht man z.B. den Knoten "Pimpinelle", dann hat das keinen großen Einfluss auf den Graphen. Löscht man aber den Knoten "Essig", dann zerfällt der Graph in zwei Teile, präziser formuliert: in zwei verbundene Komponenten (in der Graphentheorie: connected components). Es gibt dann keine Zutat mehr, die die beiden ausgewählten Rezepte gemeinsam haben. Außerdem haben nun alle verbleibenden Knoten einen betweenness-Wert von 0.
Kennzahlen für diese Rezeptsammlung
| Anzahl Rezepte | |
| Anzahl Zutaten | |
| Mittlere Anzahl Zutaten pro Rezept | |
| Anzahl Kanten | |
| davon: Mehrfachkanten | |
| Anzahl voneinander verschiedener Kanten | |
| davon: Mehrfachkanten | |
| mittlere Anz. Nachbarn | |
| mittlere Anz. voneinander verschiedener Nachbarn | |
| Graphdichte (voneinander verschiedene Kanten) | |
| Anzahl Graph-Komponenten |
Prävalenz
© fruschtique graphLab