2013-07-04 12 views
7

Wie interpretieren wir die Kostenmatrix in WEKA? Wenn ich 2 Klassen voraussagen muss (Klasse 0 und Klasse 1) und die Klassifizierung der Klasse 0 als Klasse 1 mehr bestrafen will (sagen wir doppelte Strafe), was genau ist das Matrixformat?WEKA: Kostenmatrix-Interpretation

Ist es:

0 10 
20 0 

oder ist es

0 20 
10 0 

Die Quelle der Verwirrung sind die folgenden zwei Referenzen:

1) Die JavaDoc für Weka CostMatrix sagt:

Das Element an der Position i, j in der Matrix ist der Nachteil für die Klassifizierung einer Instanz von Klasse j als Klasse i.

2) Allerdings scheint die Antwort in diesem Post anders zu zeigen.

http://weka.8497.n7.nabble.com/cost-matrix-td5821.html

die erste Kostenmatrix gegeben, die Post sagt, dass „eine Instanz der Klasse Fehlklassifizierung 0 entstehen Kosten in Höhe von 10 eine Instanz der Klasse 1 ist doppelt so teuer Fehlklassifizierung.

Dank.

Antwort

6

Ich weiß, meine Antwort kommt sehr spät, aber es könnte jemandem helfen, also hier ist es:

Um die Kosten für die Klassifizierung eines Artikels der Klasse 0 als Klasse 1 zu erhöhen, ist das korrekte Format das zweite.

Der Beweis:

Cost Matrix I verwendet:

0  1.0 
1000.0 0 

Confusion Matrix (aus Kreuzvalidierung):

a b <-- classified as 
565 20 | a = ignored 
    54 204 | b = not_ignored 

Kreuzvalidierung Ausgabe:

... 
Total Cost       54020 
... 

Das sind die Kosten von 54 * 10000 + 20 * 1, die der oben genannten Konfusionsmatrix entspricht.

+0

Kann man negative Werte eingeben? Zum Beispiel -1.1, 0.0, 1.0, 0.0 – JasonEdinburgh

+0

Ist es üblich, negative Werte in der Kostenmatrix anzugeben? Ich möchte einen Klassifikator, der versucht, hohe Präzision in seinen positiven Vorhersagen nur zu erreichen, es ist mir egal, wenn es schlechte Erinnerung hat. Zum Beispiel -1,1, 0,0, 1,0, 0,0. Ein wahrer positiver Wert hat also eine -ve-Kosten (eine Belohnung), ein false positive einen Kostenwert von 1,0 und falsche Vorhersagen werden ignoriert, ob richtig oder falsch. – JasonEdinburgh