2017-07-07 1 views
2

Ich habe versucht, meine Verwechslungsmatrix aus tatsächlichen und vorhergesagten Werten anzuzeigen, während ich beide Funktionen plotconfusion und Confusionmat verwende. Beide ergeben unterschiedliche Ergebnisse. Es ist wirklich komisch für mich. Es scheint Confusionmat ist die Transponierte von plotconfusion. Was soll ich tun, um ähnliche Ergebnisse von Confusionmat auf plotconfusion zu plotten?Was ist der Unterschied zwischen der Funktion plotconfusion und Confusionmat in MATLAB?

plotconfusion:  

59  0  0 
0 68  0 
0  3  48 

Und

Confusionmat: 

59  0  0 
0 68  3 
0  0  48 
+0

könnte gerade Achse vertauscht werden. In einem Matrix-Vorhersage-Label ist vertikal und True-Label horizontal. Auf der anderen "Plot" ist Prediction Label horizontal und True Label vertikal. Ich weiß nicht, dass ich Matlab nicht für maschinelles Lernen verwende. Aber würde Sinn ergeben, wenn Sie sich Ihre Matrizen ansehen. –

Antwort

-1

Sie verstanden habe Dinge richtig - die Verwirrung Matrix durch plotconfusion erzeugt die Transponierte der Konfusionsmatrix durch confusionmat erzeugt.

Dies wird dokumentiert - im doc für plotconfusion sagt es

die Reihen der vorhergesagten Klasse entsprechen (Output-Klasse) und die Spalten zeigen die wahre Klasse (Zielklasse).

und im doc für confusionmat sagt

C (i, j) ist eine Anzahl von Beobachtungen in der Gruppe I, die bekanntermaßen aber vorhergesagt in der Gruppe j

sein Wenn Sie zwischen den beiden konvertieren möchten, transponieren Sie sie einfach mit '.

Warum ist es so? Meistens aus nicht sehr guten Gründen. plotconfusion stammt von Neural Network Toolbox, während confusionmat von Statistics Toolbox stammt, und die beiden Toolboxen haben unterschiedliche Historien, Zwecke und Konventionen.

Statistics Toolbox wurde immer direkt von MathWorks entwickelt. Im Gegensatz dazu wurde Neural Network Toolbox ursprünglich von externen akademischen Autoren entwickelt und von MathWorks vermarktet und verkauft (obwohl in letzter Zeit viele Entwicklungen intern eingeführt wurden). Frühe Versionen von Neural Network Toolbox konzentrierten sich hauptsächlich auf die Anwendung neuronaler Netzwerke zur Steuerung der Theorie, nicht zur Vorhersage von Modellen. Die Toolboxes hatten also eine andere Geschichte und einen anderen Zweck und haben eine andere Konstellation aufgebaut.

Es würde heute Sinn machen, die Werkzeugkästen nach und nach einheitlicher zu machen, aber das ist noch nicht geschehen.

+4

Bitte beachten Sie, dass '' 'nicht die Transponierte, sondern die * komplexe konjugierte Transponierte * ist. Wenn aus irgendeinem Grund komplexe Zahlen aus der Berechnung herauskommen, gehen die Dinge mit '' 'schief, also verwenden Sie entweder' transpose (A) 'explizit, oder verwenden Sie das * Element wise transpose *,' .''. Siehe z.B. [diese Frage dazu] (https://stackoverflow.com/q/25150027/5211833) – Adriaan

+0

Dank @Adriaan, ich bin mir der Unterscheidung zwischen '' 'und' .'' bewusst, aber es scheint ein bisschen pedantisch zu sein beharren Sie darauf, da wir von einer Verwirrungsmatrix sprechen, deren Elemente definitionsgemäß real sind. Es ist sehr üblich und vollkommen akzeptabel, "" in diesem Fall zu verwenden. –

+1

Auch wenn in diesem Fall die Zahlen echt sind, ist die Verbreitung von '' 'für Standard schlecht meiner Meinung nach.Ich habe es oft in der Vergangenheit als Backfire gesehen, für verschiedene Leute –

Verwandte Themen