Your SlideShare is downloading. ×
0
Data Mining
Data Mining
Data Mining
Data Mining
Data Mining
Data Mining
Data Mining
Data Mining
Data Mining
Data Mining
Data Mining
Data Mining
Data Mining
Data Mining
Data Mining
Data Mining
Data Mining
Data Mining
Data Mining
Data Mining
Data Mining
Data Mining
Data Mining
Data Mining
Data Mining
Data Mining
Data Mining
Data Mining
Data Mining
Data Mining
Data Mining
Data Mining
Data Mining
Data Mining
Data Mining
Data Mining
Data Mining
Data Mining
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Data Mining

632

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
632
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
9
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide
  • Quest: data mining projekt von IBM
  • Transcript

    • 1. Data Mining & Prediction Grundlegende Algorithmen für Klassifikation I Martin Held & Martin Langwisch
    • 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. 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. 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. 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. 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. 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. Klassifikation mit Entscheidungsbäumen
    • 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. Klassifikation mit Entscheidungsbäumen ??? Ausgezeichnet Ja Hoch 30-40 x
    • 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. 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. 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. 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. 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. 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. 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. 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. 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. Information Gain
    • 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. 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. 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. 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. WEKA EXAMPLE
    • 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. 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. 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. 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. 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. <ul><li>|Class list| = # Datentupel </li></ul><ul><li>wenn # Datentupel größer als Speicher  SLIQ wird langsam </li></ul>
    • 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. 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. 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. K-nearest neighbours: Beispiel
    • 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. 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. 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>

    ×