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

Buscar error de clasificación para el clasificador de máquina de vectores de soporte (SVM)

Descripción

L = loss(SVMModel,TBL,ResponseVarName) Devuelve el error de clasificación (consulte), un escalar que representa la forma en que el clasificador (SVM) de la máquina de vectores de soporte entrenado () clasifica los Datos predictores en la tabla en comparación con las etiquetas de clase verdaderas en.Pérdida de clasificaciónSVMModelTBLTBL.ResponseVarName

Normaliza las probabilidades de clase en las probabilidades de clase previas que se utilizaron para el entrenamiento, almacenadas en la propiedad de.lossTBL.ResponseVarNamefitcsvmPriorSVMModel

La clasificación loss () es una medida de calidad de generalización o de reenvío.L Su interpretació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 = loss(SVMModel,TBL,Y) Devuelve el error de clasificación para los Datos predictores en la tabla y las etiquetas de clase verdaderas en.TBLY

Normaliza las probabilidades de clase en las probabilidades de clase previas que se utilizaron para el entrenamiento, almacenadas en la propiedad de.lossYfitcsvmPriorSVMModel

ejemplo

L = loss(SVMModel,X,Y) Devuelve el error de clasificación en función de los datos del predictor en la matriz en comparación con las etiquetas de clase true en.XY

ejemplo

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

Cargue el conjunto de datos.ionosphere

load ionosphere rng(1); % For reproducibility

Entrenar un clasificador SVM. Especifique una muestra de retención de 15% para probar, estandarizar los datos y especificar que es la clase positiva.'g'

CVSVMModel = fitcsvm(X,Y,'Holdout',0.15,'ClassNames',{'b','g'},...     'Standardize',true); CompactSVMModel = CVSVMModel.Trained{1}; % Extract the trained, compact classifier testInds = test(CVSVMModel.Partition);   % Extract the test indices XTest = X(testInds,:); YTest = Y(testInds,:);

es un clasificador.CVSVMModelClassificationPartitionedModel Contiene la propiedad, que es un array de celdas 1 por 1 con un clasificador que el software entrenado usando el conjunto de entrenamiento.TrainedCompactClassificationSVM

Determine qué tan bien el algoritmo generaliza mediante la estimación del error de clasificación de muestra de prueba.

L = loss(CompactSVMModel,XTest,YTest)
L = 0.0787 

El clasificador SVM clasifica incorrectamente aproximadamente el 8% de la muestra de prueba.

Cargue el conjunto de datos.ionosphere

load ionosphere rng(1); % For reproducibility

Entrenar un clasificador SVM. Especifique una muestra de retención de 15% para probar, estandarizar los datos y especificar que es la clase positiva.'g'

CVSVMModel = fitcsvm(X,Y,'Holdout',0.15,'ClassNames',{'b','g'},...     'Standardize',true); CompactSVMModel = CVSVMModel.Trained{1}; % Extract the trained, compact classifier testInds = test(CVSVMModel.Partition);   % Extract the test indices XTest = X(testInds,:); YTest = Y(testInds,:);

es un clasificador.CVSVMModelClassificationPartitionedModel Contiene la propiedad, que es un array de celdas 1 por 1 con un clasificador que el software entrenado usando el conjunto de entrenamiento.TrainedCompactClassificationSVM

Determine qué tan bien el algoritmo generaliza calculando la pérdida de la bisagra de la muestra de prueba.

L = loss(CompactSVMModel,XTest,YTest,'LossFun','hinge')
L = 0.2998 

La pérdida de la bisagra es de aproximadamente 0,3. Se preferían los clasificadores con pérdidas de bisagra cercanas a 0.

Argumentos de entrada

contraer todo

Modelo de clasificación de SVM, especificado como objeto de modelo o objeto de modelo devuelto por oClassificationSVMCompactClassificationSVMfitcsvm compactRespectivamente.

Datos de ejemplo, especificados como una tabla. Cada fila de corresponde a una observación, y cada columna corresponde a una variable predictora.TBL Opcionalmente, puede contener columnas adicionales para la variable de respuesta y ponderaciones de observación. debe contener todos los predictores utilizados para entrenar.TBLTBLSVMModel 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.TBLSVMModelResponseVarNameY

Si ha entrenado con datos de ejemplo contenidos en una tabla, los datos de entrada paraSVMModel loss también debe estar en una tabla.

