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.

discardSupportVectors

Descarte vectores de soporte para clasificador de máquina de vectores de soporte lineal (SVM)

Descripción

ejemplo

Mdl = discardSupportVectors(MdlSV) Devuelve el modelo de máquina de vectores de soporte (SVM) entrenado y lineal.Mdl Ambos y el modelo de SVM lineal entrenado son el mismo tipo de objeto.MdlMdlSV Es decir, ambos son objetos u objetos.ClassificationSVMCompactClassificationSVM Sin embargo, y difieren de las siguientes maneras:MdlMdlSV

Ejemplos

contraer todo

Cree un modelo de SVM lineal que sea más eficiente en memoria descartando los vectores de soporte y otros parámetros relacionados.

Cargue el conjunto de datos.ionosphere

load ionosphere

Entrenar un modelo de SVM lineal utilizando todo el conjunto de datos.

MdlSV = fitcsvm(X,Y)
MdlSV =    ClassificationSVM              ResponseName: 'Y'     CategoricalPredictors: []                ClassNames: {'b'  'g'}            ScoreTransform: 'none'           NumObservations: 351                     Alpha: [103x1 double]                      Bias: -3.8827          KernelParameters: [1x1 struct]            BoxConstraints: [351x1 double]           ConvergenceInfo: [1x1 struct]           IsSupportVector: [351x1 logical]                    Solver: 'SMO'     Properties, Methods  

Mostrar el número de vectores de soporte en.MdlSV

numSV = size(MdlSV.SupportVectors,1)
numSV = 103 

Mostrar el número de variables predictoras en.X

p = size(X,2)
p = 34 

De forma predeterminada, entrena un modelo SVM lineal para el aprendizaje de dos clases.fitcsvm Las listas de software en la pantalla.Alpha El modelo incluye 103 vectores de soporte y 34 predictores. Si descarta los vectores de soporte, el modelo resultante consume menos memoria.

Descarte los vectores de soporte y otros parámetros relacionados.

Mdl = discardSupportVectors(MdlSV)
Mdl =    ClassificationSVM              ResponseName: 'Y'     CategoricalPredictors: []                ClassNames: {'b'  'g'}            ScoreTransform: 'none'           NumObservations: 351                      Beta: [34x1 double]                      Bias: -3.8827          KernelParameters: [1x1 struct]            BoxConstraints: [351x1 double]           ConvergenceInfo: [1x1 struct]           IsSupportVector: [351x1 logical]                    Solver: 'SMO'     Properties, Methods  

Visualice los coeficientes en.Mdl

Mdl.Alpha
ans =       [] 

Visualice los vectores de soporte en.Mdl

Mdl.SupportVectors
ans =       [] 

Visualice las etiquetas de clase de vector de soporte en.Mdl

Mdl.SupportVectorLabels
ans =       [] 

El software se enumera en la pantalla en lugar de.BetaAlpha Las propiedades, y están vacías.AlphaSupportVectorsSupportVectorLabels

Compare los tamaños de los modelos.

vars = whos('MdlSV','Mdl'); 100*(1 - vars(1).bytes/vars(2).bytes)
ans = 20.5438 

es un 20% más pequeña que.MdlMdlSV

Quitar del espacio de trabajo.MdlSV

clear MdlSV

Compacte un modelo SVM descartando los vectores de soporte almacenados y otras estimaciones relacionadas. Predecir la etiqueta para una fila de los datos de entrenamiento mediante el modelo compactado.

Cargue el conjunto de datos.ionosphere

load ionosphere rng(1); % For reproducibility

Entrenar un modelo SVM utilizando las opciones predeterminadas.

MdlSV = fitcsvm(X,Y);

es un modelo que contiene valores no vacíos para su, y propiedades.MdlSVClassificationSVMAlphaSupportVectorsSupportVectorLabels

Reduzca el tamaño del modelo SVM descartando los datos de entrenamiento, los vectores de soporte y las estimaciones relacionadas.

CMdlSV = compact(MdlSV);               % Discard training data CMdl = discardSupportVectors(CMdlSV);  % Discard support vectors

es un modelo.CMdlCompactClassificationSVM

Compare los tamaños de los modelos SVM y.MdlSVCMdl

vars = whos('MdlSV','CMdl'); 100*(1 - vars(1).bytes/vars(2).bytes)
ans = 96.9528 

El modelo compactado consume mucha menos memoria que el modelo completo.CMdl

Predecir la etiqueta para una fila aleatoria de los datos de entrenamiento mediante el uso de.CMdl La función acepta modelos de SVM compactados y, para modelos SVM lineales, no requiere las propiedades, y para predecir etiquetas para nuevas observaciones.PredecirAlphaSupportVectorsSupportVectorLabels

idx = randsample(size(X,1),1)
idx = 147 
predictedLabel = predict(CMdl,X(idx,:))
predictedLabel = 1x1 cell array
    {'b'}

trueLabel = Y(idx)
trueLabel = 1x1 cell array
    {'b'}

Argumentos de entrada

contraer todo

Modelo de SVM entrenado y lineal, especificado como modelo.ClassificationSVMCompactClassificationSVM

Si el campo no es (es decir, no es un modelo SVM lineal), el software devuelve un error.MdlSV.KernelParameters.Function'linear'MdlSV

Sugerencias

  • Para un modelo de SVM entrenado y lineal, la propiedad es unSupportVectors Nsv-por-matriz.p Nsv es el número de vectores de soporte (como máximo el tamaño de la muestra de entrenamiento) y es el número de predictores o entidades.p Las propiedades y son vectores conAlphaSupportVectorLabels Nsv Elementos. Estas propiedades pueden ser grandes para conjuntos de datos complejos que contengan muchas observaciones o ejemplos. La propiedad es un vector con elementos.Betap

  • Si el modelo de SVM entrenado tiene muchos vectores de soporte, utilírelos para reducir la cantidad de espacio consumido por el modelo de SVM entrenado y lineal.discardSupportVectors Puede mostrar el tamaño de la matriz de vectores de soporte introduciendo.size(MdlSV.SupportVectors)

Algoritmos

y estimar las puntuaciones de SVM (), y posteriormente etiquetar y estimar las probabilidades posteriores utilizandoPredecirresubPredictfx

f(x)=xβ+b.

es y es, es decir, las propiedades de, respectivamente.βMdl.BetabMdl.BiasBetaBiasMdl Para obtener más información, consulte.Máquinas de vectores de soporte para clasificación binaria

Introducido en R2015a