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.

ClassificationSVM

Máquina vectorial de soporte (SVM) para clasificación binaria y de una clase

Descripción

es un aprendizaje de una clase y dos clases.ClassificationSVMclasificador de máquina vectorial de soporte (SVM) Los clasificadores entrenados almacenan datos de entrenamiento, valores de parámetros, probabilidades anteriores, vectores de soporte e información de implementación algorítmica.ClassificationSVM Utilice estos clasificadores para realizar tareas como ajustar una función de transformación de puntuación a posterior de probabilidad (consulte ) y predecir etiquetas para nuevos datos (consulte ).fitPosteriorpredict

Creación

Cree un objeto mediante .ClassificationSVMfitcsvm

Propiedades

expandir todo

Propiedades de SVM

Esta propiedad es de solo lectura.

Coeficientes clasificadores entrenados, especificados como un vector numérico -by-1. es el número de vectores de soporte en el clasificador entrenado, .sssum(Mdl.IsSupportVector)

contiene los coeficientes clasificadores entrenados del doble problema, es decir, los multiplicadores lagrange estimados.Alpha Si elimina duplicados utilizando el argumento de par nombre-valor de , a continuación, para un conjunto determinado de observaciones duplicadas que son vectores de soporte, contiene un coeficiente correspondiente a todo el conjunto.RemoveDuplicatesfitcsvmAlpha Es decir, atribuye un coeficiente distinto de cero a una observación del conjunto de duplicados y un coeficiente de todas las demás observaciones duplicadas del conjunto.MATLAB®0

Tipos de datos: single | double

Esta propiedad es de solo lectura.

Coeficientes de predictor lineal, especificados como un vector numérico. La longitud de es igual al número de predictores utilizados para entrenar el modelo.Beta

expande las variables categóricas en los datos del predictor utilizando la codificación ficticia completa.MATLAB Es decir, crea una variable ficticia para cada nivel de cada variable categórica. almacena un valor para cada variable predictora, incluidas las variables ficticias.MATLABBeta Por ejemplo, si hay tres predictores, uno de los cuales es una variable categórica con tres niveles, entonces es un vector numérico que contiene cinco valores.Beta

Si es , entonces la puntuación de clasificación para la observación esKernelParameters.Function'linear'x

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

stores , , y en las propiedades , , y , respectivamente.MdlβbsBetaBiasKernelParameters.Scale

Para estimar las puntuaciones de clasificación manualmente, primero debe aplicar las transformaciones a los datos del predictor que se aplicaron durante el entrenamiento. Específicamente, si especifica al utilizar , debe estandarizar los datos del predictor manualmente utilizando la media y la desviación estándar y, a continuación, dividir el resultado por la escala del kernel en .'Standardize',truefitcsvmMdl.MuMdl.SigmaMdl.KernelParameters.Scale

Todas las funciones de SVM, como y , aplican cualquier transformación necesaria antes de la estimación.resubPredictpredict

Si no lo es , entonces está vacío ( ).KernelParameters.Function'linear'Beta[]

Tipos de datos: single | double

Esta propiedad es de solo lectura.

Término de sesgo, especificado como escalar.

Tipos de datos: single | double

Esta propiedad es de solo lectura.

Restricciones de cuadro, especificadas como un vector numérico de -by-1 . es el número de observaciones en los datos de entrenamiento (ver la propiedad).nrestricciones de cajanNumObservations

Si quita duplicados mediante el argumento de par nombre-valor de , a continuación, para un conjunto determinado de observaciones duplicadas, suma las restricciones de cuadro y, a continuación, atribuye la suma a una observación. atribuye las restricciones de cuadro a todas las demás observaciones del conjunto.RemoveDuplicatesfitcsvmMATLABMATLAB0

Tipos de datos: single | double

Esta propiedad es de solo lectura.

Información de almacenamiento en caché, especificada como una matriz de estructura. La información de almacenamiento en caché contiene los campos descritos en esta tabla.

