Data Mining

1.345 Aufrufe

Veröffentlicht am

0 Kommentare
0 Gefällt mir
Statistik
Notizen
  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!

Keine Downloads
Aufrufe
Aufrufe insgesamt
1.345
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
3
Aktionen
Geteilt
0
Downloads
15
Kommentare
0
Gefällt mir
0
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie
  • Quest: data mining projekt von IBM
  • Data Mining

    1. 1. Data Mining & Prediction Grundlegende Algorithmen für Klassifikation I Martin Held & Martin Langwisch
    2. 2. Gliederung <ul><li>Einführung </li></ul><ul><li>Entscheidungsbäume </li></ul><ul><ul><li>Konstruktion, Informationsmaß </li></ul></ul><ul><li>Instanzbasiertes Lernen </li></ul>
    3. 3. Classification & Prediction <ul><li>Beides wird benutzt, um aus gegebenen Daten ein Model zu gewinnen, um wichtige Datenklassen bzw. zukünftige Trends zu beschreiben. </li></ul><ul><ul><li>Classification – Vorhersage der Klasse oder des Attributwertes </li></ul></ul><ul><ul><li>Prediction – Vorhersage der Klasse, des Wertes oder Wertebereiches </li></ul></ul><ul><ul><li>keine eindeutige Definition beider Begriffe! </li></ul></ul><ul><li>Classification: Vorhersage diskreter Werte/ Bestimmung der Klassenwerte </li></ul><ul><li>Prediction: Vorhersage kontinuierlicher Werte/ Vorhersage der Klassenwerte </li></ul>
    4. 4. Beispiele <ul><li>Kundendatenbank eines Hardwarevertreibers </li></ul><ul><li>Classification: Werbung für die neuesten Rechner soll verteilt werden relativ teuer wenn alle Kunden beschickt werden, jedoch nur wenige kaufen </li></ul><ul><li> Welche (Gruppe von) Kunden werden die neuen Rechner kaufen? </li></ul><ul><li>Prediction: neues Geschäftsjahr wird geplant </li></ul><ul><li>Wieviel Geld werden die Kunden in welchen Bereichen ausgeben? </li></ul>
    5. 5. Datenaufbereitung <ul><li>Data cleaning: </li></ul><ul><ul><li>Reduzierung oder Löschen verrauschter Werte </li></ul></ul><ul><ul><li>Wie behandelt man fehlende Werte </li></ul></ul><ul><li>Relevance analysis: </li></ul><ul><ul><li>Herausfiltern der irrelevanten Attribute (wann wurde ein Rechner gekauft) </li></ul></ul><ul><ul><li>Komprimierung von redundanten Attributen </li></ul></ul><ul><li>Data transformation </li></ul><ul><ul><li>Verallgemeinern von Daten mithilfe von Konzepthierarchien (Gruppe Drucker statt spezieller Name, Peripheriegeräte statt Drucker, …) </li></ul></ul><ul><ul><li>Normalisieren von Daten auf einen bestimmten Wertebereich </li></ul></ul><ul><ul><li> verhindert Übergewichtung von Werten mit großem Wertebereich </li></ul></ul>
    6. 6. Wie funktioniert Classification? <ul><li>Lernen eines Models durch einen Classification-Algorithmus </li></ul><ul><li>Evaluierung des gelerntes Modells </li></ul><ul><li>Klassifizierung neuer Daten </li></ul>
    7. 7. Lernen eines Modells <ul><li>supervised Learning (überwachtes Lernen) </li></ul><ul><ul><li>Funktion aus Trainingsdaten gewinnen </li></ul></ul><ul><ul><li>jedes sample besteht aus Werten fü die Input-Attribute und Wert des vorherzusagenden Attributes </li></ul></ul><ul><ul><li>Funktion soll für ein beliebiges neues Objekt den Attributwert ausgeben </li></ul></ul><ul><li>Probleme: Overfitting (Erlernen von Eigenheiten der Trainingsdaten) </li></ul><ul><li>Beispiele: Entscheidungsbäume, Klassifikationsregeln, … </li></ul><ul><li>unsupervised Learning (nicht überwachtes Lernen) </li></ul><ul><ul><li>keine a priori-Ausgabewerte </li></ul></ul><ul><ul><li>Daten werden aufgrund ihrer Attributwerte in Gruppen eingeteilt </li></ul></ul><ul><ul><li>Probleme: Anzahl und Art der Gruppen ist unbekannt </li></ul></ul><ul><ul><li>Beispiele: k-means, hierarchical clustering, … </li></ul></ul>
    8. 8. Klassifikation mit Entscheidungsbäumen
    9. 9. Traingsdaten Ja Ausreichend Nein Mittel >40 4 Nein Ausgezeichnet Nein Mittel >40 14 Ja Ausreichend Ja Hoch 30-40 13 Ja Ausgezeichnet Nein Mittel 30-40 12 Ja Ausgezeichnet Ja Mittel <30 11 Ja Ausreichend Ja Mittel >40 10 Ja Ausreichend Ja Niedrig <30 9 Nein Ausreichend Nein Mittel <30 8 Ja Ausgezeichnet Ja Niedrig 30-40 7 Nein Ausgezeichnet Ja Niedrig >40 6 Ja Ausreichend Ja Niedrig >40 5 Ja Ausreichend Nein Hoch 30-40 3 Nein Ausgezeichnet Nein Hoch <30 2 Nein Ausreichend Nein Hoch <30 1 Kauft Computer Bonität Student Einkommen Alter # ??? Ausgezeichnet Ja Hoch 30-40 x
    10. 10. Klassifikation mit Entscheidungsbäumen ??? Ausgezeichnet Ja Hoch 30-40 x
    11. 11. Klassifikation mit Entscheidungsbäumen Alter Ein- kommen Student Bonität Ja Ja Nein Nein Nein Ja Ja Ja Ja Ja Ja Ja Nein Nein <30 >40 30 - 40 Ja Ja Ja Nein Ja Ja Ja Ja Nein Nein Ja Ja Nein Nein N M H Ja Ja Ja Ja Ja Ja Nein Ja Ja Ja Nein Nein Nein Nein Ja Nein Ja Ja Ja Nein Nein Nein Ja Ja Ja Ja Ja Ja Nein Nein +++ +
    12. 12. Alter Ja Ja Nein Nein Nein Ja Ja Ja Ja Ja Ja Ja Nein Nein <30 >40 30 - 40 Ja Ja Ja Nein Nein Nein N M H Ein- kommen Ja Ja Nein Nein Nein Ja Nein Student Ja Nein Ja Nein Nein +++ + Bonität
    13. 13. Alter Ja Ja Ja Nein Nein <30 >40 30 - 40 Ja Nein Student Nein Ja Ja Ja Nein Ja Ja Nein N M H Ein- kommen Nein Nein Ja Ja Ja +++ + Bonität Ja Ja Nein Ja Nein Ja Nein Student
    14. 14. Alter <30 >40 30 - 40 Ja Nein Student Nein +++ + Bonität Nein Ja Ja Ja Nein Ja Ja Nein N M H Ein- kommen Nein Nein Ja Ja Ja +++ + Bonität Ja Ja Nein Ja Nein Ja Nein Student Ja
    15. 15. Algorithmus (ID3) Generate_decision_tree( samples , attribute-list ) 01: create a Node N 02: if samples are all of the same class C then 03: return N as a leaf node labeled with class C 04: if attribute-list is empty then 05: return N as a leaf node with most common class in samples 06: select test-attribute from attribute-list with highest information gain 07: label node N with test-attribute 08: for each known value a i of test-attribute 09: grow a branch from node N for ai 10: let s i be the set of samples in samples where test-attribute = a i 11: if s i is empty then 12: attach a leaf labeled with most common class in samples 13: else 14: attach node returned by Generate_decision_tree( s i , attribute-list – test-attribute )
    16. 16. Weitere Algorithmen <ul><li>CHAID (1975 J.A. Hartigan) </li></ul><ul><ul><li>Ältester Algorithmus, Prepruning </li></ul></ul><ul><li>CART (1984 L. Briemen) </li></ul><ul><ul><li>Nur Binär-Bäume, Pruning von Subtrees unter Berücksichtigung eines unabh. Testsets </li></ul></ul><ul><li>ID3 (1986 Ross Quinlan) </li></ul><ul><ul><li>Top-down induction of decision trees (TDIDT) </li></ul></ul><ul><li>C4.5 (1993) und J4.8 (?) Ross Quinlan </li></ul><ul><ul><li>Verbesserung von ID3 </li></ul></ul><ul><ul><li>Nicht vorhandene Werte, kontinuierliche Variablen, Pruning, Entscheidungsregeln </li></ul></ul>
    17. 17. Information Gain / Entropy <ul><li>Welches Attribut trennt die Daten am besten? </li></ul><ul><li>Welches Attribut produziert die ‚saubersten‘ Kinderknoten? </li></ul><ul><li>Maß für Informationsgehalt / Entropie </li></ul><ul><li>Wenn nur ein Klassenwert H = 0 </li></ul><ul><li>Wenn alle Klassenwerte gleich wahrscheinlich größte Entropie </li></ul>W‘keit für p i
    18. 18. Entropie Beispiel Alter Ja Ja Nein Nein Nein Ja Ja Ja Ja Ja Ja Ja Nein Nein <30 >40 30 - 40 Entropie von Alter?
    19. 19. Information Gain Entropie von Alter? Entropie vor Berücksichtigung von Alter: Ja Ja Ja Ja Ja Ja Ja Ja Ja Nein Nein Nein Nein Nein Klassenaufteilung C = Informationsgewinn duch Alter:
    20. 20. Information Gain
    21. 21. Tree pruning <ul><li>Pruning – entfernen überflüssiger Knoten </li></ul><ul><li>wirkt Overfitting des Entscheidungsbaumes entgegen </li></ul><ul><li>Ziele: </li></ul><ul><ul><li>Verbesserung der Klassifikationseigenschaft auf unbekannten Daten </li></ul></ul><ul><ul><li>Schnellere Klassifikation </li></ul></ul><ul><li>Prepruning Postpruning </li></ul>
    22. 22. Prepruning <ul><li>Baumstruktur einfach halten </li></ul><ul><li>Knoten nicht splitten, wenn ‚Güte‘ eines Splits an diesem Knoten unter einen bestimmten Schwellenwert fällt </li></ul><ul><li>z.B. Information Gain zu klein ist </li></ul><ul><li>Problem: Wahl des richtiges Schwellenwertes </li></ul><ul><li>Schwellenwert zu Groß  zu stark vereinfacht </li></ul><ul><li>Schwellenwert zu Klein  zu wenig vereinfacht </li></ul>
    23. 23. Postpruning <ul><li>Entfernen von Knoten eines fertig gewachsenen Baumes </li></ul><ul><li>z.B. Cost complexity algorithm </li></ul><ul><li>Für jeden inneren Knoten des Baumes vergleiche </li></ul><ul><li>Fehlerrate wenn Subtree unter dem Knoten weggeschnitten </li></ul><ul><li>vs. </li></ul><ul><li>Fehlerrate wenn Subtree unter dem Knoten erhalten </li></ul><ul><li>Wenn das Pruning zu einer höheren Fehlerrate führt, bleibt der Subtree erhalten, sonst weg </li></ul><ul><li>Postpruning ist rechenaufwendiger als Prepruning, erzeugt aber zuverlässigere Bäume </li></ul>
    24. 24. 1-Rule (1R) <ul><li>„ Very simple classification rules perform well on most commonly used datasets“ (Holte 1993) </li></ul><ul><li>Einfache Regeln  hohe Genauigkeit </li></ul><ul><li>1 stufiger Entscheidungsbaum </li></ul><ul><li>Benutzte das Attribut mit der geringsten Fehlerrate </li></ul><ul><li>Nur wenige Prozentpunkte schlechter als als state-of-the-art Lernalgorithmen </li></ul>
    25. 25. WEKA EXAMPLE
    26. 26. Evaluierung des gelernten Modells <ul><li>prediction accuracy – Verhältnis der korrekten Vorhersagen zu allen Vorhersagen </li></ul><ul><li>speed - Zeit für Bau und Benutzung des Modells </li></ul><ul><li>robustness – Robustheit gegenüber fehlenden Werten, verrauschten Daten </li></ul><ul><li>scalability – Anwendbarkeit des Modells auf große Datenmengen </li></ul><ul><li>interpretability – erzeugt das Modell tieferes Verständnis oder neue Erkenntnisse? </li></ul><ul><li>WIE? </li></ul><ul><li>Aufteilen der Trainingsdaten in trainings set und test set </li></ul><ul><li>Lernen mit Trainingsset, danach Vorhersage der Werte des Testsets  nur möglich bei großer Traingsdatenmenge </li></ul><ul><li>bei geringer Trainingsdatenmenge: k-fold cross validation </li></ul>
    27. 27. Klassifikationsregeln aus Entscheidungsbäumen Sinn: Klassifikationsregeln sind intuitiver als Entscheidungsbäume Aus jedem Weg, den es im Entscheidungsbaum gibt, wird eine Regel erstellt, wobei die Knoten durch ‚UND‘ ersetzt werden. Ein Blatt wird durch ‚THEN‘ + Label ersetzt. IF (ALTER < 30) AND (STUDENT = JA) THEN JA IF (ALTER < 30) AND (STUDENT = NEIN) THEN NEIN IF (30 ≤ ALTER ≤ 40) THEN JA IF (ALTER > 40) AND (BONITÄT = +++) THEN NEIN IF (ALTER > 40) AND (BONITÄT = +) THEN JA +++ + Bonität Alter <30 >40 30 - 40 Ja Nein Student Ja Ja Nein Ja Nein
    28. 28. Verbesserungen von Entscheidungsbäumen <ul><li>Decision Tree Induction: für jeden Wert eines Attributes neue </li></ul><ul><li>Kante </li></ul><ul><li>Problem: viele Attributwerte  Fragmentierung der Daten  statistisch nicht signifikante Teilmengen </li></ul><ul><li>Lösung: Gruppierung von Attributwerten, Binärbäume </li></ul><ul><li>Binärbäume: Auftrennung nur nach ‚besten‘ Attributwert andere Attributwerte können im Unterbaum wieder auftreten (dort bessere Auftrennung) </li></ul><ul><li>information gain bevorzugt Attribute mit vielen Werten </li></ul><ul><li> Einführung anderer Maße </li></ul><ul><ul><li>gain ratio: Einbeziehung der Fragmentierung der Attribute </li></ul></ul><ul><ul><li>Chi square contigency table statistic, gini index, G-statistic </li></ul></ul><ul><li>Incremental versions – restructure decision trees instead of building new ones </li></ul>
    29. 29. Skalierbarkeit von Entscheidungsbäumen <ul><li>Viele Algorithmen gehen von Datenmengen aus, die im Speicher </li></ul><ul><li>verbleiben können. </li></ul><ul><li>trifft auf reale Daten nicht zu (Wal Mart) </li></ul><ul><li>Swapping macht Algorithmen unbrauchbar </li></ul><ul><li>Lösungen: </li></ul><ul><li>Diskretisierung der Werte, Erstellung der Untermengen bei jeder Aufteilung (weniger Daten im Speicher) </li></ul><ul><li>Teilen der Daten in Blöcke, die in den Speicher passen; Bau vieler subset-decision trees; finaler decision tree enthält alle subset-decision trees </li></ul><ul><li>neuere Algorithmen sortieren die Daten auf der Platte und benutzen </li></ul><ul><li>neue Datenstrukturen, um das Swapping zu vermindern (Teilung der </li></ul><ul><li>Daten nach Attributen, nicht nach Datentupeln) </li></ul><ul><li>SLIQ, SPRINT </li></ul>
    30. 30. SLIQ (supervised Learning in Quest) <ul><li>nutzt attribute lists (auf Platte) und </li></ul><ul><li>class list (im Speicher) </li></ul><ul><li>alle Listen durch den rid (record identifier) verbunden </li></ul><ul><li>rid identifiziert Datentupel </li></ul><ul><li> bei jeder Bewertung wird nur eine attribute list in den Speicher genommen </li></ul>
    31. 31. <ul><li>|Class list| = # Datentupel </li></ul><ul><li>wenn # Datentupel größer als Speicher  SLIQ wird langsam </li></ul>
    32. 32. SPRINT <ul><li>benutzt attribute lists, die sowohl rid, als auch class identifier tragen </li></ul><ul><li>bei Aufteilung der Listen wird hash-table genutzt  kein neues Sortieren </li></ul><ul><li>SPRINT hat keine Speicherbeschränkungen mehr, benötigt jedoch eine hash table beim Aufteilen der Listen, was bei großen Traingsmengen teuer werden kann </li></ul>
    33. 33. Integration von data warehousing Techniken <ul><li>Attribute-oriented indution (AOI) Konzepthierarchien werden benutzt, um low level-Daten durch higher level-Daten zu ersetzten: statt des Einkommens wird in Gruppen reich, mittel, arm eingeteilt </li></ul><ul><li>solche Daten werden im multidimensionalen Daten-Würfel zusammen- gefaßt </li></ul><ul><li>erlaubt data mining auf verschiedenen Abstraktionsebenen </li></ul>
    34. 34. Instanzen-basiertes Lernen: K-nearest neighbours <ul><li>Daten werden durch Ähnlichkeit zu bekannten Daten klassifiziert: </li></ul><ul><li>Jede Instanz wird als Punkt im n-dimensionalen Raum betrachtet. </li></ul><ul><li>Klassifizierung einer Instanz durch die k nächsten Instanzen im Raum. </li></ul><ul><li>Abstandsmaß: </li></ul><ul><li>höhere Potenzen erhöhen den Einfluß großer Unterschiede, meist ist der euklidischer Abstand das günstigste Maß </li></ul><ul><li>Vorraussetzung: Abstand zwischen Attributwerten ist meßbar </li></ul><ul><ul><li>bei nicht-geordneten Werten (nominal) ist der Abstand 0, wenn sie gleich sind, und 1 sonst </li></ul></ul><ul><ul><li>Werte werden auf 1 normalisiert, um ungewollte Gewichtung zu vermeiden </li></ul></ul>
    35. 35. K-nearest neighbours: Beispiel
    36. 36. K-nearest neighbours <ul><li>Classification: </li></ul><ul><ul><li>durch Mehrheitsentscheidung </li></ul></ul><ul><ul><li>prozentuale Classification </li></ul></ul><ul><li>Probleme: </li></ul><ul><ul><li>sehr große Datenmenge,  sehr großer Berechnungsaufwand </li></ul></ul><ul><ul><li>je mehr Dimensionen desto höher der Aufwand </li></ul></ul><ul><ul><li>sehr kleines k  Aussage statistisch nicht relevant </li></ul></ul><ul><ul><li>relativ großes k ebenfalls (wenn k ~ |Daten|, bzw. k >> |Klassenmenge|) </li></ul></ul>
    37. 37. Zusammenfassung <ul><li>Classification/Prediction: Zuordnung/Vorhersage von Klassen unter Berücksichtigung von Trainingsdaten </li></ul><ul><li>Entscheidungsbäume: </li></ul><ul><ul><li>Einfache Klassifikationsmethode </li></ul></ul><ul><ul><li>Einfache Bäumen können gute Ergebnisse erzielen (1 Rule) </li></ul></ul><ul><ul><li>Overfitting-Gefahr durch Pruning verringert </li></ul></ul><ul><li>Instanzen-basiertes Lernen </li></ul><ul><ul><li>Classification/ Prediction durch Ähnlichkeit zu anderen Instanzen </li></ul></ul><ul><ul><li>Abhängig von Distanzmaß </li></ul></ul><ul><ul><li>unpraktisch bei großen Datenmenge und/oder hochdimensionalen Daten </li></ul></ul><ul><li>Algorithmen sind datenabhängig  Data cleaning, Relevance analysis, Data transformation sollten durchgeführt werden </li></ul>
    38. 38. Quellen <ul><li>Ian H. Witten, Elbe Frank: Data Mining. Morgan Kaufmann Publishers, San Francisco 1999 (4.1, 4.3, 4.7) </li></ul><ul><li>Jiawei Han, Micheline Kamber: Data Mining: Concepts and Techniques. Morgan Kaufmann, 2001 (7.1, 7.2, 7.3, 7.7.1) </li></ul><ul><li>Weka 3.4 Software, http:// www.cs.waikato.ac.nz/ml/weka / </li></ul><ul><li>Wikipedia, http://www.wikipedia.org </li></ul>

    ×