Archived Website:
This website is a static snapshot for archival purposes only.
It is no longer maintained or updated.
dataanalysis.classifiers
Class KNNClassifier
java.lang.Object
|
+--dataanalysis.databases.DatabaseElement
|
+--dataanalysis.classifiers.Classifier
|
+--dataanalysis.classifiers.KNNClassifier
- public class KNNClassifier
- extends Classifier
k-Nearest-Neighbor-Verfahren
Bei dem
k-Nearest-Neighbor-Verfahren (k-NN) handelt es sich um einen
Klassifikationsalgorithmus, der in der Statistik entwickelt wurde.
Im Unterschied zu dem naiven Bayes'schen Klassifikator werden keine
Verteilungsannahmen gemacht. Vorwissen kann allerdings an anderer
Stelle, n?mlich bei der Definition des sogenannten Abstandsmasses
eingebracht werden. Dieses Abstandsma? wird dazu benutzt, ?hnliche
Situationen aus der Vergangenheit zu finden. Es sollte so
beschaffen sein, da? Dokumente, die anhand dieses Masses aehnlich
sind, moeglichst zur selben Klasse gehoeren. Die Grundidee des
k-Nearest-Neighbbor-Verfahrens ist es, ein neues Beispiel so zu
klassifizieren wie die aehnlichsten, fuer die man die
Klassifikation kennt. (Quelle: Diplomarbeit "Einsatz eines
intelligenten, lernenden Agenten fuer das World Wide
Web" von Thorsten Joachims)
- Version:
- 1.7 (28.10.1999)
- Author:
- Andre Masloch
- See Also:
Classifier, Serialized Form
|
Field Summary |
protected Documentvector |
DocFrequencies
beinhalted die Haeufigkeit jedes Wortes in der gesamten, zum Training benutzten
Dokumentensammlung.
Wird seit Version 1.4 nicht mehr benutzt, da nur noch die TF-Gewichtung
benutzt wird, und deshalb keine Konvertierung notwendig ist. |
protected java.util.TreeMap |
DocumentSet
beinhalted alle Dokumente dieses Klassifizierers in einer aufbereiteten Form. |
protected int |
k
gibt die Anzahl der naechsten Nachbarn vor, die gefunden werden sollen. |
protected double[] |
nearestDocuments
enthaelt die Bewertungen der Dokumente mit den k besten Winkeln zu dem
zu klassifizierenden Dokument. |
|
Method Summary |
NetEntity |
classify(NetEntity document)
Das uebergebene Dokument wird unter zu Hilfenahme des Vektorisieres,
des Lexikons und der Trainingsmenge klassifiziert und eingestuft. |
protected Documentvector |
convert(Documentvector v)
Ueberfuehrt den uebergebenen Documentvector aus einer TF-Form in eine
TF-IDF-Form.
Wird seit 1.4 nicht mehr benutzt, da keine Document-Frequencies mehr vorhanden
sind! |
int |
getK()
liefert den Wert der Variable k. |
void |
setK(int i)
setzt den Wert der Variable k. |
int |
train()
startet das Training des Klassifikators auf den vorhandenen Daten
und den neu durch "addExample" hinzugef?gten Beispielen. |
protected int |
updateDF()
bringt die DF-Werte (DocFrequencies) auf den neuesten Stand. |
| Methods inherited from class java.lang.Object |
,
clone,
equals,
finalize,
getClass,
hashCode,
notify,
notifyAll,
registerNatives,
wait,
wait,
wait |
DocumentSet
protected transient java.util.TreeMap DocumentSet
- beinhalted alle Dokumente dieses Klassifizierers in einer aufbereiteten Form.
Die Werte der einzelnen Vektoren werden gemaess der TF-IDF-Gewichtung
abgespeichert.
Wird seit Version 1.4 nicht mehr benutzt, da nur noch die TF-Gewichtung
benutzt wird, und deshalb keine Konvertierung notwendig ist.
DocFrequencies
protected transient Documentvector DocFrequencies
- beinhalted die Haeufigkeit jedes Wortes in der gesamten, zum Training benutzten
Dokumentensammlung.
Wird seit Version 1.4 nicht mehr benutzt, da nur noch die TF-Gewichtung
benutzt wird, und deshalb keine Konvertierung notwendig ist.
k
protected int k
- gibt die Anzahl der naechsten Nachbarn vor, die gefunden werden sollen.
Standardwert ist 5.
- Since:
- 1.1 (21.9.1999)
nearestDocuments
protected transient double[] nearestDocuments
- enthaelt die Bewertungen der Dokumente mit den k besten Winkeln zu dem
zu klassifizierenden Dokument.
An Position x steht der Winkel (0 <= x="x" <="<" k="k" ).=")." An="An" Position="Position" (k="(k" +1="+1" )=")" +x="+x" steht="steht" die="die" Bewertung="Bewertung" zum="zum" Abstand="Abstand" von="von" (0="(0" />L>
KNNClassifier
public KNNClassifier()
KNNClassifier
public KNNClassifier(ClassifierDatabase theDB)
getK
public int getK()
- liefert den Wert der Variable
k.
- Returns:
- den Wert der Variable
k. - Since:
- 1.1
setK
public void setK(int i)
- setzt den Wert der Variable
k.
- Parameters:
i - neuer Wert fuer die Variable k, sofern i>0- Since:
- 1.1
train
public int train()
- startet das Training des Klassifikators auf den vorhandenen Daten
und den neu durch "addExample" hinzugef?gten Beispielen.
- 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.
- Parameters:
document - steht fuer den Text, den der Klassifizierer
klassifizieren soll.- Returns:
- Ausgabe des klassifizierten Dokuments. Naeheres ist in
Classifier.classify(dataprovider.net.NetEntity) nachzulesen. - Overrides:
- classify in class Classifier
- See Also:
Vectorizer,
Dictionary
convert
protected Documentvector convert(Documentvector v)
- Ueberfuehrt den uebergebenen Documentvector aus einer TF-Form in eine
TF-IDF-Form.
Wird seit 1.4 nicht mehr benutzt, da keine Document-Frequencies mehr vorhanden
sind!
- Parameters:
v - der mit TF-Werten besetzte Documentvector.- Returns:
- eine neue Documentvector-Instanz mit TF-IDF-Werten.
- Overrides:
- convert in class Classifier
- Since:
- 1.1
updateDF
protected int updateDF()
- bringt die DF-Werte (
DocFrequencies) auf den neuesten Stand.