CampoDescripción
Tamaño

El tamaño de caché (en MB) que el software reserva para entrenar el clasificador SVM. Para obtener más información, consulte .'CacheSize'

Algoritmo

El algoritmo de almacenamiento en caché que el software utiliza durante la optimización. Actualmente, el único algoritmo de almacenamiento en caché disponible es .Queue No puede establecer el algoritmo de almacenamiento en caché.

Mostrar los campos de mediante la notación de puntos.CacheInfo Por ejemplo, muestra el valor del tamaño de la memoria caché.Mdl.CacheInfo.Size

Tipos de datos: struct

Esta propiedad es de solo lectura.

Indicador vectorial de soporte, especificado como un vector lógico -by-1 que marca si una observación correspondiente en la matriz de datos predictor es un . es el número de observaciones en los datos de formación (ver ).nVector de soportenNumObservations

Si quita duplicados mediante el argumento de par nombre-valor de , a continuación, para un conjunto determinado de observaciones duplicadas que son vectores de soporte, marca solo una observación como vector de soporte.RemoveDuplicatesfitcsvmIsSupportVector

Tipos de datos: logical

Esta propiedad es de solo lectura.

Parámetros del núcleo, especificados como una matriz de estructura. La propiedad de parámetros del kernel contiene los campos enumerados en esta tabla.

CampoDescripción
Función

Función Kernel utilizada para calcular los elementos del archivo .Matriz de Gram Para obtener más información, consulte .'KernelFunction'

Escala

Parámetro de escala del núcleo utilizado para escalar todos los elementos de los datos del predictor en los que se entrena el modelo. Para obtener más información, consulte .'KernelScale'

Para mostrar los valores de , utilice la notación de puntos.KernelParameters Por ejemplo, muestra el valor del parámetro de escala del kernel.Mdl.KernelParameters.Scale

El software acepta como entradas y no las modifica.KernelParameters

Tipos de datos: struct

Esta propiedad es de solo lectura.

parámetro , especificado como un escalar positivo.Aprendizaje de una sola claseν

Tipos de datos: single | double

Esta propiedad es de solo lectura.

Proporción de valores atípicos en los datos de entrenamiento, especificado como escalar numérico.

Tipos de datos: double

Esta propiedad es de solo lectura.

Rutina de optimización utilizada para entrenar el clasificador SVM, especificado como , , o .'ISDA''L1QP''SMO' Para obtener más información, consulte .'Solver'

Esta propiedad es de solo lectura.

Admite etiquetas de clase vectorial, especificadas como un vector numérico -by-1. es el número de vectores de soporte en el clasificador entrenado, .sssum(Mdl.IsSupportVector)

Un valor de in indica que el vector de soporte correspondiente está en la clase positiva ( ).+1SupportVectorLabelsClassNames{2} Un valor de indica que el vector de soporte correspondiente está en la clase negativa ( ).–1ClassNames{1}

Si quita duplicados mediante el argumento de par nombre-valor de , a continuación, para un conjunto determinado de observaciones duplicadas que son vectores de soporte, contiene una etiqueta de vector de soporte único.RemoveDuplicatesfitcsvmSupportVectorLabels

Tipos de datos: single | double

Esta propiedad es de solo lectura.

Admite vectores en el clasificador entrenado, especificado como una matriz numérica -por-. es el número de vectores de soporte en el clasificador entrenado, y es el número de variables predictoras en los datos del predictor.spssum(Mdl.IsSupportVector)p

contiene filas de los datos predictores que consideran que son vectores de soporte.SupportVectorsXMATLAB Si especifica al entrenar el clasificador SVM mediante , a continuación, contiene las filas estandarizadas de .'Standardize',truefitcsvmSupportVectorsX

Si quita duplicados mediante el argumento de par nombre-valor de , a continuación, para un conjunto determinado de observaciones duplicadas que son vectores de soporte, contiene un vector de soporte único.RemoveDuplicatesfitcsvmSupportVectors

Tipos de datos: single | double

Otras propiedades de clasificación

Esta propiedad es de solo lectura.

Los índices predictores categóricos, especificados como un vector de enteros positivos. contiene valores de índice correspondientes a las columnas de los datos predictores que contienen predictores categóricos.CategoricalPredictors Si ninguno de los predictores es categórico, esta propiedad está vacía ( ).[]

Tipos de datos: single | double

Esta propiedad es de solo lectura.

Etiquetas de clase únicas utilizadas en el entrenamiento del modelo, especificadas como una matriz categórica o de caracteres, un vector lógico o numérico o una matriz de celdas de vectores de caracteres.

Tipos de datos: single | double | logical | char | cell | categorical

Esta propiedad es de solo lectura.

Coste de clasificación errónea, especificado como una matriz cuadrada numérica, donde está el costo de clasificar un punto en clase si su clase verdadera es .Cost(i,j)ji

Durante el entrenamiento, el software actualiza las probabilidades anteriores mediante la incorporación de las penalizaciones descritas en la matriz de costos.

  • Para el aprendizaje de dos clases, siempre tiene esta forma: if , y if .CostCost(i,j) = 1i ~= jCost(i,j) = 0i = j Las filas corresponden a la clase true y las columnas corresponden a la clase predicha. El orden de las filas y columnas de corresponde al orden de las clases en .CostClassNames

  • Para el aprendizaje de una clase, .Cost = 0

Para obtener más información, consulte .Algoritmos

Tipos de datos: double

Esta propiedad es de solo lectura.

Nombres de predictorexpandido expandido, especificados como una matriz de celdas de vectores de caracteres.

Si el modelo utiliza codificación de variables ficticia para variables categóricas, incluye los nombres que describen las variables expandidas.ExpandedPredictorNames De lo contrario, es lo mismo que .ExpandedPredictorNamesPredictorNames

Tipos de datos: cell

Esta propiedad es de solo lectura.

Valores de degradado de datos de entrenamiento, especificados como un vector numérico. La longitud de es igual al número de observaciones (véase ).GradientNumObservations

Tipos de datos: single | double

Esta propiedad es de solo lectura.

Parámetros utilizados para entrenar el modelo, especificados como una matriz de estructura. contiene valores de parámetro como los valores de argumento de par nombre-valor utilizados para entrenar el clasificador SVM. no contiene parámetros estimados.ClassificationSVMModelParametersModelParameters

Acceda a los campos de uso de notación de puntos.ModelParameters Por ejemplo, acceda a los valores iniciales para estimar mediante .AlphaMdl.ModelParameters.Alpha

Tipos de datos: struct

Esta propiedad es de solo lectura.

Predictor significa, especificado como un vector numérico. Si especifica o al entrenar un clasificador SVM mediante , la longitud de es igual al número de predictores.'Standardize',1'Standardize',truefitcsvmMu

expande las variables categóricas en los datos del predictor utilizando la codificación ficticia completa.MATLAB Es decir, crea una variable ficticia para cada nivel de cada variable categórica. almacena un valor para cada variable predictora, incluidas las variables ficticias.MATLABMu Sin embargo, no estandariza las columnas que contienen variables categóricas.MATLAB

Si establece al entrenar el clasificador SVM mediante , entonces es un vector vacío ( ).'Standardize',falsefitcsvmMu[]

Tipos de datos: single | double

Esta propiedad es de solo lectura.

Número de observaciones en los datos de entrenamiento almacenados en y , especificado como un escalar numérico.XY

Tipos de datos: single | double

Esta propiedad es de solo lectura.

Nombres de variables predictoras, especificados como una matriz de celdas de vectores de caracteres. El orden de los elementos de corresponde al orden en que los nombres del predictor aparecen en los datos de entrenamiento.PredictorNames

Tipos de datos: cell

Esta propiedad es de solo lectura.

Probabilidades anteriores para cada clase, especificadas como un vector numérico. El orden de los elementos de corresponde a los elementos de .PriorMdl.ClassNames

Para el aprendizaje de dos clases, si especifica una matriz de costes, el software actualiza las probabilidades anteriores incorporando las penalizaciones descritas en la matriz de costes.

Para obtener más información, consulte .Algoritmos

Tipos de datos: single | double

Esta propiedad es de solo lectura.

Nombre de la variable de respuesta, especificado como vector de caracteres.

Tipos de datos: char

Esta propiedad es de solo lectura.

Filas de los datos originales utilizados para ajustar elX ClassificationSVM modelo, especificado como vector lógico. Esta propiedad está vacía si se utilizan todas las filas.

Tipos de datos: logical

Transformación de puntuación, especificada como un vector de caracteres o un identificador de función. representa una función de transformación integrada o un identificador de función para transformar las puntuaciones de clasificación predichas.ScoreTransform

Para cambiar la función de transformación de puntuación a function, por ejemplo, utilice la notación de puntos.

  • Para una función integrada, escriba un vector de caracteres.

    Mdl.ScoreTransform = 'function';

    En esta tabla se describen las funciones integradas disponibles.

    ValorDescripción
    'doublelogit'1/(1 +e–2x)
    'invlogit'log( / (1 – ))xx
    'ismax'Establece la puntuación de la clase con la puntuación más alta en , y establece las puntuaciones de todas las demás clases en10
    'logit'1/(1 +ex)
    O'none''identity'(sin transformación)x
    'sign'–1 para <0 0 para 0 0 para 0 1 para > 0x
    x
    x
    'symmetric'2 – 1x
    'symmetricismax'Establece la puntuación de la clase con la puntuación más alta en , y establece las puntuaciones de todas las demás clases en1–1
    'symmetriclogit'2/(1 +ex) – 1

  • Para una función o una función que defina, introduzca su identificador de función.MATLAB

    Mdl.ScoreTransform = @function;

    function debe aceptar una matriz (las puntuaciones originales) y devolver una matriz del mismo tamaño (las puntuaciones transformadas).

Tipos de datos: char | function_handle

Esta propiedad es de solo lectura.

Desviaciones estándar predictoras, especificadas como un vector numérico.

Si especifica al entrenar el clasificador SVM mediante , la longitud de es igual al número de variables predictoras.'Standardize',truefitcsvmSigma

expande las variables categóricas en los datos del predictor utilizando la codificación ficticia completa.MATLAB Es decir, crea una variable ficticia para cada nivel de cada variable categórica. almacena un valor para cada variable predictora, incluidas las variables ficticias.MATLABSigma Sin embargo, no estandariza las columnas que contienen variables categóricas.MATLAB

Si establece al entrenar el clasificador SVM mediante , entonces es un vector vacío ( ).'Standardize',falsefitcsvmSigma[]

Tipos de datos: single | double

Esta propiedad es de solo lectura.

Pesos de observación utilizados para entrenar el clasificador SVM, especificado como un vector numérico -by-1. es el número de observaciones (véase ).nnNumObservations

normaliza los pesos de observación especificados en el argumento de par nombre-valor para que los elementos de dentro de una clase determinada sume la probabilidad anterior de esa clase.fitcsvm'Weights'W

Tipos de datos: single | double

Esta propiedad es de solo lectura.

Predictores no estandarizados utilizados para entrenar el clasificador SVM, especificado como una matriz o tabla numérica.

Cada fila de corresponde a una observación y cada columna corresponde a una variable.X

excluye las observaciones que contienen al menos un valor faltante y elimina los elementos correspondientes de .MATLABY

Tipos de datos: single | double

Esta propiedad es de solo lectura.

Etiquetas de clase utilizadas para entrenar el clasificador SVM, especificado como una matriz categórica o de caracteres, un vector lógico o numérico o una matriz de celdas de vectores de caracteres. es el mismo tipo de datos que el argumento de entrada de .YYfitcsvm (The software treats string arrays as cell arrays of character vectors.)

Cada fila de representa la clasificación observada de la fila correspondiente de .YX

excluye los elementos que contienen los valores que faltan y elimina las observaciones correspondientes de .MATLABX

Tipos de datos: single | double | logical | char | cell | categorical

Propiedades de control de convergencia

Esta propiedad es de solo lectura.

Información de convergencia, especificada como una matriz de estructura.

CampoDescripción
ConvergedIndicador lógico que indica si el algoritmo convergió (indica convergencia).1
ReasonForConvergenceVector de caracteres que indica el criterio que utiliza el software para detectar la convergencia.
GapBrecha de viabilidad escalar entre las funciones objetivas duales y primarias.
GapToleranceTolerancia de separación de viabilidad escalar. Establezca esta tolerancia, por ejemplo, en , mediante el argumento de par nombre-valor de .1e-2'GapTolerance',1e-2fitcsvm
DeltaGradientDiferencia de gradiente alcanzada por escalar entre los infractores superior e inferior
DeltaGradientToleranceTolerancia escalar para la diferencia de gradiente entre los infractores superior e inferior. Establezca esta tolerancia, por ejemplo, en , mediante el argumento de par nombre-valor de .1e-2'DeltaGradientTolerance',1e-2fitcsvm
LargestKKTViolationValor máximo de la violación escalar karush-Kuhn-Tucker (KKT).
KKTToleranceTolerancia escalar para la mayor infracción de KKT. Establezca esta tolerancia, por ejemplo, en , mediante el argumento de par nombre-valor de .1e-3'KKTTolerance',1e-3fitcsvm
History

Matriz de estructura que contiene información de convergencia en iteraciones de optimización establecidas. Los campos son:

  • : vector numérico de índices de iteración para los que el software registra información de convergenciaNumIterations

  • : vector numérico de valores en las iteracionesGapGap

  • : vector numérico de valores en las iteracionesDeltaGradientDeltaGradient

  • : vector numérico de valores en las iteracionesLargestKKTViolationLargestKKTViolation

  • : vector numérico que indica el número de vectores de soporte en las iteracionesNumSupportVectors

  • : vector numérico de valores en las iteracionesObjectiveObjective

ObjectiveValor escalar de la función objetivo dual.

Tipos de datos: struct

Esta propiedad es de solo lectura.

Número de iteraciones requeridas por la rutina de optimización para alcanzar la convergencia, especificada como un entero positivo.

Para establecer el límite en el número de iteraciones en , por ejemplo, especifique al entrenar el clasificador SVM mediante .1000'IterationLimit',1000fitcsvm

Tipos de datos: double

Esta propiedad es de solo lectura.

Número de iteraciones entre las reducciones del conjunto activo, especificado como un entero no negativo.

Para establecer el período de contracción en , por ejemplo, especifique al entrenar el clasificador SVM utilizando .1000'ShrinkagePeriod',1000fitcsvm

Tipos de datos: single | double

Propiedades de optimización de hiperparámetros

Esta propiedad es de solo lectura.

Descripción de la optimización de validación cruzada de hiperparámetros, especificada como un objeto o una tabla de hiperparámetros y valores asociados.BayesianOptimization Esta propiedad no está vacía cuando el argumento de par nombre-valor de no está vacío en la creación.'OptimizeHyperparameters'fitcsvm El valor de depende de la configuración del campo en la estructura de la creación en la creación, como se describe en esta tabla.HyperparameterOptimizationResultsOptimizerHyperparameterOptimizationOptionsfitcsvm

Valor del campoOptimizerValor deHyperparameterOptimizationResults
(predeterminado)'bayesopt'Objeto de claseBayesianOptimization
O'gridsearch''randomsearch'Tabla de hiperparámetros utilizados, valores de función objetivo observados (pérdida de validación cruzada) y rango de observaciones de menor (mejor) a mayor (peor)

