Fakultät für Wirtschaftswissenschaften Projektarbeit Datenvorverarbeitung Modul: Business Intelligence / Wissensextraktion / Data Mining Studiengänge Master Digitale Logistik und Management und Master Multimediatechnik Sommersemester 2013 eingereicht von: Karim Eddarif Christian Meyerhöfer Matrikelnummern: 105573 114068 Gutachter: Prof. Dr. Jürgen Cleve Prof. Dr. Uwe Lämmel Wismar, den 19. Juni 2013 1 Inhaltsverzeichnis I. Abbildungsverzeichnis ...................................................................................................... III II. Tabellenverzeichnis........................................................................................................... IV III. Abkürzungsverzeichnis ...................................................................................................... V 1. Einführung in die Thematik ................................................................................................ 6 2. Grundlagen der Datenvorverarbeitung ................................................................................ 7 3. Datenvorverarbeitung anhand von Beispielen mit KNIME ................................................ 9 3.1 Datenreduktion ............................................................................................................ 9 3.2 Datentransformation .................................................................................................. 14 3.3 Datensäuberung ......................................................................................................... 18 4. Schlussfolgerung ............................................................................................................... 23 5. Literaturverzeichnis........................................................................................................... 26 6. Anhang .............................................................................................................................. 27 II I. Abbildungsverzeichnis Seite Abbildung 1: Die vier wichtigsten Datenvorverarbeitungsverfahren .................................. 7 Abbildung 2: Analyse von Abhängigkeiten mithilfe vom Correlation Filter in KNIME .. 10 Abbildung 3: Knoten Sorter zur Darstellung der Zusammenhänge ................................... 11 Abbildung 4: Darstellung des Scatter Plots ....................................................................... 11 Abbildung 5: Betrachtung von Ausreißern ........................................................................ 12 Abbildung 6: Statistiken eines Datensatzes ....................................................................... 13 Abbildung 7: Darstellung der Binning-Verfahren in KNIME ........................................... 15 Abbildung 8: Unbearbeitete Altersstruktur ........................................................................ 15 Abbildung 9: Auswahlmöglichkeiten des Auto-Binners ................................................... 16 Abbildung 10: Pie Chart nach Auto-Binning ....................................................................... 16 Abbildung 11: Java Snippet Node Konfiguration ................................................................ 17 Abbildung 12: Java Snippet Workflow ................................................................................ 18 Abbildung 13: Missing Value Konfiguration ...................................................................... 19 Abbildung 14: Experimente zur Behandlung fehlender Werte ............................................ 21 III II. Tabellenverzeichnis Seite Tabelle 1: Ergebnis der Experimente ............................................................................ 21 IV III. Abkürzungsverzeichnis Col column dt. deutsch ID Identifikator KNIME Konstanz Information Miner N No Y Yes V 1. Einführung in die Thematik Die Projektarbeit im Modul Wissensextraktion / Data Mining im Sommersemester 2013 an der Hochschule Wismar findet für Karim Eddarif im Master-Studiengang Multimediatechnik und die Übertragung des Moduls auf das Modul Business Intelligence für Christian Meyerhöfer im Master-Studiengang Digitale Logistik und Management statt. Das Thema Datenvorverarbeitung wurde ausgewählt, da das ein sehr interessantes Thema im Bereich des Data Minings darstellt und bei Auswertungen von Datenbanken in der Regel immer angewandt werden muss. Sowohl im Bereich der Multimediatechnik als auch im Logistik-Bereich ist die Datenvorverarbeitung von Bedeutung und wird auch mit der noch immer steigenden Bedeutung von Datenbanken und der Wissensextraktion weiter an Bedeutung gewinnen. Das Ziel dieser Projektarbeit ist es einerseits die Datenvorverarbeitung mit ihren Bestandteilen und unterschiedlichen Verfahren vorzustellen und andererseits die Anwendung anhand von im Rahmen des Projektes bereitgestellten Datenbanken beispielsweise darzustellen. Die Datenvorverarbeitung soll zur Einführung anhand unterschiedlicher Datenbanken zusammen als Team untersucht werden und aufgrund von unterschiedlichen Voraussetzungen innerhalb der Datenbanken auf die Tauglichkeit einer sinnvollen Datenvorverarbeitung geprüft werden. Anschließend sollen mit diesen Datenbanken, mit denen gute Datenvorverarbeitungsbeispiele mit den jeweiligen Datenvorverarbeitungsschritten durchgeführt werden können, mithilfe von KNIME veranschaulicht werden. Zu diesem Zweck hat sich das Team mindestens einmal pro Woche zusammengefunden. Nach dem ersten Treffen und Kennenlernen wurde sich jeweils eigenständig in die Thematik eingearbeitet und es wurden unterschiedliche Beispiele durchgeführt. Mithilfe der manuell ausgesuchten Datensätze, wurden dann die Datensätze in die Software KNIME eingefügt, mit denen dann die Datenvorverarbeitung durchgeführt und veranschaulicht werden konnte. 6 2. Grundlagen der Datenvorverarbeitung Die Datenvorverarbeitung stellt einen sehr wichtigen Schritt in der Untersuchung und Beurteilung von Datenbanken im Rahmen des Data Minings dar. Oftmals sind Datensätze, die auf Umfragen und Analysen beruhen, sehr groß, wobei viele Attribute und Aspekte vorhanden sind, die es alle zu beachten und zu untersuchen gilt. Mithilfe der Datenvorverarbeitung können diese Datensätze vereinfacht werden und somit besser untersuchbar gemacht werden. Der Zweck und das Ziel der Datenvorverarbeitung liegt demnach in der Reduktion der Eingangsgrößen auf ein Mindestmaß.1 Aber nicht nur die Reduktion spielt dabei eine Rolle, sondern auch die Veranschaulichung der Datensätze. Zum Einsatz bei der Datenvorverarbeitung kommen vier verschiedene Verfahren (siehe Abbildung 1), die dazu dienen sollen die Datenbänke vereinfacht und sinnvoller darstellen zu können. Zum ersten gibt es die Datenselektion, in der die Datensätze ausgewählt werden, und gegebenenfalls auch zusammengeführt werden, die untersucht werden sollen. Die Datenreduktion, die Datensäuberung und die Datentransformation bieten danach weitere Möglichkeiten die Datensätze zu bearbeiten. Auch innerhalb dieser Datenvorverarbeitungsverfahren können unterschiedliche Verfahren und Varianten angewendet werden, um die Datensätze verbessern zu können. Durch diese Bearbeitung mit den unterschiedlichsten Verfahren können die Datensätze besser be- und verarbeitet werden. Abb. 1: Die vier wichtigsten Datenvorverarbeitungsverfahren Die Software KNIME hilft im Rahmen dieser Datenvorverarbeitungsverfahren diverse Datensätze und –banken zu verbessern und diese zu bearbeiten. Was im Einzelnen mit der Software KNIME im Rahmen der Datenvorverarbeitung bezüglich der jeweiligen Verfahren 1 Vgl. Reuter, M., 2004, Abruf: 07.06.2013 7 durchgeführt werden kann und wurde, wird in den einzelnen Abschnitten noch näher erläutert. Wichtig anzumerken ist zudem, dass unterschiedliche Datenarten und Datensätze auch unterschiedliche Datenvorverarbeitungsverfahren erfordern, wobei von Fall zu Fall unterschieden und experimentiert werden muss, um ein sinnvolles Verfahren zur Verbesserung des Datensatzes auswählen zu können. Das Vorgehen beim Data Mining sieht wie folgt aus: Als erstes muss auf die Daten aus der ausgewählten Datenbank zugegriffen werden, woraufhin die Daten betrachtet werden müssen. Mithilfe dieser Betrachtung, kann man erste Schritte zur Verbesserung der Datenqualität einleiten und die Anreicherung der Daten vorantreiben. Dadurch hat man nun auch einen Einblick in die Daten gewonnen und kann diese identifizieren und weiß, was die einzelnen Daten aussagen und ob sie für die weitere Betrachtung von Bedeutung sind. Durch diese Gewinnung von Erfahrungswerten über einen Datensatz können eventuell Dimensionen gestrichen werden, wodurch eine Dimensionsreduktion vollzogen werden kann. Durch weitere Stichproben können nun auch die Verteilungen der Daten geprüft werden und die Auswertung des Datensatzes kann vorangetrieben werden.2 Man sieht also an der Vorgehensweise beim Data Mining, dass die Datenvorverarbeitung eine entscheidende Rolle in der Auswertung und Bearbeitung von Datensätzen einnimmt. In der Regel gilt, dass ca. 80 % der Arbeit, die in die Auswertung von Datensätzen gesteckt wird, der Datenvorverarbeitung gewidmet werden müssen, um gute Ergebnisse zu erhalten.3 Nach dieser kurzen Einführung in die Bedeutung und der Zweckmäßigkeit der Datenvorverarbeitung, sollen nun verschiedene Experimente mit unterschiedlichen Datensätzen beispielhaft durchgeführt werden, um die unterschiedlichen Verfahren der Datenvorverarbeitung veranschaulichen zu können. Des Weiteren wird dadurch gezeigt, was die Bearbeitung für Folgen hat und wo die unterschiedlichen Verfahren sinnvoll eingesetzt werden können. 2 3 Vgl. Wert, O., 2004, S. 4, Abruf: 07.06.2013 Vgl. Cleve, J., 2011, S. 60 8 3. Datenvorverarbeitung anhand von Beispielen mit KNIME Beim Hauptteil dieser Projektarbeit sollen die einzelnen Datenvorverarbeitungsverfahren dargestellt werden. Zur Bearbeitung der Datensätze wird die Software KNIME eingesetzt, die speziell zum Zweck der Datenbearbeitung und –auswertung konzipiert wurde. Wichtig zu erwähnen ist, dass das Feld der Datenvorverarbeitung unendlich groß ist und bei jedem Datensatz unterschiedliche Voraussetzungen vorhanden sind. Im Rahmen dieser Fallstudie sind daher die in der Bearbeitungszeit möglichen Beispieldurchführungen aufgezeigt. Selbstverständlich gibt es wesentlich mehr Möglichkeiten die Datenvorverarbeitung an noch mehr Beispielen darzustellen. Jedoch ist es nahezu unmöglich alle Verfahren an den verschiedensten Datensätzen exemplarisch darzustellen. Die im Folgenden gezeigten Datensäuberungs-, Datenreduktions- und Datentransformationsverfahren bilden daher nur einige Beispiele dieser Verfahren dar, wodurch Anwendungsbeispiele aufgezeigt werden sollen, die auch Anwendungsempfehlungen bei bestimmten Voraussetzungen der Datensätze aufzeigen sollen. Die Kernfragen sind dabei, welchen Einfluss die unterschiedlichen Datenvorverarbeitungsverfahren auf die Datensätze ausüben und wie man mit welchen Daten umgeht. Experimente mit verschiedenen Datensätzen dienen als erster Ansatz, um Anwendungsempfehlungen zu geben, wobei die zuvor genannte Software KNIME zur Durchführung der Experimente diente. 3.1 Datenreduktion Bei der Datenreduktion geht es hauptsächlich um die Minimierung der Dimensionen eines Datensatzes. Deshalb wird bei der Datenreduktion häufig auch von Dimensionsreduktion gesprochen. Das Ziel ist es demnach die Zahl der relevanten Dimensionen zu reduzieren, was entweder durch die Streichung oder die gezielte Auswahl von bestimmten Attributen erfolgt. In der Praxis kommt es zu einer Kombination aus beidem. Es kommt demnach sowohl zur schrittweisen Vorwärtsauswahl als auch zur schrittweisen Rückwärtseliminierung.4 Im ersten Beispiel werden nun bestimmte Attribute gestrichen. Eingesetzt wird in KNIME dabei der „Correlation Filter“. Mit ihm werden die Zusammenhänge zweier Spalten zueinander dargestellt. Die Darstellung des Workflows in KNIME ist in Abbildung 2 zu sehen. 4 Vgl. Cleve, J., 2011, S. 62 9 Abb. 2: Analyse von Abhängigkeiten mithilfe vom Correlation Filter in KNIME Der Datensatz, der hier betrachtet wird, ist der vom Data Mining Cup 2001. Die Frage ist, ob ein Versandhändler von Büromaterialien Werbemails an seine Kunden versenden soll und ob die in der Datenbank vorhanden Kunden auch wirklich noch Kunden sind, um keine Werbemails an Nicht-Kunden zu versenden, was unnötige Kosten hervorrufen würde. Aufgeführt sind hier über 18.000 Zeilen, also über 18.000 Kunden. 34 Spalten sind zudem vorhanden, es sind also sehr viele Daten in der Datenbank existent. Die Reduzierung von überflüssigen Attributen wäre demnach sehr sinnvoll. Im Falle der Korrelation können demnach Spalten eliminiert werden, die einen hohen Zusammenhang zueinander haben, wodurch eine Spalte die gleiche Aussage wie die andere Spalte hat. Ist dies der Fall, kann eine der beiden Spalten gelöscht werden. Eine hohe Korrelation ist der Indikator für einen hohen Zusammenhang der Spalten. Die Korrelationen werden angezeigt von -1 bis +1. Bei dem Ergebnis -1 besteht gar kein Zusammenhang zwischen den betrachteten Spalten, bei +1 ein 100 prozentiger Zusammenhang. In diesem Fall fallen zwei Spalten auf, die eine relativ hohe Korrelation zueinander besitzen. Die erste Spalte sind die Kunden-IDs, also die Kundenummern des Versandhändlers. Die zweite Spalte zeigt den Jahresstart, in dem ein Unternehmen oder eine Person Kunde des Versandhändlers wurde. Nun kann man sich schon durch logisches Denken vorstellen, dass die Kunden-IDs laufend vergeben werden, d.h. nacheinander je nach dem Datum, an dem jemand 10 Kunde wurde. So lassen sich die Korrelationen direkt und logisch nachvollziehen. Auch durch weitere Prüfungen, können die Zusammenhänge geprüft werden, was durch den Knoten „Sorter“ gemacht werden kann. Einerseits kann nach den Kunden-IDs sortiert werden, wodurch die laufenden Kunden-IDs angezeigt werden und man den Vergleich direkt in der zweiten Spalte des Jahresstartes sehen kann (siehe Abbildung 3). Abb. 3: Knoten Sorter zur Darstellung der Zusammenhänge Andererseits kann durch die vorübergehende Eliminierung aller nicht betrachteten Spalten genauer auf die Attribute Kunden-IDs und Jahresstart eingegangen werden. Durch das „Scatter Plot“ (dt. Streudiagramm) zeigt KNIME die Verteilung der Attribute der beiden Spalten in Abhängigkeit voneinander an. Durch diese Funktion kann man direkt und auf einfache Weise Ausreißer und Besonderheiten erkennen und weitere Schritte einleiten. In Abbildung 4 ist das Ergebnis des Scatter Plots dargestellt, was eine weitere Auffälligkeit aufdeckt. Es gibt eine Reihe an Ausreißern, die alle das gleiche Attribut des Jahresstartes aufweisen. Diese Ausreißer sollen alle im Jahr 1900 neue Kunden des Versandhändlers geworden sein. Besonders die Eigenschaft, dass zwischen dem nächsten Jahresstart eines Kunden über 60 Jahre liegen, Abb. 4: Darstellung des Scatter Plots 11 macht eine weitere Betrachtung an dieser Stelle unumgäglich. Da es in dem Datensatz hauptsächlich darum geht, ob jemand noch Kunde ist oder nicht, besteht hier die Vermutung, dass es sich um Kunden handelt, die nicht mehr existieren. Da der Versandhändler möglicherweise auch noch gar nicht seit dem Jahr 1900 existiert, kann diese Annahme als bestätigt angesehen werden. Um herauszufinden, um welche Attribute es sich bei diesen Ausreißern genau handelt, kann man nun auch die Spalte Jahresstart sortieren. Bei der Betrachtung des Resultates offenbart sich der Abstand zwischen den Ausreißern und den darauf folgenden Attributen. Zwischen ihnen liegen 65 Jahre, die Anzahl der Ausreißer beträgt 54. Diese 54 Zeilen können nun entfernt werden, wodurch sich die Anzahl der Attribute um 54*33 (Zeilen mal Anzahl Spalten) reduziert. Insgesamt werden demnach 1782 Attribute entfernt. Neben dieser Reduzierung darf man die Hauptreduzierung der Spalte Jahresstart Abb. 5: Betrachtung von Ausreißern oder der Spalte ID, die durch Korrelation nahezu die gleiche Aussage aufweisen, nicht vergessen. Da für den Versandhändler die Kunden-ID größere Bedeutung haben dürfte, wird nun die Spalte Jahresstart gelöscht, die für die weitere Bearbeitung des Datensatzes keine Rolle mehr spielt und auch vorher schon nicht gespielt hat. Dadurch konnten wiederum über 18.000 Attribute gestrichen werden, die während der weiteren Betrachtung und für die Auswertung des Datensatzes nicht mehr vorhanden sind und die Bearbeitung so vereinfachen. Insgesamt konnten mithilfe des Correlation Filter knapp 20.000 für die Auswertung des Datensatzes überflüssigen Attribute gelöscht werden, was prozentual gesehen erst einmal ein relativ kleinen Anteil ausmacht, allerdings hilft jede Vereinfachung, um die Komplexität eines so großen Datensatzes verringern zu können. Eine weitere Möglichkeit der Eliminierung und Reduzierung in Datensätzen ist das einfache Betrachten von Spalten und Zeilen, in denen ein sehr großer prozentualer Anteil von fehlenden Werten vorhanden ist. In Abbildung 6 ist so ein Beispiel dargestellt. 12 Abb. 6: Statistiken eines Datensatzes In dem betrachteten Beispiel geht es für ein Unternehmen darum, ob ein neu ausgehandelter Arbeitsvertrag mit einem Arbeitnehmern als gut oder schlecht bewertet werden kann. Der Datensatz ist nicht besonders groß und besitzt nur 57 Zeilen bei 16 Spalten. Oftmals ist der erste Schritt der Datenvorverarbeitung eine erste Betrachtung des Datensatzes, wozu der Knoten „Statistics“ sehr sinnvoll ist. Hier werden alle wichtigen Eigenschaften der Spalten angezeigt. Dadurch erfährt man unter anderem auch die Anzahl von fehlenden Werten in einer Spalte. Zur Einordnung wird darunter die Gesamtanzahl an Attributen in einer Spalte angezeigt. So kann man direkt erkennen, falls in einer Spalte eine auffällig große Anzahl an fehlenden Attributen vorhanden ist. In dem hier betrachteten Beispiel, fallen vor allem die Spalten „Col3“ und „Col7“ auf. Häufig kann man daraus schließen, dass diese Spalte durch die geringe Anzahl an Attributen nun eliminiert werden kann, da sie kaum Aussagewerte besitzt. So fehlen in Col3 etwa 74 % aller Attribute und in Col7 sogar etwa 84 %. Diese sehr hohen prozentualen fehlenden Attribute lassen nun im ersten Moment auf unwichtige Spalten schließen. Doch um sicher zu gehen, dass man keine relevanten Daten löscht, sollte man erst noch die Bedeutung und die Aussage der Attribute in den jeweiligen Spalten erforschen und kennenlernen. Es kann eventuell sein, dass die Attribute doch wichtig für die Auswertung sind, obwohl nur wenige pro Spalte vorhanden sind. In der Spalte Col3 sind die Lohnerhöhungen der Mitarbeiter des Unternehmens nach dem dritten Jahr der Vertragsunterschrift aufgeführt. In Col7 wiederum sind die Bereitschaftsbezahlungen dargestellt. Mit diesen Informationen können nun Schlüsse gezogen werden, ob Spalten gestrichen werden dürfen oder nicht. Mit den Aussagen der Spalten Col3 und Col7 kann festgehalten werden, dass die Spalten nicht entfernt werden dürfen. Das liegt daran, dass die Aussagen wichtig für die Auswertung des Datensatzes sind. Die Attribute sind wichtig, um herauszufinden, ob ein neuer Arbeitsvertrag für den jeweiligen Arbeitnehmer gut oder schlecht ist. So liegt die hohe Zahl der fehlenden Werte in Col3 daran, dass viele 13 Mitarbeiter anscheinend noch nicht über drei Jahre in dem Unternehmen sind oder einfach keine Gehaltserhöhung nach dem dritten Jahr erhalten haben. Um aber Beurteilungen abgeben zu können müssen auch die betrachtet werden, die eine Gehaltserhöhung bekommen haben. Würde man die Spalte löschen würden diese wichtigen Informationen bei der Auswertung fehlen und das Gesamtergebnis verfälschen. Das gleiche Prinzip liegt auch bei der Spalte Col7 vor. Nicht jeder Mitarbeiter in dem Unternehmen macht Bereitschaften auch außerhalb der Arbeitszeiten. Deshalb bekommen nur wenige Arbeitnehmer Bereitschaftsbezahlungen. Aber auch diese müssen bei der Auswertung berücksichtigt werden. Im Endeffekt konnten in diesem Fall durch die Betrachtung der prozentualen Werte der fehlenden Attribute keine Reduzierung vorgenommen werden. Hier kam es schlussendlich eher zu einer schrittweisen Vorwärtsauswahl, in der die betrachteten Attribute mit in die Auswertung mit einbezogen werden.5 Die Frage, was mit den fehlenden Werten gemacht wird, findet in der Datensäuberung statt. Hier bietet es sich an, dass die fehlenden Attribute mit dem Wert „0“ ausgefüllt werden, da diese Attribute aufgrund von fehlender Aktionen der Arbeitnehmer keinen Wert aufweisen. Wichtig ist also die Beachtung der Aussagekraft der Spalten und Zeilen, die häufig eine wichtige Rolle spielen, obwohl es auf den ersten Blick einen anderen Eindruck macht. 3.2 Datentransformation Datentransformation ist die Umformung von Daten in Formen, die zur weiteren Auswertung von Datensätzen geeignet sind. Dazu gehören Intervallbildungen, Generalisierung und Aggregation. Im Folgenden sollen einzelne Beispiele zur Datentransformation gezeigt werden. Das erste Beispiel ist das sogenannte Binning. Numerische Werte werden normalisiert und es findet eine Intervallbildung statt. Die Daten werden also skaliert und in bestimmten Intervallen unterteilt. Um ein Beispiel in KNIME zu veranschaulichen, wurde eine Datenbank verwendet, die elf Merkmale von 534 Personen beinhaltet. Diese Personen wurden zufällig aus einer Bevölkerungsüberwachung der USA von 1985 ausgewählt und mit den Daten sollen die Strukturen der Einkommen, genauer gesagt des Stundenlohnes, untersucht werden. In Abbildung 7 ist der Aufbau der unterschiedlichen Binning-Verfahren dargestellt und soll nun näher beschrieben werden. Der Sinn im Binning ist eine vereinfachte und übersichtlichere Darstellung von bestimmten Attributen. In diesem Fall handelt es sich um das Alter der jeweiligen Personen. 5 Vgl. Cleve, J., 2011, S. 62 14 Abb. 7: Darstellung der Binning-Verfahren in KNIME Besonders beim Alter bietet es sich an, eine Intervallbildung vorzunehmen. Ohne die Darstellung in Intervallen, hat man viele verschiedene Werte, ohne eine Struktur oder genauere Aussagekraft für diese Daten zu haben. So kann man durch den Knoten „Pie Chart (interactive)“ verdeutlichen, wie die prozentuale Verteilung der einzelnen Altersjahrgänge aussieht (siehe Abbildung 8). Man erhält ein sehr unübersichtliches, schwer zu verarbeitendes Kreisdiagramm, was wenig Aussagekraft besitzt. Mit der Bearbeitung durch die verschiedenen Binning-Verfahren, können Intervalle gebildet werden, wobei die Altersjahrgänge in Intervalle eingeordnet werden und somit z.B. gesagt werden kann, dass 20-30 jährige Personen überwiegend ein bestimmtes Gehalt beziehen. Die Intervallbildung kann in Knime auf zwei verschiedene Arten gemacht werden. Zum einen gibt es den „Auto-Binner“ und zum Abb. 8: Unbearbeitete Altersstruktur anderen der „Numeric Binner“. 15 Beim Auto-Binner erfolgt die Intervallbildung nach prozentuellen Voraussetzungen. Wie in Abbildung 9 dargestellt, kann erstens eingestellt werden, wie viele Intervalle gebildet werden sollen, wobei bei z.B. fünf ausgewählten Intervallen die ersten 20 % des Alters, dann die nächsten 20 % in die nächste Gruppe eingeordnet werden. Es gibt also fünf Gruppen, die jeweils 1/5 der Altersgruppen enthalten. Eine weitere Möglichkeit ist die direkte prozentuelle Auswahl der Intervalle. Man gibt der Software vor, ab welchem Prozentpunkt ein Intervall beginnt und wann es endet. Beispielsweise kann man die Abb. 9: Auswahlmöglichkeiten des Auto-Binners Einteilung so vornehmen, dass ein Intervall bei 25 % beginnen und bei 50 % enden soll. So bestimmt der Anwender selbständig wie viele Intervalle gebildet werden, richtet sich dabei aber nach der prozentualen Verteilung und nicht direkt nach den Werten, also nicht nach dem Alter selbst. Darauf geht dann der Numeric Binner genauer ein. Des Weiteren kann man einstellen, wie die einzelnen Intervalle heißen sollen. Die Auswahl kann dann entweder auf die fortlaufende Benennung in „Bin1, Bin2, usw.“ gesetzt werden oder man lässt sich anzeigen, wo genau das Intervall beginnt und wo es endet, was mit den reelen Werten angezeigt wird. Das Ergebnis dieser Intervallbildung kann wiederum durch ein Kreisdiagramm dargestellt werden (siehe Abbildung 10). Man erkennt sofort die verbesserte Darstellung, wodurch die weitere Bearbeitung wesentlich vereinfacht wurde und die Auswertung des Datensatzes verbessert hat. Durch die getätigte Intervallbildung wurden die Altersstrukturen nun in Gruppen dargestellt und man kann somit bessere Aussagen über sie treffen. Abb. 10: Pie Chart nach Auto-Binning 16 Der Numeric Binner hat die gleiche Funktion wie der Auto-Binner. Allerdings wird beim Numeric Binner nicht die prozentuale Verteilung betrachtet, sondern die Intervallbildung richtet sich direkt nach den numerischen Werten. Man gibt also direkt ein ab welchem Alter ein Intervall beginnen soll und wo das Intervall enden soll. So kann man wirklich genau die Altersgruppen betrachten, die man haben möchte und muss nicht mit prozentualen Anpassungen eine bestimmte Altersgruppe herausfiltern. Welchen Binner man im Endeffekt gebrauchen möchte, hängt von den Zielen ab, die man im Einzelnen hat. Um z.B. die Gehälter der 20-25-jährigen herauszufiltern, bietet sich definitiv der Numeric Binner an, da hier direkt die Altersklassen ausgewählt werden können. Das Binning bietet also eine sehr gute Möglichkeit die Darstellung von z.B. Altersstrukturen verbessert und in Intervallen darstellen zu können. Die Übersichtlichkeit und die besseren Voraussetzungen für die weitere Auswertung des Datensatzes, werden dadurch ebenfalls deutlich verbessert. Neben dem Binning und der Intervallbildung gibt es im Rahmen der Datentransformation auch die sogenannte Generalisierung. Bei der Generalisierung werden numerische Attribute durch symbolische Attribute mit quantitativer Aussage (niedrig, mittel, hoch) ersetzt.6 Dafür bietet KNIME den JAVA-Snippet Node. Dieser Node ermöglicht es beliebige Java-Codes auszuführen, wie in Abbildung 11 zu erkennen ist. Abb. 11: Java Snippet Node Konfiguration 6 Vgl. Althoff, K.-D., 2005, S. 11 17 Mithilfe des Java Snippet Nodes können neue Spalten erstellt oder eine vorhandene Spalte ersetzt werden. In Abbildung 11 ist dargestellt, wie die Ausgabespalte mithilfe eines JAVA Feldes neu geschaffen und definiert wird. Dabei kann man auf die Attribute der Eingangsspalte und deren dazugehörigen Variablen zurückgreifen. Hierbei handelt es sich um den Wetter-Datensatz, wobei der Java Snippet Node in diesem Fall verwendet wird, um die Einteilung der Temperaturen neu dazustellen. Der komplette Workflow in KNIME ist in der Abbildung 12 dargestellt. Abb. 12: Java Snippet Workflow Die Datentransformation bietet also auch viele verschiedene Möglichkeiten bestimmte Datensätze umzuformen oder auch um Daten und Attribute vereinfacht darstellen zu können, wie dies mit dem Binning getan wurde. Neben diesen Möglichkeiten der Datenvorverarbeitung im Rahmen der Datentransformation, gibt es noch wesentlich mehr Varianten, die aber den Rahmen dieser Arbeit gesprengt hätten. Im Grunde ist hier nur eine Auswahl dessen aufgezeigt, was bei der Datenvorverarbeitung möglich ist. Wegen des sehr großen Feldes und der unendlichen Möglichkeiten der Datenvorverarbeitungsverfahren ist es sehr schwer einzugrenzen und zu definieren welche Verfahren im Endeffekt die wichtigsten bei der Datenvorverarbeitung darstellen. Bei der Datentransformation spielen die zuvor dargestellten und erklärten Verfahren eine große Rolle, weshalb diese hier auch näher erläutert wurden, wodurch beispielsweise auch Handlungsempfehlungen für den Umgang von Altersdaten gegeben werden konnten. 3.3 Datensäuberung Neben den betrachteten Datenvorverarbeitungsverfahren der Datenreduktion und der Datentransformation, erfolgt nun die Vorstellung der Datensäuberung. Das Problem bei vielen Datenbanken und Datensätzen ist, dass die Rohdaten in der Datenbank häufig lückenhaft sind. 18 Die Ursache dieser lückenhaften Datensätze liegt zumeist begründet in der Erfassung der Daten, bei der Fehler und Datenverluste auftreten. Das Problem ist nun, dass Data MiningVerfahren nicht mit fehlenden Werten umgehen können. Attribute mit vielen fehlenden Werten sind aber nutzlos. Demzufolge müssen fehlende Werte behandelt und verbessert werden, um mit den Datensätzen arbeiten und sie verwerten zu können.7 Wie man am besten mit fehlenden Werten umgeht, soll die Durchführung von Experimenten anhand der Software KNIME exemplarisch vorstellen. Als Testdaten werden der Datensatz „Akzeptierbarkeit von Arbeitsverträgen“ und der Datensatz „Herzkrankheit“ in den folgenden Experimenten verwendet. Bei der Erfassung der Herzkrankheitsdaten wurden verschiedene Eigenschaften, die vermutlich für das Auftreten eines Herzleidens verantwortlich sind, aufgeführt. Dieser Datensatz enthält die Eigenschaften von 270 Personen. Die Daten sind geteilt (240 sind Trainingsdaten, 30 Anwendungsdaten). Die Trainingsdaten wurden manuell manipuliert, indem die Attribute gelöscht wurden, um mit ihnen experimentieren zu können. Das Zielattribut ist das Attribut „Herzleiden“ mit den beiden möglichen Ergebnissen „Y, N“, welche besagen sollen, ob ein Mensch ein Herzleiden besitzt oder nicht. Der Datensatz „Akzeptierbarkeit von Arbeitsverträgen“ beinhaltet 57 Mitarbeiter einer Unternehmung. Ziel ist es zu wissen, ob für das Unternehmen ein neu ausgehandelter Arbeitsvertrag für einen seiner MA akzeptierbar ist oder nicht. Die Software KNIME enthält einen schon vorgefertigten Node, „Missing Value“, zur Behandlung von fehlenden Werten. Abb. 13: Missing Value Konfiguration 7 Vgl. Althoff, K.-D., 2005, S. 5 19 Im Folgenden sollen die in Abbildung 13 dargestellten Vorgehensweisen der Missing Value Konfiguration erläutert werden. Diese Vorgehensweisen bestimmen, wie mit den gewählten Attributen umgegangen werden soll und wie die fehlenden Werte behandelt und ersetzt werden sollen. Das Auswahlfeld „Do Nothing“ sagt aus, dass nichts getan werden soll. Das heißt, dass Zellen, bei denen fehlende Werte auftreten, nicht berührt werden. Im Endeffekt passiert bei dieser Auswahl nichts und die Werte werden so auftreten wie sie vorher in der Ausgabetabelle dargestellt waren. Das Feld „Remove Row“ bedeutet, dass jede ausgewählte Spalte vollständig entfernt wird. Die Ausgabetabelle ist somit nach dem Löschen der Spalte nicht mehr enthalten, es handelt sich hierbei im Grunde um ein Verfahren der Datenreduktion. Bei den Auswahlfeldern „Min“, „Max“ und „Mean“ werden fehlende Werte durch minimale Werte, maximale Wert oder dem Mittelwert der Spalte ersetzt. Das bedeutet also, dass KNIME in Verbindung mit dem Missing Value die einzelnen Grenzwerte der ausgewählten Spalte ermittelt und dann entweder das Minimum, das Maximum oder den Mittelwert der Attribute innerhalb der Spalte für die fehlenden Werte einsetzt. Das „Most Frequent“-Auswahlfeld steht nur für String und Integer Spalten zur Verfügung. Jeder fehlende Wert in der betrachteten Spalte wird durch den häufigsten Wert einer Spalte ersetzten. Mithilfe des „Fix Value“ Auswahlfeldes werden die fehlenden Werte mit einem statischen Wert ersetzt, der vom Anwender manuell eingestellt werden kann. Diese Option steht für Double-, Integer- und Stringspalten zur Verfügung. 20 Abb. 14: Experimente zur Behandlung fehlender Werte Auch die Position des Missing Value Nodes in dem Data Minig Prozess, war Teil dieser Experimente, da sich herausgestellt hat, dass die unterschiedliche Positionierung des Knotens, unterschiedliche Ergebnisse zur Folge hat. Die Ergebnisse dieser Experimente sind in der unten dargestellten Tabelle zu finden. Tabelle 1: Ergebnis der Experimente Aus den in Tabelle 1 dargestellten Ergebnissen, die aus dem Workflow der Abbildung 14 entstanden sind, können folgende Handlungsempfehlungen für die Bearbeitung von fehlenden Werten gegeben werden. 21 Das Entfernen von Tupeln bei denen Werte fehlen ist zum ersten sinnvoll, wenn die Klassifikation fehlt. Aber auch, wenn dieses weniger Tupel betrifft ist das Entfernen durchaus sinnvoll. Das Attribut hingegen sollte entfernt werden, wenn dies viele Tupel betrifft. Des Weiteren sind manuelle Nachträge der fehlenden Werte möglich, was allerdings sehr zeitaufwendig ist. Sinnvoll sind diese Nachträge zudem nur bei wenigen fehlenden Werten. Zusätzlich ist zu berücksichtigen, dass die Semantik der fehlenden Werte beachtet werden muss. Außerdem gibt es die Möglichkeit die Vorhersage eines wahrscheinlichen Wertes zu bestimmen. Um diese Vorhersage tätigen zu können, ist die Anwendung einer Klassifikation zur Vorhersage des betroffen Attributs notwendig.8 Zudem zeigen die Ergebnisse aus Tabelle 1, dass zu übermäßig betriebenes Daten-Training zu einem schlechteren Ergebnis führen kann. Es ist also zu erkennen, dass auch bei der Datensäuberung viele verschiedene Möglichkeiten zur Verbesserung eines Datensatzes vorhanden sind, von denen einige vorgestellt wurden. 8 Vgl. Althoff, K.-D., 2005, S. 6 22 4. Schlussfolgerung Die Vorstellung der Datenvorverarbeitungsverfahren mit ihren Bestandteilen der zuvor betrachteten Datenreduktion, Datentransformation und Datensäuberung, hat gezeigt, dass der Bereich der Datenvorverarbeitung sehr vielfältig ist. Obwohl viele verschiedene Verfahren, wie z.B. die Reduktion von Attributen mithilfe von Korrelationen oder das Ersetzen fehlender Werte durch minimale, maximale oder durchschnittliche Werte einer Spalte aufgezeigt und dargestellt wurden, konnten viele verschiedene Verfahren und Vorgehensweisen im Rahmen dieser Projektarbeit nicht vorgestellt werden. Das Problem dabei ist, dass dieses Feld unendlich groß ist und so viele Verfahren zur Datenvorverarbeitung existieren, dass eine komplette Abdeckung des Gebietes nahezu unmöglich ist. Dennoch konnten viele Verfahren vorgestellt werden, bei denen einige Anwendungsempfehlungen im Zuge der Datenvorverarbeitung ermittelt werden konnten. So können bei der Datenreduktion, mithilfe von Korrelationen bzw. Zusammenhängen von Attributen und Spalten, einzelne Spalten entfernt werden, wobei auch Ausreißer gelöscht werden können. Dabei ist aber zu beachten, dass bei vielen zunächst unwichtig erscheinenden Spalten und Attributen, für die Auswertung des Datensatzes wichtige Eigenschaften vorhanden sind. Bei der Datenreduktion ist also immer zu prüfen, ob die zu reduzierenden Daten wirklich entfernt werden dürfen, ohne dass die Entfernung die Auswertung und die Aussage des Datensatzes verfälscht. Bei der Datentransformation haben verschiedene Experimente gezeigt, dass z.B. die verschiedenen Binning-Verfahren vor allem die Übersichtlichkeit von bestimmten Attributen wesentlich erhöhen können. Dadurch können auch die Aussagen auf bestimmte Intervalle ausgeweitet werden, was vor allem bei Altersstrukturen äußerst sinnvoll ist. Auch die Generalisierung ist eine weitere Form der Datentransformation, welche mithilfe des Java Snippet Nodes abgebildet werden kann. Bei der Datensäuberung geht es hauptsächlich darum, Datensätze zu bearbeiten, die lückenhaft sind, die also entweder fehlerhaft sind oder fehlende Werte aufweisen. Das ist vor allem wichtig, weil ohne die fehlenden Werte bzw. mit den fehlerhaften Werten, die Auswertung des Datensatzes verfälscht wird und unvollständig ist. Durch den Missing Value Knoten können diese Attribute bearbeitet, verbessert und vervollständigt werden. Es gibt demnach auch hier wieder viele verschiedene Varianten, wie man mit den fehlenden Werten umgeht. Dabei ist es wichtig die Aussagekraft der Attribute zu beachten, um herauszufinden, welche 23 Schritte man zur Datensäuberung tätigen sollte. Auch das Daten-Training mit dem „decision tree learner“ spielt bei der Entscheidung für einen bestimmten Schritt eine große Rolle. Durch die Datenvorverarbeitung wird also der erste Schritt zur besseren Auswertung eines Datensatzes getätigt, was diese auch vereinfacht. Dabei werden Fehler gesucht, erkannt und mit den notwendigen Maßnahmen verbessert und bearbeitet. Die Software KNIME ist dabei ein sehr hilfreicher Bestandteil, wodurch die Datenvorverarbeitung sehr gut und umfangreich gestaltet werden kann. Die Datenvorverarbeitung spielt also bei der Auswertung von Datensätzen und Datenbanken eine entscheidende Rolle und ist im Rahmen des Data Mining unumgänglich und äußerst wichtig. 24 Autorenaufteilung: 1. Einführung in die Thematik ................................................................ Christian Meyerhöfer 2. Grundlagen der Datenvorverarbeitung ................................................ Christian Meyerhöfer 3. Datenvorverarbeitung anhand von Beispielen mit KNIME ................ Christian Meyerhöfer 4. 3.1 Datenreduktion ............................................................................Christian Meyerhöfer 3.2 Datentransformation ....................... Christian Meyerhöfer (Binning) & Karim Eddarif 3.3 Datensäuberung ...................................................................................... Karim Eddarif Schlussfolgerung ................................................................................. Christian Meyerhöfer 25 5. Literaturverzeichnis Althoff, Klaus-Dieter (2005) „Wissensentdeckung und maschinelles Lernen“, Vorlesungsfolien der Universität Hildesheim 2005;URL:http://www.iis.unihildesheim.de/files/teaching/wintersemester20042005/VorlesungWissensentdeckung/Resourc en/2004-weml-12.pdf, letzter Abruf: 05.06.2013 Cleve, Jürgen (2011) „DataMining Skript WS 2011/12“ Hochschule Wismar, Fakultät für Wirtschaftswissenschaften Reuter, Matthias (2004) „Datenvorverarbeitung (Preprocessing)“, URL: http://www2.in.tu-clausthal.de/~reuter/fd.htm, letzter Abruf: 07.06.2013 Werth, Oliver (2004) „Datenvorverarbeitung von nominalen Daten für DataMining“, URL: http://www.ke.tudarmstadt.de/lehre/oberseminar/folien/Werth_Oliver-Slides.pdf, letzter Abruf: 07.06.2013 26 6. Anhang Projekttagebuch: 18.06.2013 anwesend: Karim Eddarfi, Christian Meyerhöfer behandelt: Zusammenfügen der Projektarbeit und Besprechung dieser offene Probleme: Wer macht was: Karim Eddarif: Dokumentation in der Projektarbeit zu den Themen Datensäuberung und Datentransformation; Christian Meyerhöfer: Dokumentation in der Projektarbeit zu den Grundlagen, zur Datenreduktion, Binning und Formatierung und Verbesserung der Projektarbeit 10.06.2013 anwesend: Karim Eddarfi, Christian Meyerhöfer behandelt: letzte Verbesserungen an der Präsentation und Probedurchlauf offene Probleme: Hausarbeit muss noch geschrieben werden Wer macht was: Karim Eddarif: Folien zur Datensäuberung und Datentransformation; Christian Meyerhöfer: Folien zu den Grundlagen, zur Datenreduktion, Binning und Formatierung und Verbesserung der Präsentation 07.06.2013 anwesend: Karim Eddarfi, Christian Meyerhöfer behandelt: Zusammenfügen der einzelnen Präsentationsabschnitte offene Probleme: Bearbeitung von einigen Folien und Durchlauf muss noch geprobt werden Wer macht was: Karim Eddarif: Datensäuberung und Datentransformation; Christian Meyerhöfer: Dimensionsreduktion, Binning und Formatierung und Verbesserung der Präsentation 04.06.2013 anwesend: Karim Eddarfi, Christian Meyerhöfer behandelt: letzte Besprechung der erreichten Ergebnisse und Besprechung des Aufbaus und der Vorgehensweise der Präsentation offene Probleme: Präsentation muss erstellt werden Wer macht was: Karim Eddarif: Datensäuberung und Datentransformation; Christian Meyerhöfer: Dimensionsreduktion, Binning und die Formatvorlage für die Präsentation 27 29.05.2013 anwesend: Karim Eddarfi, Christian Meyerhöfer behandelt: weitere Beispieldurchführung mit Knime und Zusammenfassung der Ergebnisse. offene Probleme: noch fehlende Ergebnisse für die Datentransformation. Wer macht was: Karim Eddarif: Datensäuberung und Datentransformation; Christian Meyerhöfer: Dimensionsreduktion und Datensäuberung 21.05.2013 anwesend: Karim Eddarif, Christian Meyerhöfer behandelt: Zusammentragung der Ergebnisse in der Datenreduktion, Datensäuberung, Datentransformation und der Datenselektion und -integration. Weitere Durchführung und Besprechungen der Ergebnisse. Anschließend Konsultation mit Prof. Lämmel und Prof. Cleve. offene Probleme: Weitere Ergebnisse sollten herausgefunden werden. Wer macht was: Durchführung von weiteren Beispielen und Bearbeitung der Hausarbeit. Karim Eddarif macht dabei hauptsächlich die Datensäuberung und die Datentransformation und Christian Meyerhöfer die Datenselektion und -integration und die Datenselektion. 15.05.2013 anwesend: Karim Eddarif, Christian Meyerhöfer behandelt: Besprechung der Ergebnisse, die mit KNIME erreicht wurden. Anschließend Konsultation und Besprechung und Verteilung weiterer Beispieldurchführungen. offene Probleme: Wenig aussagekräftige Ergebnisse mit dem Datensatz: "data_dmc2002_train.txt", weitere Beispieldurchführungen notwendig Wer macht was: Karim Eddarif: Mit KNIME werden weitere Beispieldaten durchgeführt im Rahmen der Datensäuberung und der Datentransformation. Christian Meyerhöfer: Mit KNIME werden weitere Beispieldaten durchgeführt im Rahmen der Datenselektion und -integration und der Datenreduktion. 13.05.2013 anwesend: Karim Eddarif, Christian Meyerhöfer behandelt: Datenvorverarbeitungen anhand des Datensatzes "data_dmc2002_train.txt" und Schlussfolgerungen daraus. Die Weitere Besprechung der Gliederung für die Projektarbeit und Verteilung weiterer Aufgaben für die weitere Vorgehensweise. offene Probleme: Datensätze noch zu groß und müssen weiter angepasst werden und noch weiter vorverarbeitet werden. Wer macht was: Karim: Durchführung der Datenvorverarbeitung mit KNIME und weitere Vorüberlegungen mit anderen Datensätzen zur Umsetzung mit KNIME. Christian: Anpassung des Gliederungsentwurfs für die Projektarbeit und erste Verfassungen für die Textarbeit in der Projektarbeit. Weitere Durchführungen mithilfe von KNIME und erste Vorüberlegungen zu weiteren Datensätzen zur Umsetzung in KNIME. 28 07.05.2013 anwesend: Karim Eddarif, Christian Meyerhöfer behandelt: erste Auswertungen von Datenvorverarbeitungen mit KNIME und weitere Durchführung von Beispielen. Des Weiteren wurden Vergleiche zu unterschiedlichen Möglichkeiten der Datenvorverarbeitung bei gleichen Datensätzen geführt offene Probleme: noch weiteres Verständnis für unterschiedliche Verfahren der Datenvorverarbeitung in KNIME muss verbessert werden. Wer macht was: Karim: weiter Durchführung von Datenvorverarbeitungsbeispielen mit unterschiedlichen Datensätzen und unterschiedlichen Datenvorverarbeitungsverfahren mithilfe von KNIME; Christian: Ebenfalls Durchführung von Datenvorverarbeitungsbeispielen mithilfe von KNIME und erste Gliederung und der Projektarbeit 23.04.2013 anwesend: Karim Eddarif, Christian Meyerhöfer behandelt: Zusammenführen der Ergebnisse der Beispielauswertungen, Entscheidung welche Datensätze zur weiteren Durchführung verwendet werden können offene Probleme: Implementierung der Beispiele Wer macht was: Karim: Durchführung von Beispiel zur Datenmanipulation; Christian: weiterer Verständnisgewinn von KNIME 19.04.2013 anwesend: Karim Eddarif, Christian Meyerhöfer behandelt: Gemeinsames Durchsehen der Datensätze im Wiki offene Probleme: Welche Datensätze sind geeignet zur Umsetzung der Projektaufgabe Wer macht was: Aufteilung der Testbeispiele zum Heraussuchen von geeigneten Beispielen für das Durcharbeiten mit KNIME zur Datenvorverarbeitung 16.04.2013 anwesend: Karim Eddarif, Christian Meyerhöfer behandelt: Erstellung des Arbeitsplans offene Probleme: Wer macht was: Weitere Recherchen zum Thema Datenvorverarbeitung 12.4.2013 anwesend: Karim Eddarif, Christian Meyerhöfer behandelt: Erstes Treffen und Kennenlernen Besprechung des weiteren Vorgehens und Terminabsprache für die nächsten Tage bzw. Wochen. offene Probleme: Konkretisierung der Aufgabe noch nicht gänzlich geklärt Wer macht was: Jedes Mitglied recherchiert Themenrelevante Daten und Arbeiten bis zum nächsten Treffen 29 Arbeitsplan: 30 Ehrenwörtliche Erklärung Wir erklären hiermit ehrenwörtlich, dass wir die vorliegende Arbeit selbstständig angefertigt haben. Die aus fremden Quellen direkt oder indirekt übernommenen Gedanken sind als solche kenntlich gemacht. Es wurden keine anderen als die angegebenen Stellen und Hinweise verwandt. Alle Quellen, die dem World Wide Web entnommen oder in einer sonstigen digitalen Form verwendet wurden, sind der Arbeit beigefügt. Der Durchführung einer elektronischen Plagiatsprüfung stimmen wir hiermit zu. Die vorliegende Arbeit wurde bisher keiner anderen Prüfungsbehörde vorgelegt und auch noch nicht veröffentlicht. Karim Eddarif Wismar, den 19.06.2013 Karim Eddarif Christian Meyerhöfer Wismar, den 19.06.2013 Christian Meyerhöfer 31