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.

edge

Busque el borde de clasificación para el clasificador de la máquina de vectores de soporte (SVM)

Descripción

e = edge(SVMModel,TBL,ResponseVarName) Devuelve el () para el clasificador de la máquina de vectores de soporte (SVM) utilizando los Datos predictores en la tabla y las etiquetas de clase en.borde de clasificacióneSVMModelTBLTBL.ResponseVarName

El borde de clasificación () es un valor escalar que representa la media ponderada de la.emárgenes de clasificación

e = edge(SVMModel,TBL,Y) Devuelve el () para el clasificador SVM usando los Datos predictores en la tabla y las etiquetas de clase en.borde de clasificacióneSVMModelTBLY

ejemplo

e = edge(SVMModel,X,Y) Devuelve el borde de clasificación para usar los Datos predictores en la matriz y las etiquetas de clase en.SVMModelXY

ejemplo

e = edge(___,'Weights',weights) calcula la arista de clasificación para los pesos de observación suministrados en el uso de cualquiera de los argumentos de entrada en las sintaxis anteriores.weights

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 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 el borde de la muestra de prueba.

e = edge(CompactSVMModel,XTest,YTest)
e = 5.0765 

El promedio de margen de la muestra de prueba es aproximadamente 5.

Supongamos que las observaciones de un conjunto de datos se miden secuencialmente, y que las últimas 150 observaciones tienen mejor calidad debido a una actualización de la tecnología. Incorpore este avance al sopesar las observaciones de mejor calidad más que las otras observaciones.

Cargue el conjunto de datos.ionosphere

load ionosphere rng(1); % For reproducibility

Definir un vector de peso que pesa las observaciones de mejor calidad dos veces las otras observaciones.

n = size(X,1); weights = [ones(n-150,1);2*ones(150,1)];

Entrenar un clasificador SVM. Especifique el esquema de ponderación y una muestra de retención del 15% para las pruebas. También, estandarizar los datos y especificar que es la clase positiva.'g'

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

es un clasificador entrenado.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

Calcule el borde ponderado de la muestra de prueba utilizando el esquema de ponderación.

e = edge(CompactSVMModel,XTest,YTest,'Weights',wTest)
e = 4.8341 

El margen medio ponderado de la muestra de ensayo es de aproximadamente 5.

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

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 el borde de la muestra de prueba para cada clasificador.

fullEdge = edge(FCSVMModel,XTest,YTest)
fullEdge = 2.8319 
partEdge = edge(PCSVMModel,XTest(:,end-20:end),YTest)
partEdge = 1.5540 

La arista del clasificador entrenado en el conjunto de datos completo es mayor, lo que sugiere que el clasificador 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 edge 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

Ponderaciones de observación, especificadas como un vector numérico o el nombre de una variable en.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, 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 suministra pesos, calcula el ponderado.Bordeborde de clasificación El software pondera las observaciones en cada fila o con el peso correspondiente en.XTBLweights

Ejemplo: 'Weights','W'

Tipos de datos: single | double | char | string

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