Otto-Friedrich-Universität Bamberg Fakultät Wirtschaftsinformatik und Angewandte Informatik Projekt Kognitive Systeme - Das Schmerzgesicht Projektbericht Erkennung von Schmerz anhand FACS-codierter Gesichtsausdrücke mithilfe maschineller Lernverfahren Jan Boockmann (Matr. Nr. 1748109) Andreas Böhler (Matr. Nr. 1465642) Betreuer: Michael Siebers WS 2015/2016 31. März 2016 Zusammenfassung Das Bachelor-Projekt der Professur für Kognitive Systeme im Wintersemester 2015/16 widmete sich der Frage, ob und wie sich die Gesichtsausdrücke, die entstehen, wenn Menschen Schmerz empfinden, von neutralen Gesichtsausdrücken und solchen, die entstehen, wenn Ekel empfunden wird, voneinander unterscheiden. Alle Projektgruppen arbeiteten dafür mit Versuchsdaten, die aus Experimenten entstanden, bei denen Versuchspersonen entweder Schmerz, Ekel oder ein neutrales Gefühl induziert werden sollte. Diese Daten lagen bereits symbolisch aufbereitet in Form einer PostgreSQL-Datenbank vor. Durch die Auswahl geeigneter Attribute, das anschließende Erstellen entsprechender SQL-Views und das Anwenden zweier Lernverfahren in RapidMiner - einem Framework für maschinelles Lernen - sollte herausgefunden werden, inwiefern das automatische Klassifizieren von Schmerz basierend auf FACS codierten menschlichen Gesichtsausdrücken möglich ist. Dieser Projektbericht stellt die Ergebnisse einer von drei Projektgruppen dar. Der Bericht liefert eine Erklärung zu theoretischen Hintergründen bezüglich Schmerz, des Facial Action Coding System, und eine kurze Einführung in Maschinelles Lernen und RapidMiner. Anschließend werden die beiden gewählten Lernverfahren, Entscheidungsbaum und k-nächste Nachbarn, vorgestellt und auf den jeweiligen Aufbau in RapidMiner und die erarbeiteten Ergebnisse eingegangen. 2 Inhaltsverzeichnis 1 Einleitung 1.1 Datenbasis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 Theoretischer Hintergrund 2.1 Schmerz . . . . . . . . . . 2.2 FACS . . . . . . . . . . . 2.3 Maschinelles Lernen . . . . 2.4 RapidMiner . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 9 10 10 11 12 13 3 Attributauswahl 15 4 Lernverfahren 4.1 Entscheidungsbaum . . . . . . . . 4.1.1 Theoretischer Hintergrund 4.1.2 Aufbau . . . . . . . . . . . 4.2 k-nächste Nachbarn . . . . . . . . 4.2.1 Theoretischer Hintergrund 4.2.2 Erster Ansatz . . . . . . . 4.2.3 Zweiter Ansatz . . . . . . 4.2.4 Dritter Ansatz . . . . . . 4.2.5 Evaluation . . . . . . . . . 18 18 18 19 23 24 26 27 28 30 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 Fazit 32 Literaturverzeichnis 34 A Tabelle relevanter Action Units 36 B Verwendete Attribute 36 C RapidMiner Operatoren C.1 Retrieve . . . . . . . . . . . C.2 Apply Model . . . . . . . . C.3 k-NN . . . . . . . . . . . . . C.4 Decision Tree . . . . . . . . C.5 Optimize Parameters (Grid) C.6 X-Validation . . . . . . . . . 37 37 38 38 39 39 40 . . . . . . 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C.7 Performance (Classification) . C.8 Weight by Information Gain . C.9 Principal Component Analysis C.10 Scale by Weights . . . . . . . C.11 Nominal To Numerical . . . . 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 41 42 42 43 Abbildungsverzeichnis 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Datenbasis als Datenbankschema . . . . . . . . . . . . . . . Gesichtsausdrücke der Action Units 1-2 und 4-7 . . . . . . . Graphische Benutzeroberfläche von RapidMiner 5.3.015 . . . Die oberste Ebene des Entscheidungsbaumaufbaus, die die Versuchsdaten und den Operator zur Parameteroptimierung enthält. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Der Optimierungsoperator enthält die Batch-X-Validation. . Der Aufbau der zweiten Unterebene des Entscheidungsbaumprozesses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Die Einstellungen für unseren Entscheidungsbaum . . . . . . Der fertige Entscheidungsbaum . . . . . . . . . . . . . . . . Die Tabellenansicht des RapidMiner PerformanceVector . . . K-Nächste-Nachbarn in einem zweidimensionalen Datensatz k-NN erster Ansatz: Hauptprozess . . . . . . . . . . . . . . . k-NN erster Ansatz: Optimierungsprozess . . . . . . . . . . . k-NN erster Ansatz: Validierungsprozess . . . . . . . . . . . k-NN zweiter Ansatz: Hauptprozess . . . . . . . . . . . . . . k-NN dritter Ansatz: Hauptprozess . . . . . . . . . . . . . . k-NN dritter Ansatz: Optimierungsprozess . . . . . . . . . . 6 . 10 . 12 . 14 . 20 . 21 . . . . . . . . . . . 21 22 22 23 25 26 27 27 28 29 30 Tabellenverzeichnis 1 2 3 4 5 Beschreibung der aggregierten Attribute . . . Konfusionsmatrix des ersten k-NN Ansatzes . Konfusionsmatrix des zweiten k-NN Ansatzes Konfusionsmatrix des dritten k-NN Ansatzes . Beschreibung relevante Action Units . . . . . 7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 27 28 30 36 1 Einleitung Ziel des Bachelor-Projekts am Lehrstuhl Kognitive Systeme im Wintersemester 2015/16 war es, zu untersuchen, wie sich Gesichtsausdrücke von Menschen, die Schmerz empfinden, von Gesichtsausdrücken unterscheiden, die entstehen, wenn Menschen Ekel empfinden. Um dieses Ziel zu erreichen, arbeiteten alle Gruppen mit Daten, eines Versuches der Physiologischen Psychologie, während dem Probanden diese Mimik zeigten. Diese Daten lagen bereits symbolisch ausgewertet in Form von sogenannten Action Units (siehe Kapitel 2.2) vor. Um aus diesen Daten abstrakte Beschreibungen für Schmerz zu generieren, wurde auf Methoden des Maschinellen Lernens zurückgegriffen. [Sie15] Der Projektbericht ist wie folgt strukturiert: Das folgende Unterkapitel 1.1 beschreibt die vorhandene Datenbasis. Kapitel 2 erläutert wichtige Grundbegriffe der Bereiche Schmerz (Kapitel 2.1), FACS (Kapitel 2.2), Maschinellem Lernen (Kapitel 2.3) und RapidMiner (2.4). Das Kapitel 3 beschreibt die von uns vorgenommene Attributauswahl. Kapitel 4 stellt die zwei verwendeten Lernverfahren vor. Kapitel 4.1 stellt den Entscheidungsbaum und Kapitel 4.2 das k-nächste-Nachbarn Verfahren vor. Kapitel 5 beschreibt ein Fazit des Projekts. Im Anhang findet sich Hintergrundinformationsmaterial beziehungsweise detailliertere Aufzeichnungen, auf welche im Laufe des Berichtes an geeigneter Stelle verwiesen wird. 1.1 Datenbasis Die durch die Experimente erhobenen Daten lagen in mehreren Tabellen in Form einer PostgreSQL Datenbank vor. Abbildung 1 verdeutlicht die Zusammenhänge zwischen den einzelnen Tabelle graphisch mithilfe eines Datenbankschemas. 9 Abbildung 1: Datenbasis als Datenbankschema Im Folgenden werden die relevanten Aspekte der Datenbasis kurz erläutert: Für die einzelnen Versuchspersonen ist das Geschlecht (männlich, weiblich oder keine Angabe), das Alter und die Größe in Zentimeter und eine eindeutige Identifikationsnummer angegeben. Jede Versuchspersonen hat an mehreren Experimenten teilgenommen, jedoch nicht mehr als einmal für den selben Experimenttyp. Als Experimenttyp sind Schmerz, Ekel oder Neutral möglich, wobei der Typ jeweils angibt welche Emotion versucht wurde zu induzieren. Für die einzelnen Durchläufe wiederum wurde vermerkt wann welche Action Unit wie lange und mit welcher Stärke auftrat. 2 Theoretischer Hintergrund Die folgenden Unterkapitel erläutern wichtige theoretische Konzepte, welche relevant für den weiteren Projektbericht sind. 2.1 Schmerz Gemäß [Psy15b] ist Schmerz eine als unangenehm wahrgenommene Erfahrung und tritt bei Verletzung der Körperoberfläche, bei Reizung innerer Organe und ferner bei überstarker Reizung eines Rezeptors auf. Die Empfindlichkeit für Schmerz ist je nach Person und Situation sehr verschieden. 10 Im medizinischen Krankheitsmodell gilt Schmerz als Signal für körperliche Schädigung. Die Schmerzreaktion wird nach Fordyce [siehe For76] in einem trimodalen Modell operationalisiert. (1) Offenes Schmerzverhalten: Klagen über Schmerz und nonverbales Schmerzverhalten (Mimik, Gestik) (2) verdecktes Schmerzverhalten: Gedanken, Gefühle und Vorstellungen (3) physiologische Schmerzreaktion: Veränderungen kardiovaskulärer Parameter, Atmung, Muskelspannung etc. In dem Experiment, aus dem die im Projekt verwendeten Daten entstanden sind, wurde den Versuchspersonen physischer Schmerz induziert und deren im Verlauf des Experimentes gezeigte Mimik notiert. Diese Daten fallen somit in die Kategorie des offenen Schmerzverhaltens. 2.2 FACS Das Facial Action Coding System (FACS) wurde 1978 von den Psychologen Ekman und Friesen [siehe EF78] aufgestellt und beschreibt ein umfassendes Kategoriensystem zur Erfassung von visuell unterscheidbaren Gesichtsbewegungen. Eine Gesichtsbewegung besteht aus mehreren Beobachtungseinheiten welche als Action Unit (AU) bezeichnet werden. Jede AU bezieht sich auf eine bestimmte Muskelpartie im Gesicht und basiert somit auf der funktionellen Anatomie und nicht auf einer sprachlichen Beschreibung. Es können neben Fotografien auch Videoaufnahmen mit FACS kodiert werden. Dabei können zu einem bestimmten Zeitpunkt auch mehrere AUs auftreten. Für die auftretenden AUs werden meist Anfangs- und Endzeitpunkte notiert. Zudem können für einige AUs auch die Intensität mithilfe einer fünfstufigen Skala erfasst werden. Dabei steht A für die geringste Intensität und E für die stärkste Intensität. Mit dieser detaillieren Beschreibung ist es dann möglich, den Aufbau, Höhepunkt und das Ausklingen einer bestimmten AU zu erfassen [siehe Psy15a]. Das FACS beinhaltet insgesamt 44 unterschiedliche Action Units. Davon umfasst das Obergesicht 12 und das Untergesicht 32. Die Action Units im Untergesicht werden zudem hinsichtlich ihrer Richtung der Bewegung unterteilt. Gesichtsausdrücke von sechs beispielhaften Action Units werden in Abbildung 2 dargestellt. Diese Abbildung basiert auf der Arbeit von [TKC01]. 11 Für den Projektbericht relevante Action Units werden im Anhang in der Tabelle 5 erläutert. (a) Action Unit 1 (b) Action Unit 2 (c) Action Unit 4 (d) Action Unit 5 (e) Action Unit 6 (f) Action Unit 7 Abbildung 2: Gesichtsausdrücke der Action Units 1-2 und 4-7 Mithilfe des FACS können also Gesichtsausdrücke detailliert und objektiv gemessen werden. Jedoch liegt das Problem bei solchen System stets darin, dass nur das beobachtet werden kann, was vorher als relevant definiert wurde. Die Ausführlichkeit des FACS führt dazu, dass eine vergleichbar gute objektive Erfassung des Gesichtsausdrucks möglich ist. Jedoch benötigt eine Person circa 100 Stunden Training bis diese ein Gesicht nach FACS korrekt kodieren kann [siehe Fun03]. 2.3 Maschinelles Lernen Der Bereich Maschinelles Lernen beschäftigt sich mit der Frage wie man Programme entwickeln kann, welche mit Erfahrung automatisch besser werden [siehe Mit97]. Die Entscheidungen eines solchen Systems basieren also auf dessen gemachter Erfahrung. Dazu reicht es nicht aus die Daten lediglich zu speichern, vielmehr muss aus diesen neue Information gewonnen werden. Diese neue Information könnte ein bestimmtes Muster in den Daten sein, 12 welches dem System ermöglicht zukünftige unbekannte Eingaben richtig zu klassifizieren. Im Folgenden werden einige Begriffe aus dem Bereich Maschinelles Lernen erklärt. Ein Datensatz besteht aus mehreren Attributen und einer ihm zugeordneten Klasse. Trainingsdaten sind eine Menge von Datensätzen mit bekannten Attributwerten und Klassenausprägung. Ein Programme welches aus Trainingsdaten ein allgemeines Modell zur Klassifikation erstellt nennt man in diesem Zusammenhang ein Lernverfahren. Mithilfe des konstruierten Modells kann nun für einen Datensatz mit unbekannter Klassenausprägung diese geschätzt“ werden. Wie gut ein Lernverfahren unbekannte Daten klas” sifiziert lässt sich mit statistischen Kennwerten wie accuracy, precision oder recall beschreiben. Die Konfusionsmatrix gibt an wie Datensätze klassifiziert wurden und welche Klasse sie eigentlich besaßen. Im Projekt wurden die beiden Lernverfahren Entscheidungsbaum und knächste Nachbarn auf die vorhandenen Daten angewandt. 2.4 RapidMiner RapidMiner ist ein Java Framework für maschinelles Lernen und Data-Mining. Es wurde seit 2001 vom Lehrstuhl für künstliche Intelligenz der Technischen Universität Dortmund unter dem Namen YALE (“Yet Another Learning Environment”) entwickelt und im Jahre 2007 zu RapidMiner umbenannt. RapidMiner verwendet das Business Source Modell, wodurch die aktuellste Version proprietäre erhältlich ist und die jeweilige Vorversion als Open-SourceSoftware verfügbar ist [siehe Mie13]. 13 Abbildung 3: Graphische Benutzeroberfläche von RapidMiner 5.3.015 Die Interaktion mit RapidMiner ist sowohl über die Java-API, per Kommandozeile als auch graphischer Benutzeroberfläche möglich. Ausführbare Aktionen werden dabei als Operatoren modelliert und können beliebig hintereinander geschaltet und teilweise auch ineinander geschachtelt werden. Jeder Operator verfügt über Eingangs- und Ausgangsports, welche den internen Datenfluss repräsentieren. Die Ausgangsports enthalten die vom Operator bereitgestellten Daten und können mit Eingangsports von anderen Operatoren verbunden werden. Über die Eingangsports eines Operators werden diesem die für die Berechnung benötigten Daten zugeführt. Die Ports der einzelnen Operatoren können in der graphischen Benutzeroberfläche händisch miteinander verbunden werden. Zudem verfügt ein Operator auch noch über weitere Einstellungsmöglichkeiten. RapidMiner beinhaltet bereits mehr als 500 Operatoren für diverse Aufgaben bezüglich Datenvorverarbeitung, maschinelles Lernen und statistischer Aufbereitung. RapidMiner findet sowohl in der Forschung, als auch in industriellen und wirtschaftlichen Bereichen Anwendung. Eine Auflistung der verwendeten Operatoren befindet sich im Anhang unter Kapitel C. RapidMiner wurde in der Version 5.3.015 verwendet und steht online unter https://github.com/rapidminer/rapidminer-5 zur freien Verfügung. 14 3 Attributauswahl Um auf die Daten aus den Tabellen mithilfe von RapidMiner zu lernen, müssen diese zuerst in eine einzelne Tabelle übertragen werden. Jede Zeile der Tabelle entspricht im Zuge dessen einem Versuchsdurchlauf. Dabei müssen die vorhandenen Information sinnvoll aggregiert werden um möglichst wenig Information zu verlieren und gleichzeitig nicht zu viele Attribute am Ende zu erhalten. Zu viele Attribute können dazu führen, dass das Lernverfahren ineffizient wird und es zu einer Überanpassung (eng. Overfitting) kommt. Bei einer Überanpassung klassifiziert das Modell die Trainingsdaten sehr gut, klassifiziert neue Daten jedoch meist falsch. Dies kann dadurch entstehen, dass sich einzelne Variablen wie eine Identifikationsnummer für einzelne Datensätze verhalten. Laut Vorgabe sollte die Tabelle am Ende circa 70 Attribute enthalten. Um herauszufinden welche Informationen besonders ausschlaggebend für eine gute Klassifikation sind erhielt jede Gruppe unterschiedlich viele Informationen. Die eine Gruppe erhielt keine zeitlichen Informationen, unsere Gruppe erhielt Informationen bezüglich der Dauer einzelner Action Units und die letzte Gruppe erhielt zudem auch noch Informationen über den Zeitpunkt des Auftretens. Die Attribute der Zieltabelle lassen sich in aggregierte Attribute und feste Attribute unterteilen. Die festen Attribute müssen nicht aggregiert werden und können direkt aus den vorhandenen Tabelle übernommen werden . Dazu zählt die Identifikationsnummer des Versuchsdurchlaufes (sequence id), das Geschlecht (gender) und das Alter (age) der teilnehmenden Versuchsperson. Wir haben uns dazu entschieden das Attribut Höhe(height) nicht mit aufzunehmen, da wir diesem keinen großen Einfluss auf das Schmerzempfinden zugesprochen haben und eine Gefahr durch Überanpassung vermeiden wollten. Zudem wurde das Alter auf zwischen 18 und 30 inklusive eingeschränkt, da unserer Annahme nach das Alter einen Einfluss auf das Schmerzempfinden hat. Wir haben uns vom Entfernen der Ausreißer ein präziseres Modell für die Personen im oben definierten Altersbereich erhofft. Ausreißer bezüglich des Alters lagen nur oberhalb der definierten Grenze, der Älteste davon mit 57 Jahren. Eine Versuchsperson gab keine Angabe bezüglich Alter an und wird somit ebenso nicht weiter betrachtet. Durch diese Entscheidung blieben von 259 Versuchsdurchläufen noch 239 übrig. Zu jedem Versuchsdurchlauf existiert auch noch ein sogenannter fold, welcher die Daten in gleich große Teile aufspaltet. Dieser kann für eine spätere Batch-X-Validation verwendet werden um so unterschiedliche Ansätze besser 15 miteinander vergleichen zu können. Da wir jedoch nicht mit den Originaldatensätzen gearbeitet haben, kann nicht automatisch gewährleistet werden, dass der fold die Datensätze nun immer noch in gleich große Teile aufteilt. Bei einer nachträglichen Betrachtung des fold Attributes hinsichtlich seiner Verteilung nach dem Entfernen der einzelnen Ausreißer“ konnten wir ” feststellen, dass dieses die Datensätze nun nicht mehr perfekt teilt. Da wir aber erst im Laufe des Projektes zu dieser Erkenntniss gekommen sind, befindet sich der fold noch in der Attributauswahl, wird jedoch später nicht verwendet. Insgesamt erhält man so vier feste Attribute. Die Anzahl der aggregierten Attribute ist im Vergleich zur Anzahl der festen Attribute notwendigerweise um einiges höher, da dort die eigentlichen Informationen bezüglich des Schmerzausdrucks vorhanden sind. Das endgültige Ziel war die Klassifikation nach Schmerz beziehungsweise kein Schmerz. Um dieses Zweiklassenproblem zu modellieren bietet es sich an die Art der Induktion (induction id beziehungsweise induction name) zu aggregieren und ein neues Attribut(pain) zu erstellen. Die Ausprägung YES wird für Schmerzinduktionen und die Ausprägung NO für Neutral - und Ekelinduktion verwendet. Die Anzahl der gezeigten Action Units wird durch das Attribut amount ausgedrückt. Die restlichen aggregierten Attribute beziehen sich auf das Auftreten bestimmter Action Units innerhalb eines Versuchsdurchlaufes. Diese werden unterschiedlich behandelt je nachdem ob sie in der Literatur eng mit Schmerz verbunden sind oder nicht. Mit Schmerz assoziierte Action Units sind nach [LCL+ 09] und [SSS+ 12] vor allem 4, 6, 7, 9, 10 und 43. Da sich sowohl die Action Units 6 und 7 als auch 9 und 10 untereinander nur schwer unterscheiden lassen, haben wir uns entschlossen diese zusammenzufassen. Für diese Action Units werden die in Tabelle 1 dargestellten Informationen erfasst. Dabei steht das ? im Attributnamen für die jeweilige Action Unit. Für die Action Units 9 und 10 würden sich die Attribute amount0910 rel, wdur0910 rel, wint0910 rel, wdurint0910 und wdurint0910 rel ergeben. Eine Ausnahme bildet die Action Unit 43 (“Blinzeln”), da diese keine Intensität besitzt und somit nur die Attribute amount43 rel und wdur43 rel verwendet werden. Tabelle 1: Beschreibung der aggregierten Attribute 16 Attributname amount? rel wdur? rel wint? rel wdurint? wdurint? rel Beschreibung relative Häufigkeit dieser AU Durchschnittsdauer Durchschnittsintensität Summe aus Intensität und Dauer Durchschnitt aus Summe über Intensität und Dauer Für die restlichen 25 Action Units werden nur die Attribute amount? rel und wdurint? rel ermittelt, da diese für die Klassifikation weniger wichtig sind als die oben genannten Schmerz relevanten. Eine Auflistung aller Attribute findet sich im Anhang unter Kapitel B. In Summe erhält man nun aus 4 feste Attribute und 69 aggregierten Attribute - davon 17 für schmerzrelevante, 50 für nichtschmerzrelevante Action Units und 2 sonstige - insgesamt 73 Attribute. 17 4 Lernverfahren In diesem Kapitel werden die beiden Lernverfahren vorgestellt, die von unserer Projektgruppe mithilfe von RapidMiner umgesetzt wurden. Im ersten Unterkapitel wird das Verfahren des Entscheidungsbaumes vorgestellt. Dieses Unterkapitel beginnt mit einem theoretischen Teil, in dem die Eigenschaften und der Aufbau eines Entscheidungsbaumes dargestellt werden. Anschließend wird der Aufbau des während des Projektes erarbeiteten Entscheidungsbaumes erläutert und der fertige Entscheidungsbaum abgebildet und kurz besprochen. Das zweite Unterkapitel behandelt das k-nächste NachbarnVerfahren und beginnt ebenfalls mit einem theoretischen Abriss über das Verfahren. Anschließend wird anhand von drei Ansätzen dargestellt, welche unterschiedlichen Variationen über die Dauer des Projektes hin untersucht wurden. Darauffolgend werden die einzelnen Variationen miteinander verglichen und evaluiert. 4.1 Entscheidungsbaum Dieses Unterkapitel behandelt das Lernverfahren des Entscheidungsbaumes. Nach einem kurzen theoretischen Unterkapitel über die Charakteristiken eines Entscheidungsbaumes und seines Aufbaus wird das Zustandekommen des im Projekt erarbeiteten Baumes erläutert. In diesem zweiten Unterkapitel wird auch beschrieben, welche Action Units RapidMiner - im von uns gewählten Aufbau - als die relevantesten im Bezug auf das Vorhersagen von Schmerz erachtet. 4.1.1 Theoretischer Hintergrund Entscheidungsbäume gehören zu den am häufigsten verwendeten Techniken im Data Mining, was darin begründet ist, dass sie leicht zu verwenden und auch leicht zu verstehen sind. Ein Entscheidungsbaum macht sich den so genannten divide and conquer-Ansatz zu eigen. In jedem Schritt wird der Datensatz in verschiedene Teile aufgeteilt, wobei jeder Teil ungefähr einer der möglichen Klassen entsprechen sollte. In einem fertiggestellten Entscheidungsbaum stellt jeder innere Knoten einen Test für den Wert eines bestimmten Attributs und jedes Blatt die Entscheidung für eine bestimmte Klasse. Für einen neuen Fall wird dann von oben der Baum durchgegangen, bis er eines der Blätter erreicht. [HK13] 18 Zu Beginn wird eines der Attribute als Wurzelelement ausgewählt. Dann wird ein Ast für jeden möglichen Attributwert geschaffen und Instanzen werden in Teilmengen aufgeteilt, also eine Teilmenge pro Ast, der aus dem Knoten hervorgeht. Diese Schritte werden rekursiv für jeden Ast wiederholt, mit Instanzen, die an den Ast reichen. Der Konstruktionsprozess ist beendet, wenn alle Instanzen dieselbe Klasse haben. [HK13] Bei nominalen Attributen entspricht die Anzahl der Kinder in der Regel der Anzahl an möglichen Werten, die dieses Attribut annehmen kann. Wenn ein nominales Attribut in einem der inneren Knoten getestet wird, wird der Datensatz in der Regel an diesem Punkt entsprechend der möglichen Werte für dieses Attribut aufgeteilt. Ein nominales Attribut wird deswegen meist nicht öfter als einmal getestet, da alle Beispiele weiter unten im Baum denselben Wert haben würden. Bei numerischen Attributen wird dagegen meist getestet, ob der Wert des Attributs größer oder kleiner als ein bestimmter Wert ist. Das Attribut kann dabei mehrmals getestet werden. [HK13] Hofmann und Klinkenberg beschreiben die zentrale Frage beim Aufbau eines Entscheidungsbaumes als die Frage, welches Attribut als nächstes getestet werden sollte. Das Ziel beim Erstellen eines Entscheidungsbaumes sei es, einen kleinstmöglichen Baum als Ergebnis zu bekommen, da ein kleiner Baum Daten am besten erklären könne und, verglichen mit einem komplexeren Baum, die Wahrscheinlichkeit, dass Fehler für ungesehene Daten auftreten, bei einem kleinen Baum am geringsten sei. Eine gebräuchliche Methode zum Erreichen dieser Ziele ist, das Attribut als nächstes auszuwählen, das in Bezug auf die Attribute die reinste“ Teilmenge erzeugt. Um dies zu er” reichen wird in Rapidminer häufig der sogenannte information gain benutzt. Dieser Operator wächst mit der durchschnittlichen Reinheit der Teilmengen. Deswegen wir das Attribut gewählt, das pro Level für das größte information gain sorgt. [HK13] 4.1.2 Aufbau Der Aufbau des von uns benutzten Entscheidungsbaumes in RapidMiner orientiert sich an einem standardmäßigen Aufbau dieses Lernverfahrens. Auf der obersten Ebene werden die durch unsere Views generierten Daten mit der Parameteroptimierung verbunden. Innerhalb des Parameteroptimierungsoperators befindet sich der Validierungsoperator. Die unterste Ebene des Aufbaus ist in ein Trainings- und ein Testingfeld aufgeteilt. Im linken Trainingsfeld be19 findet sich der Entscheidungsbaumoperator und im Testingfeld der Operator zur Andwendung des Modells und der Performanceoperator. Folgende Einstellungen haben wir in den Optionen des Entscheidungsbaumes vorgenommen. Als Hauptkriterium haben wir den in Kapitel 3.1.1 erklärten information gain gewählt. Die maximale Tiefe des Baumes haben wir auf 9 gesetzt, die minimale Anzahl an Blättern auf 2 und die minimal size for split, die die Größte festlegt, ab der Knoten weiter aufgeteilt werden, auf 4. Mit diesen Einstellungen konnte nach einigen Versuchen herausgefunden werden, dass sich ein minimal gain von 0,001 für unsere Zwecke gut eignet. Wir haben Prepruning für die Generierung des Baumes aktiviert und das Pruning deaktiviert. Prepruning verhindert das weitere Aufteilen von Knoten, wenn dadurch der gesamte Baum nicht an Trennschärfe gewinnt. Die Anzahl der Prepruningalternativen haben wir auf 3 gesetzt. Abbildung 4: Die oberste Ebene des Entscheidungsbaumaufbaus, die die Versuchsdaten und den Operator zur Parameteroptimierung enthält. 20 Abbildung 5: Der Optimierungsoperator enthält die Batch-X-Validation. Abbildung 6: Der Aufbau der zweiten Unterebene des Entscheidungsbaumprozesses 21 Abbildung 7: Die Einstellungen für unseren Entscheidungsbaum Abbildung 8: Der fertige Entscheidungsbaum Der Entscheidungsbaum, den RapidMiner nach den gewählten Einstellungen generiert, enthält das Attribut amount0607 rel als Wurzelelement. Die beiden Attribute, die von diesem Element Kindsknoten bilden,sind wint0607 rel 22 und wdur43 rel. Der Testwert von amount0607 rel liegt bei 0,550. Beträgt der Wert dieses Attributs weniger als diesen Wert, wird auf wint0607 rel getestet. Bei Werten dieses Attributs unterhalb von 2,8 wird mit einer Klassengröße von 2 kein Schmerz vorhergesagt. Liegt der Wert von wint0607 rel über oder gleich 2,833, wird in einer Klasse der Größe 17 Schmerz vorhergesagt, die allerdings auch 5 Instanzen von kein Schmerz enthält. Beträgt der Wert von amount0607 rel 0,550 oder mehr, wird in der rechten Hälfte des Baumes wdur43 rel getestet. Beträgt dessen Wert weniger als 1,1, wird in einer Klasse der Größe 10 Schmerz vorhergesagt. Hier sind aber auch 4 Fälle von kein Schmerz enthalten. Liegt der Wert von wdur43 rel bei 1,150 oder höher, wird kein Schmerzempfinden vorhergesagt, in einer Klasse der Größe 210, die 31 falsch gelernte Schmerzsequenzen enthält. Dass der Baum nach Attributen testet, die das Vorkommen der Action Units 6, 7 und 43 beinhalten, stützt die in der Literatur vorhandene Annahme, dass diese Action Units eng mit Schmerz assoziiert sind. Die Bewegungen der Muskeln um das Auge (siehe Anhang A für eine kurze Erklärung dieser Action Units) bilden nach unseren Erkenntnissen also am entscheidendsten Schmerz im menschlichen Gesicht wieder. Abbildung 9: Die Tabellenansicht des RapidMiner PerformanceVector Die accuracy (die Korrektklassifikationsrate“) des Entscheidungsbaum” verfahrens liegt bei 80,34%. Allerdings liegt sowohl der Wert der precision als auch der des recalls ausschließlich bei den NO-Klassen, die kein Schmerzempfinden vorhersagen, besonders hoch. Wir gehen davon aus, dass dies in den Ausgangsdaten begründet ist, die vor allem Sequenzen beinhalten, die als nicht-Schmerz klassifiziert wurden. 4.2 k-nächste Nachbarn Dieses Unterkapitel behandelt das k-nächste Nachbarn Lernverfahren. Zuerst wird der theoretische Hintergrund des Verfahrens genauer erläutert und anschließend die im Projekt untersuchten Ansätze hinsichtlich ihres Aufbaues 23 und Ergebnisses beschrieben. Das Unterkapitel wird mit einer Evaluation der einzelnen Ansätze abgerundet. 4.2.1 Theoretischer Hintergrund Das k-nächste Nachbarn Lernverfahren befindet sich unter den zehn besten Maschinellen Lernverfahren [siehe WKQ+ 08] und spiegelt die Redewendung Gleich und Gleich gesellt sich gern“ in seiner Vorgehensweise wieder. Ein ” nicht klassifizierter Datensatz wird dabei anhand der Klassifikation seiner Nachbarn durchgeführt. Der Algorithmus lässt sich in eine Trainingsphase und eine Klassifikationsphase aufteilen und funktioniert wie folgt. Innerhalb der Trainingsphase werden die einzelnen Beispieldatensätze lediglich abgespeichert. Soll nun in der Klassifikationsphase ein neuer unbekannter Datensatz klassifiziert werden, wird zunächst der Abstand zu jedem zuvor gespeicherten Datensatz berechnet. Der unbekannte Datensatz wird der vorherrschende Klasse innerhalb der k nächsten bereits klassifizierten Datensätze zugeordnet. Dieser Algorithmus gehört zur Kategorie Lazy-Learning ( träges Ler” nen“), da in der Trainingsphase nur Datensätze gespeichert werden und kein Klassifikationsmodell konstruiert wird. Dies hat zum einen den Vorteil, dass jegliche Information der Trainingsdatensätze in die Berechnung für die Klassifikation mit aufgenommen werden. Dies führt zu einer sehr guten Klassifikation. Zudem ist die Trainingsphase mit quasi keinen Kosten verbunden, da wie oben erwähnt nur Daten abgespeichert werden. Ein Nachteil besteht jedoch in den hohen Kosten für eine Klassifikation. Eine große Anzahl an Attributen pro Objekt und viele Trainingsdaten wirken sich stark negativ auf die Kosten für eine Klassifikation aus. Aus heutiger Sicht sind die hohen Kosten einer Klassifikation dank leistungsfähiger Hardware kein Problem mehr [siehe CD07]. Der oben erwähnte Algorithmus des Entscheidungsbaums gehört hingegen der Kategorie Eager-Learning ( Eifriges Lernen“) an. ” Eine Konfiguration des Lernverfahrens lässt sich an zwei Stellen vornehmen. Zum einen durch die Wahl einer Abstandsfunktion und zum anderen durch das Setzten des k Wertes. Die Klassifikation fällt je nach verwendeter Abstandsfunktion unterschiedlich aus. Folgende zwei Abstandsfunktionen finden häufig Verwendung: 24 Euklidischer Abstand v u N uX d(x, y) = t (xi − yi )2 Manhattan-Distanz d(x, y) = N X |xi − yi | i=0 i=0 In bestimmten Fällen ist es zielführender wenn man die Abstandsfunktion gewichtet, sodass Datensätze die näher am zu klassifizierenden Datensatz liegen stärker ins Gewicht fallen als Datensätze, die weiter entfernt sind. Dies ist besonders vorteilhaft, wenn die Trainingsdatensätze nicht gleichverteilt sind. Neben der Wahl des verwendeten Abstandsmaßes lässt sich die Klassifikation über die Wahl des k Wertes beeinflussen. Dieser gibt die Anzahl der nächsten Knoten an, welche für die Klassifikation betrachtet werden. Hierbei führt ein kleiner k Wert dazu, dass Rauschen innerhalb der Trainingsdatensätze einen großen Einfluss auf die Klassifikation besitzt und führt somit zu einer Überanpassung. Ein großer Wert für k hingegen führt zu einer Unteranpassung und zu einer großen Rechenauslastung. Die Wahl eines optimalen k Wertes hängt von der Problemdomäne, den zur Verfügung stehenden Trainingsdatensätzen und der verwendeten Abstandsfunktion ab. Mithilfe einer Parameteroptimierung lässt sich der k Wert in der Praxis jedoch auf das Problem hin optimieren. Abbildung 10: K-Nächste-Nachbarn in einem zweidimensionalen Datensatz Die in Abbildung 10 dargestellte zweidimensionale Punktemenge repräsentiert einen Trainingsdatensatz mit zwei möglichen Klassen. Ein unbekannter Datensatz - in der Abbildung als grüner Punkt dargestellt - soll nun mithilfe 25 des k-Nächste-Nachbarn Verfahrens klassifiziert werden. Als Abstandsfunktion wird der Euklidische Abstand verwendet. Bei einem k Wert von vier wird der unbekannte Datensatz als rotes Dreieck klassifiziert, da drei der vier nächsten Datensätze ebenso als rotes Dreieck klassifiziert wurden. Bei einem k Wert von neun wird dieser als blaues Quadrat klassifiziert, da die Mehrzahl der neun nächsten Datensätze als blaues Quadrat klassifiziert wurden. 4.2.2 Erster Ansatz Der erste Ansatz wurde wie folgt umgesetzt: Die Versuchsdaten wurden mithilfe des Retrieve Operators (siehe Anhang C.1) geladen. Um die einzelnen Parameter für den später folgenden k-NN Operator (siehe Anhang C.3) nicht händisch einzustellen wurde eine Parameteroptimierung mithilfe des Optimize Parameters (Grid) Operators (siehe Anhang C.5) umgesetzt. Innerhalb des Optimierungsprozesses wurde der X-Validation Operator (siehe AnhangC.6) verwendet. Die Anzahl der Validierungen wurde auf 10 gesetzt, es wurde keine average performane verwendet, sampling type war stratisified sampling, kein local random seed. Im Trainingsbereich befindet sich der eben erwähnte k-NN Operator, im Testing Bereich ein Apply Model Operator (siehe Anhang C.2) und Performance (Classification) Operator (siehe Anhang C.7). In der Parameteroptimierung wurde auf einen k Wert zwischen inklusive 1 und 100 und auf weighted votes geprüft. Die Performanz verwendet als Hauptkriterium den accuracy Wert. Abbildung 11: k-NN erster Ansatz: Hauptprozess 26 Abbildung 12: k-NN erster Ansatz: Optimierungsprozess Abbildung 13: k-NN erster Ansatz: Validierungsprozess Für diese Konstellation ergab die Parameteroptimierung einen Wert für k von 7 und eine Gewichtung der Abstandsfunktion. Dies führte zu einer accuracy von 82.01% und der in Tabelle 2 dargestellten Konfusionsmatrix. Tabelle 2: Konfusionsmatrix des ersten k-NN Ansatzes true YES true NO class prediction pred. YES 13 7 65.00% pred. NO 36 183 83.56% class recall 26.53% 96.32% 4.2.3 Zweiter Ansatz Der zweite Ansatz erweitert den ersten Ansatz um eine Gewichtung und anschließende Skalierung der Attribute mithilfe des Information Gain. Der Informationsgehalt einzelner Attribute ist unterschiedlich groß, jedoch wird jedes Attribut vom k-NN Algorithmus gleich bewertet. Um nun einzelne Attribute unterschiedlich stark zu gewichten, werden diese zuerst mithilfe des 27 Weight by Information Gain Operators (siehe Anhang C.8) gewichtet. Anschließend werden die Attribute mit dem vorher berechneten Information Gain skaliert. Dies geschieht mithilfe des Scale by Weights Operators (siehe Anhang C.10). Anschließend gelangt der veränderte Datensatz in die Parameteroptimierung, welche identisch mit der aus dem ersten Ansatz ist. Abbildung 14: k-NN zweiter Ansatz: Hauptprozess Für diese Konstellation ergab die Parameteroptimierung einen Wert für k von 13 und eine Gewichtung der Abstandsfunktion. Dies führte zu einer accuracy von 81.61% und der in Tabelle 3 dargestellten Konfusionsmatrix. Tabelle 3: Konfusionsmatrix des zweiten k-NN Ansatzes true YES true NO class prediction pred. YES 9 4 69.23% pred. NO 40 186 82.30% class recall 18.37% 97.89% 4.2.4 Dritter Ansatz Im dritten Ansatz wird eine Principal Component Analysis ( Hauptkompo” nentenanalyse“) eingesetzt, um die gegebenen Datensätze zu strukturieren. Da der zweite Ansatz eine schlechtere Performanz als der Erste aufwies, wird nur der erste Ansatz um die PCA erweitert. Die Hauptkomponentenanalyse ist ein statistisches Verfahren und dient der Strukturierung der Datensätze. Dabei werden die einzelnen Datensätze 28 in einen kleiner dimensionierten Raum transformiert, mit dem Ziel möglichst wenig Information zu verlieren. Im Vergleich zu anderen Verfahren der Dimensionsreduktion wird hierbei jedoch nicht die Anzahl der existierenden Attribute verringert, sondern diese durch neue Attribute ersetzt. Diese sogenannten Hauptkomponenten sind Linearkombinationen der ursprünglichen Variablen und bilden somit die Achsen des neuen Koordinatensystems. Die einzelnen Hauptkomponenten klären jeweils die Varianz innerhalb der Datensätze, wobei die erste Hauptkomponente die meiste Varianz erklärt. Je korrelierter die Ausgangsvariablen sind, desto besser lassen sich diese mithilfe der PCA zusammenfassen. Wenn die Ausgangsdaten jedoch unkorreliert sind ist eine PCA demzufolge nicht sinnvoll [siehe HK13, Kapitel 4]. Da die PCA nur mit numerischen Werten rechnen kann, muss zunächst das Attribut Geschlecht von binominal nach numerisch umgerechnet werden. Dies wird in RapidMiner mithilfe des Nominal To Numerical Operators (siehe Anhang C.11) umgesetzt. Im Anschluss wird vor den k-NN Operator der PCA Operator (siehe Anhang C.9) angefügt. Die Parameteroptimierung wurde um alle Parameter der PCA erweitert. Abbildung 15: k-NN dritter Ansatz: Hauptprozess 29 Abbildung 16: k-NN dritter Ansatz: Optimierungsprozess Für diese Konstellation ergab die Parameteroptimierung einen Wert für k von 5, eine Gewichtung der Abstandsfunktion und einen Wert von 0.9941 für die Varianzschwelle der PCA. Dies führte zu einer accuracy von 82.01% und der in Tabelle 4 dargestellten Konfusionsmatrix. Tabelle 4: Konfusionsmatrix des dritten k-NN Ansatzes true YES true NO class prediction pred. YES 12 6 66.67% pred. NO 37 184 83.26% class recall 24.49% 96.84% 4.2.5 Evaluation Alle drei untersuchten k-NN Ansätze lieferten vergleichbar gute Ergebnisse bei ähnlicher Konfiguration. In jedem k-NN Ansatz wurde eine Gewichtung der Abstandsfunktion als optimal ermittelt. Die für den Parameter k ermittelten Werte lagen dabei zwischen 5 und 13. Der accuracy Wert unterschied sich dabei maximal um ein halbes Prozent und lag im Mittel bei 81.88%. Über alle Ansätze hinweg erkennt man jedoch eine deutliche Ungleichverteilung in der Klassifizierung. Die Klasse Schmerz“ wurde allgemein wesent” lich schlechter erkannt als die Klasse kein Schmerz“. So lag der class recall ” ( Trefferquote“) für die Klasse kein Schmerz“ im Durchschnitt bei 97.02%, ” ” jedoch für die Klasse Schmerz“ nur bei durchschnittlich 23.13%. ” Die Begründung für den ungleichen class recall könnte in den Ausgangsdaten liegen. Lediglich 21% der 239 Ausgangsdaten stammen aus Schmerzexperimenten, wohingegen 79% aus Nicht-Schmerzexperimenten stammen. 30 Dies legt den Schluss nahe, dass die ungleiche Klassifikation des k-NN Lernverfahrens durch die Ungleichverteilung innerhalb der Trainingsdaten begründet ist. Diese Hypothese ließe sich jedoch nur mit mehr Trainingsdaten aus Schmerzexperimenten überprüfen. Der im ersten Ansatz vorgestellte Versuchsaufbau stellt die einfachste aber zugleich effektivste Umsetzung - mit einer accuracy von 82.01% - aus den drei untersuchten k-NN Ansätzen dar. Somit bietet das k-nächste Nachbarn Lernverfahren für diese Art der hier untersuchten Daten einen soliden Klassifikator. 31 5 Fazit Durch die in diesem Projektbericht dargestellten Ergebnisse, ist das Ziel des Projekts, zu untersuchen, wie sich Gesichtsausdrücke von Menschen, die Schmerz empfinden, von neutralen Gesichtsausdrücken und Gesichtsausdrücke, die aus Ekel entstehen, unterscheiden, nur zum Teil erreicht worden. Zwar liefern die beiden gewählten Lernverfahren jeweils eine gute Korrektklassifikationsrate, allerdings wird klar, dass sie vor allem mit den Daten besonders gut umgehen können, die aus den Sequenzen stammen, während denen kein Schmerz induziert wurde. Wie bereits im letzten Unterkapitel beschrieben, scheint dieser Umstand in einer Ungleichverteilung innerhalb der Ausgangsdaten begründet zu sein. Diese Vermutung wurde durch die Tatsache bestärkt, dass die beiden anderen Projektgruppen auf ähnliche Ergebnisse gekommen sind. Als positiv zu werten ist, dass die im entwickelten Entscheidungsbaum als besonders relevant erachteten Action Units aus dem Facial Action Coding System alle zu den Action Units gehören, die bereits in der Fachliteratur als besonders schmerzrelevante AUs aufgelistet wurden und unser Projektergebnis somit die Ergebnisse der bisherigen Fachliteratur bestätigt. Während des Projektes galt es, mit einigen Problemen umzugehen und Besonderheiten, die etwa durch den Datensatz entstanden sind, zu beachten. Die ersten aufgestellten Entscheidungsbäume wiesen eine extreme Verzweigung auf und waren durch ihren detaillierten Charakter im Grunde nicht lesbar oder auswertbar. Der Grund hierfür war, dass das Attribut der duration in RapidMiner als Typ polynomial verwendet wurde. Um mit diesem Umstand umzugehen, hätten wir entweder mit speziellen Operatoren in RapidMiner arbeiten können, oder in unseren SQL Views eine Umwandlung des Datentyps in Millisekunden durchführen. Wir haben uns für die zweite Alternative entschieden und den Datensatz danach neu in RapidMiner importiert. Bezogen auf die Frage, welches Lernverfahren dem anderen nun vorzuziehen sei, darf nicht allein dessen Korrektklassifikationsrate betrachten werden. Die Entscheidung für ein bestimmtes Lernverfahren ergibt sich meist mehr aus dem jeweiligen Anwendungsfall. Der Entscheidungsbaum hat den Vorteil, dass das entstandene Modell von Menschen verständlich und anwendbar ist. Demzufolge ist dieses Lernverfahren von Vorteil wenn ein psychologisches Klassifikationsmodell aufgestellt werden soll mit Regeln, die für Menschen 32 verständlich und einfach umzusetzen sind. Beim k-nächste Nachbarn Lernverfahren wäre dies nicht der Fall, da dieses kein internes Abstraktionsmodell erstellt. Es könnte daher eher in der automatischen Erkennung von Schmerz mithilfe eines Computers verwendet werden. 33 Literatur [CD07] Cunningham, Pádraig ; Delany, Sarah J.: k-Nearest Neighbour Classifiers. 2007 [EF78] Ekman, P. ; Friesen, W.: Facial Action Coding System: A Technique for the Measurement of Facial Movement. Palo Alto : Consulting Psychologists Press, 1978 [For76] Fordyce, W. E.: Behavioral methods for chronic pain and illness. (1976) [Fun03] Funke, J.: Unterrichtsmaterialien zur Vorlesung Allgemeine Psychologie. http://www.psychologie.uni-heidelberg.de/ ae/allg/lehre/wct/e/E30/E3003mes.html. Version: 2003. – [Online; Stand 26.02.2016] [HK13] Hofmann, M. ; Klinkenberg, R.: RapidMiner: Data Mining Use Cases and Business Analytics Applications. Taylor & Francis, 2013 (Chapman & Hall/CRC Data Mining and Knowledge Discovery Series) [LCL+ 09] Lucey, Patrick ; Cohn, Jeffrey ; Lucey, Simon ; Matthews, Iain ; Sridharan, Sridha ; Prkachin, Kenneth M.: Automatically Detecting Pain Using Facial Actions. In: International Conference on Affective Computing and Intelligent Interaction and workshops : [proceedings]. ACII (Conference) (2009) [Mie13] Mierswa, Ingo: The core of RapidMiner is open source. http://rapidminer.com/ the-core-of-rapidminer-is-open-source/. Version: 2013. – [Online; Stand 29.02.2016] [Mit97] Mitchell, Thomas M.: Machine Learning. McGraw-Hill, Inc., 1997 [Psy15a] Psychologie, Dorsch L.: Facial Action Coding System (FACS) - Dorsch Lexikon der Psychologie - Verlag Hans Huber. https://portal.hogrefe.com/dorsch/ facial-action-coding-system-facs/. Version: 2015. – [Online; Stand 26.02.2016] 34 [Psy15b] Psychologie, Dorsch L.: Schmerz - Dorsch Lexikon der Psychologie - Verlag Hans Huber. https://portal.hogrefe.com/ dorsch/schmerz/. Version: 2015. – [Online; Stand 29.02.2016] [Sie15] Siebers, Michael: Projekt “Das Schmerzgesicht” - Themenvorstellung. 15. Oktober 2015 [SSS+ 12] Schmid, Ute ; Siebers, Michael ; Seus̈, Dominik ; Kunz, Miriam ; Lautenbacher, Stefan: Applying Grammar Inference To Identify Generalized Patterns of Facial Expressions of Pain. In: Heinz, Jeffrey (Hrsg.) ; Higuera, Colin de l. (Hrsg.) ; Oates, Tim (Hrsg.): JMLR: Workshop and Conference Proceedings, 2012 [TKC01] Tian, Y. I. ; Kanade, T. ; Cohn, J. F.: Recognizing action units for facial expression analysis. In: IEEE Transactions on Pattern Analysis and Machine Intelligence 23 (2001), Feb, Nr. 2, S. 97–115. http://dx.doi.org/10.1109/34.908962. – DOI 10.1109/34.908962. – ISSN 0162–8828 [WKQ+ 08] Wu, Xindong ; Kumar, Vipin ; Quinlan, J R. ; Ghosh, Joydeep ; Yang, Qiang ; Motoda, Hiroshi ; McLachlan, Geoffrey J. ; Ng, Angus ; Liu, Bing ; Philip, S Y. u. a.: Top 10 algorithms in data mining. In: Knowledge and information systems 14 (2008), Nr. 1, S. 1–37 35 A Tabelle relevanter Action Units Tabelle 5: Beschreibung relevante Action Units Action Unit 1 2 4 5 6 7 43 45 46 B Beschreibung Heben der Augenbrauen innen Heben der Augenbrauen außen Zusammenziehen der Augenbrauen Heben des oberen Augenlides Zusammenziehen des äußeren Teils des Ringmuskels um die Augen Zusammenziehen des inneren Teils des Ringmuskels um die Augen Absenken des oberen Augenlides (43E = Augen geschlossen) Blinzeln (mit beiden Augen) Zwinkern (mit einem Auge) Verwendete Attribute 1 sequence_id , fold , gender , age , 2 amount , pain 3 amount04_rel , wdur04_rel , wint04_rel , wdurint04 , wdurint04_rel , 4 amount0607_rel , wdur0607_rel , wint0607_rel , wdurint0607 , wdurint0607_rel , 5 amount0910_rel , wdur0910_rel , wint0910_rel , wdurint0910 , wdurint0910_rel , 6 amount43_rel , wdur43_rel , 7 amount01_rel , wdurint01_rel , 8 amount02_rel , wdurint02_rel , 9 amount05_rel , wdurint05_rel , 10 amount12_rel , wdurint12_rel , 11 amount14_rel , wdurint14_rel , 12 amount15_rel , wdurint15_rel , 13 amount16_rel , wdurint16_rel , 14 amount17_rel , wdurint17_rel , 15 amount18_rel , wdurint18_rel , 16 amount19_rel , wdurint19_rel , 17 amount20_rel , wdurint20_rel , 36 18 19 20 21 22 23 24 25 26 27 28 29 30 31 amount22_rel , amount23_rel , amount24_rel , amount25_rel , amount26_rel , amount28_rel , amount29_rel , amount30_rel , amount31_rel , amount32_rel , amount34_rel , amount37_rel , amount38_rel , amount39_rel , C C.1 wdurint22_rel , wdurint23_rel , wdurint24_rel , wdurint25_rel , wdurint26_rel , wdurint28_rel , wdurint29_rel , wdurint30_rel , wdurint31_rel , wdurint32_rel , wdurint34_rel , wdurint37_rel , wdurint38_rel , wdurint39_rel RapidMiner Operatoren Retrieve Mithilfe des Retrieve Operators können Objekte aus dem Datenrepository geladen werden. Die geladenen Objekte enthalten neben den reinen Daten auch Metadaten. Demzufolge besitzt der Operator keine Eingangsports, sondern lediglich einen Ausgangsport. Quelle: RapidMiner Documentation, http://docs.rapidminer.com/studio/operators/ data_access/retrieve.html (Stand 29.03.2016) 37 C.2 Apply Model Der Apply Modell Operator wendet ein gelerntes Modell auf eine Menge von Datensätzen an. Die Eingangsports erhalten das gelernte Modell und die Menge an Datensätzen. Die Ausgangsports enthalten die mit Label versehenen Eingangsdaten und das verwendete Model. Quelle: RapidMiner Documentation, http://docs.rapidminer.com/studio/operators/ scoring/apply_model.html (Stand 29.03.2016) C.3 k-NN Der k-NN Operator generiert ein k-nächste Nachbarn Modell basierend auf den vorhandenen Trainingsdaten. Der Eingansport enthält die Trainingsdaten und die Ausgangsports geben das generierte Modell und die verwendeten Trainingsdaten weiter. Quelle: RapidMiner Documentation, http://docs.rapidminer.com/studio/operators/ modeling/predictive/lazy/k_nn.html (Stand 29.03.2016) 38 C.4 Decision Tree Der Decision Tree Operator generiert auf Basis der vorhandenen Trainingsdaten ein Entscheidungsbaummodell. Als Input erwartet der Operator den Output des Retrieve Operatoren. Der Operator hat zwei Outputs, zuoberst den model-Output, der den Entscheidungsbaum liefert und das Anwenden des Entscheidungsbaummodells auf neue Daten möglich macht. Wie der k-NN Operator auch, gibt der Decision Tree Operator ebenfalls die Trainingsdaten unverändert weiter, damit sie in weiteren Operatoren verarbeitet werden können oder damit die Daten im Endresultat verwendet werden können. Quelle: RapidMiner Documentation, http://docs.rapidminer.com/studio/operators/ modeling/predictive/trees/parallel_decision_tree.html (Stand 29.03.2016) C.5 Optimize Parameters (Grid) Der Optimize Parameters (Grid) Operator optimiert die Parameterbelegung für einen gewählten Unterprozess. Für jede mögliche Parameterbelegung wird dabei der Unterprozess ausgeführt und anhand gewählter Performanzkriterien die beste Belegung ermittelt. Je größer die Anzahl der möglichen Parameterbelegungen, desto mehr Zeit benötigt die Parameteroptimierung. Die 39 Eingansports werden an den Unterprozess weitergeleitet und sind in ihrer Anzahl nicht begrenzt. Die Ausgangsports enthalten den Performanzvektor, die optimale Belegung der Parameter und restliche vom Unterprozess weitergeleiteten Daten. Quelle: RapidMiner Documentation, http://docs.rapidminer.com/studio/operators/ modeling/optimization/parameters/optimize_parameters_grid.html (Stand 29.03.2016) C.6 X-Validation Der X-Validation Operator führt eine Cross-Validation durch um die statistische Performanz eines Lernverfahrens in der Praxis für eine Menge an Datensätzen zu schätzen. Dabei werden die Datensätze in k gleichgroße Teile zerlegt. Nun stehen der Reihe nach k-1 Teile dem Lernverfahren als Trainingsdaten zur Verfügung und das Lernverfahren wird auf den letzte Teil angewandt. In den Eingangsport werden die Trainingsdaten weitergeleitet. Die Ausgangsports enthalten das generierte Modell des Lernverfahrens, die verwendeten Trainingsdaten und ein durchschnittlicher Performanzvektor. Quelle: RapidMiner Documentation, http://docs.rapidminer.com/studio/operators/ validation/x_validation.html (Stand 29.03.2016) 40 C.7 Performance (Classification) Der Performance (Classification) Operator wird zur Evaluation der statistischen Performanz einer Klassifikation verwendet. Der Eingangsport enthält die mit Label versehenen zu klassifizierenden Datensätze. Die Ausgangsports enthalten einen Performanzvektor und die zu klassifizierenden Datensätze. Quelle: RapidMiner Documentation, http://docs.rapidminer.com/studio/operators/ validation/performance/predictive/performance_classification.html (Stand 29.03.2016) C.8 Weight by Information Gain Der Weight by Information Gain Operator berechnet die Relevanz der Attribute basierend auf dem Information Gain ( Informationsgewinn“) und ge” wichtet diese passend. Der Eingangsport erhält die Trainingsdatensätze. Die Ausgangsports beinhalten die Gewichte der einzelnen Attribute und die originalen Trainingsdatensätze. Quelle: RapidMiner Documentation, http://docs.rapidminer.com/studio/operators/ modeling/feature_weights/weight_by_information_gain.html (Stand 29.03.2016) 41 C.9 Principal Component Analysis Der Principal Component Analysis Operator wendet eine Hauptkomponentenanalyse auf die Trainingsdatensätze an. Dabei kann der zu erfassende Anteil der Varianz oder die Anzahl der Hauptkomponenten eingestellt werden. Der Eingangsport erhält die Trainingsdatensätze auf welche die PCA angewandt werden soll. Die Ausgangsports beinhalten das Ergebnis der PCA und die originalen Trainingsdatensätze. Quelle: RapidMiner Documentation, http://docs.rapidminer.com/studio/operators/ cleansing/dimensionality_reduction/principal_component_analysis. html (Stand 29.03.2016) C.10 Scale by Weights Der Scale by Weights Operator skaliert die einzelnen Daten aus einem Datensatz mit den gegebenen Gewichten. Die Eingangsports erhalten den zu skalierenden Datensatz und die zugehörigen Gewichte. Der Ausgangsport enthält den manipulierten Datensatz. Quelle: 42 RapidMiner Documentation, http://docs.rapidminer.com/studio/operators/ cleansing/normalization/scale_by_weights.html (Stand 29.03.2016) C.11 Nominal To Numerical Der Nominal To Numerical Operator kann verwendet werden um den Typ eines Attributes von Nominal nach Numerisch zu konvertieren. Die einzelnen Daten der Attribute werden automatisch konvertiert. In den Einstellungen des Operators können die Variablen ausgewählt werden die konvertiert werden sollen. Der Eingangsport enthält den zu verändernden Datensatz. Die Ausgangsports enthalten den veränderte Datensatz und den originalen Datensatz. Quelle: RapidMiner Documentation, http://docs.rapidminer.com/studio/operators/ data_transformation/type_conversion/numerical_to_binominal.html (Stand 29.03.2016) 43