Naive Bayes - Friedrich-Alexander-Universität Erlangen

Werbung
Textmining – Klassifikation von Texten
Teil 1: Naive Bayes
Dept. Informatik 8 (Künstliche Intelligenz)
Friedrich-Alexander-Universität Erlangen-Nürnberg
(Informatik 8)
Klassifikation von Texten 1: Naive Bayes
1 / 16
Klassifikation
Definition
Gegeben eine Menge von Klassen und Objekten. Bestimme für
Objekte (Texte) zu welchen Klassen sie gehören.
Empfohlene Literatur:
I. Witten, E. Frank: Data Mining: Practical Machine Learning Tools
and Techniques
T. Mitchell: Machine Learning
C. Manning, P. Raghavan, H. Schütze: Introduction to Information
Retrieval
Paul Graham: A Plan for Spam (WWW)
(Informatik 8)
Klassifikation von Texten 1: Naive Bayes
2 / 16
Anwendungen
Vorverarbeitung: Encoding, Wortgrenzen, Welche Sprache?
Filtern von Spam
Filtern von pornografischen Inhalten (je nach Anwendung und
Anwender)
Stimmingsklassifikation (positive, negative Nachrichten)
Sortieren nach persönlichen Vorlieben (Spam-Ordner)
Einschränkung von Suchen (Suche nur nach Dokumenten einer
bestimmten Klasse)
Ranking von Suchergebnissen
(Informatik 8)
Klassifikation von Texten 1: Naive Bayes
3 / 16
Klassifizieren
Klassifikator: Jemand, der klassifiziert (Ziel: ein Progamm)
Erstellung
I
Schreibe das Programm von Hand (Reguläre Ausdrücke, . . . )
F
F
F
I
Vorgehen:
Vorteile:
Nachteile:
Verwende Maschinelles Lernen und Statistik
F
F
F
Vorgehen: Labeling von Beispielen
Vorteile:
Nachteile:
Wir bertrachten nur die letzere Möglichkeit der Erstellung!
(Informatik 8)
Klassifikation von Texten 1: Naive Bayes
4 / 16
Naive Bayes
Wahrscheinlichkeit, dass Dokument d in Klasse c ist:
P(c|d) =
P(c)P(d|c)
P(d)
Angenommen 1) wir wollen nur Ranking der Klassen machen und
2) die Termwahrscheinlichkeiten der Klassen sind stochastisch
unabhängig
Y
P(c|d) ∝ P(c)
P(tk |c)
1≤k ≤nd
{t1 , . . . , tnd } die Token in Dokument d
P(tk |c): Wahrscheinlichkeit, dass Term tk in einem Dokument der
Klasse c auftritt
(Informatik 8)
Klassifikation von Texten 1: Naive Bayes
5 / 16
Naive Bayes (2)
Beste Klasse: die maximum a posteriori Klasse (MAP Klasse):
Y
cmap = argmax P̂(c|d) = argmax P̂(c)
P̂(tk |c)
c∈C
c∈C
1≤k ≤nd
P̂: Schätzung der Parameter aus den Trainingsdaten
Mit log(xy ) = log(x) + log(y ) können floating-point underflow
probleme vermieden werden:


