Überblick

Anwendungsklassen von Maschinellen Lernen

Motivation

Dieser Kurs mit interaktiven Übungen soll:

Einen anwendungsorientierten Einstieg in die Datenanalyse und Interpretation mit Verfahren des Maschinellen Lernens bieten;

Einen Überblick über gängige und weniger gängige Verfahren geben;

Interaktive Tutorials und Übungen mit zielgruppenorientierten Fallbeispielen sollen Verfahren begreifbar und erfahrbar machen!

Inhalte

Die Ontologie des Kurses besteht aus den Bausteinklassen:

Modelle (Datenstrukturen)

Verfahren (Algorithmen: Training, Test, Inferenz)

Überwachtes Training

Nichtüberwachtes Training

Weiterhin aus den Anwendungs- und Datenklassen:

Sensorische und experimentelle Daten (Mess- und Prüftechnik)

Erhebungs- und Umfragedaten (Soziologie) ⇒ Der Mensch als Sensor!

Metrische und Kategorische Variablen

Die Grenzen der Datenklassen sind fließend! Material, Maschine und Mensch als Sensoren!

Abbildung 1-1. Gemeinsame Verfahren und Modelle → Unterschiedliche Daten, Aussagen, Anwendungen

Organisation der Veranstaltung

Vorlesungen mit integrierten Übungen

Vermittlung der Grundlagen

Unmittelbare Übung und Anwendung der Grundlagen mit einfachen Übungen

Asynchrone Videos und Tutorials

Auch offline seh- und hörbar

Gemeinsame Treffen mit Videokonferenz (Zoom, falls erforderlich)

Interaktive Tutorials und Übungen mit NoteBook und WorkBook (NoteBook-2) im Web Browser!

Offline ausführbar (evtl. werden Daten von einem Server geladen)

Texte und Folien

Vorlesungsskript (am Anfang: für jedes Modul/jede Einheit) als Ebook

Das Vorlesungsskript gibt die Folieninhalte 1:1 wieder (nur anderes Layout und kompaktiert)

Alle Folien im HTML Format (auch offline lesbar)

Begleitende Literatur (Bücher im PDF)

Services

Web Service: Informationen, Dokumente, Folien, Videos:
https://edu-9.de/Lehre/ml3k

Dokuwiki: News, Informationen und Links, Chats, Videostreams:
https://ag-0.de/dokuwiki

Registrierung und Login erforderlich

Interaktiv!

Videos: https://edu-9.de/Lehre/ml3k

Prüfungsleistungen

Eine mündliche Abschlussprüfung (20 Minuten); oder alternativ 2.

Eine schriftliche Seminararbeit (Experimentelle Arbeit oder Literaturrecherche)

15-20 Seiten PDF

Grundstruktur: Erarbeitung des wissenschaftlichen Standes, Diskussion und Bewertung, Beschreibung und Dokumentation der experimentellen Arbeit, Diskussion von Ergebnissen (bei experimenteller Arbeit), Zusammenfassung

Bearbeitung und Abgabe der digitalen Übungen (JSON Dateien)

Punktesystem: 0/1/2 für Aufgaben und gesamten Übungszettel

Es muss jeder Übungszettel eingereicht werden und wenigstens einen Punkt erhalten.

Literatur

Zur Vertiefung!

S\. Richter, Statistisches und maschinelles Lernen. Springer Spektrum, 2019.

E\. Alpaydın, Introduction to Machine Learning. MIT Press, 2010.

Programmierung

Axel Rauschmayer, JavaScript For Impatient Programmers.

M\. Haverbeke, Eloquent JavaScript. 2018.

Domainspezifische Literatur

J\. Bell, Machine Learning - Hands-On for Developers and Technical Professionals. John Wiley & Sons, Ltd, 2015.

P\. Attewell and D. B. Monaghan, Data mining for the social sciences : an introduction. University of California Press, 2015.

Software

NoteBook

Interaktive vorwiegend praktische Übungen werden rein digital im Web Browser mit den NoteBooks durchgeführt

Ein digitale Übung (oder Turorial) besteht aus:

Textabschnitten

Informationsblöcken

Aufgaben (mit Lösungen)

Editoren für Programmcode

Ausführungsterminals für Programmcode

uvm.

Abbildung 1-2. Ein NoteBook im WEB Browser

NoteBook Konzept

Top-down Bearbeitungsfluss

Statische Struktur mit dynamischen Inhalten

Alle dynamischen Inhalte können in einer JSON Datei gespeichert und wieder geladen werden

Es können Notizzettel überall im NoteBook angeheftet werden (werden auch gespeichert)

Musterlösungen (dynamische Inhalte) können eingebettet und mit einem Schlüssel freigeschaltet werden

WorkBook

Dynamische Struktur mit dynamischen Inhalten

Ein WorkBook besteht aus

Textabschnitten (MarkDown)

Codesnippets mit Editoren und Ausgabekonsolen

Speziellen Snippets wie editierbare Tabellen oder allg. Formulare

Programmierung in JavaScript, aber menügesteuerte und geführte Auswahl von Ausführungsblöcken mit einer kursspezigischen Bibliothek

Alle dynamischen Inhalte und Daten können im JSON Format gespeichert und wieder geladen werden

Die NoteBook Konzepte (Editierbare Aufgaben und Einreichungs-/Hilfefunktion) sind jetzt auch hier integriert

Abbildung 1-3. Ein WorkBook Beispiel

Machinelles Lernen

Schlüsselwörter und Begriffe

Welche Begriffe werden häufig bei ML genannt:

Anwendungsgebiete

Welche Anwendungsgebiete gibt es:

Fragestellungen

Welche Fragestellungen (zu lösende Probleme) gibt es:

Inhalte

Eingabe x: Daten (Attribute) und Eigenschaften (Analyse)

Sensoren: Erfassung von Daten, S(welt): welt → x

Ausgabe y: Numerische und kategorische Werte

Metriken und Taxonomie: Grundlagen des Maschinellen Lernens

Algorithmen und Modelle: f(x): x → y

Training, Lernen, Prädiktion, Test M(<x,y>): <x,y> → f

Anwendungen

Geschichte

[www.pinterest.com]

Abbildung 1-4. Die Geschichte fokussiert auf Neuronale Netze. Es gibt mehr.

Modelle

Entscheidungsbäume (gerichtete Graphen)

Funktionen (z.B. Polynome)

Funktionsgraphen (z.B. künstliche neuronale Netzwerke)

Algorithmen

Entscheidungsbäume: C4.5, ID3, IDT, Regressionsbäume

Teilungsverfahren (mit Entropie, Informationsgewinn, usw.)

Lineare und nichtlineare Regression, Support Vector Machines (SVM)

Least Square Fit (iterativ, mehrschrittig)

Lineare Algebra (numerisch, einschrittig)

Datenanalyse!: Hauptkomponentenanalyse, statistische Methoden

Bayesien Netzwerke mit statistischem Methoden (probabalistische Verfahren)

Rückwärtspropagation von Fehlergradienten (vor allem KNN) aus Vorwärtsberechnung

Überwachte und nichtüberwachte Trainingsverfahren

Zustandsbasierte Funktionen (LSTM) für Datenserien

Datenanalyse und Eigenschaftsselektion

Wir unterscheiden folgende Klassen von Eigenschaften in der Datenanalyse und Prädiktion (Merkmale, Features):

Eigenschaften der Eingabedaten, vor allem dominante Eigenschaften abgeleitet aus den Eingabedaten x mit starker y Korrelation

Beispiel: Charakteristische Signalfrequenz einer Betriebsschwingung die auf einen Schaden hindeutet

Zieleigenschaften, also Werte der Zielvariable y

Numerische Eigenschaften (kontinuierlich oder diskret), z.B. Materialdichte, Schadensposition, Bruchdehnung

Kategorische Eigenschaften, Z.B. Farbe, Tierart, Schadensklasse, Entscheidungen

Häufig sind die rohen sensorischen Daten(variablen) zu hochdimensional und noch abhängig voneinander (schwache Korrelation mit y)

Reduktion auf wesentliche Merkmale kann ML Qualität deutlich verbessern!

Häufig besitzen einzelne Sensorvariablen keine oder nur geringe Aussagekraft (geringe Entscheidbarkeitsqualität) → geringe bis keine Korrelation mit y oder sogar Antikorrelation (Störung)

Datenverarbeitung

Die Daten die als Grundlage für die Induktion (Lernen) und die Deduktion (Applikation/Inferenz der Zielvariablen) müssen i.A. vorverarbeitet werden → Merkmalsselektion

Abbildung 1-5. Maschinelles Lernen ist ein Werkzeug der Datenanalyse und des Data Minings [6]

Modellbildung

Abbildung 1-6. Kausale vs. Prädiktive Modellbildung und Physikalische Modelle versa algorithmisch bestimmte Modelle (Hypothesen) [100]

Induktion und Deduktion

Abbildung 1-7. Ablauf Überwachtes Lernen mit Trainings- (Induktion) und Applikationsphasen (Deduktion). Aber: Meistens keine Verallgemeinerung! [6]

Daten und Sensoren

Metriken von Daten

Metriken von Aussagen

Sensoren als Datenquellen

Messverfahren und Sensorsysteme

Daten

Daten sind die Grundlage für die Modellbildung und Modelltestung

Daten können aus einer Vielzahl von Quellen stammen

Experiment

Simulation

Feldstudie

Abgeleitet aus anderen Datensätzen:
MapAndReduce(D): D → D'

Allgemein kann man Daten und deren Werte unterteilen in:

Skalare Werte, wie Temperatur, Alter, usw.

Serien von Skalaren Werten, wie Zeitserien

Vektorielle Werte wie Bilder

Zusammengesetzte Daten, also Datenstrukturen (Records)

Daten haben daher eine Dimensionalität 𝕏N, wobei die Wertemenge 𝕏 einer Dimension aus den ganzen ℕ, reelen ℝ, der Zeit 𝕋 oder kategorischen Wertemengen 𝕊 bestehen kann (oder Untermengen davon).

Datenreduktion

Ziel der Datenanalyse ist die Reduktion von Eingabedaten bezüglich Größe und Dimensionalität:

image-placeholder
(2-1)

Materialwissenschaften und Messtechnik:

Häufig metrische Eingabevariablen

Häufig metrische oder kategorische Ausgabevariablen (inkl. Boolescher Variablen)

1: function isRaining(temp,sunrad,moisture) =
2:   temp < 0 ? → false
3:   temp > 40 ? → false
4:   (sunrad-moisture) > 30? → false
5:   true

Beispiel 2-1. Beispiel aus der Messtechnik mit einer Datenreduktionsfunktion ℝ^3^ → 𝔹

Sozioalwissenschaften:

Häufig kategorische und metrische Eingabevariablen

Häufig kategorische Ausgabevariablen (inkl. Boolescher Variablen)

1: function isStrong(age,weight,length) =
2:   age < 10 ? → false
3:   weight > 200 ? → false
4:   (weight/length) > 30? → false
5:   true

Beispiel 2-2. Beispiel einer Datenreduktionsfunktion ℝ^3^ → 𝔹

Datenklassen

Numerische und Metrische Werte

Das sind Werte die abzählbar sind und wo man Relationen (wie kleiner oder größer) sinnvoll definieren kann, also alle reellen und ganzen Zahlen.

Beispiele: Temperatur, Länge, Dichte, Porengröße, Dehnung, Kraft, Ort, Zeit

Kategorische Werte

Das sind symbolische Werte für die entweder keine (sinnvolle) Ordnungsrelation existiert oder wo sich wenigstens keine Differenzen bilden lassen.

Beispiele: Staatsangehörigkeit, Farbennamen (rot < gelb???), Schadenstyp, charakteristisches Merkmal (Anomalie?)

Skalierung der numerischen Werte

Intervallskaliert

Für diese Art von Attributen sind nur Unterschiede (Addition oder Subtraktion) sinnvoll. Beispielsweise wird die in °C oder °F gemessene Temperatur intervallskaliert. Wenn es 20 °C an einem Tag und 10 °C am folgenden Tag ist, ist es sinnvoll, über einen Temperaturabfall von 10 °C zu sprechen, aber es ist nicht sinnvoll zu sagen, dass es doppelt so kalt ist wie am Vortag.

Verhältnisskaliert

Hier kann man sowohl Differenzen als auch Verhältnisse zwischen Werten berechnen. Zum Beispiel kann man für das Alter sagen, dass jemand, der 20 Jahre alt ist, doppelt so alt ist wie jemand, der 10 Jahre alt ist.

Ordnungsrelationen

Nominal

Die Attributwerte in der Domäne sind ungeordnet und somit nur Gleichheitsvergleiche sinnvoll. Das heißt, wir können nur überprüfen, ob der Wert des Attributs für zwei bestimmte Instanzen gleich ist oder nicht. Zum Beispiel ist Geschlecht ein nominales Attribut.

Ordinal

Die Attributwerte sind geordnet und somit Gleichheitsvergleiche (ist ein Wert gleich einem anderen?) und relationale Vergleiche (ist ein Wert kleiner oder größer als ein anderer?) sind erlaubt, obwohl es möglicherweise nicht möglich ist, die Differenz zwischen den Werten zu quantifizieren!

