WEKA A Machine Learning Interface for Data Mining Frank Eibe, Mark Hall, Geoffrey Holmes, Richard Kirkby, Bernhard Pfahringer, Ian H. Witten Reinhard Klaus Losse Künstliche Intelligenz II WS 2009/2010 Leibniz Universität Hannover
Inhalt Einführung Haupt-GUIs Explorer, Knowledge Flow und Experimenter Arten der Methoden und Algorithmen Systemarchitektur Anwendungen Zusammenfassung 2
Einführung WEKA ist die Abkürzung für Waikato Environment for Knowledge Analysis in Java geschrieben bedient sich frei verfügbar unter der GNU Lizenz einer einzigen relationalen Tabelle aus einer Datei oder einer Datenbankanfrage 3
Einführung WEKA bietet Unterstützung für den gesamten Data- Mining-Prozess: enthält: Vorbereiten der Eingabedaten statistische Auswerten der Lernschemata Visualisierung Maschinenlernalgorithmen Datenvorverarbeitungsarbeitungstools Bedienung von WEKA: Kommandozeile, GUI 4
Explorer: Preprocess Laden von Daten aus einer Datei im CSV-Format ARFF-Format Extraktion von Daten aus einer SQL-Anfrage über JDBC Anwenden verschiedener Filter zur Datenvorverarbeitung 5
Explorer: Classify Anwendung von Klassifikations- und Regressionsalgorithmen auf die Daten Auswertung der dabei entstehenden Modelle numerisch über statistische Schätzung graphisch über die Visualisierung der Daten und die Überprüfung des Modells Laden und Speichern von Modellen 6
Explorer: Cluster Anwendung von Clustering-Algorithmen auf den Datensatz Visualisierung von Clustern Auswertung der Cluster anhand der statistischen Wahrscheinlichkeit der Daten 7
Weitere Fenster von Export Associate: Anwendung von Assoziationsregel- Algorithmen auf den Datensatz Select Attributes: Zugang zu verschiedenen Methoden, um die Nützlichkeiten von Attributen zu messen und um Attributuntermengen zu finden, die voraussagend in Bezug auf die Daten sind Visualize: Visualisierung der Daten einschließlich diverser Zoom- und Datenanzeigemöglichkeiten 8
Knowledge Flow Spezifikation von Datenströmen über die graphische Verbindung verschiedener Komponenten Datenquellen, Tools, Algorithmen (s. o.) stapelweise Verarbeitung von Daten Anwendung inkrementeller Algorithmen nützlich für sehr große Datensätze inkrementelle Verarbeitung von Filtern 9
Experimenter Automatisierung verschiedener Versuchsabläufe, um festzustellen, welcher Algorithmus am besten für ein Problem funktioniert Einstellung verschiedener Parameter Sammeln von Performancestatistiken Durchführen von Signifikanztests auf den Ergebnissen 10
Klassifikationsalgorithmen Bayes'sche Methoden, z. B. Naive Bayes Entscheidungsbaum-Lernalgorithmen, z. B. J48 regelbasierte Lernalgorithmen, z. B. JRip mehrere trennende Hyperebenen-Ansätze, z. B. Support-Vector-Maschinen Lazy-Learning-Methoden, z. B. IB1 Meta-Learning-Schemata zur Kombination von Instanzen eines oder mehrerer Algorithmen 11
Weitere Methoden und Algorithmen Regression, z. B. einfache lineare Regression Meta-Learning-Schemata für die Regression Clustering, z. B. KMeans Assoziationsregeln, z. B. Apriori Attributauswahl über Filter, z. B. Gain Ratio Suchmethoden, z. B. Vorwärtssuche 12
Filter 1. Unterteilung in supervised und unsupervised Supervised: sinnvoll im Vorhersagekontext Unsupervised: sinnvoll in allen Kontexten 2. Unterteilung in Attribut- und in Instanzfilter Attributfilter: arbeiten auf einem oder mehreren Attributen einer Instanz Instanzfilter: manipulieren Mengen von Instanzen 13
Filter Attributfilter, unsupervised: z. B. Hinzufügen eines Attributs Instanzfilter, unsupervised: z. B. Transformation zerstreuter Instanzen in nichtzerstreute und umgekehrt Attributfilter, supervised: z. B. Diskretisierung Instanzfilter, supervised: z. B. Erstellen einer Teilstichprobe von Instanzmengen, um verschiedene Klassenverteilungen zu erhalten 14
Systemarchitektur modulare, objektorientierte Architektur, um neue Klassifikatoren, Filter, Algorithmen oder neue Workbench-Komponenten leicht hinzufügen zu können je ein Package und eine abstrakte Klassen auf der obersten Ebene pro Algorithmen- oder Methodentyp Komponenten verlassen sich auf unterstützende Klassen und Interfaces im Package "core" 15
Anwendungen WEKA ursprünglich nur dazu entwickelt, um landwirtschaftliche Daten in Neuseeland zu verarbeiten Fähigkeit der Maschinenlernmethoden und Datenengineeringfähigkeiten so stark gewachsen, dass WEKA jetzt für alle Arten von Data-Mining-Anwendungen verwendet wird, z. B. Bioinformatik, Text-Mining 16
Zusammenfassung drei Hauptvorteile von WEKA Open-Source-Software sehr viele Algorithmen auf dem neusten Stand der Technik komplett in Java implementiert und auf fast jeder Plattform laufend, sogar auf PDAs Nachteile Beschränkung des Speicherplatz für die meisten Methoden Java-Implementation etwas langsamer als eine entsprechende in C/C++ 17