confusionmat
Calcular la matriz de confusión para un problema de clasificación
Sintaxis
Descripción
Ejemplos
Cargue una muestra de etiquetas predichas y verdaderas para un problema de clasificación. trueLabels
son las etiquetas verdaderas de un problema de clasificación de imágenes y predictedLabels
son las predicciones de una red neuronal convolucional.
load('Cifar10Labels.mat','trueLabels','predictedLabels');
Calcule la matriz de confusión numérica. order
es el orden de las clases en la matriz de confusión.
[m,order] = confusionmat(trueLabels,predictedLabels)
m = 10×10
923 4 21 8 4 1 5 5 23 6
5 972 2 0 0 0 0 1 5 15
26 2 892 30 13 8 17 5 4 3
12 4 32 826 24 48 30 12 5 7
5 1 28 24 898 13 14 14 2 1
7 2 28 111 18 801 13 17 0 3
5 0 16 27 3 4 943 1 1 0
9 1 14 13 22 17 3 915 2 4
37 10 4 4 0 1 2 1 931 10
20 39 3 3 0 0 2 1 9 923
order = 10×1 categorical
airplane
automobile
bird
cat
deer
dog
frog
horse
ship
truck
Puede usar confusionchart
para representar la matriz de confusión como una gráfica de matriz de confusión.
figure cm = confusionchart(m,order);
No es necesario calcular primero la matriz de confusión y luego representarla. En su lugar, represente una gráfica de matriz de confusión directamente a partir de las etiquetas verdaderas y predichas. También puede añadir resúmenes de columnas y filas y un título.
figure cm = confusionchart(trueLabels,predictedLabels, ... 'Title','My Title', ... 'RowSummary','row-normalized', ... 'ColumnSummary','column-normalized');
El objeto ConfusionMatrixChart
almacena la matriz de confusión numérica en la propiedad NormalizedValues
, y las clases en la propiedad ClassLabels
.
cm.NormalizedValues
ans = 10×10
923 4 21 8 4 1 5 5 23 6
5 972 2 0 0 0 0 1 5 15
26 2 892 30 13 8 17 5 4 3
12 4 32 826 24 48 30 12 5 7
5 1 28 24 898 13 14 14 2 1
7 2 28 111 18 801 13 17 0 3
5 0 16 27 3 4 943 1 1 0
9 1 14 13 22 17 3 915 2 4
37 10 4 4 0 1 2 1 931 10
20 39 3 3 0 0 2 1 9 923
cm.ClassLabels
ans = 10×1 categorical
airplane
automobile
bird
cat
deer
dog
frog
horse
ship
truck
Argumentos de entrada
Grupos conocidos para clasificar observaciones, especificados como un vector numérico, un vector lógico, un arreglo de caracteres, un arreglo de cadenas, un arreglo de celdas de vectores de caracteres o un vector categórico.
group
es una variable de grupos del mismo tipo que grouphat
. El argumento group
debe tener el mismo número de observaciones que grouphat
, tal como se describe en Grouping Variables (Statistics and Machine Learning Toolbox). La función confusionmat
trata los arreglos de caracteres y los arreglos de cadenas como arreglos de celdas de vectores de caracteres. Además, confusionmat
trata los valores NaN
, vacíos y 'undefined'
en group
como valores que faltan, y no los cuenta como grupos o categorías distintos.
Ejemplo: {'Male','Female','Female','Male','Female'}
Tipos de datos: single
| double
| logical
| char
| string
| cell
| categorical
Grupos predichos para clasificar observaciones, especificados como un vector numérico, un vector lógico, un arreglo de caracteres, un arreglo de cadenas, un arreglo de celdas de vectores de caracteres o un vector categórico.
grouphat
es una variable de grupos del mismo tipo que group
. El argumento grouphat
debe tener el mismo número de observaciones que group
, tal como se describe en Grouping Variables (Statistics and Machine Learning Toolbox). La función confusionmat
trata los arreglos de caracteres y los arreglos de cadenas como arreglos de celdas de vectores de caracteres. Además, confusionmat
trata los valores NaN
, vacíos y 'undefined'
en grouphat
como valores que faltan, y no los cuenta como grupos o categorías distintos.
Ejemplo: [1 0 0 1 0]
Tipos de datos: single
| double
| logical
| char
| string
| cell
| categorical
Orden de los grupos, especificado como un vector numérico, un vector lógico, un arreglo de caracteres, un arreglo de cadenas, un arreglo de celdas de vectores de caracteres o un vector categórico.
grouporder
es una variable de agrupación que contiene todos los distintos elementos de group
y grouphat
. Especifique grouporder
para definir el orden de las filas y columnas de C
. Si grouporder
contiene elementos que no se encuentran en group
ni en grouphat
, las entradas correspondientes en C
son 0
.
De forma predeterminada, el orden de los grupos depende del tipo de datos de s = [group;grouphat]
:
Para vectores numéricos, el orden es el ordenado de los valores únicos de
s
.Para vectores lógicos, el orden es
false
(0
) seguido detrue
(1
).Para vectores categóricos, el orden es el que devuelve
.categories
(s)Para otros tipos de datos, el orden es el de la primera aparición en
s
.
Ejemplo: 'order',{'setosa','versicolor','virginica'}
Tipos de datos: single
| double
| logical
| char
| string
| cell
| categorical
Argumentos de salida
Matriz de confusión, devuelta como una matriz cuadrada de igual tamaño que el número total de elementos distintos de los argumentos group
y grouphat
. C(i,j)
es el número de observaciones conocidas contenidas en el grupo i
pero que se predecía que se encontraban en el grupo j
.
Las filas y las columnas de C
cuentan con un orden idéntico de los índices del mismo grupo. De forma predeterminada, el orden de los grupos depende del tipo de datos de s = [group;grouphat]
:
Para vectores numéricos, el orden es el ordenado de los valores únicos de
s
.Para vectores lógicos, el orden es
false
(0
) seguido detrue
(1
).Para vectores categóricos, el orden es el que devuelve
.categories
(s)Para otros tipos de datos, el orden es el de la primera aparición en
s
.
Para cambiar el orden, especifique grouporder
.
La función confusionmat
trata los valores NaN
, vacíos y 'undefined'
de las variables de agrupación como valores que faltan, y no los incluye en las filas ni en las columnas de C
.
Orden de filas y columnas en C
, devuelto como un vector numérico, un vector lógico, un vector categórico o un arreglo de celdas de vectores de caracteres. Si group
y grouphat
son arreglos de caracteres, arreglos de cadenas o arreglos de celdas de vectores de caracteres, entonces, la variable order
es un arreglo de celdas de vectores de caracteres. De lo contrario, order
es del mismo tipo que group
y grouphat
.
Funcionalidad alternativa
Use
confusionchart
para calcular y representar una matriz de confusión. Además,confusionchart
muestra estadísticas resumidas sobre sus datos y ordena las clases de la matriz de confusión de acuerdo con la precisión por clase (valor predictivo positivo), la recuperación por clase (tasa de positivos verdaderos) o el número total de observaciones clasificadas correctamente.
Historial de versiones
Cuando crea una matriz de confusión usando únicamente una observación de tipo logical
, la función confusionmat
devuelve una matriz en lugar de un valor escalar. El orden predeterminado de las filas y columnas es false
(0
) seguido de true
(1
).
confusionmat(true,true)
ans = 0 0 0 1
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Seleccione un país/idioma
Seleccione un país/idioma para obtener contenido traducido, si está disponible, y ver eventos y ofertas de productos y servicios locales. Según su ubicación geográfica, recomendamos que seleccione: .
También puede seleccionar uno de estos países/idiomas:
Cómo obtener el mejor rendimiento
Seleccione China (en idioma chino o inglés) para obtener el mejor rendimiento. Los sitios web de otros países no están optimizados para ser accedidos desde su ubicación geográfica.
América
- América Latina (Español)
- Canada (English)
- United States (English)
Europa
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)