Überwachtes Verfahren = Beim trainieren ist jede Klasse eines Datensatzes bekannt Unüberwachtes Verfahren = Während dem Training ist nicht bekannt, um welche Klasse es sich bei einem Datensatz handelt. Überwacht k-NN CART (Classification and Regression Trees) Nicht-überwacht Parametrisches Verfahren = Es wird anfangs eine Annahme über die Wahrscheinlichkeits-Verteilung getroffen (z.B. Es handelt sich um eine GaussGlocke) Nicht-parametrisches Verfahren = Es wird anfangs keine Annahme über die WahrscheinlichkeitsVerteilung getroffen. Parametrisch Perceptron Nicht-parametrisch CART (Classification and Regression Trees) k-NN Die Aktivierungsfunktion eines normalen neuralen Netzes ist die sig-Funktion. Die Aktivierungsfunktion eines MLP/Backpropagation neuralen Netzes ist differenzierbar (meist die sigmoid- oder tanh-Funktion) Design Cycle 1. 2. 3. 4. 5. Daten sammeln Feature-Selektion Modellauswahl Klassifikator trainieren Klassifikator evaluieren Mahanalobis Distanz d = die Distanz x = Merkmalsvektor µ = Mittelwertvektor Σ = Kovarianzmatrix Bayes Theorem berechnen: Gegeben: i (= Fall) P(x=i | w=1) P(x=i | w=2) 1 0.8 0.1 2 3 0.1 0.4 0.1 0.5 a priori: - P(w=1) = 0.4 - P(w=2) = 0.6 Schritt 1 – Nenner des Theorems berechnen Der Nenner ist die Wahrscheinlichkeit für das Auftreten der Beobachtung und entspricht der Summe aller möglichen Zähler (aller Fälle): i (= Fall) P(x=i) 1 (0.4 * 0.8) + (0.6 * 0.1) = 0.38 2 (0.4 * 0.1) + (0.6 * 0.4) = 0.28 3 (0.4 * 0.1) + (0.6 * 0.5) = 0.34 Schritt 2 – a posteriori berechnen Mit Hilfe der berechneten Daten (alles, was oben fettgedruckt ist) können wir nun die a posterioriWahrscheinlichkeiten für jede Klasse berechnen (einfach die berechneten Daten richtig in die Hauptformel einsetzen): j (= Klasse) P(w=j | x=1) P(w=j | x=2) P(w=j | x=3) 1 0.8 * 0.4 / 0.38 = 0.842 0.1 * 0.4 / 0.28 = 0.142 0.1 * 0.4 / 0.34 = 0.118 2 0.1 * 0.6 / 0.38 = 0.158 1 - 0.142 = 0.857 1 – 0.118 = 0.882 Schritt 3 – Klasse und Fehler ablesen Zur Bestimmung der Klasse schaut man einfach in der a posteriori-Tabelle welche Klasse für welchen x-Wert die höhere Wahrscheinlichkeit hat (fett/kursiv gedruckt). Die Fehlerwahrscheinlichkeit für eine bestimmte Klasse entspricht der Wahrscheinlichkeit der „falschen“ Auswahl (die niedrigere Wahrscheinlichkeit für den jeweiligen x-Wert). Die gesamte Fehlerwahrscheinlichkeit berechnet sich: P(error) = (0.158 * 0.38) + (0.142 * 0.28) + (0.118 * 0.34) = 0.14 = 14% Fehlerwahrscheinlichkeit Matrix-Berechnungen Gegeben: Mittelwert-Vektoren Einfach das arithmetische Mittel der oberen Zahlen, sowie das arithmetische Mittel der unteren Zahlen berechnen: geschätzte Kovarianz-Matrix berechnen Für jeden Vektor-Wert die Differenz zu seinem Mittelwert berechnen und im sogenannten DifferenzVektor zusammenfassen: Diesen Vektor mit sich selbst (natürlich transponiert) multiplizieren und die Ergebnismatrix-Werte durch n = (Vektorenzahl – 1) teilen (in diesem Fall = 3): Die Kovarianz ist ein Maß für die statistische Abhängigkeit zwischen den Variablen. Sie beschreibt die gemeinsame Varianz beider Variablen. Eigenschaften der Kovarianz-Matrix: Symmetrisch positiv semi-definiet => sie hat nicht-negative Eigenwerte Eigenwerte/-vektoren berechnen Die Eigenwerte berechnen sich durch lösen des Gleichungssystems, welches sich aus der Determinante einer Matrix (in unserem Fall die Kovarianz-Matrix) minus Lamda * Einheitsvektor ergibt: Durch lösen dieses Gleichungssystems bekommt man zwei Lamdas. Der Eigenvektor jedes dieser Lamda berechnet sich, indem man einfach einsetzt in: Der Eigenvektor des größeren Lamdas (Haupteigenvektor) liegt in der Richtung der größten Varianz der Daten. Der andere liegt orthogonal dazu. 5 Fragen zu CART 1. Wie viele Verzweigungen sollen an einen Knoten angehängt werden? Bei zwei wäre es ein binärer baum 2. Welche Eigenschaft (Merkmal) soll an einem Knoten getestet werden? 3. Wann soll ein Knoten in ein Blatt umgewandelt werden? 4. Wenn ein Baum „zu groß“ wird, wie kann er kleiner und einfacher gemacht werden? (Pruning) 5. Wenn ein Blatt nicht rein ist, wie soll eine Entscheidung über die Klasse getroffen werden? (Ein reiner Knoten beinhaltet nur Mitglieder einer Klasse) Das Perceptron Die Ausgabe des Perceptron durch folgende Funktion berechnet: ist der Bias w ist der Gewichtsvektor x ist der Merkmalsvektor Es gilt nun den Bias und den Gewichtsvektor so zu wählen, dass obige Formel für eine Klasse (bzw. Baumentscheidung) -1 ergibt und für die andere +1. Durch eine Transformation in Homogene Koordinaten (bedeutet, dass man den Bias als zusätzliche Dimension in den Gewichtsvektor integriert) kann die Berechnung der Entscheidungsfunktion vereinfacht werden (Skript Folie 310). Ein einstufiges Perceptron (= das oben beschriebene) kann nur linear trennbare Mengen erkennen (= man kann alle Klassen mit einer geraden Linie trennen) => keine Lösung für das XOR-Problem! Der Trainingsalgorithmus sieht folgendermaßen aus: Initialisiere w und (Lamda = Lernrate, siehe Skript Folie 322ff.) do for all samples if (sample is misclassified) end if end for until all samples correctly classified Dieser Algorithmus terminiert IMMER für linear separierbare Trainingssets. Dieser Algorithmus terminiert NIE für nicht-linear separierbare Trainingssets.