Kommentare 1

False Positive, na und? – Data Mining, Überwachungsstaat und der ganze Rest (4/4)

Can you dig it?

Can you dig it?

Ein Gastbeitrag von: Christoph Henkelmann (Firmenseite, Blog)
Redaktion: AP

Wie bereits angekündigt wollen wir uns im letzen Teil dieser Blogreihe der Frage widmen, unter welchen Voraussetzungen, mit welchen Werkzeugen und welcher Literatur man selber zum Data Miner avancieren kann. Oder anders formuliert: Wie man am Privatrechner auf den Spuren der Großkonzerne und Geheimdienste dieser Welt wandelt.

Für alle, die die bisherigen Posts verpasst haben: Hier noch mal die Links zu Teil 1 (Data-Mining 101, Data-Mining-Arten, Lernarten), Teil 2 (Hallo Wortvektor, hallo Spam!) und Teil 3 (Die 99%ige Sicherheit und der “auffällige” Bürger).

Teil 4: Wie werde ich Data Miner?

Um selber ein Data-Mining- und Machine-Learning-Projekt zu starten, sind zumindest Grundkenntnisse im Bereich Programmierung notwendig. Prinzipiell kann man jede Sprache benutzen, einige empfehlen sich allerdings besonders, weil es bereits effiziente Frameworks und Bibliotheken sowie viele Anwendungsbeispiele in der einschlägigen Fachliteratur gibt:

R

R ist eine Skriptsprache mit einem besonderen Fokus auf Statistik und Datenauswertung, was sie natürlich für Data Mining prädestiniert. Besonders geeignet ist R für Prototyping und für Einmalanalysen, bei denen die Geschwindigkeit nicht kritisch ist.

Python

Python ist eine gute Wahl für Natural Language Processing, da es hier viele praxiserprobte Bibliotheken gibt. Aber auch sonst ist Python empfehlenswert: Die Implementierung geht schnell von der Hand, man kann ordentlich experimentieren. Die Popularität der Sprache spiegelt sich auch in der Data-Mining-Fachliteratur wider (s.u.).

Java

Wer sein Projekt in Java konzipiert, wird belohnt mit einem guten Kompromiss aus Geschwindigkeit (hier gibt’s einen deutlichen Schub im Vergleich zu Skriptsprachen) und Komfort (mit Weka steht sofort eine breite Auswahl an Verfahren zum Experimentieren bereit). Außerdem ist mit Hadoop das klassische Big-Data-Framework in Java zuhause.

C/C++

Wenn es wirklich, wirklich schnell laufen muss, kommt man nicht an C/C++ vorbei. Inbesondere dann, wenn die Ausführung eines Algorithmus‘ in seiner nativen Umgebung obligatorisch ist. Gerade in C++ gibt es eine hervorragende Auswahl an Bibliotheken für diverse Verfahren, allerdings sollte man hier deutlich mehr Zeit für die Implementierung einplanen, auch als echter Crack.

Abschließender Tipp: Selbst wenn ein Projekt letztlich in C/CC++ realisiert werden soll, empfiehlt sich der Bau eines Prototypen in R, Python oder Java. Erst wenn dieser 100%ig zufriedenstellend läuft – man also genau weiß, wie man vorverarbeiten möchte und welches Verfahren am Ende zum Einsatz kommt – ist es sinnvoll, die C-Variante in Angriff zu nehmen.

Buchempfehlungen

Für Einsteiger

Machine Learning for Hackers. Ein sehr pragmatisches und gut zu lesendes ML-Buch. Hier werden alle Beispiele in R präsentiert. Enthält auch einen kleinen R-Einsteigerkurs.

R in a Nutshell.  Kein spezielles Data-Mining-Buch, aber ein hervorragender Einstieg in die Sprache R – und damit Türöffner für eine gigantische Zahl von statistischen Verfahren und fertig implementierten ML-Algorithmen.

Programming Collective Intelligence. Ein prima Einstieg in Data Mining & Machine Learning. Einfach und eingänglich geschrieben, gleichzeitig mit genug Tiefe, damit das Gelesene angewendet werden kann. Gut nachvollziehbare Beispiele in Python.

Data Mining: Practical Machine Learning Tools and Techniques. Auch hier ist alles gut verständlich, einsteigerfreundlich und nicht mathelastig. Alle Beispiele werden mit dem Java-ML-Framework Weka (s.o.) und Java-Code begleitet.

Für Fortgeschrittene & Profis

Natural Language Annotation for Machine Learning. Dieses Buch beschäftigt sich ausschließlich mit der Analyse von Text und ist in diesem Bereich ein absolutes Muss. Schwerpunkt sind weniger die eigentlichen Lernalgorithmen, sondern die Frage danach, wie man Daten vorbereitet und prozessiert – was noch einmal die Wichtigkeit der „Vorbereitungsphase“ unterstreicht. Natural Language Annotation for Machine Learning enthält keine Programmierbeispiele, dafür aber ein paar mathematische Grundlagen.

Natural Language Processing with Python. Ebenfalls ein Buch, dass sich auf die Analyse von Text beschränkt. Weniger speziell und akademisch als der o.g. Titel, geht eher in die Breite als in die Tiefe. Wie der Titel schon sagt wird alles in Python präsentiert.

Pattern Recognition and Machine Learning. Ein fantastisches, aber auch sehr anspruchsvolles Buch, das sowohl extrem viele Gebiete abdeckt, als auch enorm in die Tiefe geht. Auch hier gibt’s keine Programmierbeispiele – dafür wird die komplette Theorie in allen Details erklärt. Mathekenntnisse auf Grundstudiumsniveau (und teilweise darüber hinaus) sind zum Verständnis unbedingt erforderlich.

Also dann: Let’s go data mining – aber ohne die Parameter Moral und Ethik zu vergessen!

Sag's weiter:

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.