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 de vectores de soporte (SVM) para clasificación binaria y de una clase

Descripción

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

Creación

Cree un objeto mediante.ClassificationSVMfitcsvm

Propiedades

expandir todo

Propiedades de SVM

Esta propiedad es de solo lectura.

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

contiene los coeficientes del clasificador entrenado del problema dual, es decir, los multiplicadores de 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 en el conjunto.MATLAB®0

Tipos de datos: single | double

Esta propiedad es de solo lectura.

Coeficientes predictores lineales, 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 predictores 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 así, entonces la puntuación de clasificación para la observación esKernelParameters.Function'linear'x

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

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

Para estimar manualmente las puntuaciones de clasificación, primero debe aplicar las transformaciones a los Datos predictores que se aplicaron durante el entrenamiento. En concreto, si especifica cuando se utiliza, debe estandarizar los Datos predictores manualmente utilizando la media y la desviación estándar y, a continuación, dividir el resultado por la escala del kernel.'Standardize',truefitcsvmMdl.MuMdl.SigmaMdl.KernelParameters.Scale

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

Si no es así, 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 un escalar.

Tipos de datos: single | double

Esta propiedad es de solo lectura.

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

Si elimina 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 de 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 la caché (en MB) que el software se reserva para entrenar el clasificador SVM. Para obtener más información, consulte.'CacheSize'

Algoritmo

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

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

Tipos de datos: struct

Esta propiedad es de solo lectura.

Indicador de vector de soporte, especificado como un vector lógico-por-1 que marca si una observación correspondiente en la matriz de Datos predictores es a. es el número de observaciones en los datos de formación (véase).nVector de soportenNumObservations

Si quita los 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 sólo una observación como un vector de soporte.RemoveDuplicatesfitcsvmIsSupportVector

Tipos de datos: logical

Esta propiedad es de solo lectura.

Parámetros del kernel, 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 del kernel utilizada para computar los elementos de la.Matriz de Gram Para obtener más información, consulte.'KernelFunction'

Escala

Parámetro de escala del kernel utilizado para escalar todos los elementos de los Datos predictores 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.El 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, especificados como un escalar numérico.

Tipos de datos: double

Esta propiedad es de solo lectura.

Rutina de optimización utilizada para entrenar el clasificador de 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 de-por-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 elimina 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. es el número de vectores de soporte en el clasificador entrenado, y es el número de variables predictoras en los Datos predictores.spssum(Mdl.IsSupportVector)p

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

Si quita los 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.

Índices predictores categóricos, especificados como un vector de enteros positivos. contiene valores de índice correspondientes a las columnas de los datos del predictor que contienen predictores categóricos.CategoricalPredictors Si ninguno de los predictores es categórico, entonces 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, Vector lógico o numérico o matriz de celdas de vectores de caracteres.

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

Esta propiedad es de solo lectura.

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

Durante el entrenamiento, el software actualiza las probabilidades previas incorporando las sanciones descritas en la matriz de costos.

  • Para el aprendizaje de dos clases, siempre tiene este formulario: Si, y si.CostoCost(i,j) = 1i ~= jCost(i,j) = 0i = j Las filas corresponden a la clase true y las columnas corresponden a la clase pronosticada. El orden de las filas y columnas corresponde al orden de las clases en.CostoClassNames

  • 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 predictores ampliados, especificados como una matriz de vectores de caracteres de celda.

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

Tipos de datos: cell

Esta propiedad es de solo lectura.

Valores de gradiente de datos de entrenamiento, especificados como un vector numérico. La longitud 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, especificado 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 utilizando la notación de puntos.ModelParameters Por ejemplo, acceda a los valores iniciales para estimar mediante el uso de.AlphaMdl.ModelParameters.Alpha

Tipos de datos: struct

Esta propiedad es de solo lectura.

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

expande las variables categóricas en los Datos predictores 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 se establece cuando se entrena el clasificador SVM utilizando, 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, especificados como un escalar numérico.XY

