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.

margin

Encuentre márgenes de clasificación para el clasificador de máquina de vectores de soporte (SVM)

Descripción

m = margin(SVMModel,TBL,ResponseVarName) Devuelve el () para el clasificador de máquina de vectores de soporte (SVM) entrenado utilizando los datos de muestra en la tabla y las etiquetas de clase en.márgenes de clasificaciónmSVMModelTBLTBL.ResponseVarName

se devuelve como un vector numérico con la misma longitud que.mY El software estima cada entrada del uso del clasificador de SVM entrenado, la fila correspondiente y la etiqueta de clase verdadera.mSVMModelXY

m = margin(SVMModel,TBL,Y) Devuelve los márgenes de clasificación () para el clasificador de SVM entrenado utilizando los datos de muestra en la tabla y las etiquetas de clase en.mSVMModelTBLY

ejemplo

m = margin(SVMModel,X,Y) Devuelve los márgenes de clasificación para el uso de los Datos predictores en la matriz y las etiquetas de clase en.SVMModelXY

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

Estimar los márgenes de clasificación de la muestra de prueba.

m = margin(CompactSVMModel,XTest,YTest); m(10:20)
ans = 11×1

    3.5461
    5.5944
    4.9949
    4.5614
   -4.7966
    5.5128
   -2.8773
    1.8674
    9.4989
    9.5021
      ⋮

Un margen de observación es la puntuación de clase verdadera observada menos la puntuación de clase falsa máxima entre todas las puntuaciones de la clase respectiva. Se preferían los clasificadores que produzcan márgenes relativamente grandes.

Realice la selección de características comparando los márgenes de muestra de prueba de varios modelos. Basado únicamente en esta comparación, el modelo con los márgenes más altos es el mejor modelo.

Cargue el conjunto de datos.ionosphere

load ionosphere rng(1); % For reproducibility

Particionar el conjunto de datos en conjuntos de entrenamiento y prueba. Especifique una muestra de retención del 15% para las pruebas.

Partition = cvpartition(Y,'Holdout',0.15); testInds = test(Partition); % Indices for the test set XTest = X(testInds,:); YTest = Y(testInds,:);

define la partición del conjunto de datos.Partition

Defina estos dos conjuntos de datos:

  • contiene todos los predictores (excepto la columna eliminada de 0s).fullX

  • contiene los últimos 20 predictores.partX

fullX = X; partX = X(:,end-20:end);

Clasificadores de SVM de tren para cada conjunto de predictor. Especifique la definición de partición.

FullCVSVMModel = fitcsvm(fullX,Y,'CVPartition',Partition); PartCVSVMModel = fitcsvm(partX,Y,'CVPartition',Partition); FCSVMModel = FullCVSVMModel.Trained{1}; PCSVMModel = PartCVSVMModel.Trained{1};

y son clasificadores.FullCVSVMModelPartCVSVMModelClassificationPartitionedModel Contienen la propiedad, que es una matriz de celdas 1 por 1 que contiene un clasificador que el software entrenado utilizando el conjunto de entrenamiento.TrainedCompactClassificationSVM

Calcule los márgenes de muestra de prueba para cada clasificador.

fullM = margin(FCSVMModel,XTest,YTest); partM = margin(PCSVMModel,XTest(:,end-20:end),YTest); n = size(XTest,1); p = sum(fullM < partM)/n
p = 0.2500 

Aproximadamente el 25% de los márgenes del modelo completo son menores que los del modelo con menos predictores. Este resultado sugiere que el modelo entrenado con todos los predictores es mejor.

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 margin 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

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

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

Si especifica, debe hacerlo 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.TBL.ResponseResponseVarName'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

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

Más acerca de

contraer todo

Clasificación perimetral

Es la media ponderada de la.Bordemárgenes de clasificación

Los pesos son las probabilidades de clase previas. Si usted suministra pesos, entonces el software los normaliza para sumar a las probabilidades previas en las clases respectivas. El software utiliza los pesos ponderaciones renormalizadas para calcular la media ponderada.

Una forma de elegir entre varios clasificadores, por ejemplo, para realizar la selección de características, es elegir el clasificador que produce el borde más alto.

Margen de clasificación

Para cada observación, la clasificación binaria es la diferencia entre la puntuación de clasificación de la clase true y la puntuación de clasificación de la clase false.margen de clasificación

El software define el margen de clasificación para la clasificación binaria como

m=2yf(x).

es una observación.x Si la verdadera etiqueta de es la clase positiva, entonces es 1, y – 1 en caso contrario. () es la puntuación de clasificación de clase positiva para la observación.xyfxx El margen de clasificación se define comúnmente como m = yf(x).

Si los márgenes están en la misma escala, entonces sirven como una medida de confianza de clasificación. Entre los clasificadores múltiples, los que producen mayores márgenes son mejores.

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

Algoritmos

Para la clasificación binaria, el software define el margen para la observación,j MjComo

mj=2yjf(xj),

Dónde yj ∊ {-1, 1} y (fXj) es la puntuación pronosticada de observación para la clase positiva.j Sin embargo Mj = yj(fXj) se utiliza comúnmente para definir el margen.

Referencias

[1] Christianini, N., and J. C. Shawe-Taylor. An Introduction to Support Vector Machines and Other Kernel-Based Learning Methods. Cambridge, UK: Cambridge University Press, 2000.

Capacidades ampliadas

Introducido en R2014a