Datenklassen (longitudinal)

Sensor- und Messdatenvariablen (sowohl kategorisch wie auch metrisch) können weiter unterschieden werden in:

Statisch

Die Variable s ist zeitlich nicht veränderlich bzw. ist in einem wesentlichen Zeitintervall t ∈ [t₀, t₁] als stationär (unveränderlich) anzusehen.

Dynamisch

Zeitlich veränderliche Variable s(t) ist zeitabhängig und bildet eine Datenserie (oder Zeitvektor) s(t)={s₀,s₁,..st} bei disketer Erfassung, d.h., wir sprechen von longitudinalen Daten.

Ein Sensorsignal ist zeitlich immer diskret, aber die physikalische Variable die der Sensor misst ist zeitlich kontinuierlich (Sampingtheorem beachten)

Daten

Datensätze als Matrizen

Ein Menge von Daten kann in Matrizenform als Matrix D dargestellt werden (Analogie zur Tabellenform) [1]:

Der Vektor X ist die Menge aller Variablen (Sensoren) und die Spalten der Matrix D:

image-placeholder
(2-2)

Jede Zeile xj ist ein Rekord der Variablenmenge {Xi|i=1,d} mit konkreten Werten und geben als d-stelliges Tupel je nach Anwendung und Zielsetzung einzelne Beispiele, Instanzen, Experimente, Entitäten, Objekte, und Eigenschaftsvektoren wieder:

image-placeholder
(2-3)

// JavaScript
type row = { x1:number|string, x2:number|string, ..,
             xd:number|string }
type table = row array;

Eingabe- und Ausgabevariablen

Die Variablenmenge setzt sich aus Ein- und Ausgabevariablen zusammen

Sensoren sind typischerweise Eingabevariablen x

Aussagen sind Ausgabevariablen y, also Ergebnisse die sich aus den Eingangsvariablen ableiten lassen können (durch eine Funktion F):

image-placeholder
(2-4)

mit u+v=d.

Merkmale und Eigenschaften (Features)

Wir unterscheiden zwei Arten von Merkmalen:

Eingabemerkmale Fti

Das sind Merkmale der Eingabedaten x. Das können z.B. statistische Eigenschaften wie der Mittelwert oder Frequenzen eines Zeitsignals sein. Die Merkmale sollen möglichst die Zielmerkmale verstärken, also eine signfikante (wenn auch noch nicht bekannte) Abhängigkeit Fto(Fti) besitzen

Ziel- und Ausgabemerkamel Fto

Das sind die Ergebnisse der Datenanalyse, z.B. die Antwort auf die Frage Schaden Ja/Nein?, oder eine Schadensposition, eine Überlebenswahrscheinlichkeit. Die Eingabemerkmale sind die starken Variablen für die Modellfunktion M, die wir suchen.

Die Merkmalsselektion ist also die Vorstufe und Datenvorverarbeitung, selten werd mit Rohdaten direkt gearbeitet

Es muss eine Merkmalsselektionsfunktion MF geben, die automatisch die Merkmale aus den den Daten ableitet:

image-placeholder
(2-5)

Beispiel einer Datenmatrix

Botanischer Datensatz mit geometrischen (numerischen) Eigenschaften einer Pflanze und kategorischer Klassifikation:

[1]

Messdatensatz

Berechnetes Dehnungs-Spannungsdiagramm

[www.precifast.de/elastizitaetsmodul-e-modul]

Messdaten aus Dehnversuch

Dehnung [mm] | Kraft [kN]
0 | 0
0.1 | 0.2
0.2 | 0.7
0.3 | 1.5
0.4 | 1.7
0.5 | 1.9
0.6 | 2.0
0.7 | 0.2
0.8 | -0.5

Attribute

Die gemessenen Variablen X₁ bis X₄ sind metrische Datenvariablen, die Variable X₅=y ist eine kategorische Variable!

Die gemessenen Variablen X₁ bis X₄ (also Sensoren) nennt man Attribute, da sie Eigenschaften und beschreibende Variablen der Zielvariablen y sind

Sensoren

Welche Sensoren und Messdaten kennt ihr:

Messtechnik

Physikalische Größen wie Temperatur, Dehnung, Spannung, Zeit

Fusionierte Umfragevariablen (z.B. Ensemblemittelwerte)

Bei der Messung mit Sensoren unterscheidet man:

Einmalige bzw. einzelne Messungen (single shot)

Wiederholte Messungen der gleichen physikalischen Größe (Mittelwertbildung..)

Serien von Messwerten, vor allem zeitaufgelöste Datenserien:
D = {d₁,d₂,..,dn}, wobei i.A. Δt(di,di+1)=constant

Soziotechnische Systeme, Umfragen

Umfragevariablen (Antworten auf Fragen) sind Sensoren von einzelnen Menschen

Fusionierte Umfragevariablen (z.B. Ensemblemittelwerte) sind Sensoren von Menschengruppen

Allgemein verfügbare Daten

Soziale Netzwerke und soziale Medien

Datenbanken von Behörden usw.

Sensormodell

Ein Sensor ist ein Messwandler, auch in der Soziologie (Indikator für eine Eigenschaft die nicht direkt messbar ist)

Ein Sensor bildet daher eine i.A. physikalische Größe x auf eine andere Größe y ab:

image-placeholder
(2-6)

Es gibt i.A. eine Kalibrierungsfunktion K(f,x,y)

Beispiele:

Druck → Spannung, Strahlung → Strom, usw.

Soziale Vernetzung → Numerischer Radiuswert, Wählerstimmen → Politik, d.h., Zuordnung von Zahlen zu Objekten oder Ereignissen nach festgelegten Regeln

Sensordaten

Sensoren S sind Datenquellen d von physikalischen, soziologischen oder sonstigen natürlichen nicht direkt erfassbaren Größen x

Die Datenwerte (numerisch) werden in einem definierbaren Intervall liegen

Die Kenntnis des Werteintervalls ist wichtig für spätere Datenverarbeitung, Analyse, und Maschinelles Lernen!

Kategorische Werte werden ebenfalls durch eine Menge definiert

image-placeholder
(2-7)

Mess- und Sensorische Systeme

Der Ursprung der Daten für Analyse und Maschinelles Lernen!

Ein Sensor kommt selten allein.

Messverfahren

Man unterscheidet zwei verschiedene Messverfahren:

Passives Messverfahren

Die sensorischen Werte sind Ergebnis einer intrinsischen Eigenschaft (Dichte) oder bereits existierender externer Größen (Temperatur). Der Stimulus der Messung ist das Bauteil, der Mensch, die Umwelt.

Aktive Messverfahren

Es gibt einen aktiven Stimulus dessen Antwortsignal durch den Sensor erfasst wird. Beispiel ist das Ultraschallmessverfahren mit geführten Wellen. Das Sensorsignal ist immer abhängig vom Stimulus. In der Soziologie ist der Stimulus z.B. ein Fragenkatalog in einer Umfrage, die Antworten sind die Sensorvariablen.

Sensoraggregation

Sensorklassen

Physische Sensoren

Physische Sensoren messen direkt eine Größe mit einem Messinstrument (kann auch die Auswertung einer Frage in einem Fragebogen sein), Smartphone

Virtuelle Sensoren

Verwenden Daten (von physischen und anderen virtuellen Sensoren) um neue sensorische Werte zu berechnen (kein Messinstrument) → Aggregatoren!!

Schichtenmodell von Sensorischen Systemen

In sensorischen Systemen werden Sensordaten in verschiedenen Ebenen verarbeitet:

Vertikale Ebenen repräsentieren die sensorischen Domainen und die Sensorklassen;

Horizontale Ebenen repräsentieren die Datenverarbeitung.

Vertikale Ebenen

Perzeption

Hier findet die Akquisition der rohen Sensordaten statt. Die Sensoren sind räumlich verteilt und werden lokal vorverarbeitet.

Aggregation

Einzelne Sensordaten werden zeitlich und räumlich zusammengeführt und gesammelt (Sensorfusion)

Applikation

Die gesammelten Daten werden nutzbar gemacht: Weitere Datenverarbeitung, Aufbereitung, Eigenschaftsselektion, Informationsgewinnung, Visualisierung

Horizontale Ebenen

Die horizontalen Ebenen durchziehen alle vertikalen Ebenen:

Sicherheit

Datenverarbeitung

Kommunikation

Datenspeicherung

Nachrichtenvermittlung

Management

Abbildung 3-1. Grundlegender Zusammenhang der horizontalen und vertikalen Ebenen in Sensorischen Systemen

Abbildung 3-2. Räumliche Abbildung der vertikalen Ebenen auf Cloud Computing

Sensoren in den Ebenen

Erfassung

Vorwiegend physische Sensoren

Aggregation

Virtuelle Sensoren, Datenreduktion (Größe und Dimensionalität)

Applikation

Datenanalyse und Modellbildung, Inferenz von Information, Maschinelles Lernen

Umfragen und Crowd Sensing

Menschen sind Sensoren

Abbildung 3-3. Von klassischen Umfragen zu mobilen Crowd Sensing mit Smartphones [8]

Messfehler und Vertrauen

Die Messgrößen können statisch (zeitlich konstant) oder dynamisch (zeitlich veränderlich) sein. Die Wandlung dieser Messgrößen ergeben dann entsprechend Gleich- und Wechselsignale.

Auch eine prinzipiell zeitlich unveränderliche Messgröße (bezogen auf die Messung in einem vorgegeben Zeitinterval τ) erzeugt kein konstantes Signal. Ursache: Rauschen

Wiederholt man daher eine Messung N-mal unter gleichen Bedingungen, so wird man eine Reihe von verschiedenen Messwerten {s₁,s₂,...,sn} erhalten.

Es gibt systematische und zufällige Fehler bei der Messung, die sich überlagern.

Systematische Abweichung (systematischer Fehler)

Abweichung wird durch den Sensor verursacht

z\.B.: falsche Eichung, dauernd vorhandene Störungen wie Reibung

lässt sich nur durch sorgfältiges Untersuchen der Fehlerquelle beseitigen

Zufällige Abweichung (zufälliger oder statistischer Fehler)

Abweichung wird durch unvermeidbare, regellose Störungen verursacht

bei wiederholter Messung weichen Einzelergebnisse voneinander ab

Einzelergebnisse schwanken um einen Mittelwert

Abbildung 3-4. Offset und Präzision bei der Messung einer Variable *X* [9]

Systematische Fehler

Eine Messgröße X ist meistens durch störende Messgrößen Y,Z,... usw. überlagert:

image-placeholder
(3-1)

So kann z.B. bei einer Messung einer Kraft oder einer Dehnung die umgebende Temperatur T oder Strukturschwingungen Einfluss auf den Sensor und dessen Übertragungsfunktion und somit auf das Messsignal S haben.

So kann z.B. bei einer Messung von sozialpsychologischen Parametern der Wohnort und die Lebensumgebung Einfluss auf den Sensor und dessen "Übertragungsfunktion" und somit auf das "Messsignal" S haben.

[9]

Systematische Fehler verfälschen die Kalibrierungsfunktion (z. B. bei Geraden den Offset und Steigung). Sind sie bekannt, können sie kompensiert (rausgerechnet) werden.

Systematische Fehler können aber auch während der Signalverarbeitung entstehen, so z.B.

Offsetspannungen und zeitlicher Drift von Parametern (Verstärkungsfaktor); durch

Rundungsfehler oder Verwendung von Funktionsmodellen außerhalb ihres Spezifikationsbereiches.

Zufällige Fehler - Streuung

Zufällige Fehler beeinflussen die Genauigkeit einer Messung (Rauschen).

Rauschen beeinflußt die Berechung von Eingabedaten- und Zieleigenschaften (ML Ausgabe)!

Wiederholt man eine Messung einer Größe X die durch reine zufälligen Fehler verfälscht wird, so ist die Häufigkeitsverteilung der Messwerte S={s₁,s₂,...,sn} um einen Mittelwert image-placeholder durch eine Gaussverteilung gegeben (dabei muss die Anzahl der Messungen N groß sein).

Abbildung 3-5. Häufigkeitsverteilung nach Gauss von Messwerten um einen Mittelwert [9]

Der Mittelwert S repräsentiert die Abschätzung des wahren/wirklichen Wertes Σ der Messgröße X (oder S):

image-placeholder
(3-3)

Die Standardabweichung ist ein Maß für die Zuverlässigkeit (Präzision) der einzelnen Messwerte einer Messreihe {s₁,s₂,...,sn}:

image-placeholder
(3-4)

Eine Vergrößerung der Anzahl N der Messungen (unter gleichen Bedingungen!) führt zu einer Verbesserung des Mittelwertes image-placeholder (Grenzfall N → ∞), nicht aber zu einer wesentlichen Verkleinerung der Standardabweichung σ, da die Genauigkeit nicht steigt!

Der wirkliche Mittelwert Σ ist nicht bekannt (nur im Grenzfall N → ∞ ist image-placeholder=Σ) - Es gibt aber ein Vertrauensintervall mit einer Wahrscheinlichkeit P dass dieser darin enthalten ist:

Σ ∈ [image-placeholder-σ,image-placeholder+σ] mit 68.3%

Σ ∈ [image-placeholder-2σ,image-placeholder+2σ] mit 95.4%

Σ ∈ [image-placeholder-3σ,image-placeholder+3σ] mit 99.73%

Auch in der Soziologie!

Abbildung 3-6. Rauschquellen bei einer Messung

Beispiele: Statistische Analyse

/webwork

Plot

Plot(Array.random(200),{width:'70%',size:20})

Analysis

Math.statistics.analysis(Array.random(200))

Zusammenfassung

Daten können klassifiziert werden in:

Kategorische Variablen und Werte

Metrische Variablen und Werte

Zeitlich statische Variablen

Zeitl dynamische Variablen (Zeitserien)

Alle Sensorvariablen unterliegen Messfehlern:

Rauschen

Verzerrung

Verschiebung (Bias)

Problem der Reproduzierbarkeit und systematische Fehler (Umgebung!)

Eine (statistische) Datenanalyse ist häufig erster Schritt im ML Workflow

Datenanalyse und Eigenschaftsselektion

Häufig sind die rohen sensorischen Daten(variablen) zu hochdimensional und abhängig voneinander

Reduktion auf wesentliche Merkmale kann ML Qualität deutlich verbessern

Häufig besitzen einzelne Sensorvariablen keine oder nur geringe Aussagekraft (geringe Entscheidbarkeitsqualität)

Datenqualität

Die Daten D werden durch vier wesentliche Eigenschaften beschrieben, die auch mit statistischer Analyse quantifiziert werden können:

Rauschen. Rauschen ist die Verzerrung der Daten. Diese Verzerrung muss entfernt oder Ihre nachteiligen Auswirkungen vermindert werden, bevor ML Algorithmen ausgeführt werden, da die Leistung und Qualität der Algorithmen beeinträchtigen kwerden ann.

Es gibt eine Vielzahl von Filteralgorithmen um den Einfluß von Rauschen auf das eigentliche Sensorsignal zu vermindern.

Ausreißer. Ausreißer sind Instanzen, die sich erheblich von anderen Instanzen im Datensatz unterscheiden.

Beispiel: Durchschnittliche Anzahl der Follower von Nutzern auf Twitter.

Eine Berühmtheit mit vielen Followern kann die durchschnittliche Anzahl von Followern pro Person leicht verzerren. Da die Prominenten Ausreißer sind, müssen Sie aus der Gruppe der Personen entfernt werden, um die durchschnittliche Anzahl der Follower genau zu Messen.

Aber: Ausreißer können in besonderen Fällen nützliche Muster darstellen und die Entscheidung, sie zu entfernen, hängt vom Kontext und Fragestellung ab.

Fehlende Werte. Fehlende Werte sind Funktionswerte, die in Instanzen fehlen.

Zum Beispiel, Einzelpersonen können es vermeiden, Profilinformationen auf social-media-Websites zu melden, wie Ihr Alter, Standort, oder Hobbys.

Um dieses Problem zu lösen, können wir

Instanzen mit fehlenden Werten entfernen;

Fehlende Werte schätzen (Z. B. durch den gängigsten Wert ersetzen); oder

Fehlende Werte ignorieren, wenn Data Mining Algorithmen ausgeführt werden.

Duplikate. Doppelte Daten treten auf, wenn mehrere Instanzen mit genau denselben Funktionswerten vorhanden sind.

Doppelte blog-posts, doppelte tweets oder Profile auf Social-media-Websites mit doppelten Informationen sind Beispiele für dieses Phänomen.

Je nach Kontext können diese Instanzen entweder entfernt oder beibehalten werden. Wenn Instanzen beispielsweise eindeutig sein müssen, sollten doppelte Instanzen entfernt werden.

Statistische Analyse

Statistische Analysen von Mess- und Sensordaten können neue Datenvariablen erzeugen und Informationen über die Daten liefern:

Eigenschaftsselektion (Feature Selection) für ML und Informationsgewinnung

Variablentransformation mit Datenreduktion

Statistische Analyse liefert eine Reihe von Kennzahlen über Datenvariablen, das können Eigenschaften für die Weiterverabeitung sein:

image-placeholder
(4-1)

Welche statistische Größen gibt es? Was können statistische Größen über Daten aussagen?

Statistische Funktionen

[2:173]

[2:173]

/webwork

title

dataan1

var data = Array.random(20);
Plot(data,{width:"300px"});
print(Math.statistics.analysis(data))

dataan2

var data = Array.init(50,function (x) { return Math.sin(x/5) });
Plot(data,{width:"300px"});
print(Math.statistics.analysis(data))

dataan3

var data = Array.init(50,function (x) { return Math.random.select(['A','B','C']) });
print(Math.statistics.analysis(data))

Korrelation von Datenvariablen

Variablen X sollten möglichst (linear) unabängig sein,

Um eine geeignete, robuste und genaue Modellsynthese (also ML) zu ermöglichen, d.h.

Es sollte möglichst keine Zusammenhänge der Form ∃correlation(Xi,Xj) geben!

Um den Modellsyntheseprozess zu beschleunigen (also das Training); Rechenzeit reduzieren

Um Modelle klein und kompakt zu halten

Um Modellspezialisierung zu vermeiden und Varianz zu erhöhen

Abhängige Variablen sollten identifiziert und in unabhängige "transformiert" werden!

Beispiel Prozessanalyse

Eine Datentabelle D mit experimentellen Messgrößen und Fertigungsparametern (Prozessparameter) von additiv gefertigten Bauteilen hatte zunächst 7 Variablen (numerisch):

X₁: Hatchabstand [mm]

X₂: Scangeschwindigkeit [mm/s]

X₃: Laserleistung [W]

X₄: Schichtstärke [mm]

X₅: Volumenenergiedichte [J/mm³]

X₆: Bauplatten Position x

X₇: Bauplatten Position y

Y₁: Dichte (%)

D bestand aus 61 Experimenten mit unterschiedlichen Fertigungsserien

Mit einer Principle Component Analysis (PCA) konnte die ganze Tabelle auf die Variablen PC₁ und Y₁reduziert werden!

Die Genauigkeit der mit ML synthetisierten Funktion M(X): X → Dichte konnte ohne signifikanten Genauigkeitsverlust nur aus PC₁ abgeleitet werden, d.h. M(PC₁): PC₁ → Dichte

Aber: Für die Inferenz (Applikation) von M muss die PCA für die Eingabedaten X wiederholt werden bzw. die Datentransformation durchgeführt werden!

Übung

Übung: Erstelle eine WorkBook um die Daten des botanischer Iris Datensatzes aus der SQL Datenbank einlesen kann. Dann sollen einfache statistische Analysen erstellt werden.

Welche Eigenschaften besitzen die Variabel X₁ bis X₄? Welche Verteilung besitzt die Variable Y?

Analyse Kategorischer Variablen

Die Analyse von kategorischen Variablen vereint die Konzepte:

Mengenlehre

Kodierung/Dekodierung

Verteilung (Wahrscheinlichkeit des Auftretens)

Abbildung 4-1. Beispiel von rein kategorischen Attributen einer Datentabelle ***D*** [5]

Messdaten

Abbildung 4-2. Beispiel einer rein kategorischen Datentabelle ***D***. Die Zielvariable *Klasse* mit den Werten {N,P} ist ebenfalls kategorisch, z.B. Klasse=P ⇒ Sportliche Aktivität [5:53]

Gemischte Variablenklassen

Abbildung 4-3. Einige Datenvariablen wurden mit numerischen/metrischen Werten ersetzt (Klasse → Play-time) [7:47]

Kann aus der vorherigen Datentabelle mit numerischen Variablen noch ein Zusammenhang aus X zu Y hergestellt werden?

Reicht die Anzahl der Experimente im Vergleich zu der rein kategorischen Datentabelle?

Wo liegen die Probleme?

Weiteres Beispiel

[7:7]

Kodierung

Kategorische Variablen (sowohl Attribute als auch Zielvariablen) können von einer Vielzahl von numerisch basierten ML Verfahren nicht verarbeitet werden (wie neuronale Netze)

Eine Lösung ist die Abbildung von kategorischen Werten (also Mengen von Symbolen) auf numerische Werte → Kodierung

Kodierte Werte sind aber i.A. weder intervall- noch verhältnisskalierbar!

Kodierungsformate

Linear und nicht akkummulativ (skalar), d.h.
{α,β,γ,..} → {δ,2δ,3δ,..}

Exponentiell (z.B. zur Basis B=2) und akkummulativ (skalar), d.h.
{α,β,γ,..} → {2⁰,2¹,2²,..}

One-hot und evtl. akkummulativ (vektoriell), d.h.
{α,β,γ,..} → {[1,0,0,...],[0,1,0,..],[0,0,1,..],..}

Expontentielle Kodierungen können multiple verschiedene kategorische Werte in einem numerischen Wert darstellen! Z.B. mehrfache kategorische Antworten bei einer Frage einer Umfrage.

Beispiele

1: {sonnig,bewölkt,regnerisch} → {3,2,1}
2: {ja,nein} → {1,0}
3: {Schaden A, Schaden B, Schaden C} → { 1,2,3 }
4: {rot,grün,blau,braun,weiß} → {1,2,4,8,16}
5: {Sport, Kino, Theater, Musik} → {1,2,4,8}
6: {heiß,kalt} → {[1,0],[0,1]}

Numerische/metrische Werte können auf kategorische durch Intervallkodierung reduziert werden:

image-placeholder
(4-2)

Die Kodierung ist umkehrbar mit einer Dekodierungsfunktion (unter Kenntnis der Kodierungsvorschrift)

Verwendung der code=Math.code(val,codes) und val=Math.decode(code,codes) Funktionen

/webwork

title

code1

var c1 = Math.code('A',{A:1,B:2,C:3});
var c2 = Math.code(['A','C'],{A:1,B:2,C:4});
var c3 = Math.code('heute',{heute:0,gestern:-1,morgen:1});
print('c1',c1)
print('c2',c2)
print('c3',c3)

code2

var c2 = Math.code(['A','C'],{A:1,B:2,C:4});
var d2 = Math.decode(c2,{A:1,B:2,C:4});
var c3 = Math.code('heute',{heute:0,gestern:-1,morgen:1});
var d3 = Math.decode(c3,{heute:0,gestern:-1,morgen:1});
print('c2/d2',c2,d2)
print('c3/d3',c3,d3)

Entropie und Informationsgehalt

Sensorvariablen können unterschiedlichen Informationsgehalt besitzen

Nur auf den Dateninhalt (Werte) der Variable Xi bezogen (inherenter Informationsgehalt)

Oder zusätzlich bezogen auf die Zielvariable Y (abhängiger Informationsgehalt)

Der Informationsgehalt einer Menge X aus Elementen der Menge C wird durch die Entropie E(X) gegeben:

image-placeholder
(4-3)

Dabie ist k die Anzahl der unterscheidbaren Elemente/Klassen Val(X) ⊆ C in der Datenmenge X (z.B. die Spalte einer Tabelle) und pi die Häufigkeit des Auftretens eines Elements ci ∈ C in X.

Beispiele:

1: X₁={A, C, B, C, B, C} → Val(X₁)=C={A, B, C},N=6
2: E(X₁)=-(1/6)log(1/6)-(2/6)log(2/6)-(3/6)log(3/6)=1.46
3: X₂={A, B, C} → Val(X₂)=C={A, B, C},N=3
4: E(X₂)=-(1/3)log(1/3)-(1/3)log(1/3)-(1/3)log(1/3)=1.58
5: X₃={A, A, A, A, B, B} → Val(X₃)={A,B} ⊂ C={A, B, C},N=6
6: E(X₃)=-(4/6)log(4/6)-(2/6)log(2/6)-(0/6)log(0/6)=0.92
7: X₄={A, A, A, A, B, B} → Val(X₄)=C={A, B},N=6
8: E(X₄)=-(4/6)log(4/6)-(2/6)log(2/6)=0.92

Die Entropie ist Null wenn die Datenmenge X "rein" ist, d.h., nur Elemente einer einzigen Attributklasse c₁ ∈ C enthält, z.B. X={A,A,A}.

Die Entropie ist log₂(|C|) wenn alle Werte gleichverteilt vorkommen, wenn nicht dann kleiner (nicht gleichverteilt).

Die Entropie reicht allein zur Bewertung des Informationsgehaltes nicht aus:

X1 | X2 | Y
A | C | P
B | C | P
A | D | N
B | D | N

E(X1)=1, E(X2)=1 !! Welche Variable X ist für die Entscheidung der Zielvariable Y geeignet?

/webwork

title

DataSports

