Esta página aún no se ha traducido para esta versión. Puede ver la versión más reciente de esta página en inglés.

loss

Pérdida del clasificador de vecino más cercanok

Descripción

L = loss(mdl,tbl,ResponseVarName) Devuelve un escalar que representa qué tan bien clasifica los datos en cuando contiene las clasificaciones verdaderas.mdltbltbl.ResponseVarName Si contiene la variable de respuesta utilizada para entrenar, no es necesario especificar.tblmdlResponseVarName

Al calcular la pérdida, la función normaliza las probabilidades de clase en las probabilidades de clase utilizadas para el entrenamiento, que se almacenan en la propiedad de.losstbl.ResponseVarNamePriormdl

El significado de la pérdida de clasificación () depende de la función de pérdida y el esquema de ponderación, pero, en general, los mejores clasificadores producen valores de pérdida de clasificación más pequeños.L Para obtener más información, consulte.Pérdida de clasificación

L = loss(mdl,tbl,Y) Devuelve un escalar que representa qué tan bien clasifica los datos en cuando contiene las clasificaciones verdaderas.mdltblY

Al calcular la pérdida, la función normaliza las probabilidades de clase en las probabilidades de clase utilizadas para el entrenamiento, que se almacenan en la propiedad de.lossYPriormdl

ejemplo

L = loss(mdl,X,Y) Devuelve un escalar que representa qué tan bien clasifica los datos en cuando contiene las clasificaciones verdaderas.mdlXY

Al calcular la pérdida, la función normaliza las probabilidades de clase en las probabilidades de clase utilizadas para el entrenamiento, que se almacenan en la propiedad de.lossYPriormdl

L = loss(___,Name,Value) especifica opciones utilizando uno o más argumentos de par nombre-valor además de los argumentos de entrada en sintaxis anteriores. Por ejemplo, puede especificar la función de pérdida y los pesos de clasificación.

Ejemplos

contraer todo

Cree un clasificador de vecino más cercano para los datos de iris de Fisher, donde = 5.kk

Cargue el conjunto de datos de iris de Fisher.

load fisheriris

Cree un clasificador para cinco vecinos más cercanos.

mdl = fitcknn(meas,species,'NumNeighbors',5);

Examine la pérdida del clasificador para una observación media clasificada como.'versicolor'

X = mean(meas); Y = {'versicolor'}; L = loss(mdl,X,Y)
L = 0 

Los cinco vecinos más cercanos clasifican como.'versicolor'

Argumentos de entrada

contraer todo

-modelo de clasificador de vecino más cercano, especificado como un objeto.kClassificationKNN

Datos de ejemplo utilizados para entrenar el modelo, especificado como una tabla. Cada fila de corresponde a una observación, y cada columna corresponde a una variable predictora.tbl Opcionalmente, puede contener una columna adicional para la variable de respuesta.tbl No se permiten las variables de varias columnas ni matrices de celdas que no sean matrices de celdas de vectores de caracteres.

Si contiene la variable de respuesta utilizada para entrenar, no es necesario especificar o.tblmdlResponseVarNameY

Si entrena con datos de ejemplo contenidos en a, los datos de entrada paramdltable loss también debe estar en una tabla.

Tipos de datos: table

Nombre de variable de respuesta, especificado como el nombre de una variable en.tbl Si contiene la variable de respuesta utilizada para entrenar, no es necesario especificar.tblmdlResponseVarName

Debe especificar como un vector de caracteres o un escalar de cadena.ResponseVarName Por ejemplo, si la variable de respuesta se almacena como, a continuación, especifíquese como.tbl.response'response' De lo contrario, el software trata todas las columnas de, incluidos, como predictores.tbltbl.response

La variable de respuesta debe ser una matriz categórica, de caracteres o de cadena, un vector lógico o numérico o una matriz de vectores de caracteres. Si la variable de respuesta es una matriz de caracteres, cada elemento debe corresponder a una fila de la matriz.

Tipos de datos: char | string

Datos de predictor, especificados como una matriz numérica. Cada fila de representa una observación y cada columna representa una variable.X

Tipos de datos: single | double

Etiquetas de clase, especificadas como una matriz categórica, de caracteres o de cadena, Vector lógico o numérico o matriz de celdas de vectores de caracteres. Cada fila de representa la clasificación de la fila correspondiente de.YX

Tipos de datos: categorical | char | string | logical | single | double | cell

Argumentos de par nombre-valor

