2017-05-18 4 views
1

Ich zeichne mehrere Verwirrung Matrizen mit plot_confusion() Funktion und ich möchte sie in einem Nebenplot (2x5 Zahlen), aber es scheint nicht zu funktionieren.Es zeigt jede Konfusion Matrix separat. Gibt es Einschränkungen für die Verwirrung? Vielen Dank!Ist es möglich, Verwirrungsmatrizen zu plotten?

figure 

Subplot(2,1,1); 

plotconfusion(targets,outputs,'train'); 

subplot(2,1,2); 

plotconfusion(targets1,outputs1,'test') 

Antwort

2

Dir „nicht angenommen“, das zu tun (die Funktionalität ist nicht enthalten), aber man kann Matlab ein wenig, denn am Ende eines Tages Trick es ist nur eine Achse-Objekt:

%% First Example Data 
[x,t] = cancer_dataset; 
net = patternnet(10); 
net = train(net,x,t); 
y = net(x); 

%// plot 
plotconfusion(t,y) 

%// get handle and enable second plöt 
cp1 = gcf; 
cp1.NextPlot = 'new' 
ax1 = findobj(cp1,'Type','Axes') 

%% Second Example Data 
[x,t] = cancer_dataset; 
net = patternnet(5); 
net = train(net,2*x,t); 
y = net(x); 

%// plot 
plotconfusion(t,y) 

%// get handle and enable third plöt 
cp2 = gcf; 
cp2.NextPlot = 'new' 
ax2 = findobj(cp2,'Type','Axes') 

%% combine plots 

f1 = figure(42) 
f1s1 = subplot(121) 
copyobj(allchild(ax1),f1s1) 
f1s2 = subplot(122) 
copyobj(allchild(ax2),f1s2) 

enter image description here

Sie verlieren die Etiketten und Titel und müssen möglicherweise die Achse einzustellen, aber ich denke, Sie in der Lage sind, das zu tun.

+0

Aus Neugier, warum sollen Sie das nicht tun? –

+1

@AnderBiguri Es war metaphorischer, da die Toolbox darauf achtet, dass Sie absolut keine Kontrolle über Griffe haben. Standardmäßig können Sie nicht mehrere Figurenfenster öffnen. Es sollte kein normales Figuren- oder Achsenobjekt sein, das Sie für z. Nebenhandlungen. – thewaywewalk

+0

@ thewaywalk.Vielen Dank für Ihre tapferen Bemühungen.Wie in der oben genannten Verwirrung Matrix grau Boxen zeigt die Prozentsätze von Präzision und Rückruf.So können wir eine Figur für Precision Vs Recall für jede Klasse? –

Verwandte Themen