Tipos de datos: single | double

Esta propiedad es de solo lectura.

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

Tipos de datos: cell

Esta propiedad es de solo lectura.

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

Para el aprendizaje de dos clases, si especifica una matriz de costes, el software actualiza las probabilidades previas incorporando las sanciones 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 variable de respuesta, especificado como un 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 controlador de función o vector de caracteres. representa una función de transformación integrada o un identificador de función para transformar las puntuaciones de clasificación previstas.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 incorporada, introduzca 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 grande y establece las puntuaciones de todas las demás clases para10
    'logit'1/(1 +ex)
    O'none''identity'(sin transformación)x
    'sign'– 1 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 grande y establece las puntuaciones de todas las demás clases para1–1
    'symmetriclogit'2/(1 +ex) – 1

  • Para una función o una función que defina, introduzca su manejador de funciones.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 del predictor, especificadas como un vector numérico.

Si especifica cuando se entrena el clasificador SVM utilizando, entonces la longitud de es igual al número de variables predictoras.'Standardize',truefitcsvmSigma

expande las variables categóricas en los Datos predictores 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 se establece cuando se entrena el clasificador SVM utilizando, entonces es un vector vacío ().'Standardize',falsefitcsvmSigma[]

Tipos de datos: single | double

Esta propiedad es de solo lectura.

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

Normaliza los pesos de observación especificados en el argumento de par nombre-valor de modo que los elementos de una clase determinada se suman a la probabilidad anterior de esa clase.fitcsvm'Weights'W

Tipos de datos: single | double

Esta propiedad es de solo lectura.

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

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

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

Tipos de datos: single | double

Esta propiedad es de solo lectura.

Etiquetas de clase que se utilizan para entrenar el clasificador SVM, especificado como una matriz categórica o de caracteres, Vector lógico o numérico o 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 valores faltantes 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 objetivo dual y primigenia.
GapToleranceTolerancia de brecha de viabilidad escalar. Establezca esta tolerancia, por ejemplo, mediante el argumento de par nombre-valor de.1e-2'GapTolerance',1e-2fitcsvm
DeltaGradientDiferencia de gradiente alcanzada por escalar entre violadores superiores e inferiores
DeltaGradientToleranceTolerancia escalar para la diferencia de gradiente entre los violadores superiores e inferiores. Establezca esta tolerancia, por ejemplo, mediante el argumento de par nombre-valor de.1e-2'DeltaGradientTolerance',1e-2fitcsvm
LargestKKTViolationValor escalar máximo de la infracción de 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 el que el software graba 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 de 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, por ejemplo, especifique Cuándo se entrena el clasificador SVM utilizando.1000'IterationLimit',1000fitcsvm

Tipos de datos: double

Esta propiedad es de solo lectura.

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

Para establecer el período de contracción, por ejemplo, especifique Cuándo se entrena 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 los 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 en la creación, como se describe en esta tabla.HyperparameterOptimizationResultsOptimizerHyperparameterOptimizationOptionsfitcsvm

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

Funciones del objeto

compactReduzca el tamaño del clasificador de la máquina de vectores de soporte (SVM)
compareHoldoutCompare las precisiones de dos modelos de clasificación utilizando nuevos datos
crossvalEl clasificador de la máquina de vectores de soporte (SVM) de validación cruzada
discardSupportVectorsDescarte vectores de soporte para clasificador de máquina de vectores de soporte lineal (SVM)
BordeBusque el borde de clasificación para el clasificador de la máquina de vectores de soporte (SVM)
fitPosteriorAjuste las probabilidades posteriores para el clasificador de máquina de vectores de soporte (SVM)
lossBuscar error de clasificación para el clasificador de máquina de vectores de soporte (SVM)
MargenEncuentre márgenes de clasificación para el clasificador de máquina de vectores de soporte (SVM)
PredecirClasifique las observaciones mediante el clasificador de máquina de vectores de soporte (SVM)
resubEdgeBusque el borde de clasificación para el clasificador de la máquina de vectores de soporte (SVM) mediante el reenvío
resubLossEncuentre la pérdida de clasificación para el clasificador de la máquina de vectores de soporte (SVM) mediante el reenvío
resubMarginEncuentre los márgenes de clasificación para el clasificador de la máquina de vectores de soporte (SVM) mediante el reenvío
resubPredictClasifique las observaciones en el clasificador de la máquina de vectores de soporte (SVM)
resumeReanuda el clasificador de la máquina de vectores de soporte de entrenamiento (SVM)

