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.

resubLoss

La pérdida del clasificador de vecino más cercano mediante la representaciónk

Descripción

ejemplo

L = resubLoss(mdl) Devuelve el por volver a enviar, que es la pérdida calculada para los datos utilizados para crear.pérdida de clasificaciónfitcknnmdl

La pérdida de clasificación () es un escalar numérico, cuya interpretación depende de la función de pérdida y de los pesos de observación.Lmdl

L = resubLoss(mdl,'LossFun',lossfun) Devuelve la pérdida de reenvío para la función de pérdida, especificada como un argumento de par nombre-valor.lossfun

Ejemplos

contraer todo

Cree un clasificador de vecino más cercano para los datos de iris de Fisher, dondek

<math display="block">
<mrow>
<mi>k</mi>
</mrow>
</math>
= 5.

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 de reenvío del clasificador.

L = resubLoss(mdl)
L = 0.0333 

El clasificador predice clasificaciones incorrectas para 1/30 de sus datos de entrenamiento.

Argumentos de entrada

contraer todo

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

Función de pérdida, especificada como un nombre de función de pérdida incorporada o un identificador de función.

  • 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

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.resubPredict

Supongamos que tiene observaciones que ha clasificado con un clasificador entrenado y tiene clases.NobsmdlK El comando

[label,score,cost] = resubPredict(mdl)

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|X(n))C(j|i),

Dónde

  • es el número de clases.K

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

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

Introducido en R2012a