confusionmat
Calcular la matriz de confusión para un problema de clasificación
Sintaxis
Descripción
Ejemplos
Calcular la matriz de confusión
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 = 10x1 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 = 10x1 categorical
airplane
automobile
bird
cat
deer
dog
frog
horse
ship
truck
Argumentos de entrada
group
— Grupos conocidos
Vector numérico | vector lógico | arreglo de caracteres | arreglo de cadena | arreglo de celdas de vectores de caracteres | vector categórico
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
grouphat
— Grupos predichos
Vector numérico | vector lógico | arreglo de caracteres | arreglo de cadena | arreglo de celdas de vectores de caracteres | vector categórico
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
grouporder
— Orden de los grupos
Vector numérico | vector lógico | arreglo de caracteres | arreglo de cadena | arreglo de celdas de vectores de caracteres | vector categórico
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 los vectores numéricos y lógicos, el orden es el ordenado de
s
.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
C
— Matriz de confusión
matriz
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 los vectores numéricos y lógicos, el orden es el ordenado de
s
.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
.
order
— Orden de filas y columnas
Vector numérico | vector lógico | vector categórico | arreglo de celdas de vectores de caracteres
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.
Comando de MATLAB
Ha hecho clic en un enlace que corresponde a este comando de MATLAB:
Ejecute el comando introduciéndolo en la ventana de comandos de MATLAB. Los navegadores web no admiten comandos de MATLAB.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- 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)