Wer dieser Tage die Wörter Data-Mining, Big-Data, Machine Learning oder andere Artefakte dieser Art in den Mund nimmt, kann sich der Aufmerksamkeit kaum mehr entziehen.
Wenn es dann zur Umsetzung kommt, werden weitere Schlagwörter wie Hadoop, Spark oder andere Termini auf den Tisch gelegt, die bei vielen Menschen schnell zu einem Fluchtreflex führen. Im Vergleich zur "R", der klassischen Umgebung mit der Statistiker Analysen durchführen, möchten wir hier die grundsätzliche Vorgehensweise zur Lösung von Data-Mining Problemen mit der Monte-Carlo Simulation demonstrieren und dabei bewusst auf die Marketingbegriffe verzichten. Durch den hier vorgestellten Ansatz möchten wir hingegen Transparenz schaffen, was den Nachvollzug gewährleistet.
Wir definieren Data-Mining als die systematische Anwendung computergestützter Methoden, um in vorhandenen Datenbeständen Muster, Trends oder Zusammenhänge zu finden, mit dem Ziel, auf Basis neuer Daten Vorhersagen zu treffen. Data-Mining erfolgt interdisziplinär, wobei der Mensch die Federführung über die das "Was" und "Wie" übernimmt.
Wir beschränken uns hier auf den Teilbereich der überwachten Klassifizierung. Dabei werden Methoden und Kriterien zur Einteilung von Objekten in Klassen erarbeitet. Zu denken ist konkret an die Klassifizierung von Kreditnehmer in die Gruppen "wird Kredit zurückbezahlen" und "wird Kredit nicht zurückbezahlen" anhand der Merkmale Einkommen, Alter, Ausbildung, etc.
Für unseren praktischen Vergleich greifen auf den in "R" verfügbaren Datenbestand zu Schwertlinien ("Iris") zurück, welches die Klassifikation der drei Subarten "seposa", "versicolor" und "virginica" anhand der Länge und Breite zu Kronblätter ("Petalen") und Kelchblätter ("Sepalen") erlaubt. Gewiss, kein spannender Datensatz. Aber er ist nun mal einer der als Referenz für Data Mining mit "R" herangezogen wird.
Insgesamt liegen 150 klassifizierte Datensätze in folgender Datei vor (Ursprungsdaten wurden von "R" nach Excel exportiert und umfassen die Spalten B-F), wobei für jede Klasse 50 Beobachtungen notiert sind. Um eine Prognose auf Basis der Datensätze machen zu können, teilen wir jede Klasse in einen Trainings - und einen Testdatensatz auf. Die Trainingsdaten (hellviolett) umfassen jeweils 30, die Testdaten (hellorange) demzufolge 20 Beobachtungen. Mit den Trainingsdaten wird das Modell "erstellt" und kalibriert, für die Testdaten wird dann die Prognose durchgeführt. Anhand der bekannten Klassifizierung aller Datensätze ist eine Gegenüberstellung der prognostizierten Klassifikation mit dem korrekten Wert und somit die Bestimmung der Fehlerrate (als Verhältnis der falsch prognostizierten Werte zu der Gesamttestmenge) möglich. Wir vergleichen im Anschluss das mit Excel und MC FLO erstellte Modell mit den in "R" implementierten Klassifikationsalgorithmen Naive Bayes, Support Vector Machines (SVN) und K-nearest neighbours (knn).
Als erstes gilt es ein geeignetes Modell zu erstellen. Hierbei kommt uns zu Hilfe, dass Monte-Carlo Simulationen auf Verteilungen von Daten aufsetzen. Auch die Breiten und Längenangaben der Schwertlilien folgen solchen Verteilungen. Die jeweilige Verteilung ist jedoch unbekannt. Mit der in MC FLO implementierten Verteilungsanpassung können wir jedoch anhand der jeweils 30 Trainingsdatensätze eine geeignete Verteilung auswählen und diese in Excel als unsichere Variable hinterlegen. Dabei nehmen wir jeweils Verteilungen, die sowohl in Bezug auf die Trainingsdaten die geringste Abweichung aufweisen als auch ohne eine Grenze spezifiziert werden können. Wir schliessen somit die Gleichverteilung, PERT und andere gleich gelagerte Verteilungen aus. Wie aus dem Excel ersichtlich, werden die Weibull und die Gumbelverteilung mehrheitlich vorgeschlagen und sind entsprechend in der Zeile 2 ab Spalte H abgetragen.
Ab Zeile 3 und Spalte H wird das Modell zusammengefügt. Wie unschwer zu erkennen, wird die Lage der einzelnen Ausprägungen im Verhältnis zu den Verteilungen als Massstab für die Klassifizierung vorgenommen, wobei zusätzlich berücksichtigt wird, ob die Lage überhaupt von einer Verteilung eingefangen wird oder nicht.
Anhand der obigen Abbildung wird dieses Vorgehen ersichtlich. Der vertikale Balken (stellvertretend für die Ausprägung eines neuen Datensatzes mit Eigenschaft "Länge des Kelchblatts", hier in Höhe von 6.05) liegt in einem Bereich, welcher von zwei Verteilungen überlagert wird. Es ist eine Aussage zu treffen, mit welcher Wahrscheinlichkeit der vertikale Balken von einer der beiden Verteilungen stammen könnte. Bezüglich der blauen Verteilung (Länge Kelchblätter "setosa") ist der Datenpunkt sehr weit rechts gelegen, hinsichtlich der roten Verteilung (Länge Kelchblätter "veriscolor") hingegen nahe bei der Mitte (50% Quantil). Es somit wahrscheinlicher, dass der Datensatz mit einer Kelchblattlänge von 6.05 eher zur Gattung "versicolor" als zur Gattung "setosa" gehört.
In Spalte G (Tabellenblatt Iris) wird dann der Forecast gebildet, wobei das Maximum der Summe der Wahrscheinlichkeiten der einzelnen Lagen (in Bezug auf die Subklassen) als Kriterium herangezogen wird.
Das Resultat und der Vergleich mit den in "R" implementierten Algorithmen ist links von der obigen Graphik ersichtlich. Der Bayes Algorithmus liegt mit einer Fehlerrate von 3.57% tiefer als das hier vorgestellte Verfahren mit 5% Fehlerrate. Die Verfahren SVN und knn liegen leicht darüber. Gewiss, wer die Tiefen der Algorithmen kennt, wird feststellen, dass durch Setzen der "Seed" Variablen in "R" ein besseres (oder auch schlechteres) Ergebnis als die dargestellten Lösungen bekommt. Das sind aber Feinheiten.
Aber nochmals zur Interpretation: So sehen wir, dass unser Algorithmus die Daten der Klasse "setosa" alle korrekt vorhergesagt hat, bei "versicolor" hat es einen Datensatz hingegen fälschlicherweise der Klasse "setosa" zugeordnet und bei "virginca" wurden 2 Datensätze zu "versicolor" (siehe Zusammenfassung ab Spalte B, Tabelle "Auswertung").
Anhand von Entscheidungsbäumen können wir dies in "R" ebenfalls nachvollziehen, wobei "R" die Klassifizierung in diesem Fall in einem ersten Schritt über die Länge der Kronblätter vornimmt.
Der Brückenschlag zu Big Data und Machine Learning ist nicht weit: Haben Sie grosse Datenmengen (und nicht nur 150 Datensätze zu analysieren), wird der Rückgriff auf Excel schwerfälliger. In diesem Fall brauchen Sie eine Infrastruktur, die diese Daten verwalten und in nützlicher Zeit analysieren kann. Das kann unter Big-Data subsummiert werden. Wenn Sie dann noch eine Rückkoppelung (der Algorithmus "erfährt", ob er mit der Prognose falsch oder richtig lag und kann auf dieser Basis die Verteilungsanpassung neu vornehmen) und die Möglichkeit einräumen, dass zukünftig auch andere, heute noch nicht erfasste Kriterien (etwa die Blütezeit), in die Bewertung einfliessen, sind wir beim Machine Learning.
So, das war der Ausflug in Data Mining und die Monte-Carlo Simulation als Instrument zur Prognose bei klassischen Klassifizierungsproblemen. Mit Excel und MC FLO haben Sie diesbezüglich grosse Freiheiten und aufgrund der Möglichkeit, alle Input - und Outputdaten exportieren zu können, auch eine beispielhafte Transparenz.
Kommentar schreiben