dataanalysis.classifiers
Class BayesClassifier

java.lang.Object
  |
  +--dataanalysis.databases.DatabaseElement
        |
        +--dataanalysis.classifiers.Classifier
              |
              +--dataanalysis.classifiers.BayesClassifier

public class BayesClassifier
extends Classifier

Naiver Bayes'scher Klassifikator
Der Klassifikator basiert auf einer Modellierung von Text mit wahrscheinlichkeitstheoretischen Methoden. Es wird davon ausgegangen, da? Texte von verschiedenen Wahrscheinlichkeitsverteilungen erzeugt werden. Diese Verteilungen sind sehr komplex und lassen sich direkt nicht handhaben. Deshalb werden vereinfachende Annahmen gemacht, die es erm?glichen, die Verteilungen auf einem Computer darzustellen und aus Trainingsdaten zu sch?tzen. Die vereinfachenden Annahmen sollten so gew?hlt werden, dass die Komplexit?t gerade genug reduziert wird, um das Problem handhabbar zu machen, aber dennoch die f?r die Klassifikationsaufgabe relevanten Eigenschaften der Verteilung erhalten bleiben. (Quelle: Diplomarbeit "Einsatz eines intelligenten, lernenden Agenten f?r das World Wide Web" von Thorsten Joachims)

Version:
1.5 (22.10.1999)
Author:
Andre Masloch
See Also:
Classifier, Serialized Form

Field Summary
protected  double aPrioriNegative
          Dieser Wert speichert die a-Priori-Wahrscheinlichkeit, dass ein Dokument d zu den negativen Beispielen gehoert.
protected  double aPrioriPositive
          Dieser Wert speichert die a-Priori-Wahrscheinlichkeit, dass ein Dokument d zu den positiven Beispielen gehoert.
protected  int documentCount
          Dieser Wert speichert die Gesamtzahl der Dokumente, mit denen trainiert wurde.
protected  double featureCount
          Dieser Wert speichert die Gesamtzahl der Features (Anzahl der Worte im Feature-W?rterbuch).
protected  java.util.TreeMap negativeDocuments
          in dieser TreeMap werden alle negativen Dokumente abgespeichert.
protected  double[] negativeTF
          In diesem Feld werden die ueber alle negativen Beispiele summierten TF-Werte aller Features abgespeichert.
Dieses Feld wird neu erzeugt, wenn die Methode train() aufgerufen wird.

protected  double negativeTFSum
          Dieser Wert speichert die Summe der TF-Werte aller Features, die in negativen Beispielen vorhanden sind.
protected  java.util.TreeMap positiveDocuments
          in dieser TreeMap werden alle positiven Dokumente abgespeichert.
protected  double[] positiveTF
          In diesem Feld werden die ueber alle positiven Beispiele summierten TF-Werte aller Features abgespeichert.
Dieses Feld wird neu erzeugt, wenn die Methode train() aufgerufen wird.

protected  double positiveTFSum
          Dieser Wert speichert die Summe der TF-Werte aller Features, die in positiven Beispielen vorhanden sind.
 
Fields inherited from class dataanalysis.classifiers.Classifier
documents, moreDictionaries, moreDictionariesNames, myDatabase, theVectorizer, theVectorizerName, THRESHOLD, untrainedExamples, wordDictionary, wordDictionaryName
 
Fields inherited from class dataanalysis.databases.DatabaseElement
elementname
 
Constructor Summary
BayesClassifier()
          Standardkonstruktor
BayesClassifier(ClassifierDatabase theDB)
           
 
Method Summary
 NetEntity classify(NetEntity document)
          Das uebergebene Dokument wird unter zu Hilfenahme des Vektorisieres, des Lexikons und der Trainingsmenge klassifiziert und eingestuft.
 java.lang.String toString()
           
 int train()
          startet das Training des Klassifikators auf den vorhandenen Daten und den neu durch "addExample" hinzugef?gten Beispielen.
 
Methods inherited from class dataanalysis.classifiers.Classifier
addExample, addExample, checkVariables, convert, getThreshold, setDatabase, setThreshold
 
Methods inherited from class dataanalysis.databases.DatabaseElement
getElementname, logMessage, setElementname
 
