Emergentes Wissen
Wer sein Matheabitur bestanden und dabei eingesehen hat, dass er aus mathematischer Sicht seinen persönlichen Zenit wohl erreicht hat, und sich daher im Anschluss gegen das Mathe- und für ein Informatik- oder vielleicht sogar ein Literaturwissenschafts-Studium entschied… dessen Interesse an Data Mining – und insbesondere an der Spielart, die sich mit den Benutzerdaten aus dem Internet beschäftigt – aber gross ist, und der die Grundlagen dahinter zumindest erahnen willl …
puh …
also Allen, auf die diese Eigenschaften zutreffen, seien die folgenden Bücher und Tools empfohlen:
Kollektive Intelligenz, von Tony Segaran, erschienen bei O’Reilly. Kein schöner Titel, aber ein toller Überblick, über eine Vielzahl von Methoden, wie emergentes Wissen aus User-Daten ermitteln werden kann. Der Autor behandelt Empfehlungsengines (”Wer dieses Produkt gekauft hat, hat auch folgende gekauft”), Optimierungsstrategien (”Welcher Handy-Tarife ist für mich der richtige”), automatische Klassifizierung, Entscheidungsbäume und eine Vielzahl weiterer Techniken. Zur Volltextsuche gibt es auch ein Kapitel. In dem Bereich kenne ich mich selbst ganz gut aus und das Kapitel fand ich (vielleicht deshalb) eher schwach. Wer sich dezidiert für Suche interessiert, sollte sich besser mit den Schriften aus dem Lucene-Umfeld auseinander setzen. Aber die anderen, die Data-Mining-lastigeren, Kapitel fand ich sehr erhellend und inspirierend.
Alle Techniken werden in Python als lauffähige Programme entwickelt. Die Programmierung ist einfach gehalten und leicht nachvollziehbar, so dass man den Code auch leicht in der Sprache seiner Wahl implementieren kann (ich habe es genutzt, um meine Groovy-Expertise zu stärken).
Ein weiterer schöner Aspekt ist, dass der Autor über das Buch verstreut eine Vielzahl von WebAPIs erwähnt, auch unbekanntere, die sich für Forschungszwecke hervorragend nutzen lassen.
Der zweite Titel ist technischer. Das Buch heisst Principles of Data Mining, von Max Bramer, erschienen bei Springer. Der Titel behandelt die gleichen Techniken wie “Kollektive Intelligenz”, geht dabei aber stärker ins (komplizierte) Detail und hat daher gar nicht die “Das ist ja toll. Ich leg’ gleich los”-Mentalität des O’Reily-Buches. Aber wenn man ersteres liest und während des Lesens gleich loslegt und bei den ersten individuellen Abweichungen merkt, dass manches doch sehr verkürzt dargestellt wird, dann hilft häufig ein Blick in “Principles of Data Mining”.
Die beiden Bücher sind ein gutes Gespann.
Das dritte worauf ich hinweisen will, ist ein Subprojekt von “Lucene” mit Namen Mahout, das sich zum Ziel gesetzt hat, Machine Learning-Algorithmen (und darunter fallen die in den beiden Büchern vorgestellten Methoden) effizient in Java zum implementieren. Dazu nutzt es die ebenfalls im Lucene-Projekt entwickelte Hadoop-Bibliothek, die verteiltes Prozessieren großer Datenmengen ermöglicht.
Mahout ist gerade aus dem Inkubator entlassen und als vollwertiges Lucene-Subprojekt ins Boot geholt worden und es gibt das erste Release 0.1. Das ist natürlich eine noch sehr frühe Version, aber zum Einen ist in Mahout anscheinend ein älteres Framework namens Taste aufgegangen, zum anderen dauerte der Inkubator-Status auch ein gutes Jahr und zum dritten entsteht im Lucene-Projekt in der Regel exzellente Software. ItemBased- und UserBaseRecommendations scheinen zumindest in Mahout schon sehr gut zu funktionieren und ich bin gespannt ob wir Mahout nicht bald schon produktiv einsetzen können.
Tags: Empfehlungen, Java, Lucene, machine learning, Mahoutgeschrieben am 06.06.2009 um 17:06 in Netzgedanken von cf · RSS 2.0 feed.
Schreibe ein Kommentar oder setze einen Trackback auf deine Seite.