Si se establece en el entrenamiento, entonces el software estandariza las columnas de los Datos predictores utilizando los medios correspondientes en y las desviaciones estándar en.'Standardize',truefitcsvmSVMModelSVMModel.MuSVMModel.Sigma

Tipos de datos: table

Nombre de variable de respuesta, especificado como el nombre de una variable en.TBL

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, especifique as.YTBL.YResponseVarName'Y' De lo contrario, el software trata todas las columnas de, incluidos, como predictores al entrenar el modelo.TBLY

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 corresponde a una observación (también conocida como una instancia o ejemplo), y cada columna corresponde a una variable (también conocida como una característica).X Las variables en las columnas de deben ser las mismas que las variables que entrenaron al clasificador.XSVMModel

La longitud y el número de filas en debe ser igual.YX

Si se establece en el tren, a continuación, el software estandariza las columnas de uso de los medios correspondientes en y las desviaciones estándar en.'Standardize',truefitcsvmSVMModelXSVMModel.MuSVMModel.Sigma

Tipos de datos: double | single

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. debe ser el mismo que el tipo de datos.YSVMModel.ClassNames (The software treats string arrays as cell arrays of character vectors.)

La longitud de debe ser igual al número de filas o el número de filas en.YTBLX

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: pesa las observaciones en cada fila de utilizar el peso correspondiente en cada fila de la variable en.loss(SVMModel,TBL,Y,'Weights',W)TBLWTBL

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'

  • Esta tabla enumera las funciones de pérdida disponibles. Especifique uno utilizando su vector de caracteres correspondiente o escalar de cadena.

    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' Puede especificar que se utilicen las probabilidades posteriores como puntuaciones de clasificación para los modelos de SVM estableciendo al realizar la validación cruzada del modelo utilizando.'FitPosterior',truefitcsvm

  • Especifique su propia función mediante la notación de identificador de función.

    Supongamos que es el número de observaciones en, y es el número de clases distintas () que se utilizan para crear el modelo de entrada ().nXKnumel(SVMModel.ClassNames)SVMModel La función debe tener esta firma

    lossvalue = lossfun(C,S,W,Cost)
    Dónde:

    • El argumento de salida es un escalar.lossvalue

    • Elija el nombre de la función (lossfun).

    • 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.SVMModel.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, similar a la salida de.SnKPredecir El orden de las columnas corresponde al orden de la clase.SVMModel.ClassNames

    • 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

    Especifique la función mediante 'LossFun',@lossfun.

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

Ejemplo: 'LossFun','binodeviance'

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 El software pesa las observaciones en cada fila o con el peso correspondiente en.XTBLWeights

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, debe hacerlo como 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

Si no especifica su propia función de pérdida, el software normaliza para resumir hasta el valor de la probabilidad anterior en la clase respectiva.Weights

Ejemplo: 'Weights','W'

Tipos de datos: single | double | char | string

Más acerca de

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

Puntuación de clasificación

La SVM para clasificar la observación es la distancia firmada desde el límite de decisión que va desde-∞ hasta + ∞.puntuación de clasificaciónxx Una puntuación positiva para una clase indica que se predice que estará en esa clase.x Una puntuación negativa indica lo contrario.

La puntuación de clasificación de clase positiva f(x) es la función de clasificación de SVM entrenada. f(x) es también la respuesta numérica, pronosticada para, o la puntuación para predecir en la clase positiva.xx

f(x)=j=1nαjyjG(xj,x)+b,

Dónde (α1,...,αn,b) son los parámetros SVM estimados, G(xj,x) es el producto escalar en el espacio predictor entre y los vectores de soporte, y la suma incluye las observaciones del conjunto de formación.x La puntuación de clasificación de clase negativa para, o la puntuación para predecir en la clase negativa, es – ().xxfx

SiGXj, ) =x Xj′ (el kernel lineal), la función de puntuación se reduce ax

f(x)=(x/s)β+b.

es la escala del kernel y es el vector de los coeficientes lineales ajustados.sβ

Para obtener más información, consulte.Entender las máquinas de vectores de soporte

Referencias

[1] Hastie, T., R. Tibshirani, and J. Friedman. The Elements of Statistical Learning, second edition. Springer, New York, 2008.

Capacidades ampliadas

Introducido en R2014a