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

Deseche los vectores de soporte de los estudiantes binarios de SVM lineales en el modelo ECOC

Descripción

ejemplo

Mdl = discardSupportVectors(MdlSV) Devuelve un modelo de códigos de salida (ECOC) de corrección de errores multiclase entrenado () del modelo ECOC de varias clases entrenado (), que contiene al menos un aprendizaje binario lineal.MdlMdlSVCompactClassificationSVM Ambos y son objetos del mismo tipo, ya sean objetos u objetos.MdlMdlSVClassificationECOCCompactClassificationECOC

tiene estas características:Mdl

Ejemplos

contraer todo

Cuando se entrena un modelo ECOC con alumnos binarios de SVM lineales, se vacía la, y las propiedades de los alumnos binarios de forma predeterminada.fitcecocAlphaSupportVectorLabelsSupportVectors Puede elegir en su lugar para conservar los vectores de soporte y los valores relacionados y, a continuación, descartarlos del modelo más adelante.

Cargue el conjunto de datos de iris de Fisher.

load fisheriris rng(1); % For reproducibility

Entrenar un modelo ECOC utilizando todo el conjunto de datos. Especifique la retención de los vectores de soporte transfiriendo la plantilla SVM correspondiente.

t = templateSVM('SaveSupportVectors',true); MdlSV = fitcecoc(meas,species,'Learners',t);

es un modelo entrenado con estudiantes binarios de SVM lineales.MdlSVClassificationECOC De forma predeterminada, implementa un diseño de codificación uno contra uno, que requiere tres estudiantes binarios para el aprendizaje de tres clases.fitcecoc

Acceda a la estimación

<math display="block">
<mrow>
<mi>α</mi>
</mrow>
</math>
(Alpha) utilizando la notación de puntos.

alpha = cell(3,1); alpha{1} = MdlSV.BinaryLearners{1}.Alpha; alpha{2} = MdlSV.BinaryLearners{2}.Alpha; alpha{3} = MdlSV.BinaryLearners{3}.Alpha; alpha
alpha = 3x1 cell array
    { 3x1 double}
    { 3x1 double}
    {23x1 double}

es una matriz de celdas de 3 por 1 que almacena los valores estimados dealpha

<math display="block">
<mrow>
<mi>α</mi>
</mrow>
</math>
.

Descarte los vectores de soporte y los valores relacionados del modelo ECOC.

Mdl = discardSupportVectors(MdlSV);

es similar a, excepto que el, y las propiedades de todos los alumnos binarios de SVM lineales están vacíos ().MdlMdlSVAlphaSupportVectorLabelsSupportVectors[]

areAllEmpty = @(x)isempty([x.Alpha x.SupportVectors x.SupportVectorLabels]); cellfun(areAllEmpty,Mdl.BinaryLearners)
ans = 3x1 logical array

   1
   1
   1

Compare los tamaños de los dos modelos de ECOC.

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

es un 5% más pequeño que.MdlMdlSV

Reduzca el uso de memoria compactando y luego despejando y desde el espacio de trabajo.MdlMdlMdlSV

CompactMdl = compact(Mdl); clear Mdl MdlSV;

Predecir la etiqueta para una fila aleatoria de los datos de entrenamiento utilizando el modelo SVM más eficiente.

idx = randsample(size(meas,1),1)
idx = 63 
predictedLabel = predict(CompactMdl,meas(idx,:))
predictedLabel = 1x1 cell array
    {'versicolor'}

trueLabel = species(idx)
trueLabel = 1x1 cell array
    {'versicolor'}

Argumentos de entrada

contraer todo

Modelo ECOC multiclase entrenado, completo o compacto, que contiene al menos un aprendizaje binario de SVM lineal, especificado como modelo.ClassificationECOCCompactClassificationECOC

Más acerca de

contraer todo

El alumno binario de SVM lineal

En el contexto de esta página, un aprendizaje binario de máquina de vectores de soporte lineal (SVM) es un clasificador binario de SVM creado con una función de kernel lineal. Si el alumno binario TH en un modelo ECOC es un alumno binario SVM lineal, entonces es un objeto, donde está.jMdlMdl.BinaryLearners{j}CompactClassificationSVMMdl.BinaryLearners{j}.KernelParameters.Function'linear'

Sugerencias

  • De forma predeterminada y para la eficacia, vacía la, y las propiedades de todos los alumnos binarios de SVM lineales. listas, en lugar de, en la visualización del modelo.fitcecocAlphaSupportVectorLabelsSupportVectorsfitcecocBetaAlpha

    Para almacenar y pasar una plantilla de SVM lineal que especifica el almacenamiento de vectores de soporte.AlphaSupportVectorLabelsSupportVectorsfitcecoc Por ejemplo, escriba:

    t = templateSVM('SaveSupportVectors',true) Mdl = fitcecoc(X,Y,'Learners',t);

    Puede quitar los vectores de soporte y los valores relacionados pasando el modelo resultante a.ClassificationECOCdiscardSupportVectors

Algoritmos

y estimar las puntuaciones SVM () para cada alumno binario SVM lineal en un modelo ECOC utilizandoPredecirresubPredictfx

f(x)=xβ+b.

es la propiedad y es la propiedad de los estudiantes binarios.βBetabBias Puede tener acceso a estas propiedades para cada alumno binario de SVM lineal en la matriz de celdas.Mdl.BinaryLearners Para obtener más detalles sobre el cálculo de la puntuación SVM, consulte.Máquinas de vectores de soporte para clasificación binaria

Introducido en R2015a