data = [ { Beispiel: 1,
    Aussicht: 'sonnig',
    Temperatur: 'hei�',
    'Luftfeuchtigk.': 'hoch',
    'Windig?': 'nein',
    Klasse: 'N' },
  { Beispiel: 2,
    Aussicht: 'sonnig',
    Temperatur: 'hei�',
    'Luftfeuchtigk.': 'hoch',
    'Windig?': 'ja',
    Klasse: 'N' },
  { Beispiel: 3,
    Aussicht: 'bew�lkt',
    Temperatur: 'hei�',
    'Luftfeuchtigk.': 'hoch',
    'Windig?': 'nein',
    Klasse: 'P' },
  { Beispiel: 4,
    Aussicht: 'regnerisch',
    Temperatur: 'mild',
    'Luftfeuchtigk.': 'hoch',
    'Windig?': 'nein',
    Klasse: 'P' },
  { Beispiel: 5,
    Aussicht: 'regnerisch',
    Temperatur: 'kalt',
    'Luftfeuchtigk.': 'normal',
    'Windig?': 'nein',
    Klasse: 'P' },
...

AnalysisSports

print(Math.statistics.analysis(data.pluck('Aussicht')))
print(Math.statistics.analysis(data.pluck('Temperatur')))
print(Math.statistics.analysis(data.pluck('Luftfeuchtigk.')))
print(Math.statistics.analysis(data.pluck('Windig?')))
print(Math.statistics.analysis(data.pluck('Klasse')))

DataLenses

data=[ { Age: 'Young',
    'Spectacle Prescription': 'Myope',
    Astigmatism: 'No',
    'Tear Production Rate': 'Reduced',
    'Recommended Lenses': 'None' },
  { Age: 'Young',
    'Spectacle Prescription': 'Myope',
    Astigmatism: 'No',
    'Tear Production Rate': 'Normal',
    'Recommended Lenses': 'Soft' },
  { Age: 'Young',
    'Spectacle Prescription': 'Myope',
    Astigmatism: 'Yes',
    'Tear Production Rate': 'Reduced',
    'Recommended Lenses': 'None' },
  { Age: 'Young',
    'Spectacle Prescription': 'Myope',
    Astigmatism: 'Yes',
    'Tear Production Rate': 'Normal',
    'Recommended Lenses': 'Hard' },
  { Age: 'Young',
    'Spectacle Prescription': 'Hypermetrope',
    Astigmatism: 'No',
    'Tear Production Rate': 'Reduced',
    'Recommended Lenses': 'None' },
  { Age: 'Young',
    'Spectacle Prescription': 'Hypermetrope',
    Astigmatism: 'No',
    'Tear Production Rate': 'Normal',
    'Recommended Lenses': 'Soft' },
...

AnalysisLenses

print(Math.statistics.analysis(data.pluck('Age')))
print(Math.statistics.analysis(data.pluck('Spectacle Prescription')))
print(Math.statistics.analysis(data.pluck('Astigmatism')))
print(Math.statistics.analysis(data.pluck('Tear Production Rate')))
print(Math.statistics.analysis(data.pluck('Recommended Lenses')))

Informationsgewinn (Gain)

Ansatz: Die Datenmenge Y wird nach den möglichen Werten von X partitioniert, also je eine Partition pro ci ∈ Val(X).

image-placeholder
(4-4)

Die Menge Yv enthält nur Werte für die X=v ist!

Ein Verteilungsvektor ist dann Dist(X)=[|v₁|,|v₂|,..] und bedeutet wie häufig der bestimmte Wert vi ∈ Val(X) in X auftaucht!

Ein Verteilungsvektor ist dann Dist(Yv|X)=[|u₁|,|u₂|,..] und bedeutet wie häufig der bestimmte Wert u ∈ Val(Y) in Yv auftaucht!

Beispiele

[12]

/webwork

title

DataSports

data = [ { Beispiel: 1,
    Aussicht: 'sonnig',
    Temperatur: 'hei�',
    'Luftfeuchtigk.': 'hoch',
    'Windig?': 'nein',
    Klasse: 'N' },
  { Beispiel: 2,
    Aussicht: 'sonnig',
    Temperatur: 'hei�',
    'Luftfeuchtigk.': 'hoch',
    'Windig?': 'ja',
    Klasse: 'N' },
  { Beispiel: 3,
    Aussicht: 'bew�lkt',
    Temperatur: 'hei�',
    'Luftfeuchtigk.': 'hoch',
    'Windig?': 'nein',
    Klasse: 'P' },
  { Beispiel: 4,
    Aussicht: 'regnerisch',
    Temperatur: 'mild',
    'Luftfeuchtigk.': 'hoch',
    'Windig?': 'nein',
    Klasse: 'P' },
  { Beispiel: 5,
    Aussicht: 'regnerisch',
    Temperatur: 'kalt',
    'Luftfeuchtigk.': 'normal',
    'Windig?': 'nein',
    Klasse: 'P' },
...

AnalysisSports

print('gain(Aussicht)='+ML.statistics.gain(
 data,
 'Aussicht',
 'Klasse',
  ML.statistics.unique(data.pluck('Klasse'))));
print('gain(Temperatur)='+ML.statistics.gain(
 data,
 'Temperatur',
 'Klasse',
  ML.statistics.unique(data.pluck('Klasse'))));
print('gain(Luftfeughtigk.)='+ML.statistics.gain(
 data,
 'Luftfeuchtigk.',
 'Klasse',
  ML.statistics.unique(data.pluck('Klasse'))));
print('gain(Windig?)='+ML.statistics.gain(
 data,
 'Windig?',
 'Klasse',
  ML.statistics.unique(data.pluck('Klasse'))));

DataLenses

data=[ { Age: 'Young',
    'Spectacle Prescription': 'Myope',
    Astigmatism: 'No',
    'Tear Production Rate': 'Reduced',
    'Recommended Lenses': 'None' },
  { Age: 'Young',
    'Spectacle Prescription': 'Myope',
    Astigmatism: 'No',
    'Tear Production Rate': 'Normal',
    'Recommended Lenses': 'Soft' },
  { Age: 'Young',
    'Spectacle Prescription': 'Myope',
    Astigmatism: 'Yes',
    'Tear Production Rate': 'Reduced',
    'Recommended Lenses': 'None' },
  { Age: 'Young',
    'Spectacle Prescription': 'Myope',
    Astigmatism: 'Yes',
    'Tear Production Rate': 'Normal',
    'Recommended Lenses': 'Hard' },
  { Age: 'Young',
    'Spectacle Prescription': 'Hypermetrope',
    Astigmatism: 'No',
    'Tear Production Rate': 'Reduced',
    'Recommended Lenses': 'None' },
  { Age: 'Young',
    'Spectacle Prescription': 'Hypermetrope',
    Astigmatism: 'No',
    'Tear Production Rate': 'Normal',
    'Recommended Lenses': 'Soft' },
...

AnalysisLenses

print('gain(Age)='+ML.statistics.gain(
 data,
 'Age',
 'Recommended Lenses',
  ML.statistics.unique(data.pluck('Recommended Lenses'))));
print('gain(Spectacle Prescription)='+ML.statistics.gain(
 data,
 'Spectacle Prescription',
 'Recommended Lenses',
  ML.statistics.unique(data.pluck('Recommended Lenses'))));
print('gain(Astigmatism)='+ML.statistics.gain(
 data,
 'Astigmatism',
 'Recommended Lenses',
  ML.statistics.unique(data.pluck('Recommended Lenses'))));
print('gain(Tear Production Rate)='+ML.statistics.gain(
 data,
 'Tear Production Rate',
 'Recommended Lenses',
  ML.statistics.unique(data.pluck('Recommended Lenses'))));

Principle Component Analysis

PCA: Klassische Methode zur unüberwachten linearen Dimensionsreduktion → Analyse der Hauptkomponenten

PCA ist noch keine Reduktionsmethode. PCA liefert bei einem n-dimensionalen Vektor X→ genau n Vektoren der Dimensionalität n!

Aber: Reduktion von Redundanz in den Attributen X ist mit diesen Hauptkomponenten möglich.

Bessere Trennung bei der Inferenz von kategorischen (und ggfs. auch numerischen) Zielvariablen

Weitere Verfahren:

Lineare Diskriminanzanalyse (LDA)

Singuläre Wertzerlegung (SVD)

Beispiel

D=[X₁,X₂,Y], mit Val(Y)={Class1,Class2}

"Rotation" des zweidimensionalen Attributraums führt zu einer reduzierten Datentabelle D'=[PC₁,Y] (PC₂ kann weg gelassen werden)

[Czarnek, RG]

Dabei ist X eine komplexwertige Datenserie {⟨re(xi),im(xi)⟩|i=0,1,..,N-1}, und

Das Ergebnis F ist ebenfalls eine komplexwertige Datenserie {⟨re(fi),im(fi)⟩|i=0,1,..,N-1}

Amplitudenspektrum

image-placeholder
(4-5)

Phasenspektrum

image-placeholder
(4-6)

Leistungsspektrum

image-placeholder
(4-7)

Waveletanalyse

Diskrete Wavelet Transformation (DWT)

DFT liefert nur Informationen im Frequenzraum

DWT liefert Informationen aus Zeit- und Frequenzraum

Höherer Informationsgehalt

DWT verwendet lange Zeitfenster für niedrige Frequenzen und kurze Zeitfenster für höhere Frequenzen, was zu einer guten zeitfrequenzanalyse führt.

DWT kann mit digitalen Filterkaskaden aufgebaut werden:

Jede Ebene der Filterkaskade besteht aus einem Hoch- und einem Tiefpassfilter

Der Hochpassfilter liefert die Details, der Tiefpassfilter die Approximation der DWT auf der n-ten Ebene

Die Approximation der Ebene n ist das Eingangssignal für die Ebene n+1

In jeder Ebene wird der Eingangsvektor |xi|=N auf N/2 reduziert, d.h. |xi+1|=N/2

Histogrammanalyse

Ein Histogramm gibt die (intervallbasierte) Verteilung von unterscheidbaren Elementen in einer Datenmenge X an

Beispiel sind Histogramme von Bildern die die Verteilung der Farb-/Grauwerte mit den Werten == Kanälen {0,1,..,255} wiedergeben.

[wavemetrics]

Analyse von Datenserien

Welcher Sensoren können bei der Bauteilprüfung und Schadensüberwachung Zeit- oder Datenserien erzeugen..

Messdaten

Abbildung 4-4. Zeitaufgelöste Sensordaten *s*(*t*) eines Beschleunigungssensors einer Maschine ohne und mit Schäden [2:164]

Korrelationsanalyse

Abbildung 4-5. Autokorrlelation der zeitaufgelösten Sensordaten *s*(*t*) eines Beschleunigungssensors einer Maschine ohne und mit Schäden [2:164]

Spektralanalyse

Abbildung 4-6. Spektralanalyse der zeitaufgelösten Sensordaten *s*(*t*) eines Beschleunigungssensors einer Maschine ohne und mit Schäden [2:167]

Merkmalsselektion

Abbildung 4-7. Die statistische und weitere Analysen können die Eingabe für ML liefern, aber auch die Modellsynthese parametrisieren bzw. beeinflussen

Zusammenfassung

Die statistische Analyse von Datentabellen liefert wichtige Informationen über die Qualität der Daten

Die Merkmalsselektion transformiert die Rohdaten auf neue möglichst linear unabhängige Attribute

Datenreduktion → Dimensionalität

Datenreduktion → Datengröße

Datenqualitätserhöhung

Es werden Verfahren für kategorische und numerische Datenvariablen unterschieden

Taxonomie des Maschinellen Lernens

Zielvariablen: Kategorische Klassifikation, Numerische Prädiktorfunktionen, Gruppierung

Modellfunktionen: Mit welchen Daten- und Programmarchitekturen können Eingabevariablen auf Zielvariablen abgebildet werden?

Training und Algorithmen: Wie können die Modellfunktionen an das Problem angepasst werden?

Überwachtes, nicht überwachtes und Agentenlernen

Datenverarbeitung

Die Daten die als Grundlage für die Induktion (Lernen) und die Deduktion (Applikation/Inferenz der Zielvariablen) müssen i.A. vorverarbeitet werden → Merkmalsselektion

Abbildung 5-1. Maschinelles Lernen ist ein Werkzeug der Datenanalyse und des Data Minings [6]

Die Modellfunktion

Die Modellfunktion F soll möglichst genau und effizient die Eingabedaten X auf die Zielvariablen Y abbilden:

image-placeholder
(5-1)

Die Modellfunktion F approximiert eine i.A. nicht bekannte Funktion M, d.h. eine axiomatisch oder analytisch abgeleitete Modellfunktion (z.B. phys. Gesetze) → F ist Hypothese von M!

Beispiel

Abbildung 5-2. Kausale vs. Prädiktive Modellbildung und Physikalische Modelle versa algorithmisch bestimmte Modelle (Hypothesen) [100]

Abbildung 5-3. Kausale vs. Prädiktive Modellbildung und Soziale Netzwerkmodelle versa algorithmisch bestimmte Modelle (Hypothesen) [100]

Lernen

Lernen bedeutet die unbekannte Modellfunktion M möglichst genau durch F aus Daten so zu approximieren dass min error(|Y₀-Y|) für alle (X,Y₀) Paare gilt (Y₀: Referenzdaten).

I\.a. ist F eine parametrisierbare Funktion f(P) oder eine parametrisierbare Datenstruktur

Der Parametersatz P={p₁,p₂,..,pi} bestimmt sowohl Funktion als auch Struktur (z.B. eines Entscheidungsbaumes)

Es gibt nicht eine Modellfunktion F, sondern eine große Menge möglicher Funktionen, genannt Hypothesen ℍ={F₁,F₂,..}.

Lernen bedeutet also die bestmögliche Anpassung der Parametersätze P um den Fehler zu minimieren und eine geeignet Hypothesenfunktion zu finden.

Man unterscheidet bekannte Referenzwerte der Zielvariablen (und Beziehung zu X) Y₀, auch Labels genannt, und prognostische Werte Y die als Ergebnis von F(X) geliefert werden (Inferenzwerte), d.h. bei der Applikation ist der wahre Wert Yt unbekannt (Schätzung von Yt)

image-placeholder
(5-2)

Beispiele

Abbildung 5-4. Verschiedene Modellfunktionen *M* die die (Trainings) Daten repräsentieren

Kreuzvalidierung

Beim Training wird ein Inferenzfehler zunächst aus Trainingsdaten bestimmt → Trugschluss!

Stattdessen müssen auch unabhängige Testdaten für eine Kreuzvalidierung herangezogen werden, und dann ...

[13]

Abbildung 5-5. Durch Kreuzvalidierung (CV) werden ungeeignete Hypothesenmodelle erkannt

Fehler (Verlust)

Jede Hypothesenfunktion F ∈ ℍ führt zu einem Informationsverlust durch Approximation der tatsächlichen und unbekannten Modellfunktion M.

Es gilt also:

image-placeholder
(5-3)

mit E als eine Fehlerfunktion (i.A. zufälliger Fehler) und image-placeholder als mittlerer Prädiktionsfehler und S als systematischer Fehler.

Die Hypothesenmenge ℍ ist also tatsächlich eine Approximation eines unbekannten "exakten" Modells (Modellfunktion) MF, die z.B. mittels physikalischer oder soziologischer Modelle ableitbar wäre.

Genauso wie eine Sensor eine physikalische Größe nur approximieren kann, der tatsächliche Wert der zu messenden Größe ist nicht bekannt

Abbildung 5-6. Training als Anpassung von Hypothesen für die Abbildungsfunktion *X* → *Y* mit Trainingsdaten [11]

Parametrisierung

Die Paramater in dem Parametersatz P bestehen aus zwei Klassen:

Statische Parameter Ps

Parameter die die Modellimplementierung (Funktion, Datenstruktur, usw.) festlegen und i.A. während des Trainings und der Applikation unverändert bleiben. (Ausnahme: Evolutionäre Algorithmen) → Konfiguration

Dynamische Parameter Pd

Parameter die während des Trainings verändert (angepasst) werden. Z.B. Funktionsparameter oder Kantengewichte von neuronalen Netzen → Adaption

Beispiele

Zwei mögliche Numerische Prädiktorfunktionen mit unterschiedlicher Struktur und Parametersätzen, aber gleicher Signatur(T: Temperatur, S: Satisfaction) → Regression

image-placeholder
(5-5)

Künstliches Neuronales Netzwerk

Daten

Trainingsdaten Dtrain

Datentabellen die aus Zeilen mit einer bekannten Beziehung (X,Y) bestehen und verwendet werden die Modellfunktion M durch Veränderung von P zu approximieren

Testdaten Dtest

Datentabellen die aus Zeilen mit einer bekannten Beziehung (X,Y) bestehen und verwendet werden die Modellfunktion M auf Genauigkeit und Fehler zu testen. Man spricht auch von einer Kreuzvalidierung da Dtest ∩ Dtrain = ∅ sein sollte.

Inferenzdaten Dinf

Datentabellen die nur aus Zeilen X bestehen (Y ist unbekannt)

Es gilt: Dtrain ⊆ Dall, Dtest ⊆ Dall, Dinf ⊆ Dall aber Dtrain ∩ Dtest = ∅ und Dtrain ∩ Dtest ∩ Dinf ≠ ∅ (Idealfall!)

Die großen Probleme beim Modellieren aus Daten:

Die Trainingsdaten sind nicht repräsentativ (Umfang, Varianz, Qualität)

Die Testdaten sind nicht repräsentativ (Umfang, Varianz, Qualität)

Die Trainingsdaten enthalten schwache Variablen die nicht entfernt wurden (Inkonsistenz und geringer Informationsgewinn)

Generalisierung. Das gelernte Modell F bildet alle drei Datenmengen gleichermaßen gut ab!

Ergänzung:

Bewertungsdaten

Beim Einsatz eines gelernten Modells kann eine Evaluierung bezüglich Qualität / Genauigkeit stattfinden. Diese Daten können dann ggfs. für eine Adaption des Modells und dessen Parametersatz P verwendet werden.

D.h. bei der Anwendung des Modells können somit auch neue Trainingsdaten gewonnen werden, z.B. im Rahmen eines Produktlebenszyklusmanagements!

Lernverfahren

Überwachtes Lernen

Es gibt Trainingsdaten mit bekannten Beziehungen (X,Y) die verwendet werden um die Modellfunktion mit minimalen Fehler anzupassen. Überwachung benötigt i.A. einen Experten der die Beziehungen (X,Y) erstellt und analytisch den Fehler bewertet.

Unüberwachtes Lernen

Es gibt Trainingsdaten ohne bekannte beziehung (X,Y), d.h., schon das Lernen führt zu einer automatischen Inferenz der Zielvariablen Y, die aber in diesem Fall i.A. nur durch Gruppenmengen ℚ bestehen. Eine Gruppenmenge Q={Xi} ⊆ ℚ bringt verschiedene Eingabewerte in Beziehung. D.h. Y ≡ ℚ.

Belohnungs- und Agentenlernen

Die Abbildungsfunktion f(X): X → Y wird schrittweise durch eine Evaluierung des inferrierten Y mit einem Belohnungswert r=[0,1] gelernt. Training und Inferenz findet gleichzeitig statt.

Abbildung 5-7. Ablauf Überwachtes Lernen mit Trainings- (Induktion) und Applikationsphasen (Deduktion) [6]

Taxonomie der Verfahren

[Abdul Rahid,www.wordstream.com]

Überwachte Lernverfahren - Unterklassen

Abbildung 5-8. Zwei wichtige Unterklassen von überwachten Lernen: Regression (Numerische Zielvariablen) und Klassifikation (Kategorische Zielvariablen) [4]

Dimensionalitätsreduktion

ML kann auch für die Reduktion von Datendimensionalität eingesetzt werden (Informationen sind reduzierte Daten)

Beispiele: Principle Component Analysis, Single Value Decomposition, ..

Abbildung 5-9. Abbildung von hochdimensionale Daten *X*^n^ auf niederdimensionale *X*^m^ mit *m* < *n* [4]

Unüberwachtes Lernen - Unterklassen

Abbildung 5-10. Zwei wichtige Unterklassen von nicht überwachten Lernen: Clustering (Gruppenbildung) und Ausreißerdetektion [4]

Training

Das Training einer Modellfunktion M kann

monolitisch (alle Dateninstanzen werden "parallel" verwendet), oder

stapelbasiert (d.h. Gruppen von Instanzen werden "parallel" verarbeitet), oder

iterativ (Dateninstanzen werden "sequenziell" verwendet), und

inkrementell (iterativ mit neuen Daten).

Es gibt beim Training eine Fehlerfunktion (Cost or Loss Function). Der Fehler ergibt sich aus der Anwendung der Trainingsdaten auf das bisherigen Modell. Der Fehler dient zur Korrektur der dynamischen Parameter. Der Fehler kann dann aus einzelnen ("on-line") oder einer Gruppe ("batch") von Trainingsdaten berechnet werden.

Inkrementelle Trainings- und Anpassungsverfahren können alte Datensätze verwerfen → Stromdatenlernen!

Nicht jede Modellimplementierung ist geeignet:

Graphen (Bäume) können i.A. nur monolithisch trainiert = erzeugt werden!

Regression von math. Funktionen kann monolithisch und/oder iterativ erfolgen;

Neuronale Netze können monolithisch, stapelbasiert, iterativ, und vor allem inkrementell trainiert werden.

Modellimplementierungen

Es gibt im wesentlichen vier verschiedene Architekturen die Modelle M zu implementieren:

Funktionen

Die Struktur einer mathematischen Funktion wird durch ihre Terme gebildet (Berechnungsknoten), z.B. ax+bx². Zu jedem Term gehört ein dynamischer Parameter der beim Training angepasst wird um den Fehler zu minimieren. Das Ergebnis ist die Zielvariable y.

Gerichtete Graphen

Gerichtete Graphen (oder Entscheidungsbäume) bestehen aus Knoten und Kanten. Die Knoten repräsentieren eine Eingabevariable (Attribute) x ∈ X. Die Kanten beschreiben die Entwicklung eines Graphen beginnend vom Wurzelknoten hin zu den Blättern. Die Blätter enthalten die Werte der Zielvariable(n) y. Der dynamische Parametersatz ist der Graph (dessen Struktur).

Funktionale Graphen

Hybrid aus gerichteten Graph und Funktion → Künstliche Neuronale Netze. Die Knoten repräsentieren Berechnungsfunktionen, die Kanten verbinden Ausgänge von Funktionen mit Eingängen. Es gibt Eingangsknoten die mit den Eingabevariablen X verbunden sind, und Ausgangsknoten die mit den Ausgangsvariablen Y verbunden sind.

Ungerichtete Graphen

Hier repräsentieren die Knoten Dateninstanzen X, und die Kanten verbinden die nächsten Nachbarn miteinander. Hier geht es um Gruppenbildung (k nächste Nachbarn/kNN Problem).

Abbildung 5-11. Verschiedene Modellimplementierungen

Hybride Modelle

Multiinstanz Modelle

Ensemblelernen vereint multiple Modelle (gleicher Klasse oder unterschiedlich)

image-placeholder
(5-6)

Die einzelnen Modellinstanzen arbeiten mit gleichen oder verschiedenen Dateninstanzen

Es gibt eine Split- und eine Join Schicht (Kombinierer, Modellfusion)

Abbildung 5-12. Verschiedene Architekturen für Multiinstanz Lernen und Inferenz [Jay Budzik, www.thetalkingmachines.com]

Instanzklassifikation

SLSP

Einzelinstanz Lernen (auf allen Daten) und Einzelinstanz Prädiktion (Inferenz auf allen Daten)

SLMP

Einzelinstanz Lernen (auf allen Daten) und replizierte Multiinstanz Prädiktion (Inferenz auf Teildaten mit Modellfusion)

MLSP

Multiinstanz Lernen (auf Teildaten) mit Modellfusion und Einzelinstanz Prädiktion (Inferenz auf allen Daten)

MLMP

Multiinstanz Lernen und Multiinstanz Prädiktion (Modellfusion)

Ablauf und Phasen von ML

Statistische Analyse und Bewertung der Daten

Merkmalsselektion

Aufteilung der Daten in Trainings- und Testdaten (i.A. randomisiert) D=Dtrain ∪Dtest

Training einer Modellfunktion F mit bekannten (markierten bei ÜL) Trainingsdaten Dtrain unter Bewertung des Modellfehlers E(X)

Test und Bewertung von F mit bekannten Daten Dtest

Applikation (Inferenz) von F auf unbekannten Daten D

ML in der Soziologie

Qualitative und quantitative Sozialwissenschaften wollen aus Daten erklärbare Modelle ableiten

Die Inferenz von Aussagen mit neuen Daten ist von geringer Bedeutung

Das Modell ist das Ziel

Datenwissenschaften wollen aus Daten (ggfs. Black-Box) Modelle ableiten

Die Inferenz von Aussagen mit neuen Daten ist Ziel!

Das Modell selber ist nur das Werkzeug

Qualitative Kodierung

Qualitative Kodierung ist eine der wichtigsten Techniken, die in der qualitativen Analyse in den Sozialwissenschaften verwendet werden.

Im Allgemeinen bezieht sich die Kodierung auf den Prozess der Zuweisung beschreibender oder inferentieller Annotierungen zu Datenblöcken, die die Entwicklung von Konzepten oder Theorien unterstützen können.

Kodierung ist in der Regel eine sehr arbeitsintensive und zeitaufwendige Aufgabe.

Einsatz von ML

ML Verfahren können zur Automatisierung der Q. Kodierung eingesetzt werden [101]

ML in der Soziologie findet sich vor allem in den ersten Stufen der "Wertschöpfungskette" → Werkzeuge der Datenverarbeitung und Merkmalsselektion

Soziale Analysen aus Texten

Rückschlüsse auf soziales Verhalten und Netzwerkbildung können u.A. aus textuellen Quellen gewonnen werden:

Soziale Medien (Twitter, Facebook, Blogs, ...)

Nachrichten

Wissensdatenbanken

Häufig ist Mustererkennung und Klassifikation zentrale Merkmalsselektion (mit Natural Language Processing NLP)

Einsatz von ML

Textklassifikation und Vorhersage

Suche nach Inkonsistenz (z.B. in juristischen Texten)

Suche nach Textmustern (z.B. Betrug, Hass, usw.)

Soziologische und naturwissenschaftliche Modellinferenz

Neben der kausalen Modellinferenz können auch prädiktive Modellinferenzverfahren - also ML - eingesetzt werden

Spannende Frage: Wie ist die Korrelation von kausal und prädiktiv gewonnenen Modellen?

Was bedeutet eine Abweichung?

Kernfrage ist die Erklärbarkeit von algorithmisch erzeugten Modellen mit ML Verfahren, auch in der Mess- und Prüftechnik!

ML in den Fertigungs- und Materialwissenschaften

ML ist auch hier ein Werkzeug um analytisch und physikalisch nicht mathematisch modellierbare Zusammenhänge zu approximieren (quasi ein vorläufiger Modellersatz)

Auch hier kann es Probleme grundsätzlicher Art geben:

Fehlende Nachverfolgbarkeit (warum kommt ein Y bei einem X?)

Fehlende Erklärbarkeit (wie ist der Zusammenhang Y(X) zu verstehen?)

Fehlende Rückverfolgung (welches X aus gegebenen Y?)

Inverse ML Modellierung ist von großer Bedeutung (z.B. welche Prozessparameter müssen gewählt werden wenn bestimmte Materialparameter als Ergebnis einer Fertigung gegeben sind)

Vorwärts- und Rückwärtsmodellierung

Vorwärtsmodellierung

Typischerweise schließt man von Eingabedaten (Sensoren) auf Ausgabedaten (Systemvariablen, Aggregatvariablen)

Eingabedaten sind i.A. individuell (Einzelfall)

Ausgabedaten von Modellfunktionen repräsentieren häufig statistische Ensemblemittelwerte!

Viele ML Modelle sind daher Mittelwertbilder!

Eine Funktion F(X→): X→ → Y→ bildet i.A. einen hochdimensionalen Eingaberaum n=|X→| auf einen niederdimensionalen Ausgabe/Ergebnisraum m=|Y→| mit m ≪ n ab

Rückwärtsmodellierung

Bei der Rückwärtsmodellierung möchte man von den System- und Aggregatvariablen auf die Sensordaten schließen: G( Y→ ): Y→ → X→

Die Modellfunktion G kann durch Invertierung des Vorwärtsmodells F gewonnen werden, d.h., G=F⁻¹

Kann F noch durch ein vollständig bestimmtes mathematisches Problem beschrieben werden (d.h. Abbildung X→ → Y→ ist eindeutig), so ist die Inversion i.A. ein unterbestimmtes Problem (Mehrdeutigkeit aufgrund der Dimensionalitätserhöhung)

Big Data Analysen

Big Data bedeutet nicht groß (wenn auch meistens), sondern die Eingabevariablen sind scheinbar schwach korreliert, gekennzeichnete durch hohes Rauschen und Verzerrung!

Aber mit ML kann auch solch schwachen Daten Informationen abgeleitet werden:

Genaue Wahlvorhersage

Demografische Vorhersagen

Kritik: Die Datenvoreverarbeitung und ML Datenkette kann (ungewollt) zu Verzerrung und Offset führen.

Daher: Die "Fehler" in der ML Verarbeitungskette bezüglich sozialer Eigenschaften können nicht technisch gelöst und korrigiert werden. Dazu müssen wiederum Modelle der Soziologie verwendet werden. Der "Theorie Rein - Theorie Raus" Ansatz [102]!!

Die Sozialtheorie hilft bei der Lösung von Problemen, die während des gesamten Aufbaus und der Bewertung von Modellen für maschinelles Lernen für soziale Daten auftreten.

Zusammenfassung Unterschiede Soziologische und naturwissenschaftliche Verfahren vs ML

Soziologische und naturwissenschaftliche Theorie ist oft hypothesengetrieben, während maschinelles Lernen Daten sind!

Beim maschinellen Lernen beginnt man mit einem Datensatz, um eine Hypothese aufzustellen, während man in der Soziologie oft mit einer Hypothese beginnt.

Beide verwenden (oder eher ML, beide sollten zumindest) eine Auswertung außerhalb der Stichprobe, um Ihre Hypothesen zu testen.

Beim maschinellen Lernen liegt der Fokus im Allgemeinen auf der Vorhersage, in der Soziologie nicht auf der Vorhersage, ohne zu erklären, warum ein Phänomen Auftritt.

Beim maschinellen Lernen glaubt man nicht, dass das Modell richtig ist, dh. es wird nicht angenommen, dass das Modell der datengenerierende Mechanismus ist.

Modelle werden nur danach ausgewertet, wie gut Sie anhand von Daten Vorhersagen machen, aus denen Sie selber nicht erstellt wurden, und nicht erklären wie sie zu Stande kommen.

In der Soziologie betrachtet man allgemein, ob ein Koeffizient eines linearen Modells von null unterscheidbar ist; dies macht starke Annahmen über den datengenerierenden Mechanismus, den maschinelle Lerner nicht für gültig halten würden.

Der Fokus des maschinellen Lernens lag traditionell nicht auf kausalen Effekten, obwohl Maschinelles lernen bei kausalen inferenzproblemen nützlich sein kann.

Zusammenfassung

Maschinelles Lernen besteht aus:

Modellimplementierungen:

Funktionen, Gerichtete Graphen, Funktionalen Graphen, Ungerichtete Graphen, also mit/für

Regression, Entscheidungsbäume, Neuronale Netze, Clustering (kNN)

Aufgaben

Regression, Klassifikation, Gruppierung (Clustering), Prognostik

Methoden und Verfahren

Überwachtes, nicht überwachtes, und rückgekoppeltes Belohnungslernen

Monolithisches, stapelbasiertes, iteratives, und inkrementelles Lernen

Einzel- versa Multiinstanzlernen

Enscheidungsbaumlernen (Konstruktion), Support Vector Machines (Regression), Backpropagation in Neuronalen Netze, usw.

ML besteht aus mehreren Phasen:

Datenerhebung (Messung), Datenvorverarbeitung, Statistische Bewertung, Merkmalsselektion, Modellerstellung, Training, Test und Analyse (Kreuzvalidierung), Anwendung/Inferenz

Daten werden unterteilt in:

Trainingsdaten , Testdaten, Anwendungsdaten

Trainings- und Testdaten bei ÜL mit (x,y) Beziehungen (Markierung/Labelling)

Klassifikation mit Entscheidungsbäumen

Zielvariablen: Kategorische Variablen

Eigenschaftsvariablen: Kategorische und Numerische Variablen

Modell: Gerichteter azyklischer Graph (Baumstruktur)

Training und Algorithmen: C4.5, ID3, INN

Klasse: Überwachtes Lernen

Entscheidungsbäume

Ein Entscheidungsbaum ist ein gerichteter azyklischer Graph bestehend aus einer Menge von Knoten N die mit den Eingabevariablen x verknüpft sind und Kanten E die die Knoten verbinden

Die Endknoten sind Blätter und enthalten Werte der Zielvariablen y (daher kann y nur eine kategorische Variable sein, oder eine intervallkategorisierte)

Die Kanten bestimmen die Evaluierung des Entscheidungsbaum beginnend von dem Wurzelknoten bis zu einem Blattknoten

Jede Kante hat eine Evaluierungsbedingung ε(x) der Variable des ausgehenden Knotens x

Zusammengefasst ausgedrückt:

image-placeholder
(6-1)

Entscheidungsbäume können neben einem Graphen auch funktional dargestellt werden:

image-placeholder
(6-2)

Baumklassen

Man unterscheidet:

Binäre Bäume. Jeder Knoten hat genau (oder maximal) zwei ausgehende Kanten (Verzweigungen). Der Test der Variable x kann daher nur x < v, x > v, x ≥ v, oder x ≤ v sein! Wird vor allem bei numerischen Variablen eingesetzt.

Bereichs- und Mehrfachbäume. Jeder Knoten hat 1..k ausgehende Kanten (Knotengrad k). Der Test der Variable x kann auf einen bestimmten Wert x ∈ V oder auf ein Intervall [a,b] erfolgen! Wird vor allem bei kategorischen Variablen eingesetzt.

Baumstruktur

Abbildung 6-1. Grundlegende Struktur eines Entscheidungbaumes

Vorteile

⊕ Entscheidungsbäume sind einfach aufgebaut und können mit einfachen Algorithmen erzeugt werden.
⊕ Entscheidungsbäume als inferiertes Modell erlauben eine Erklärbarkeit des Modells, also die Antwort auf die Frage wie sich ein y aus einem x ergibt.
⊕ Weiterhin ist eine Ableitung eines inversen Problems möglich, d.h. welche Werte x für gegebenes y sind möglich?

Nachteile

⊗ Entscheidungsbäume können schnell spezialisieren, d.h. es fehlt an Generalisierung.
⊗ Theoretisch kann mit einem Entscheidungsbaum jede Trainingsdatentabelle mit einer Trefferquote von 100% abgebildet werden. Der Test mit nicht trainierten Daten ergibt aber Prädiktion in der Größenordnung der Ratewahrscheinlichkeit!

Training

Das Training mit Trainingsdaten Dtrain erzeugt den Baum schrittweise:

Es werden geeignete Variablen x ∈ X ausgewählt die einen Knoten im Baum erzeugen

Jeder hinzugefügte Knoten erzeugt neue Teilbäume (durch Verzweigungen)

Die Verzweigungsbedingungen ε (Kanten) werden ebenfalls vom Trainer anhand der Werte der Variable x in Abhängigkeit von der Zielvariablen y gewählt/berechnet.

Die Auswahl der Variablen und die Verzweigungsbedingungen können je nach Algorithmus und Baumklasse variieren!

Beispiel

Abbildung 6-2. Schrittweise Erzeugung des Entscheidungsbaums aus den Eingabedaten (a) erst mit einer Variable (b,c), dann mit zwei (d) unter Beachtung des Klassifikationsfehlers [10]

Jeder Knoten in einem binären Baum stellt eine lineare Separation des Eingabedatenraums dar.

Probleme bei Mehrbereichsbäumen

Wenn die Wertemenge val(x) groß ist gibt es entsprechend auch viele Verzweigungen im Baum!

Die Größe des Baums wächst an (Speicher)

Die Rechenzeit für das Training (Induktion) aber auch die Anwendung (Inferenz, Deduktion) wächst

Die Entropie kann als Maß der Varianz der Wertemenge gesehen werden.

Das "NP" Problembeispiel

Abbildung 6-3. k-stelliger Entscheidungsbaum für kategorische Variablen [14]

Das Titanic Überlebensbeispiel

Abbildung 6-4. Binärer Entscheidungsbaum (Relation und Auswahl) für numerische und kategorische Variablen: Beantwortung "soziologischen Fragen", und nicht Prädiktion [www.statistik-dresden.de]

Beispiel Materialeigenschaften

Abbildung 6-5. (Links) Entscheidungsbaum für die Vorhersage von Reibungskoeffizienten von Materialien auf der Grundlage von sechs grundlegenden Materialmerkmalen (Rechts) Vergleich der vorhergesagten und experimentellen Reibungskoeffizienten [100]

Trainingsalgorithmen

Es gibt verschiedene Trainingsverfahren (für verschiedene Baumklassen):

ID3. Der Klassiker (Iterative DiChaudomiser 3, Ross Quinlan, 1975-1986) für kategorische Variablen (k-stelliger Baum)

C4.5. Der Klassiker (Ross Quinlan 1988-1993) für numerische (und kategorische) Variablen (Binär- und k-stelliger Baum) als Erweiterung des ID3 Verfahrens.

INN. Die Eigenkreation (auch ICE, Stefan Bosse, 2016) für numerische unsichere und verrauschte Sensorwerte mit Intervallarithmetik (also im Prinzip Intervallkategorisierung und Kantenbedingungen sind x ∈ [a,b]), basierend auf C4.5 und ID3

Vergleich ID3 - C4.5

Der ID3-Algorithmus wählt das beste Attribut basierend auf dem Konzept der Entropie und dem Informationsgewinn für die Entwicklung des Baumes.

Der C4.5-Algorithmus verhält sich ähnlich wie ID3, verbessert jedoch einige ID3-Verhaltensweisen:

Möglichkeit, numerische (kont.) Daten zu verarbeiten.

Verarbeitung unbekannter (fehlender) Werte

Möglichkeit, Attribute mit unterschiedlichen Gewichten zu verwenden.

Beschneiden des Baumes nach der Erstellung (Modellkompaktierung).

Vorhersage der Fehler

Hervorhebung und Extraktion von Teilbäumen

ID3 Verfahren

[1] J. R. Quinlan, “Induction of Decision Trees,” in Machine Learning, Kluwer Academic Publishers, Boston, 1986.

Entropie

Ausgangspunkt für die Konstruktion des Entscheidungsbaums ist die (Shannon) Entropie einer Spalte X der Datentabelle (mit der Variable x):

image-placeholder
(6-3)

Alle Werte gleich ⇒ Entropie=0; Alle Werte gleichverteilt ⇒ Entropie=-log₂|ci|

Abbildung 6-6. Illustration der Bedeutung der Entropie: Entropie hat ihre Wurzeln in der Physik- sie ist ein Maß für Unordnung oder Unvorhersehbarkeit in einem System. [https://towardsdatascience.com/understanding-entropy-the-golden-measurement-of-machine-learning-4ea97c663dc3]

Entscheidungsbäume verwenden Entropie für ihre Konstruktion: Um Eingaben so effektiv wie möglich nach einer Reihe von Bedingungen zu einem korrekten Ergebnis (Zielvariable) zu lenken, werden Merkmalteilungen (mit Bedingungen) mit niedrigerer Entropie (höherer Informationsgewinn) höher im Baum platziert.

Um die Idee von Bedingungen mit niedriger und hoher Entropie zu veranschaulichen, betrachten wir hypothetische Merkmale mit einer durch Farbe (rot oder blau) markierten Klasse und der durch eine vertikale gestrichelte Linie markierten Teilung.

y , dann ergibt sich ein hoher Informationsgewinn bei niedriger Entropie (von y ) für eine gute Teilung

Abbildung 6-7. Betrachtet man die Verteilung der Zielvariablen [https://towardsdatascience.com/understanding-entropy-the-golden-measurement-of-machine-learning-4ea97c663dc3]

Entscheidungsbäume berechnen die Entropie von Merkmalen und ordnen sie so an, dass die Gesamtentropie des Modells minimiert (und der Informationsgewinn maximiert) wird.

Mathematisch bedeutet dies, dass die Bedingung mit der niedrigsten Entropie oben platziert wird, so dass sie dazu beitragen kann, Knoten darunter zu spalten, um die Entropie zu verringern.

Informationsgewinn und relative Entropie, die beim Training von Entscheidungsbäumen verwendet werden, sind definiert als der Abstand zwischen zwei Wahrscheinlichkeitsmassenverteilungen p(x) und q(x) (siehe vorherige Abb.).

Bedingte Entropie

Interessant ist die Werteverteilung einer Eingabevariablen X in Bezug auf die Werte (Partitionen) der Zielvariable Y ⇒ Bedingte Entropie

image-placeholder
(6-4)

C ist die Menge aller unterscheidbaren Werte von X!

Beispiel

a | b | y
u | u | A
v | v | A
w | u | B
w | v | B

image-placeholder
(6-5)

Informationsgewinn

Ausgehend von der bedingten Entrope kann der Informationsgewinn einer Spalte X hinsichtlich der Zielvariablenspalte Y berechnet werden:

image-placeholder
(6-6)

Der Informationsgewinn, der durch Auswahl des Attributs x und der Spalte X erzielt wird, errechnet sich dann als Differenz der Entropie von Y und der erwarteten/durchschnittlichen Entropie von Y bei Fixierung von x.

Der Informationsgewinn ist auf Y Verteilung bezogen, nicht wie vorher auf X!

Algorithmus

 1: 0. Starte mit leeren Baum, allen Eingansattributen X, der Zielvariablen Y,
 2:    und der vollständigen Datentabelle D(X,Y).
 3: 1. Berechne den Informationsgewinn für jede Attributevariable x ∈ X.
 4: 2. Wenn nicht alle Zeilen zum selben Zielvariablenwert gehören,
 5:    wird der Datensatz D in Teilmengen D'~xbest,v1~, D'xbest,v₂, usw.
 6:    aufgeteilt für das Attribut xbest ∈ X mit dem größten Informationsgewinn.
 7: 3. Es wird ein Knoten mit der Attributvariable xbest erstellt.
 8: 4. Wenn alle Zeilen zur selben Klasse gehören, wird ein Blattknoten
 9:    mit dem Wert der Zielvariable erstellt.
10: 5. Wiederholung von 1-4 für die verbleibenden Attribute X'=X / xbest,
11:    allen Teilbäumen (Verzweigungen von aktuellen Knoten) mit jeweiligen D',
12:    bis alle Attribute verwendet wurden,
13:    oder der Entscheidungsbaum alle Blattknoten enthält.

C4.5 Verfahren

[1] J. R. Quinlan, "C4.5: Programs For Machine Learning". Morgan Kaufmann, 1988.

Wie ID3 werden die Daten und Attribute an jedem Knoten des Baums bewertet um das beste Teilungsattribut zu bestimmen.

Aber C4.5 verwendet die Methode der "gain ratio impurity", um das Teilungsattribut zu bewerten (Quinlan, 1993).

Entscheidungsbäume werden in C4.5 mithilfe eines Satzes von Trainingsdaten oder Datensätzen wie in ID3 erstellt.

An jedem Knoten des Baums wählt C4.5 ein Attribut der Daten aus, das seinen Satz von Samples am effektivsten in Teilmengen aufteilt, die in der einen oder anderen Klasse verteilt sind.

Das Kriterium ist der normalisierte Informationsgewinn:

Verhältnis des Informationsgewinns G (Gain) zu einer sog. Teilungsqualität (Split Info SI), die sich aus der Zielvariable Y zum Aufteilen nach den Y Werten der Daten ergibt.

Das Attribut mit dem höchsten Verhältnis GR (Gain Ratio) wird ausgewählt, um die Entscheidung für die Teilung zu treffen.

image-placeholder
(6-7)

Teilung von kategorischen und numerischen Variablen

Bei kategorischen Variablen bestimmen die Werte Val(X) einer Spalte der Datentabelle einer Variablen x die Aufteilung eines Entscheidungbaums (Partitionierung).

Bei numerischen Variablen muss ein Wert als Teilungspunkt aus der Werteverteilung bestimmt!

Nicht trivial; Welches Kriterium?

Intervallkategorisierung und Wertepartitionierung kann helfen!

D\.h. mit intervallkategorisierten diskrete Werter wird die Spalte X entsprechend der Zielvariable Y partitioniert.

Und diese Partitionen werden bewertet und der Teilungspunkt xsplit ∈ X bestimmt (z.B. über Mittelwerte der Intervalle)

Vertiefung

Rokach and O. Maimon, Data Mining with Decision Trees - Theory and Applications. World Scientific Publishing, 2015.

Intervallkodierung

Abbildung 6-8. Einteilung von kontinuierlichen Werteverteilungen in Intervall und Abbildung auf kategorische (diskrete) Werte

Unvollständige Trainingsdaten

Es kommt vor allem in der Soziologie aber auch in der Mess- und Prüftechnik vor, dass nicht alle Werte der Attributvariablen X für alle Trainingssätze bekannt sind.

Die Behandlung fehlender Attributwerte in den Zeilen der Datentabellen ist schwierig

Es gibt keine Universallösung für den Umgang mit ? Werten. Möglichkeiten:

Ersetzen des fehlenden Wertes mit einem Standardwert

Ersetzen des fehlenden Wertes mit einem probabalistisch über Verteilungshäufigkeiten bestimmten Wert (auch unter Einbeziehung des gesamten Datensamples)

Attributvariablen mit fehlenden Werten nicht verwenden

Intervallkategorisierte Entscheidungsbäume (INN/ICE)

Bisherige Entscheidungsbäume (C4.5/ID3) wurden entweder mit einer diskreten Anzahl von kategorischen Werten verzweigt oder mittels binärer Relationen!

Aber Sensoren (sowohl in der Mess-und Prüftechnik als auch in der Soziologie) sind fehlerbehaftet, d.h. es gibt bei jedem x-Wert ein Unsicherheitsintervall [x-δ,x+δ] → Rauschen

Damit können Entscheidungsbäume (anders als Neuronale Netze oder Regressionslerner) nicht umgehen.

Wenn die Teilung mit x<50 und x≥50 an einem Knoten mit x erfolgt würde bei Werten um 50 und überlagerten Rauschen ein Entscheidungsproblem entstehen!

Lösung: k-stellige Knoten mit Intervallverzweigungen, also:

image-placeholder
(6-8)

Abbildung 6-9. Vergleich der verschiedenen Baumarten und Knotenverzweigungen

Bei der Konstruktion des Entscheidungsbaums werden wieder nach Informationsgewinn bzw. Gewinnverhältnis Attributvariablen und Spalten der Datentabelle ausgewählt.

Die numerischen Werte werden sowohl beim Training als auch bei der Inferenz durch Intervalle ersetzt → Ersetzung von diskreter mit Intervallarithmetik

Entropie usw. werden durch kategorisierte Intervalle bestimmt

Das große Problem: Für jede Variable muss ein ε abgeschätzt werden → Statistisches Modell erforderlich.

Und was bedeuten jetzt überschneidende Intervalle?

Überschneidungen bedeuten Ununterscheidbarkeit!

Inferenz mit NN Suche

Jeder Knoten xi hat ausgehende Kanten mit annotierten Intervallen [vj-ε,vj+ε]

Bei einem neuen zu testenden Variablenwert v wird einerseits auch ein Intervall [v-ε,v+ε] gebildet und mit den Kantenintervallen verglichen, andererseits wird das nächstliegende Intervall gesucht

Random Forest Trees

Konzept und Idee: Mehrere schwache Modelle zu einem starken kombinieren.

Multiinstanzmodell

Es werden m Entscheidungsbäume DT={dt₁,..,dtm} getrennt gelernt und erzeugt

"Random": Die Aufteilung der Daten in Teilungsvariablen erfolgt randomisiert!

Eingabedaten werden zur Inferenz an alle Teilbäume dti ∈ DT gegeben

Alle Ausgabevariablen der Teilbäume werden fusioniert

Fusion:

Mittelwert (bei intervallkodierten oder intervallskalierbaren kat. Zielvariablen durch Dekodierung in numerische Werte)

Mehrheitsentscheid

Konsensfindung (Verhandlung)

Parametersatz:

Stelligkeit eines Knotens (Anzahl der ausgehenden Kanten)

Anzahl der Teilbäume

Partitionierung des Eingaberaums (d.h. ein bestimmter Baum verwendet nur eine Teilmenge der Spalten aus D)

Fusionsmodell und Algorithmus

Abbildung 6-10. Grundprinzip von Multibaumklassifikatoren [Abhishek Sharma, 2020, www.analyticsvidhya.com]

Beispiel

Experiment

Sensornetzwerk von (3 × 4) Dehnungssensoren

Stimulus: Bauteilschwingung

Varianz: Bauteilschäden (Defekte)

Zielvariable: Schadensklassifikation (9 Positionen)

Merkmalsvektor: Downgesampletes zeitaufeglöstes Sensorsignal einer

Ressourcen

Genauigkeit

Regressionsbäume

Classification and Regression Tree CART

Breiman, Friedman, Olshen, and Stone (1984)

Bisher gaben Entscheidungsbäume diskrete kategorische Symbolwerte oder intervallkodierte numerische Werte aus. Ausgabewerte die nicht in den Trainingsdaten enthalten waren können auch nicht ausgegeben werden. Es gibt keine Inter- und Extrapolation!

Regressionsbäume können zwar auch nur eine diskrete Menge von Werten ausgeben, die aber nicht unmittelbar in den Trainingsdaten enthalten sein müssen (nur numerische Zielvariablen)

Ein Regressionsbaum ist ein Hybrid aus Regressionsfunktion und Entscheidungsbaum.

Ein CART gruppiert einzelne Dateninstanzen und Trainingsbeispiele in Gruppen und berechnet statistische Größen der Zielvariable: Mittelwert, Standardabewichung usw.

Jeder Knoten ist hier auch ein Zielknoten der diese statistischen Informationen der Zielvariablen liefert und kann für die Beantwortung einzelner Fragen verwendet werden d.h.,

Der Einfluss von Variablen und deren Wertebereiche auf die Zielvariable ist unmittelbar ablesbar,

Pfade entlang des Baumes ergeben Variablenkonditionale (also wenn A und dann B dann ...)

Abbildung 6-11. CART mit der Zielvariable y:Raucher? und verschiedenen Eingabevariablen (Attributen): Alter (Monate!), Elternstress (Score 0-5) [14]

Als eine statistische Methode gruppiert CART Individuen in eine Reihe von sich gegenseitig ausschließenden und repräsentativen Gruppen, die auf starke Zusammenhänge zwischen den unabhängigen Variablen basieren. CART ist eine effektive explorative statistische Technik.

Ohne auf einem speziellen statistisches Modell zu basieren, enthält CART keine komplexen mathematischen Gleichungen (die das statistische Modell beschreiben). Die Ergebnisse sind leicht zu interpretieren und zu verstehen.

Algorithmus

Ziel: Mit jeder Ebene/Knoten die "Unordnung" (Impurity) der Datenverteilung mit Bezug zu der Zielvariable zu reduzieren

Es wird wieder die Entropie ε als Maß für die Unordnung herangezogen

Der Grad der Verringerung der Unordnung, der mit der Partitionierung eines übergeordneten Knotens in zwei untergeordnete Knoten verbunden ist, wird berechnet als [14]:

image-placeholder
(6-9)

wobei ε(τ) die Entropie des Elternknoten ist.

Zusammenfassung

Entscheidungsbäume sind für die Klassifikation von kategorischen Zielvariablen geeignet

Mit Ausnahme von CART liefern EB nur Werte der Zielvariablen die im Training enthalten waren

Numerische Zielvariablen müssen intervallkodiert werden (mit Ausnahme von CART).

ID3/C4.5 Lerner können numerische und kategorische Eingabevariablen (Attribute) verwenden

Eine Attributvariable ist ein Teilungspunkt

Rauschen auf Sensordaten muss durch "Unsicherheitsintervall" und Intervallarithmetik behandelt werden (und bei CART durch Standardabweichung)

Vergleich mit anderen Lernverfahren zeigt gute Ergebnisse (je nach Problem)

Regression und Support Vector Machines

Wie funktioniert Regression?

SVM gehören zu den Regressionsverfahren

SVM nutzen aber bei der Parameteranpassung (Training) eine andere Fehlerfunktion (Loss) als bei anderen gängigen Regressionsverfahren (z.B. Least-Square Minimierung)

SVM können primär kategorische und weniger numerische Zielvariablen abbilden

SVM sind aber (zunächst) lineare Klassifikatoren!

Regressionsverfahren

Klassifikationsprobleme sind durch Booleschen Ausgabevariablen gekennzeichnet (Klasse ci={true,false})

Bei Regressionproblemen findet hingegen eine Ausgabe mit kontinuierlichen Variablen statt, idealerweise y ∈ [0,1]

D\.h. es gibt Trainingsdaten mit:

image-placeholder
(7-1)

wobei r ∈ ℝ. Wenn Rauschen vernachlässigt wird handelt es sich um ein reines Interpolationsproblem.

Das Ziel ist es nun, eine Funktion f( x→ ) zu finden, die die Trainingsdaten optimal repräsentiert (also die beste Hypothese g von f finden)

Beispiel

[19]

Abbildung 7-1. Lineare Gerade, Polynome zweiter Ordnung und sechster Ordnung werden an denselben Satz von Punkten angepasst. Die höchste Ordnung ergibt eine perfekte Passform, aber angesichts dieser vielen Daten ist es sehr unwahrscheinlich, dass die reale Kurve so geformt ist. Die zweite Ordnung scheint besser zu sein als die lineare Anpassung bei der Erfassung des Trends in den Trainingsdaten (Extrapolation).

Es wird immer einen Fehler ε geben:

image-placeholder
(7-2)

Ziel der Regression ist es diesen Fehler über eine Verlustfunktion zu minimieren in dem Parameter Θ*→ der Funktion *f angepasst werden:

image-placeholder
(7-3)

Lineare Multivariate Regression

Es wird angenommen dass die Funktion f( x→ ) durch eine lineare Funktion über x→ abgebildet werden kann.

Dann gilt:

image-placeholder
(7-4)

Schon dieses Problem kann unterbestimmt sein, d.h., es kann unendlich viele Hypothesen g von der unbekannten Funktion f geben!

Bei nichtlinearen Zusammenhängen wird die Regressionsfunktion noch komplexer!

Nichtlineare Univariate Regression

Es gibt nur eine Eingabevariable und die Hypothesenfunktion wird durch ein Polynom k-ter Ordnung approximiert:

image-placeholder
(7-5)

Wird von einem Polynom ersten Grades ausgegangen (Gerade) dann gilt es folgende Gleichung zu bestimmen und das Minimierungsproblem zu lösen:

image-placeholder
(7-6)

Den Minimumspunkt dieser Fehlergleichung findet man durch Gradientenbildung der Parameter, das bedeutet dann:

image-placeholder
(7-7)

Nichtlineare Multivariate Regression

Sehr hochdimensionales Problem! Und i.A. völlig unterbestimmt (d.h. kein eindeutigen Zusammenhänge zwischen x→ und y)

image-placeholder
(7-8)

Es können auch exponentielle, logarithmische, und sinusoidale Terme hinzukommen!

Ein numerisches Lösen ist meist nicht mehr möglich; daher Verwendung nichtlinearer Randbedingungslöser sowie statistische Verfahren wie randomiserte Monte Carlo Simulation und Simmuliertes Abkühlen (Evolutionäre Algorithmen?)

Warum können hochdimensionale Polynome nicht mehr mit gradientenbasierten Verfahren numerisch auf einem Computer (gut oder überhaupt) lösbar sein? Hinweis: Wie entwickeln sich Gradienten bei Polynomen sehr hoher Ordnung oder gar Exponentialterme wie bn?

???

Direkte Lösungsverfahren

Single Value Decomposition (SVD)

[4]

Erweiterung der Eigenwertanalyse und verwendet Matrixalgebra und Inversionsmethoden

Ansatz: Dekomposition einer (nichtlinearen) Funktion f( x→ , Θ*→ ) mit *b Basisfunktionen ϕ, z.B. sin oder ähnlich, mit Parametersatz Θ:

image-placeholder
(7-9)

Z\.B. ϕ*→ (x) = (1,x,*x²,..,xb-1)T, oder ϕ*→ (x) = (1,sin(x),cos(x),sin(2x*),...)T

Die gesamte Trainingstabelle wird in Matrixform repräsentiert, und somit erhält man eine Parametermatrix Φ*^ mit den Basisfunktionstermen für die anzupassenden Funktion f( *x→ )Θ (Design Matrix):

image-placeholder
(7-10)

Die Größe der Design Matrix als Ausgangspunkt für SVD/LS Verfahren wächst quadratisch mit der Anzahl der Trainingsdateninstanzen!

Die Lösung (der Funktionsparameter Θ) geschieht dann doch Matrixinversion der Designmatrix Φ:

image-placeholder
(7-11)

mit ΦG als generalisierte Inverse der Matrix Φ

Die generalisierte Inverse wird dann mit dem SVD Verfahren mit sogenannten links- und rechtssingulären Vektoren bestimmt.

Vertiefung: M. Sugiyama, Introduction to Statistical Machine Learning. 2016, Kapitel 22.2

Support Vector Machines (SVM)

Obwohl die SVM zu den linearen (oder nichtlinearen) Regressionsverfahren gehören, wird die SVM primär für die binäre Klassifikation eingesetzt!

SVM Verfahren gehören zu den "Maximum Margin" Methoden

Binärer Klassifikator

Ein binärer Klassifikator soll durch eine lineare Funktion repräsentiert werden (y={-1,+1}):

image-placeholder
(7-12)

Dabei sind w und γ die Parameter des Modells die durch das Training an das Problem angepasst werden müssen.

w ist ein Normalenvektor der bei einem binären Klassifikationsproblem die beiden Instanzklassen trennt

Abbildung 7-2. (Oben) ***w*** ist der Normalenvektor und γ die Verschiebung der Trennungsgrenze für zwei Klasseninstanzen (Unten) Verschiedene ***w***/γ Varianten der Trennungsgrenze mit unterschiedlichen Rändern (Sicherheitsbereichen) [4]

Training

Das Lernen von w und γ erfordert die Berechnung des Abstandes von allen Dateninstanzen (x,y)i von der Trenngrenze. Die Abstände müssen positiv sein:

image-placeholder
(7-13)

für alle Dateninstanzen D={(xi,yi)}n.

Da w und γ beliebig gewählt werden können, kann die Randbedingung auch mit (..)yi ≥ 1 gewählt werden.

Weiterhin kann es sinnvoll sein alle Dateninstanzen um den Ursprung des Koordinatensystems zu zentrieren

Wichtig: Die Werte für y liegen im Intervall [-1,1]!

Alle Probleme die (..)yi ≥ 1 erfüllen mit einem (w,γ) sind linear separierbar.

Es gibt unendlich viele Lösungen (also Entscheidungsgrenzen)

Man wählt das (w,γ) aus bei der alle Dateninstanzen die größte Trennung besitzen (breitester Trennbereich, siehe Abb.)

Der Abstand der Dateninstanzen D ist definiert als das Minimum des normalisierten Abstandes:

image-placeholder
(7-14)

D\.h. SVM zu trainieren ist das Minimierungsproblem zu lösen:

image-placeholder
(7-15)

Vertiefung: M. Sugiyama, Introduction to Statistical Machine Learning. 2016., Kapitel 27

Jede Dateninstanz die nicht in den Trennbereich "eindringt" ist ein Supportvektor!

Harter Trennungsbereich (Hard SVM)

Bei einer "harten" Trennung einer SVM gilt dann:

image-placeholder
(7-16)

Hier wird aber keine Lösung für w und γ gefunden wenn das Problem nicht strikt linear separierbar ist (also keine einzige Gerade die Klassen trennen kann)

Weicher Trennungsbereich (Soft SVM)

Die SVM mit harten Trennungsbereich erfordert lineare Separierbarkeit der Dateninstanzen

Ist in der Realität aber nicht immer oder eher selten gegeben

Die weiche Trennung durch eine SVM führt einen Fehlerparametervektor ξ={ξi}n für die Bestimmung des Trennbereichs ein:

image-placeholder
(7-17)

Sie lässt einzelne nicht (linear) separierbare Datenpunkte zu.

Abbildung 7-3. Weicher Trennbereich einer SVM (Soft margin SVM). Durch ξ werden kleine Klassifikationsfehlerbereiche erlaubt. [4]

Die Ausreißer können durch Rauschen und Messunsicherheit (random. und systematischer Fehler) aber auch aufgrund eines nichtlinear separierbaren Problems entstehen!

Dabei ist C ein einstellbarer Parameter der den Fehler steuert und für den gilt:

image-placeholder
(7-18)

Größere C Werte machen den Abstandsfehler kleiner und für große C geht die weiche in eine harte SVM über

αi = 0 impliziert mi ≥ 1: die i-te Trainingsinstanz xi ist auf der Margengrenze oder innerhalb der Marge und ist korrekt klassifiziert.

αi = C impliziert mi ≤ 1: xi ist auf der Margengrenze oder außerhalb der Marge. Wenn ξi > 1, mi < 0 dann ist xi falsch klassifiziert.

0 < αi < C impliziert mi = 1: xi ist auf der Margengrenze und ist korrekt klassifiziert.

mi > 1 impliziert αi = 0: wenn xi innerhalb der Marge ist, i = 0.

mi < 1 impliziert αi = C: wenn xi außerhalb der Marge ist, αi = C.

Multiklassen SVM

Jedes Multiklassenproblem mit m verschiedenen (diskreten) Klassenwerten kann auf m binäre Klassifikationsprobleme transformiert werden

Anders als bei ANN ist bei SVMs aber nur eine One-hot Kodierung möglich (ggfs. mit Softmaxfunktion).

ML Framework API für SVM

ML.learn({
    algorithm:ML.ML.SVM,
    x:number [][],
    y:number [],
    // threshold function on output? highest value of multi-svms is winner
    threshold:boolean,
    // default : 1.0. C in SVM.
    C : number,
    // default : 1e-4. Higher tolerance --> Higher precision
    tol : number,
    // default : 20. Higher max_passes --> Higher precision
    max_passes : number,
    // default : 1e-5. Higher alpha_tolerance --> Higher precision
    alpha_tol : number,
    kernel : { type: 'rbf', sigma: 0.5 }
    // { type: "polynomial", c: 1, d: 5}
}) → model

Beispiel

/webwork

data

data = [
  {
    "length":5.1,
    "width":3.5,
    "petal_length":1.4,
    "petal_width":0.2,
    "species":"setosa"
  },
  {
    "length":4.7,
    "width":3.2,
    "petal_length":1.3,
    "petal_width":0.2,
    "species":"setosa"
  },
  {
    "length":4.6,
    "width":3.1,
    "petal_length":1.5,
    "petal_width":0.2,
    "species":"setosa"
  },
  {
    "length":5,
    "width":3.6,
    "petal_length":1.4,
    "petal_width":0.2,
    "species":"setosa"
  },
  {
...

prepro

// {}[] -> x:number[][], y:string [][]
dataN = ML.preprocess(
  data,
  'xmy',
  {
    features:['length','width','petal_length','petal_width'],
    target:['species']
  }
)
// Kodierung der y-Variable
dataN.y = dataN.y.map(function (row) {
  switch (row[0]) {
    case 'setosa': return [-1,-1,1];
    case 'versicolor': return [-1,1,-1];
    case 'virginica': return [1,-1,-1];
  }
});
models=[]
results=[]

train

var target = 0; // 0,1,2
models[target] = ML.learn({
    algorithm:ML.ML.SVM,
    x:dataN.x,
    y:dataN.y.pluck(target),
    threshold:false,  // no threshold function on output; highest value of svms is winner
    C : 15.0, // default : 1.0. C in SVM.
    tol : 1e-5, // default : 1e-4. Higher tolerance --> Higher precision
    max_passes : 200, // default : 20. Higher max_passes --> Higher precision
    alpha_tol : 1e-5, // default : 1e-5. Higher alpha_tolerance --> Higher precision
    kernel : { type: 'rbf', sigma: 0.5 } // { type: "polynomial", c: 1, d: 5}
})

test

var target = 0; // 0,1,2
results[target]=ML.predict(models[target],dataN.x).merge(dataN.y.pluck(target),'c')

[Sugiyama, ItSML, pp 303]

Zusammenfassung

Regressionsverfahren werden auf kontinuierliche Zielvariablen angewendet (der Hypothesenraum kann bei nichtlinearen Problemen sehr groß werden)

Eine SVM wird als binärer Klassifikator verwendet und wird i.A. durch eine lineare Funktion (Kernel) repräsentiert

Das Problem sollte dann linear separierbar sein!

Multiklassenprobleme werden auf Multi-SVMs zurückgeführt

Verwendung einer Softmax Funktion für eindeutige Klassentrennung

Das Training einer SVM ist ein Minimierungsproblem dass den Trennbereich maximiert und den Fehler minimiert