Ejemplos

contraer todo

Cargue el conjunto de datos de iris de Fisher. Quitar las longitudes y anchuras sepales y todos los irises observados setosa.

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

Entrenar un clasificador SVM utilizando el conjunto de datos procesados.

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 la clase, 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 la clase durante el entrenamiento mediante el argumento de par nombre-valor.'ClassNames'

Trace un diagrama de dispersión de los datos y circule 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 ocurren 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

Entrenar y validar de forma cruzada un clasificador SVM. Estandarice los Datos predictores 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 con validación cruzada.CVSVMModelClassificationPartitionedModel De forma predeterminada, el software implementa la validación cruzada de 10 veces.

Como alternativa, puede validar de forma cruzada un clasificador entrenado al pasarlo a.ClassificationSVMcrossval

Inspeccione uno de los pliegues entrenados utilizando la 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

Calcule 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 de SVM, vea y.Máquinas de vectores de soporte para clasificación binariaEntender las máquinas de vectores de soporte

  • ,, el vector de carácter vacío (), la cadena vacía () y los valores indican valores faltantes. elimina filas enteras de datos correspondientes a una respuesta que falta.NaN<undefined>''""<missing>fitcsvm Al calcular los pesos totales (ver las siguientes balas), ignora cualquier peso correspondiente a una observación con al menos un predictor que falta.fitcsvm Esta acción puede llevar a que se desequilibren las probabilidades previas en problemas de clase equilibrada. Por consiguiente, las restricciones del cuadro de observación podrían no ser iguales.BoxConstraint

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

  • Para el aprendizaje de dos clases, si especifica la matriz de costes C (ver), el software actualiza las probabilidades previas de la clase (véase) paraCostopPrior Pc incorporando las sanciones descritas en C.

    Específicamente, completa estos pasos:fitcsvm

    1. Calcular pc=pC.

    2. Normalizar Pc* por lo que las probabilidades previas actualizadas suman 1.

      pc=1j=1Kpc,jpc.

      es el número de clases.K

    3. Restablezca la matriz de costes al valor predeterminado

      C=[0110].

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

  • Para el aprendizaje de dos clases, normaliza todos los pesos de observación (ver) para sumar a 1.fitcsvmWeights A continuación, la función renormaliza los pesos normalizados para sumar a la probabilidad anterior actualizada de la clase a la que pertenece la observación. Es decir, el peso total para 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 (véase la 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 la caja de observación 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 bala anterior).j

  • Si establece y, o el argumento de par nombre-valor, estandariza los predictores utilizando sus medias ponderadas correspondientes y las 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.

  • Suponga 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 sola 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 predictores contienen variables categóricas, el software generalmente utiliza la 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 variables predictoras originales.PredictorNames Por ejemplo, supongamos que hay tres predictores, uno de los cuales es una variable categórica con tres niveles. Entonces es una matriz de 1 por 3 celdas 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. A continuación, es una matriz de 1 por 5 celdas de 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 de-por-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 sólo 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 TH esj –1 para niveles hasta, yj +1 para los 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 de predictores adicionales para las variables ficticias, incluidos los nombres de los niveles 2, 3,...,.k

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

  • Para el aprendizaje de una sola clase, el software estima los multiplicadores de Lagrange,α1,...,Αn, de tal 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