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.
Clasificador de máquina vectorial de soporte de tren (SVM) para clasificación de una clase y binaria
trenes o valida cruzadamente un modelo de máquina vectorial de soporte (SVM) para la clasificación de una clase y dos clases (binarias) en un conjunto de datos predictor de baja dimensión o de dimensión moderada. admite la asignación de datos predictores mediante funciones del kernel y admite la optimización mínima secuencial (SMO), el algoritmo iterativo de datos únicos (ISDA) o 1 minimización de margen flexible a través de la programación cuadrática para la minimización de la función objetiva.fitcsvm
fitcsvm
L
Para entrenar un modelo SVM lineal para la clasificación binaria en un conjunto de datos de alta dimensión, es decir, un conjunto de datos que incluye muchas variables predictoras, utilice en su lugar.fitclinear
Para el aprendizaje multiclase con modelos SVM binarios combinados, utilice códigos de salida de corrección de errores (ECOC). Para obtener más información, consulte .fitcecoc
Para entrenar un modelo de regresión de SVM, consulte conjuntos de datos predictores de baja dimensión y de dimensiones moderadas, o conjuntos de datos de alta dimensión.fitrsvm
fitrlinear
devuelve un tren entrenado utilizando los datos de ejemplo contenidos en la tabla. es el nombre de la variable en que contiene las etiquetas de clase para la clasificación de una clase o de dos clases.clasificador de máquina vectorial de soporte (SVM)Mdl
= fitcsvm(Tbl
,ResponseVarName
)Mdl
Tbl
ResponseVarName
Tbl
especifica las opciones mediante uno o varios argumentos de par nombre-valor además de los argumentos de entrada en sintaxis anteriores. Por ejemplo, puede especificar el tipo de validación cruzada, el coste de la clasificación incorrecta y el tipo de función de transformación de puntuación.Mdl
= fitcsvm(___,Name,Value
)
capacita clasificadores SVM para aplicaciones de aprendizaje de una o dos clases.fitcsvm
Para entrenar clasificadores SVM utilizando datos con más de dos clases, utilice .fitcecoc
admite conjuntos de datos de baja dimensión y de dimensión moderada.fitcsvm
Para conjuntos de datos de alta dimensión, utilice en su lugar.fitclinear
A menos que el conjunto de datos sea grande, intente siempre estandarizar los predictores (consulte ).Standardize
La estandarización hace que los predictores sean insensibles a las escalas en las que se miden.
Se recomienda validar cruzadamente mediante el argumento de par nombre-valor.KFold
Los resultados de validación cruzada determinan qué tan bien se generaliza el clasificador SVM.
Para el aprendizaje de una clase:
La configuración predeterminada para el argumento de par nombre-valor puede dar lugar a largos tiempos de entrenamiento.Alpha
Para acelerar el entrenamiento, establezca un vector compuesto principalmente de s.Alpha
0
Establezca el argumento de par nombre-valor en un valor más cercano para producir menos vectores de soporte y, por lo tanto, un límite de decisión más suave pero crudo.Nu
0
Sparsity en vectores de soporte es una propiedad deseable de un clasificador SVM. Para reducir el número de vectores de soporte, establezca en un valor grande.BoxConstraint
Esta acción aumenta el tiempo de entrenamiento.
Para un tiempo de entrenamiento óptimo, establezca el límite de memoria que permita su ordenador.CacheSize
Si espera muchos menos vectores de soporte que las observaciones en el conjunto de entrenamiento, puede acelerar significativamente la convergencia reduciendo el conjunto activo mediante el argumento de par nombre-valor .'ShrinkagePeriod'
Es una buena práctica especificar .'ShrinkagePeriod',1000
Las observaciones duplicadas que están lejos del límite de la decisión no afectan a la convergencia. Sin embargo, sólo unas pocas observaciones duplicadas que se producen cerca del límite de la decisión pueden ralentizar considerablemente la convergencia. Para acelerar la convergencia, especifique si:'RemoveDuplicates',true
El conjunto de datos contiene muchas observaciones duplicadas.
Sospecha que algunas observaciones duplicadas caen cerca del límite de la decisión.
Para mantener el conjunto de datos original durante el entrenamiento,
fitcsvm
deben almacenar temporalmente conjuntos de datos independientes: el original y otro sin las observaciones duplicadas. Por lo tanto, si especifica para conjuntos de datos que contienen pocos duplicados,true
fitcsvm
consume cerca del doble de memoria de los datos originales.
Después de entrenar un modelo, puede generar código C/C++ que predice las etiquetas para los nuevos datos. La generación de código C/C++ requiere MATLAB Coder™. Para obtener más información, consulte .Introduction to Code Generation
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 (véase ), a continuación, el software actualiza las probabilidades previas de la clase (véase ) paraCost
pPrior
Pc mediante la incorporación de las sanciones descritas en .
Específicamente, completa estos pasos:fitcsvm
Calcular
Normalizar Pc* para que las probabilidades anteriores actualizadas sume a 1.
es el número de clases.K
Restablezca la matriz de costes al valor predeterminado
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.fitcsvm
Weights
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 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
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'
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 (fitcsvm
jXj) utilizando
Xjk es la observación (fila) del predictor (columna).kj
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.SupportVectors
n
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
[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.
[2] Fan, R.-E., P.-H. Chen, and C.-J. Lin. “Working set selection using second order information for training support vector machines.” Journal of Machine Learning Research, Vol. 6, 2005, pp. 1889–1918.
[3] Hastie, T., R. Tibshirani, and J. Friedman. The Elements of Statistical Learning, Second Edition. NY: Springer, 2008.
[4] Kecman V., T. -M. Huang, and M. Vogt. “Iterative Single Data Algorithm for Training Kernel Machines from Huge Data Sets: Theory and Performance.” Support Vector Machines: Theory and Applications. Edited by Lipo Wang, 255–274. Berlin: Springer-Verlag, 2005.
[5] 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.
[6] 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.
ClassificationPartitionedModel
| ClassificationSVM
| CompactClassificationSVM
| fitcecoc
| fitclinear
| fitSVMPosterior
| predict
| rng
| quadprog
(Optimization Toolbox)