Especifique pares de argumentos separados por comas opcionales. es el nombre del argumento y es el valor correspondiente. deben aparecer dentro de las cotizaciones.Name,ValueNameValueName Puede especificar varios argumentos de par de nombre y valor en cualquier orden como.Name1,Value1,...,NameN,ValueN

Ejemplo: Devuelve la pérdida exponencial ponderada de la clasificación de los datos en.loss(mdl,tbl,'response','LossFun','exponential','Weights','w')mdltbl Aquí, es la variable de respuesta, y es la variable de peso.tbl.responsetbl.w

Función de pérdida, especificada como el par separado por comas que consta de un nombre de función de pérdida incorporada o un identificador de función.'LossFun'

  • La tabla siguiente enumera las funciones de pérdida disponibles.

    ValorDescripción
    'binodeviance'Desviación binomial
    'classiferror'Error de clasificación
    'exponential'Exponencial
    'hinge'Bisagra
    'logit'Logística
    'mincost'Costo mínimo previsto de clasificación errónea (para puntuaciones de clasificación que son probabilidades posteriores)
    'quadratic'Cuadrática

    es adecuada para las puntuaciones de clasificación que son probabilidades posteriores.'mincost' De forma predeterminada, los modelos de vecinos más cercanos devuelven las probabilidades posteriores como puntuaciones de clasificación (consultek predict).

  • Puede especificar un identificador de función para una función de pérdida personalizada mediante (por ejemplo,).@@lossfun Vamos a ser el número de observaciones en y ser el número de clases distintas ().nXKnumel(mdl.ClassNames) Su función de pérdida personalizada debe tener este formulario:

    function lossvalue = lossfun(C,S,W,Cost)

    • es una matriz lógica con filas que indican la clase a la que pertenece la observación correspondiente.CnK El orden de las columnas corresponde al orden de la clase.mdl.ClassNames Construya estableciendo, si la observación está en la clase, para cada fila.CC(p,q) = 1pq Establezca todos los demás elementos de la fila en.p0

    • es una matriz numérica de puntuaciones de clasificación.SnK El orden de las columnas corresponde al orden de la clase.mdl.ClassNames El argumento es una matriz de puntuaciones de clasificación, similar a la salida de.SPredecir

    • es un vector numérico de pesos de observación de-por-1.Wn Si pasa, el software normaliza los pesos a sumar.W1

    • es una matriz numérica de costes de clasificación errónea.CostoKK Por ejemplo, especifica un coste para la clasificación correcta y para la clasificación errónea.Cost = ones(K) – eye(K)01

    • El argumento de salida es un escalar.lossvalue

Para obtener más información sobre las funciones de pérdida, consulte.Pérdida de clasificación

Tipos de datos: char | string | function_handle

Ponderaciones de observación, especificadas como el par separado por comas que consta de un vector numérico o el nombre de una variable en.'Weights'tbl

Si se especifica como un vector numérico, el tamaño de debe ser igual al número de filas en o.WeightsWeightsXtbl

Si especifica como el nombre de una variable en, el nombre debe ser un vector de caracteres o escalar de cadena.Weightstbl Por ejemplo, si las ponderaciones se almacenan como, a continuación, especifique as.tbl.wWeights'w' De lo contrario, el software trata todas las columnas de, incluidos, como predictores.tbltbl.w

Normaliza los pesos de modo que los pesos de observación de cada clase se suman a la probabilidad anterior de esa clase.loss Al suministrar, calcula la pérdida de clasificación ponderada.Weightsloss

Ejemplo: 'Weights','w'

Tipos de datos: single | double | char | string

Algoritmos

contraer todo

Pérdida de clasificación

funciones miden la inexactitud predictiva de los modelos de clasificación.La pérdida de clasificación Cuando se compara el mismo tipo de pérdida entre muchos modelos, una pérdida menor indica un mejor modelo predictivo.

