© DrHitch/Shutterstock.com
Apache Mahout

3 Klassifizieren von Daten


Woher weiß ein System eigentlich, welche Mail in meinem Spamordner landen soll und welche ich vielleicht doch lieber lesen möchte? Täglich werden Abermillionen an Mails versendet, und dabei ist wahrscheinlich nur ein kleiner Bruchteil wirklich lesenswert. Über die automatische Klassifizierung von E-Mails lernen Systeme, Spam immer besser zu erkennen. Helfen diese Mechanismen auch im Aufbau von Empfehlungssystemen?

In den ersten beiden Kapiteln haben wir uns mit Produktempfehlungen und der Gruppenbildung von Kunden mit Mahout [1] auseinandergesetzt. In beiden Fällen wurde dabei eine Vielzahl an Daten analysiert und aufbereitet, ohne dass dabei dem System eine feste Zuordnung von Elementen mitgegeben wurde. Das Ergebnis der Analyse war nicht direkt vorhersehbar. Wenn man nun eine bestehende Ansammlung von Mails automatisch clustern lässt, wird man sicherlich interessante Gruppen erhalten, und eventuell sind auch einige sinnvolle dabei (z. B. Mails von der Familie). Dass aber Spam automatisch in einer eigenen Gruppe landet, ist eher unwahrscheinlich. Das Bilden von Gruppen läuft also ohne Aufsicht ab und so wird die Clusterbildung auch als Unsupervised Learning bezeichnet.

Die Klassifizierung verfolgt nun einen etwas anderen Ansatz. Aus einer gegebenen bekannten Größe an Elementen und deren Zuordnung zu einer Gruppe wird versucht, ein Vorgehen abzuleiten, das neue Elemente automatisch der richtigen Gruppe zuordnet (Supervised Learning). Die Zuordnung von E-Mails zu Spam funktioniert in einem solchen Fall, weil vorher bestehende Mails bereits manuell als Spam markiert wurden.

Ein anderes klassisches Beispiel für Klassifizierungen sind die Mechanismen zur Fraud Detection. Hier wird bei der Abwicklung von Zahlungen über Kreditkarten aus Erkenntnissen der Vergangenheit versucht, untypische Kaufmuster eines Kunden zu identifizieren und entsprechend als Betrug/Nichtbetrug einzugruppieren. An diesen beiden Beispielen erkennt man bereits, dass bei der Klassifizierung von Elementen meist nur eine überschaubare Anzahl an Zielgruppen als Ergebnis erwartet wird. Im einfachsten Fall ist dies nur eine Zuordnung zu Ja oder Nein in Bezug auf ein bestimmtes Merkmal. Die Klassifizierung wird also eingesetzt, wenn sich die Ausgangsdaten gut kategorisieren lassen.

Offene Fragestellungen bzw. eine theoretisch unbegrenzte Anzahl von Gruppen sind für die Klassifizierung nicht geeignet. Bevor man also mit der Klassifizierung startet, sollte man überlegen, ob die eigenen Daten und die gewünschte Aussage wirklich für die Klassifizierung geeignet sind. Es besteht hier natürlich auch die Möglichkeit der Kombination von Algorithmen, so könnte man über die Clusterbildung die potenziellen Kategorien einer Klassifizierung bestimmen. Gleichzeitig beginnt die Klassifizierung immer mit bekannten Zuordnungen. Wenn noch nie eine Mail als Spam markiert wurde, kann auch keine Klassifizierung von Spamnachrichten erfolgen.

Schritte der Klassifizierung

Abbildung 3.1 zeigt schematisch die einzelnen Schritte, die für eine Klassifizierung von Daten durchlaufen werden müssen. Als Eingangsgröße dient eine Reihe von Objekten, die den Gruppen bereits zugeordnet sind. Es existiert zu Beginn bereits eine ausreichende Menge an (manuell) klassifizierten Daten. Die Qualität der Klassifizierung steigt mit einer größeren Anzahl an aussagekräftigen Ausgangsdaten. Das Set der Startdaten wird in einen Trainings- und in einen kleineren Testdatenpool geteilt. Mit den Trainingsdaten wird die Vorschrift zur Klassifizierung ermittelt. Bei diesem Training wird das so genannte Modell erzeugt. Das Modell wird dann für das Testen verwendet, um mithilfe der Testdaten die Korrektheit des Trainingsergebnisses zu verifizieren. Das Training selbst nutzt dabei nur die Eingangsdaten ohne die Klassifizierungsinformation. Diese Information wird zum Abgleich der Testergebnisse verwendet. Ist das erzeugte Modell hinreichend korrekt, so kann es für den produktiven Einsatz genutzt werden.

Es ist hier im Allgemeinen eher unwahrscheinlich, dass das Modell 100 Prozent der Testdaten korrekt klassifiziert. Im produktiven Einsatz werden neue, nicht klassifizierte Elemente an das Modell gegeben und eingruppiert. Mit fortgeschrittenem Lebenszyklus und neuen Erkenntnissen in der Klassifizierung wird der Gesamtprozess wiederholt und ein neues, aktualisiertes Modell erzeugt. In der Realität wird man bereits für die initiale Bestimmung des Modells mehrere Iterationen des Prozesses durchlaufen müssen.

voigt_mahout_1.png

Abbildung 3.1: Schematische Darstellung der Klassifizierung

Wie kommt nun der Computer auf ein korrektes Modell, und welche Parameter der Eingangsdaten sollen eigentlich verwendet werden? Um diese Frage zu beantworten, ist noch etwas mehr Theorie notwendig. Tabelle 3.1 listet die Definition einiger Begriffe, die im Rahmen der Klassifizierung verwendet werden. Die Vorhersagevariablen (Predictor Variable) können dabei vier unterschiedliche Ausprägungen annehmen, die in Tabelle 3.2 dargestellt werden. Je nach Ausgangsszenario muss der entsprechende Typ gewählt werden. Die Typen haben gleichzeitig unterschiedliche Auswirkung auf die Performance der Klassifizierung, sodass es empfehlenswert ist, immer mit dem engsten Typraum zu arbeiten, das heißt, wenn man mit Categorical-Werten arbeiten kann, dann sollte man nicht Word- oder gar Text-like verwenden.

Begriff

Kurzbeschreibung

Feature

Bekannte Eigenschaft der Trainings- oder zu bewertenden Daten.

Variable

...

Neugierig geworden? Wir haben diese Angebote für dich:

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang