2016-05-24 8 views
1

Ist es möglich, ein multiklassiales (multinomiales) lineares Klassifizierungsmodell mit Vowpal Wabbit Library zu trainieren?Vowpal Wabbit Multiclass Lineare Klassifikation

habe ich versucht, mit --loss_function Quadrat zu verwenden --oaa, aber es scheint, dass die Standard-Verlustfunktion für --oaa logistic ist.

I rcv1.multiclass als Eingabe verwenden.

One Lösung:

ich mehrere Version der Daten anlegen können wie folgt:

Version i: alle Etiketten Null außer Klasse mache ich

Dann kann ich für jeweils mehrere binäre Klassifikationen trainieren Version der Daten. Schließlich kann ich die Testdaten an alle Klassifikatoren schicken und einen Argmax anwenden. Gibt es eine bessere (automatisierte) Lösung?

Antwort

2

Wenn Sie vw --oaa N verwenden, erhalten Sie tatsächlich einen linearen N-Klasse-Klassifikator. Um einen nicht-linearen Klassifizierer zu erhalten Sie benötigen, quadratische/Polynom Funktionen hinzuzufügen (-q, --cubic, --interactions) oder Kern (--ksvm) oder eine versteckte Schicht (--nn) oder andere nicht-lineare Reduktion (--lrq, --stage_poly, --autolink).

Die Wahl der Verlustfunktion bewirkt nicht, ob der Klassifikator linear ist oder nicht. Der Standardwert ist --loss_function=squared. Für die Klassifikation, würde ich vorschlagen --loss_function=logistic (evtl. mit --probabilities wenn Sie Wahrscheinlichkeit jeder Klasse vorhersagen wollen) verwenden oder --loss_function=hinge (wenn Sie nur über die Top-Klasse kümmern).

Dann kann ich mehrere binäre Klassifikationen für jede Version von Daten trainieren. Schließlich kann ich die Testdaten an alle Sichteraufgabegut und eine argmax anzuwenden. Gibt es eine bessere (automatisierte) Lösung?

Ja, das ist genau das, was --oaa tut (aber effizienter).

Verwandte Themen