Machine Learning
description
Transcript of Machine Learning
Machine Learning
KNN und andere (Kap. 8)
K-Nearest Neighbour
• Typischerweise für Klassifikationsaufgaben verwendet
• Ursprünglich zur Mustererkennung• Schon Mitte der 50er Jahre angewendet• Keine spezielle Trainingsprozedur erforderlich
(aber Trainingsdaten)• Relativ hoher Aufwand zur Laufzeit
• „Instance based Learning“• „Lazy Learning“
K-nearest Neighbour
• Idee:– Finde in den Trainingsdaten den/die zur aktuellen
Instanz ähnlichste(n) Instanz(en)– Die aktuelle Instanz bekommt denselben Wert wie
diese(r) Nachbar(n)
• Schwierigkeit:– Wieviele Nachbarn?– Welches Ähnlichkeitsmaß?– Was, wenn die Werte der Nachbarn nicht
übereinstimmen?
K-Nearest Neighbour
K= 1 • K = 3
x
Nächster Nachbar von x
x
3 nächste Nachbarn von x
KNN Algorithmus
• Jede Instanz hat die Form <xi,f(xi)>
• Berechne Abstand zwischen Testinstanz und jeder Trainingsinstanz
• Wähle die k-nächsten Nachbarn n1, n2, ..., nk aus
• Der Wert für x ergibt sich durch:– f(x) = A(f(n1), f(n2), ..., f(nk))
– A ist eine Auswahlfunktion
Ähnlichkeitsmaße für binäre Features
X seien die positiven Features von Instanz A und Y die positiven Features von Instanz B, die Ähnlichkeit von A und B ist dann:
• Matching Koeffizient: |X Y|• Dice Koeffizient : 2|X Y|/(|X|+|Y|)• Jaccard Koeffizient : |X Y|/|X Y|• Overlap Koeffizient : |X Y|/min(|X|,|
Y|)• Kosinus: |X Y|/(|X|x|Y|)1/2
Vektorraum-Maße
• Euklidischer Abstand
• Kosinus-Maß:
n
i i
n
i i
n
i ii
yx
yx
yx
yxyx
1
2
1
2
1.),cos(
n
i
ii yxyxdist1
2)(),(
Auswahlfunktion
• Mehrheitsentscheidung• Durchschnitt:
• Gewichtete Summe:
oder
mit
k
nfxf
k
i
i 1
)()(
k
i
ii nfxnsimxf1
)(),()(
k
i
i
k
i
ii
w
nfwxf
1
1
)()( 2),(
1
xndw
ii
Knn für (Text)klassifikation
• Notwendig: Threshold für die Ähnlichkeit:– Wenn die Testinstanz nicht „nahe genug“ bei einer
Trainingsinstanz liegt, soll keine Klassifikation stattfinden, bzw. Mehrfachklassifikation soll zugelassen werden
• Möglichkeiten:– Rcut: weise die Top n Kategorien zu– Pcut: strebe bei den Testinstanzen gleiche Verteilung
an wie bei den Trainingsinstanzen (geht nur im Batch-Modus)
– Scut: wähle (u.U. für jede Kategorie individuellen) festen Threshold
KNN• Eigenschaften:
– Zielfunktion wird nicht explizit bestimmt, lediglich für einen Punkt lokal approximiert
– Dadurch können komplexe Zielfunktionen durch rel. einfache lokale Approximationen ersetzt werden
– Geeignete Datenstruktur zur effizienten Berechnung der Abstände erforderlich• Geeignet für:
– Werte sind diskret oder reellwertige Vektoren– Rel. geringe Anzahl von Features– Große Menge an Trainingsdaten verfügbar
• Vorteile– Kein Trainingsaufwand– Komplexität der Zielfunktion spielt keine Rolle– Kein Informationsverlust
• Nachteile– Negative Effekte durch irrelevante Features– Hoher Verarbeitungsaufwand
KNN: Modifikationen
• Reduktion der Feature Menge:– Versuche irrelevante Features zu entfernen– Cross-Validierung: „leave-one-out“-Methode:
• betrachte jeweils eine Instanz der Trainingsdaten als Testinstanz (reihum) und teste so das Streichen von Features
– Umgewichtung der Features: gewichte vermutlich relevante Features stärker als andere
Lokal gewichtete lineare Regression
• Bei KNN: gewichtete Summe als Funktion zur Bestimmung von f(x) -> punktweise
• Verallgemeinerung: versuche die Zielfunktion tatsächlich lokal zu approximieren (= Regression)
• Nehme an die Zielfunktion ist linear, d.h.
n
i
iinn xwwxwxwwxf1
0110 ...)(
Lokal gewichtete Regression
• Approximiere diese Funktion lokal mittels der k nächsten Nachbarn
• Approxiationsverfahren: Minimierung des quadratischen Fehlers mittels des absteigenden Gradienten Verfahrens (cf. Neuronale Netze)
Lazy Learner – Eager Learner
• Lazy = keine Vorprozessierung der Trainingsdaten
• Traingsdaten können leicht geändert werden
• Keine Veränderung der Trainingsdaten durch‘s Lernen
• Keine Generalisierung • Hoher Aufwand zur Laufzeit• Gefahr des Overfitting geringer• Lokale Approximationen,
erlauben komplexere Zielfunktionen
• Eager = Vorverarbeitung der Trainingsdaten
• Änderung der Trainingsdaten hat großen Aufwand zur Folge
• Trainingsdaten werden durch‘s Lernen verändert
• Generalisierung der Trainingsdaten
• Hoher Trainingsaufwand, gutes Laufzeitverhalten
• Overfitting• Es muss uniforme Zielfunktion
für alle Daten gefunden werden
Rocchio Klassifikator
• Typisch für Textklassifikation• Basiert auf Vektorraum-Modell• Idee: erzeuge aus den Trainingsdaten einen
prototypischen Vektor für jede Kategorie und vergleiche den Vektor der neuen Instanz mit diesen Kategorien-Vektoren
• Verfahren stammt eigentlich aus dem Information Retrieval und wurde ursprünglich zum Relevance Feedback entwickelt
Rocchio
• Berechnung des prototypischen Vektors:– Seien Tc+ die positiven und Tc- die negativen
Trainingsbeispiele (Vektoren) für eine Kategorie c
– sind die Centroiden von T+ bzw. T-
cc TtTt
c tT
tT
R||
1
||
1
/||
1
/cTtt
T
Rocchio
• Klassifikation:– Für eine Testinstanz x berechne für jede
Kategorie ci: d(x, ci)
– Thresholding nach pcut, scut oder rcut
• Probleme:– Wahl von α und β– Wahl des Abstandsmaß
Relevance Feedback
• Ziel: basierend auf dem Feedback des Benutzers soll die Query Q so modifizert werden, dass die Ergebnisse relevanter werden.– Seien D+ die Dokumente, die als relevant beurteilt
wurden und D- die als irrelevant beurteilten, dann:
DdDdd
Dd
DQQ
||
1
||
1'
Rocchio: Bewertung
• Konzeptuell sehr einfaches Modell• Erlaubt Aussagen über die Beziehung der
Klassen untereinander• Trainingsaufwand relativ gering• Verarbeitungsgeschwindigkeit linear in
Anzahl der Features und Anzahl der Klassen
• In der Praxis jedoch schlechte Klassifikationsqualität
Aufgaben
• Implementieren Sie bitte einen knn-Klassifikator:– Daten: wie für Beispiel Bayes (
http://www.cis.uni-muenchen.de/kurse/pmaier/ML_05/material/MaterialBayes.tgz )
– Reduzieren Sie die Featuremenge mit einem geeigneten Verfahren rel. stark
– Bestimmen Sie einen geeigneten Wert für k– Definieren Sie eine Repräsentation in der sie die
Trainingsbeispiele abspeichern wollen und wenden sie dieses Verfahren dann an
– Wählen und implementieren Sie eine Auswahlfunktion A