Funciones del objeto

compactReduce size of support vector machine (SVM) classifier
compareHoldoutCompare accuracies of two classification models using new data
crossvalCross-validate support vector machine (SVM) classifier
discardSupportVectorsDiscard support vectors for linear support vector machine (SVM) classifier
edgeFind classification edge for support vector machine (SVM) classifier
fitPosteriorFit posterior probabilities for support vector machine (SVM) classifier
lossFind classification error for support vector machine (SVM) classifier
Find classification margins for support vector machine (SVM) classifier
predictClasificar las observaciones utilizando el clasificador de máquina vectorial de soporte (SVM)
resubEdgeFind classification edge for support vector machine (SVM) classifier by resubstitution
resubLossFind classification loss for support vector machine (SVM) classifier by resubstitution
resubMarginFind classification margins for support vector machine (SVM) classifier by resubstitution
resubPredictClassify observations in support vector machine (SVM) classifier
resumeResume training support vector machine (SVM) classifier
MargenFind classification margins for support vector machine (SVM) classifier

Ejemplos

contraer todo

Cargue el conjunto de datos de iris de Fisher. Retire las longitudes y anchuras del sépalo y todos los iris de setosa observados.

load fisheriris inds = ~strcmp(species,'setosa'); X = meas(inds,3:4); y = species(inds);

Entrene un clasificador SVM utilizando el conjunto de datos procesado.

SVMModel = fitcsvm(X,y)
SVMModel =    ClassificationSVM              ResponseName: 'Y'     CategoricalPredictors: []                ClassNames: {'versicolor'  'virginica'}            ScoreTransform: 'none'           NumObservations: 100                     Alpha: [24x1 double]                      Bias: -14.4149          KernelParameters: [1x1 struct]            BoxConstraints: [100x1 double]           ConvergenceInfo: [1x1 struct]           IsSupportVector: [100x1 logical]                    Solver: 'SMO'     Properties, Methods  

es un clasificador entrenado.SVMModelClassificationSVM Mostrar las propiedades de .SVMModel Por ejemplo, para determinar el orden de clases, utilice la notación de puntos.

classOrder = SVMModel.ClassNames
classOrder = 2x1 cell array
    {'versicolor'}
    {'virginica' }

La primera clase ( ) es la clase negativa, y la segunda ( ) es la clase positiva.'versicolor''virginica' Puede cambiar el orden de clases durante el entrenamiento mediante el argumento de par nombre-valor.'ClassNames'

Trazar un diagrama de dispersión de los datos y rodear los vectores de soporte.

sv = SVMModel.SupportVectors; figure gscatter(X(:,1),X(:,2),y) hold on plot(sv(:,1),sv(:,2),'ko','MarkerSize',10) legend('versicolor','virginica','Support Vector') hold off

Los vectores de soporte son observaciones que se producen en o más allá de sus límites de clase estimados.

Puede ajustar los límites (y, por lo tanto, el número de vectores de soporte) estableciendo una restricción de cuadro durante el entrenamiento mediante el argumento de par nombre-valor.'BoxConstraint'

Cargue el conjunto de datos.ionosphere

load ionosphere

Entrene y valide un clasificador SVM. Estandarice los datos del predictor y especifique el orden de las clases.

rng(1);  % For reproducibility CVSVMModel = fitcsvm(X,Y,'Standardize',true,...     'ClassNames',{'b','g'},'CrossVal','on')
CVSVMModel =    classreg.learning.partition.ClassificationPartitionedModel     CrossValidatedModel: 'SVM'          PredictorNames: {1x34 cell}            ResponseName: 'Y'         NumObservations: 351                   KFold: 10               Partition: [1x1 cvpartition]              ClassNames: {'b'  'g'}          ScoreTransform: 'none'     Properties, Methods  

