2015-10-31 3 views
1

Я хочу построить матрицу путаницы в MATLAB. Вот мой код;Матрица смешения участка

data = rand(3, 3) 
imagesc(data) 
colormap(gray) 
colorbar 

Когда я запускаю это, отображается матрица путаницы с цветной полосой. Но, как правило, я видел, что матрица замешательства в MATLAB будет давать как вероятности, так и вероятности. Как я могу их получить? Как изменить метки классов, которые будут отображаться как 1,2,3 и т. Д.?

Я хочу, чтобы матрица, как это:

Confusion matrix example

+2

Можете ли вы показать пример iamge, как вы хотите выглядеть? –

ответ

0

Если у вас есть нейронная сеть инструментов вы можете использовать функцию plotconfusion. Вы можете создать копию и отредактировать ее для дальнейшей настройки, например, для печати пользовательских ярлыков.

0

Если у вас нет набора инструментов нейронной сети, вы можете использовать plotConfMat. Это дает вам следующий результат.

Example Confusion Matrix

Я также включил независимый пример ниже без необходимости функции:

% sample data 
confmat = magic(3); 
labels = {'Dog', 'Cat', 'Horse'}; 

numlabels = size(confmat, 1); % number of labels 

% calculate the percentage accuracies 
confpercent = 100*confmat./repmat(sum(confmat, 1),numlabels,1); 

% plotting the colors 
imagesc(confpercent); 
title('Confusion Matrix'); 
ylabel('Output Class'); xlabel('Target Class'); 

% set the colormap 
colormap(flipud(gray)); 

% Create strings from the matrix values and remove spaces 
textStrings = num2str([confpercent(:), confmat(:)], '%.1f%%\n%d\n'); 
textStrings = strtrim(cellstr(textStrings)); 

% Create x and y coordinates for the strings and plot them 
[x,y] = meshgrid(1:numlabels); 
hStrings = text(x(:),y(:),textStrings(:), ... 
    'HorizontalAlignment','center'); 

% Get the middle value of the color range 
midValue = mean(get(gca,'CLim')); 

% Choose white or black for the text color of the strings so 
% they can be easily seen over the background color 
textColors = repmat(confpercent(:) > midValue,1,3); 
set(hStrings,{'Color'},num2cell(textColors,2)); 

% Setting the axis labels 
set(gca,'XTick',1:numlabels,... 
    'XTickLabel',labels,... 
    'YTick',1:numlabels,... 
    'YTickLabel',labels,... 
    'TickLength',[0 0]);