Considere el siguiente escenario.

  • es la pérdida de clasificación promedio ponderada.L

  • es el tamaño de la muestra.n

  • Para la clasificación binaria:

    • yj es la etiqueta de clase observada. El software codifica como – 1 o 1, indicando la clase negativa o positiva, respectivamente.

    • (fXj) es la puntuación de clasificación sin procesar para la observación (fila) de los Datos predictores.jX

    • Mj = yj(fXj) es la puntuación de clasificación para clasificar la observación en la clase correspondiente aj yj. Los valores positivos de Mj indicar la clasificación correcta y no contribuyen mucho a la pérdida media. Los valores negativos de Mj indicar una clasificación incorrecta y contribuir significativamente a la pérdida media.

  • Para algoritmos que admiten la clasificación multiclase (es decir, ≥ 3):K

    • yj* es un vector de – 1 ceros, con 1 en la posición correspondiente a la clase verdadera, observadaK yj. Por ejemplo, si la clase verdadera de la segunda observación es la tercera clase y = 4, entoncesKy*2 = [0 0 1 0] ′. El orden de las clases corresponde al orden en la propiedad del modelo de entrada.ClassNames

    • (fXj) es el vector de longitud de las puntuaciones de clase para la observación de los Datos predictores.KjX El orden de las puntuaciones corresponde al orden de las clases de la propiedad del modelo de entrada.ClassNames

    • Mj = yj*′ (fXj). por lo tanto Mj es la puntuación de clasificación escalar que predice el modelo para la clase verdadera observada.

  • El peso para la observación esj Wj. El software normaliza los pesos de observación de modo que sumará a la probabilidad de clase anterior correspondiente. El software también normaliza las probabilidades previas por lo que suman a 1. por lo tanto

    j=1nwj=1.

Dado este escenario, en la tabla siguiente se describen las funciones de pérdida admitidas que se pueden especificar mediante el argumento de par nombre-valor.'LossFun'

Función de pérdidaValor deLossFunEcuación
Desviación binomial'binodeviance'L=j=1nwjlog{1+exp[2mj]}.
Pérdida exponencial'exponential'L=j=1nwjexp(mj).
Error de clasificación'classiferror'

L=j=1nwjI{y^jyj}.

Es la fracción ponderada de las observaciones mal clasificadas donde y^j es la etiqueta de clase correspondiente a la clase con la probabilidad posterior máxima. {} es la función indicadora.Ix

La pérdida de bisagra'hinge'L=j=1nwjmax{0,1mj}.
La pérdida de Logit'logit'L=j=1nwjlog(1+exp(mj)).
El costo mínimo'mincost'

Costo mínimo. El software calcula el coste mínimo ponderado utilizando este procedimiento para observaciones = 1,...,.jn

  1. Estimar el 1 por vector de los costos de clasificación esperados para la observación:Kj

    γj=f(Xj)C.

    (fXj) es el vector de columna de las probabilidades posteriores de clase para la clasificación binaria y multiclase. es la matriz de costes que el modelo de entrada almacena en la propiedad.CCosto

  2. Para la observación, predecir la etiqueta de clase correspondiente al coste mínimo de clasificación esperado:j

    y^j=minj=1,...,K(γj).

  3. Utilizando, identifique el costo incurrido (CCj) para realizar la predicción.

La pérdida de costo mínima ponderada, promedio, es

L=j=1nwjcj.

Pérdida cuadrática'quadratic'L=j=1nwj(1mj)2.

Esta figura compara las funciones de pérdida (excepto) para una observación.'mincost'm Algunas funciones se normalizan para pasar a través de [0,1].

Verdadero costo de clasificación errónea

Dos costos están asociados con la clasificación KNN: el verdadero costo de clasificación errónea por clase y el costo esperado de clasificación errónea por observación.

Puede establecer el verdadero costo de clasificación errónea por clase utilizando el argumento de par nombre-valor cuando se ejecuta.'Cost'fitcknn El valor es el costo de clasificar una observación en la clase si su clase verdadera es.Cost(i,j)ji De forma predeterminada, si, y si.Cost(i,j) = 1i ~= jCost(i,j) = 0i = j En otras palabras, el costo es para la clasificación correcta y para la clasificación incorrecta.01

Costo esperado

Dos costos están asociados con la clasificación KNN: el verdadero costo de clasificación errónea por clase y el costo esperado de clasificación errónea por observación. La tercera salida es el costo esperado de clasificación errónea por observación.Predecir

Supongamos que tiene observaciones que desea clasificar con un clasificador entrenado y tiene clases.NobsmdlK Las observaciones se colocan en una matriz con una observación por fila.Xnew El comando

[label,score,cost] = predict(mdl,Xnew)

Devuelve una matriz de tamaño por, entre otras salidas.CostoNobsK Cada fila de la matriz contiene el costo esperado (promedio) de clasificar la observación en cada una de las clases. EsCostoKcost(n,j)

i=1KP^(i|Xnew(n))C(j|i),

Dónde

  • es el número de clases.K

  • P^(i|Xnew(n)) es la clase de observación ().probabilidad posterioriXnewn

  • C(j|i) es el verdadero costo de clasificación errónea de clasificar una observación como cuando es su verdadera clase.ji

Capacidades ampliadas

Introducido en R2012a