es un clasificador SVM validado cruzadamente.CVSVMModelClassificationPartitionedModel De forma predeterminada, el software implementa 10 veces la validación cruzada.

Como alternativa, puede validar un clasificador entrenado pasándolo a .ClassificationSVMcrossval

Inspeccione uno de los pliegues entrenados utilizando notación de puntos.

CVSVMModel.Trained{1}
ans =    classreg.learning.classif.CompactClassificationSVM              ResponseName: 'Y'     CategoricalPredictors: []                ClassNames: {'b'  'g'}            ScoreTransform: 'none'                     Alpha: [78x1 double]                      Bias: -0.2209          KernelParameters: [1x1 struct]                        Mu: [1x34 double]                     Sigma: [1x34 double]            SupportVectors: [78x34 double]       SupportVectorLabels: [78x1 double]     Properties, Methods  

Cada pliegue es un clasificador entrenado en el 90% de los datos.CompactClassificationSVM

Estimar el error de generalización.

genError = kfoldLoss(CVSVMModel)
genError = 0.1168 

En promedio, el error de generalización es de aproximadamente 12%.

Más acerca de

expandir todo

Algoritmos

  • Para la formulación matemática del algoritmo de clasificación binaria SVM, véase y .Máquinas vectoriales de soporte para la clasificación binariaComprender las máquinas vectoriales de soporte

  • , , vector de caracteres vacíos ( ), cadena vacía ( ) y los valores indican que faltan valores. elimina filas enteras de datos correspondientes a una respuesta que falta.NaN<undefined>''""<missing>fitcsvm Al calcular pesos totales (consulte las siguientes viñetas), ignora cualquier peso correspondiente a una observación con al menos un predictor que falta.fitcsvm Esta acción puede conducir a probabilidades previaes desequilibradas en problemas de clase equilibrada. Por consiguiente, es posible que las restricciones del cuadro de observación no sea igual a .BoxConstraint

  • elimina las observaciones que tienen cero peso o probabilidad previa.fitcsvm

  • Para el aprendizaje de dos clases, si especifica la matriz de costos C (véase ), a continuación, el software actualiza las probabilidades previas de la clase (véase ) paraCostpPrior Pc mediante la incorporación de las sanciones descritas en C.

    Específicamente, completa estos pasos:fitcsvm

    1. Calcular pc=pC.

    2. Normalizar Pc* para que las probabilidades anteriores actualizadas sume a 1.

      pc=1j=1Kpc,jpc.

      es el número de clases.K

    3. Restablezca la matriz de costes al valor predeterminado

      C=[0110].

    4. Elimine las observaciones de los datos de entrenamiento correspondientes a clases con probabilidad previa cero.

  • Para el aprendizaje de dos clases, normaliza todos los pesos de observación (véase ) para sumar a 1.fitcsvmWeights A continuación, la función vuelve a normalizar las ponderaciones normalizadas para resumir la probabilidad anterior actualizada de la clase a la que pertenece la observación. Es decir, el peso total de la observación en clase esjk

    wj=wjjClass kwjpc,k.

    Wj es el peso normalizado para la observación;jpc,k es la probabilidad previa actualizada de la clase (ver viñeta anterior).k

  • Para el aprendizaje de dos clases, asigna una restricción de cuadro a cada observación en los datos de entrenamiento.fitcsvm La fórmula para la restricción de observación del cuadro esj

    Cj=nC0wj.

    es el tamaño de la muestra de entrenamiento,nC0 es la restricción de cuadro inicial (consulte el argumento de par nombre-valor), y'BoxConstraint' wj es el peso total de la observación (ver viñeta anterior).j

  • Si establece y el argumento de par , , o nombre-valor, estandariza los predictores utilizando sus medias ponderadas correspondientes y desviaciones estándar ponderadas.'Standardize',true'Cost''Prior''Weights'fitcsvm Es decir, estandariza el predictor (fitcsvmjXj) utilizando

    xj=xjμjσj.

    μj=1kwkkwkxjk.

    Xjk es la observación (fila) del predictor (columna).kj

    (σj)2=v1v12v2kwk(xjkμj)2.

    v1=jwj.

    v2=j(wj)2.

  • Supongamos que es la proporción de valores atípicos que espera en los datos de entrenamiento y que establece .p'OutlierFraction',p

    • Para el aprendizaje de una clase, el software entrena el término de sesgo de tal manera que el 100 % de las observaciones en los datos de entrenamiento tienen puntuaciones negativas.p

    • El software implementa para el aprendizaje de dos clases.aprendizaje robusto En otras palabras, el software intenta eliminar el 100 % de las observaciones cuando converge el algoritmo de optimización.p Las observaciones eliminadas corresponden a gradientes de gran magnitud.

  • Si los datos del predictor contienen variables categóricas, el software generalmente utiliza una codificación ficticia completa para estas variables. El software crea una variable ficticia para cada nivel de cada variable categórica.

    • La propiedad almacena un elemento para cada uno de los nombres de variable predictor originales.PredictorNames Por ejemplo, supongamos que hay tres predictores, uno de los cuales es una variable categórica con tres niveles. Luego es una matriz de celdas 1 por 3 de vectores de caracteres que contiene los nombres originales de las variables predictoras.PredictorNames

    • La propiedad almacena un elemento para cada una de las variables predictoras, incluidas las variables ficticias.ExpandedPredictorNames Por ejemplo, supongamos que hay tres predictores, uno de los cuales es una variable categórica con tres niveles. Luego es una matriz de celdas de 1 por 5 vectores de caracteres que contiene los nombres de las variables predictoras y las nuevas variables ficticias.ExpandedPredictorNames

    • Del mismo modo, la propiedad almacena un coeficiente beta para cada predictor, incluidas las variables ficticias.Beta

    • La propiedad almacena los valores predictores para los vectores de soporte, incluidas las variables ficticias.SupportVectors Por ejemplo, supongamos que hay vectores de soporte y tres predictores, uno de los cuales es una variable categórica con tres niveles.m Entonces es una matriz -by-5.SupportVectorsn

    • La propiedad almacena los datos de entrenamiento como entrada original y no incluye las variables ficticias.X Cuando la entrada es una tabla, contiene solo las columnas utilizadas como predictores.X

  • Para los predictores especificados en una tabla, si alguna de las variables contiene categorías ordenadas (ordinales), el software utiliza la codificación ordinal para estas variables.

    • Para una variable con niveles ordenados, el software creak k – 1 variables ficticias. La variable ficticia esj –1 para niveles hasta , yj +1 para niveles j + 1 a través de.k

    • Los nombres de las variables ficticias almacenadas en la propiedad indican el primer nivel con el valorExpandedPredictorNames +1. Las tiendas de software k – 1 nombres predictores adicionales para las variables ficticias, incluidos los nombres de los niveles 2, 3, ..., .k

  • Todos los solucionadores implementan 1 minimización de margen flexible.L

  • Para el aprendizaje de una clase, el software estima los multiplicadores Lagrange,α1,...,Αn, de forma que

    j=1nαj=nν.

Referencias

[1] Hastie, T., R. Tibshirani, and J. Friedman. The Elements of Statistical Learning, Second Edition. NY: Springer, 2008.

[2] Scholkopf, B., J. C. Platt, J. C. Shawe-Taylor, A. J. Smola, and R. C. Williamson. “Estimating the Support of a High-Dimensional Distribution.” Neural Comput., Vol. 13, Number 7, 2001, pp. 1443–1471.

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

[4] Scholkopf, B., and A. Smola. Learning with Kernels: Support Vector Machines, Regularization, Optimization and Beyond, Adaptive Computation and Machine Learning. Cambridge, MA: The MIT Press, 2002.

Capacidades ampliadas

Introducido en R2014a