X
cmap = argmax log P̂(c) +
log P̂(tk |c)
c∈C
(Informatik 8)
1≤k ≤nd
Klassifikation von Texten 1: Naive Bayes
6 / 16
Maximum likelihood Parameterschätzung
Für die Klassenwahrscheinlichkeit:
P̂(c) =
Nc
# Dokumente in Klasse c
=
N
# Dokumente
Bedingte Term-Klassenwahrscheinlichkeit:
P̂(t|c) = P
I
I
Tct
t 0 ∈VOC Tct 0
Tct : Anzahl der Vorkommen von t in allen Dokumenten der Klasse c
VOC: Vokubular = Alle Terme aller Dokumente
ˆ = 0 für
Problem: Sparseness – P(t|c)
(Term,Klasse)-Kombinationen die nicht in den Trainingsdaten
vorkommen
Abhilfe: Laplace-Glättung:
Tct + 1
Tct + 1
= P
( t 0 ∈VOC Tct 0 ) + |VOC|
t 0 ∈VOC (Tct 0 + 1)
P̂(t|c) = P
(Informatik 8)
Klassifikation von Texten 1: Naive Bayes
7 / 16
Beispiel
Trainingskorpus:
Doc ID
D1
D2
D3
D4
Dokument
Sieben Zwerge fraßen sieben Ziegen
Sieben Ziegen traten sieben Wölfe
Sieben Wölfe fraßen sieben Böcke
Sieben Böcke traten sieben Zwerge
Klasse
e
ē
e
ē
Dokument
Sieben Böcke fraßen sieben Zwerge
Sieben Zwerge fraßen sieben Wölfe
Sieben Ziegen traten sieben Zwerge
Klasse
e
e
ē
Testkorpus:
Doc ID
D10
D20
D40
(Informatik 8)
Klassifikation von Texten 1: Naive Bayes
8 / 16
Beispiel (2)
(Informatik 8)
Klassifikation von Texten 1: Naive Bayes
9 / 16
Naive Bayes mit Bernoulli-Textmodell
(vgl. Folien zum Thema Clustering!)
Grundlage: Binäre Dokument-Term-Vektoren der Länge
M = |VOC|
Terme werden als unabhängig angenommen;
Pro Eintrag P̂(t|c): Wahrscheinlichkeit, dass ein Dokument der
Klasse c den Term t enthält
Parameterschätzung:
P(t|c) =
Anzahl Dokumente der Klasse c, die t enthalten + 1
Anzahl der Dokumente der Klasse c + 1
Anwendung für Dokument d:
"
cmap
(
#
log P̂(t|c)
wenn t ∈ d
= argmax log P̂(c) +
log 1 − P̂(t|c) sonst
c∈C
t∈VOC
(Informatik 8)
X
Klassifikation von Texten 1: Naive Bayes
10 / 16
Vergleich der Textmodelle
Dokument Darstellung
Parameterschätzung
Entscheidungsregel
Mehrfachauftreten
Nichtauftreten
Durchschnitt für den Term ‘the’ in c
Multinomial-Modell
einzelne Terme
X = t wenn t an der gegebenen Position erzeugt
d = ht1 , . . . , tk , . . . , tnd i, tk ∈ VOC
P̂(X = t|c)
argmax über alle Terme des Dokuments
fließt ein
wird ignoriert
ca. 0.05
(Informatik 8)
Klassifikation von Texten 1: Naive Bayes
Erzeugungsmodell
Zufallsvariablen
Bernoulli Modell
Dokumente
Ut = 1 wenn t im Dokument vorkommt
d = [e1 , . . . , ei , . . . , eM ], ei ∈ {0, 1}
P̂(Dok. enthält t|c)
argmax über alle Terme des Vokabulars
wird nicht beachtet
fließt ein
1.0
11 / 16
Feature Selection
Problemstellung: Welche Terme müssen für gute Performance
wirklich betrachtet werden, welche schaden eher?
Weniger Terme: Weniger Aufwand und schädlicher Terme werden
eliminiert
Schädliche Terme: Solche die ‘zufälligerweise’ außschließlich in
den Dokumenten einer Klasse auftreten (overfitting)
Vorgehen: Gegeben ein Nützlichkeitsmaß A(t, c), wähle die k
nützlichsten
(Informatik 8)
Klassifikation von Texten 1: Naive Bayes
12 / 16
Mutual Information Feature Selection für NB
Hypothese: Nützlich sind die Terme, die großen stochstischen
Zusammenhang mit den Klassen haben
Gegeben ein beliebiges Dokument d und Klasse c.
I
I
Sei Ut Zufallsvariable mit Wert 1, wenn d den Term t enthält und 0
sonst
Sei Cc Zufallsvariable mit Wert 1, wenn d zur Klasse c gehört und 0
sonst
Wdh. P(Ut = et ) stochastisch unabhängig von P(Cc = ec ), gdw
P(Ut = et , Cc = ec ) = P(Ut = et )P(Cc = ec ),
Mutual Information (Term t, Klasse c):
I(Ut , Cc ) =
X
X
P(Ut = et , Cc = ec ) log2
et ∈{0,1} ec ∈{0,1}
P(Ut = et , Cc = ec )
P(Ut = et )P(Cc = ec )
I(Ut , Cc ) = 0 wenn t und c unabhängig, weiterhin I(Ut , Cc ) > 0
wenn t und c abhängig
(Informatik 8)
Klassifikation von Texten 1: Naive Bayes
13 / 16
χ2 Feature Selection für NB
Ein Test auf Unabhängigkeit
Sei Net ec die Häufigkeit der Dokumente mit Ut = et und Cc = c
und N die Anzahl der Dokumente
und weiterhin: Eet ec die erwartete Häufigkeit bei Unabhängigkeit,
also
Eet ec = N × P(Ut = et ) × P(Cc = ec )
dann ist
X2 =
X
X
et ∈{0,1} ec ∈{0,1}
(Net ec − Eet ec )2
Eet ec
ein Maß für die Unabhängigkeit von t und c
(Informatik 8)
Klassifikation von Texten 1: Naive Bayes
14 / 16
χ2 Feature Selection für NB (2)
Werte für χ2 und die Unabhängkeit
p
0.1
0.05
0.01
0.005
0.001
χ2 - Wert
2.71
3.84
6.63
7.88
10.83
Interpretation:
I
I
Wenn unabhängig, dann ist P(X 2 > 6.63) < 0.01
somit abhängig mit 99% Sicherheit
(Informatik 8)
Klassifikation von Texten 1: Naive Bayes
15 / 16
Warum eigentlich ‘naiv’?
Terme sind voneinander unabhängig, gegeben sie Klasse
zusätzlich im Multinomial-Modell: Termwahrscheinlichkeit pro
Textposition gleich
im Bernoulli-Modell: Nur das Auftreten (Nicht-Auftreten) zählt
Warum funktioniert NB überhaupt?
⇒ die exakten Wahrscheinlichkeiten sind uninteressant, es zählt
der Gesamt-Score
Aber auch bei χ2 : Verwendet bei Summen von unabhängigen,
standardnormalverteilten Zusfallsvariablen
(Informatik 8)
Klassifikation von Texten 1: Naive Bayes
16 / 16
Herunterladen