Methods inherited from class java.lang.Object
, clone, equals, finalize, getClass, hashCode, notify, notifyAll, registerNatives, wait, wait, wait
 

Field Detail

positiveDocuments

protected java.util.TreeMap positiveDocuments
in dieser TreeMap werden alle positiven Dokumente abgespeichert. Als Schluessel werden Integer verwendet. Die Dokumentvektoren sind die Werte.
Since:
1.1

negativeDocuments

protected java.util.TreeMap negativeDocuments
in dieser TreeMap werden alle negativen Dokumente abgespeichert. Als Schluessel werden Integer verwendet. Die Dokumentvektoren sind die Werte.
Since:
1.1

positiveTF

protected double[] positiveTF
In diesem Feld werden die ueber alle positiven Beispiele summierten TF-Werte aller Features abgespeichert.
Dieses Feld wird neu erzeugt, wenn die Methode train() aufgerufen wird.
Since:
1.3


negativeTF

protected double[] negativeTF
In diesem Feld werden die ueber alle negativen Beispiele summierten TF-Werte aller Features abgespeichert.
Dieses Feld wird neu erzeugt, wenn die Methode train() aufgerufen wird.
Since:
1.3


positiveTFSum

protected double positiveTFSum
Dieser Wert speichert die Summe der TF-Werte aller Features, die in positiven Beispielen vorhanden sind.
Since:
1.3

negativeTFSum

protected double negativeTFSum
Dieser Wert speichert die Summe der TF-Werte aller Features, die in negativen Beispielen vorhanden sind.
Since:
1.3

aPrioriPositive

protected double aPrioriPositive
Dieser Wert speichert die a-Priori-Wahrscheinlichkeit, dass ein Dokument d zu den positiven Beispielen gehoert.
Since:
1.4 (30.9.1999)

aPrioriNegative

protected double aPrioriNegative
Dieser Wert speichert die a-Priori-Wahrscheinlichkeit, dass ein Dokument d zu den negativen Beispielen gehoert.
Since:
1.4

documentCount

protected int documentCount
Dieser Wert speichert die Gesamtzahl der Dokumente, mit denen trainiert wurde.
Since:
1.4

featureCount

protected double featureCount
Dieser Wert speichert die Gesamtzahl der Features (Anzahl der Worte im Feature-W?rterbuch).
Since:
1.4
Constructor Detail

BayesClassifier

public BayesClassifier()
Standardkonstruktor

BayesClassifier

public BayesClassifier(ClassifierDatabase theDB)
Since:
1.1
Method Detail

train

public int train()
startet das Training des Klassifikators auf den vorhandenen Daten und den neu durch "addExample" hinzugef?gten Beispielen. Beispiele, die einen Wert haben, der kleiner als Classifier.THRESHOLD ist, werden als negativ angesehen, ansonsten positiv.
Returns:
die Anzahl der Dokumente, mit denen der Klassifizierer trainiert wurde. -1, wenn die Datenbanken nicht richtig initialisiert wurden.
Overrides:
train in class Classifier

classify

public NetEntity classify(NetEntity document)
Das uebergebene Dokument wird unter zu Hilfenahme des Vektorisieres, des Lexikons und der Trainingsmenge klassifiziert und eingestuft. Der Klassifikator tr?gt seine Klassifikation unter dem Namen ein, den die Funktion DatabaseElement.getElementname() zur?ckgibt. Sollte keine Klassifikation m?glich sein, wird kein Wert eingetragen! Dies ist z.B. der Fall, wenn die Exception NetResultReloadFailedException auftritt, der Klassifizierer seinen Vektorisierer nicht in der Datenbank findet oder bisher keine Beispiele mit Classifier.addExample(NetEntity,double) hinzugefuegt wurden.
Parameters:
document - steht fuer den NetEntity, den der Klassifizierer klassifizieren soll.
Returns:
Ausgabe des klassifizierten Dokuments. Ist keine Klassifikation m?glich, wird kein Eintrag vorgenommen (s.o.)!
Overrides:
classify in class Classifier
See Also:
Vectorizer, Dictionary

toString

public java.lang.String toString()
Overrides:
toString in class Classifier