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.

fitrsvm

Ajuste un modelo de regresión de máquina vectorial de soporte

Descripción

entrena o realiza una validación cruzada de un modelo de regresión de máquina de vectores de soporte (SVM) en un conjunto de datos de predictor de baja y moderada dimensión. admite la asignación de los Datos predictores mediante funciones del kernel y admite SMO, ISDA o 1 minimización de margen flexible mediante programación cuadrática para la minimización de funciones objetivas.fitrsvmfitrsvmL

Para entrenar un modelo de regresión SVM lineal en un conjunto de datos de alta dimensión, es decir, conjuntos de datos que incluyen muchas variables predictoras, utilice en su lugar.fitrlinear

Para entrenar un modelo de SVM para la clasificación binaria, consulte para conjuntos de datos de predictor de baja y moderada dimensión, o para conjuntos de datos de alta dimensión.fitcsvmfitclinear

ejemplo

Mdl = fitrsvm(Tbl,ResponseVarName) Devuelve un modelo de regresión de máquina de vectores de soporte (SVM) entrenado con los valores de predictores de la tabla y los valores de respuesta.MdlTblTbl.ResponseVarName

Mdl = fitrsvm(Tbl,formula) Devuelve un modelo de regresión SVM completo entrenado utilizando los valores de predictores de la tabla. es un modelo explicativo de la respuesta y un subconjunto de variables predictoras en uso para ajustarse.TblFórmulaTblMdl

Mdl = fitrsvm(Tbl,Y) Devuelve un modelo de regresión SVM completo y entrenado entrenado utilizando los valores de predictores de la tabla y los valores de respuesta en el vector.TblY

Mdl = fitrsvm(X,Y) Devuelve un modelo de regresión SVM completo y entrenado entrenado usando los valores de los predictores en la matriz y los valores de respuesta en el vector.XY

ejemplo

Mdl = fitrsvm(___,Name,Value) Devuelve un modelo de regresión SVM con opciones adicionales especificadas por uno o más argumentos de par nombre-valor, utilizando cualquiera de las sintaxis anteriores. Por ejemplo, puede especificar la función del kernel o entrenar un modelo con validación cruzada.

Ejemplos

contraer todo

Entrenar un modelo de regresión de máquina de vectores de soporte (SVM) utilizando datos de muestra almacenados en matrices.

Cargue el conjunto de datos.carsmall

load carsmall rng 'default'  % For reproducibility

Especifique y como las variables predictoras () y como variable de respuesta ().HorsepowerWeightXMPGY

X = [Horsepower,Weight]; Y = MPG;

Entrenar un modelo de regresión de SVM predeterminado.

Mdl = fitrsvm(X,Y)
Mdl =    RegressionSVM              ResponseName: 'Y'     CategoricalPredictors: []         ResponseTransform: 'none'                     Alpha: [76x1 double]                      Bias: 43.1920          KernelParameters: [1x1 struct]           NumObservations: 93            BoxConstraints: [93x1 double]           ConvergenceInfo: [1x1 struct]           IsSupportVector: [93x1 logical]                    Solver: 'SMO'     Properties, Methods  

es un modelo entrenado.MdlRegressionSVM

Marque el modelo para la convergencia.

Mdl.ConvergenceInfo.Converged
ans = logical
   0

indica que el modelo no convergen.0

Reentrenar el modelo utilizando datos estandarizados.

MdlStd = fitrsvm(X,Y,'Standardize',true)
MdlStd =    RegressionSVM              ResponseName: 'Y'     CategoricalPredictors: []         ResponseTransform: 'none'                     Alpha: [77x1 double]                      Bias: 22.9131          KernelParameters: [1x1 struct]                        Mu: [109.3441 2.9625e+03]                     Sigma: [45.3545 805.9668]           NumObservations: 93            BoxConstraints: [93x1 double]           ConvergenceInfo: [1x1 struct]           IsSupportVector: [93x1 logical]                    Solver: 'SMO'     Properties, Methods  

Marque el modelo para la convergencia.

MdlStd.ConvergenceInfo.Converged
ans = logical
   1

indica que el modelo convergen.1

Calcule el error medio cuadrado del reenvío (en la muestra) para el nuevo modelo.

lStd = resubLoss(MdlStd)
lStd = 17.0256 

Entrenar un modelo de regresión de máquina vectorial de soporte utilizando los datos de abulón del repositorio de aprendizaje automático UCI.

Descargue los datos y guárdela en su carpeta actual con el nombre.'abalone.csv'

url = 'https://archive.ics.uci.edu/ml/machine-learning-databases/abalone/abalone.data'; websave('abalone.csv',url); 

Lea los datos en una tabla. Especifique los nombres de las variables.

varnames = {'Sex'; 'Length'; 'Diameter'; 'Height'; 'Whole_weight';...     'Shucked_weight'; 'Viscera_weight'; 'Shell_weight'; 'Rings'}; Tbl = readtable('abalone.csv','Filetype','text','ReadVariableNames',false); Tbl.Properties.VariableNames = varnames; 

Los datos de muestra contienen 4177 observaciones. Todas las variables predictoras son continuas excepto, que es una variable categórica con valores posibles (para los machos), (para las hembras), y (para los bebés).Sex'M''F''I' El objetivo es predecir el número de anillos (almacenados) en el abulón y determinar su edad utilizando mediciones físicas.Rings

Entrenar un modelo de regresión SVM, utilizando una función de kernel Gaussiano con una escala de kernel automática. Estandarizar los datos.

rng default  % For reproducibility Mdl = fitrsvm(Tbl,'Rings','KernelFunction','gaussian','KernelScale','auto',...     'Standardize',true) 
 Mdl =     RegressionSVM            PredictorNames: {1×8 cell}              ResponseName: 'Rings'     CategoricalPredictors: 1         ResponseTransform: 'none'                     Alpha: [3635×1 double]                      Bias: 10.8144          KernelParameters: [1×1 struct]                        Mu: [1×10 double]                     Sigma: [1×10 double]           NumObservations: 4177            BoxConstraints: [4177×1 double]           ConvergenceInfo: [1×1 struct]           IsSupportVector: [4177×1 logical]                    Solver: 'SMO'   

La ventana de comandos muestra que es un modelo entrenado y muestra una lista de propiedades.MdlRegressionSVM

Mostrar las propiedades del uso de notación de puntos.Mdl Por ejemplo, marque para confirmar si el modelo convergió y cuántas iteraciones completó.

conv = Mdl.ConvergenceInfo.Converged iter = Mdl.NumIterations 
 conv =    logical     1   iter =          2759  

Los resultados devueltos indican que el modelo convergió después de 2759 iteraciones.

Cargue el conjunto de datos.carsmall

load carsmall rng 'default'  % For reproducibility

Especifique y como las variables predictoras () y como variable de respuesta ().HorsepowerWeightXMPGY

X = [Horsepower Weight]; Y = MPG;

Valide dos modelos de regresión de SVM mediante la validación cruzada de 5 veces. Para ambos modelos, especifique para estandarizar los predictores. Para uno de los modelos, especifique para entrenar utilizando el kernel lineal predeterminado y el kernel gaussiano para el otro modelo.

MdlLin = fitrsvm(X,Y,'Standardize',true,'KFold',5)
MdlLin =    classreg.learning.partition.RegressionPartitionedSVM     CrossValidatedModel: 'SVM'          PredictorNames: {'x1'  'x2'}            ResponseName: 'Y'         NumObservations: 94                   KFold: 5               Partition: [1x1 cvpartition]       ResponseTransform: 'none'     Properties, Methods  
MdlGau = fitrsvm(X,Y,'Standardize',true,'KFold',5,'KernelFunction','gaussian')
MdlGau =    classreg.learning.partition.RegressionPartitionedSVM     CrossValidatedModel: 'SVM'          PredictorNames: {'x1'  'x2'}            ResponseName: 'Y'         NumObservations: 94                   KFold: 5               Partition: [1x1 cvpartition]       ResponseTransform: 'none'     Properties, Methods  
MdlLin.Trained
ans = 5x1 cell array
    {1x1 classreg.learning.regr.CompactRegressionSVM}
    {1x1 classreg.learning.regr.CompactRegressionSVM}
    {1x1 classreg.learning.regr.CompactRegressionSVM}
    {1x1 classreg.learning.regr.CompactRegressionSVM}
    {1x1 classreg.learning.regr.CompactRegressionSVM}

y son modelos con validación cruzada.MdlLinMdlGauRegressionPartitionedSVM La propiedad de cada modelo es una matriz de 5 a 1 celdas de modelos.TrainedCompactRegressionSVM Los modelos en la célula almacenan los resultados de la formación en 4 pliegues de observaciones, y dejando un pliegue de observaciones hacia fuera.

Compare el error de generalización de los modelos. En este caso, el error de generalización es el error medio cuadrado fuera de la muestra.

mseLin = kfoldLoss(MdlLin)
mseLin = 17.4417 
mseGau = kfoldLoss(MdlGau)
mseGau = 16.7397 

El modelo de regresión de SVM que utiliza el kernel gaussiano funciona mejor que el que utiliza el kernel lineal.

Cree un modelo adecuado para realizar predicciones pasando el conjunto de datos completo a y especifique todos los argumentos de par nombre-valor que produjeron el modelo con mejor rendimiento.fitrsvm Sin embargo, no especifique ninguna opción de validación cruzada.

MdlGau = fitrsvm(X,Y,'Standardize',true,'KernelFunction','gaussian');

Para predecir el MPG de un conjunto de coches, pasar y una tabla que contiene las mediciones de potencia y peso de los coches a.MdlPredecir

En este ejemplo se muestra cómo optimizar los hiperparámetros automáticamente mediante.fitrsvm El ejemplo utiliza los datos.carsmall

Cargue el conjunto de datos.carsmall

load carsmall

Especifique y como las variables predictoras () y como variable de respuesta ().HorsepowerWeightXMPGY

X = [Horsepower Weight]; Y = MPG;

Encuentre hiperparámetros que minimicen la pérdida de validación cruzada de cinco veces mediante la optimización automática de hiperparámetros.

Para reproducibilidad, establezca la semilla aleatoria y utilice la función de adquisición.'expected-improvement-plus'

rng default Mdl = fitrsvm(X,Y,'OptimizeHyperparameters','auto',...     'HyperparameterOptimizationOptions',struct('AcquisitionFunctionName',...     'expected-improvement-plus'))
|====================================================================================================================| | Iter | Eval   | Objective   | Objective   | BestSoFar   | BestSoFar   | BoxConstrain-|  KernelScale |      Epsilon | |      | result |             | runtime     | (observed)  | (estim.)    | t            |              |              | |====================================================================================================================| |    1 | Best   |      6.1124 |      10.779 |      6.1124 |      6.1124 |      0.35664 |     0.043031 |      0.30396 | |    2 | Best   |      2.9114 |    0.092593 |      2.9114 |       3.088 |        70.67 |       710.65 |       1.6369 | |    3 | Accept |      4.1884 |    0.051436 |      2.9114 |       3.078 |       14.367 |    0.0059144 |       442.64 | |    4 | Accept |       4.159 |    0.048154 |      2.9114 |      3.0457 |    0.0030879 |       715.31 |       2.6045 | |    5 | Best   |      2.9044 |     0.19816 |      2.9044 |      2.9042 |       906.95 |       761.46 |       1.3274 | |    6 | Best   |      2.8666 |     0.50618 |      2.8666 |      2.8668 |        997.3 |       317.41 |       3.7696 | |    7 | Accept |      4.1881 |    0.043931 |      2.8666 |      2.8669 |       759.56 |       987.74 |       15.074 | |    8 | Accept |      2.8992 |      2.5317 |      2.8666 |      2.8669 |       819.07 |       152.11 |       1.5192 | |    9 | Accept |      2.8916 |     0.16756 |      2.8666 |      2.8672 |       921.52 |       627.48 |       2.3029 | |   10 | Accept |      2.9001 |     0.28733 |      2.8666 |      2.8676 |       382.91 |       343.04 |       1.5448 | |   11 | Accept |      3.6573 |      10.023 |      2.8666 |      2.8784 |        945.1 |        8.885 |       3.9207 | |   12 | Accept |      2.9381 |      0.1064 |      2.8666 |       2.871 |       935.49 |       979.29 |       0.1384 | |   13 | Accept |      2.9341 |    0.043784 |      2.8666 |      2.8719 |        1.992 |       999.49 |      0.21557 | |   14 | Accept |      2.9227 |    0.062812 |      2.8666 |      2.8742 |        2.351 |       977.85 |     0.026124 | |   15 | Accept |      2.9483 |     0.13059 |      2.8666 |      2.8751 |       826.92 |       713.57 |    0.0096305 | |   16 | Accept |      2.9502 |      1.1689 |      2.8666 |      2.8813 |       345.64 |        129.6 |     0.027832 | |   17 | Accept |      2.9329 |      0.1059 |      2.8666 |      2.8799 |       836.96 |       970.73 |     0.034398 | |   18 | Accept |      2.9177 |    0.047944 |      2.8666 |      2.8771 |      0.10167 |       129.91 |    0.0092675 | |   19 | Accept |        2.95 |       2.513 |      2.8666 |      2.8749 |       199.85 |        68.93 |    0.0092982 | |   20 | Accept |      4.1964 |     0.06516 |      2.8666 |      2.8685 |    0.0012054 |       940.94 |    0.0097673 | |====================================================================================================================| | Iter | Eval   | Objective   | Objective   | BestSoFar   | BestSoFar   | BoxConstrain-|  KernelScale |      Epsilon | |      | result |             | runtime     | (observed)  | (estim.)    | t            |              |              | |====================================================================================================================| |   21 | Accept |       2.905 |    0.051353 |      2.8666 |      2.8675 |       5.9475 |       199.82 |     0.013585 | |   22 | Accept |      2.9329 |     0.10874 |      2.8666 |      2.8747 |      0.33221 |       21.509 |    0.0094248 | |   23 | Accept |      2.9017 |    0.076283 |      2.8666 |      2.8689 |       13.341 |       554.39 |     0.069216 | |   24 | Accept |      2.9067 |    0.067107 |      2.8666 |      2.8694 |      0.21467 |       73.415 |     0.028231 | |   25 | Accept |      2.9046 |    0.052452 |      2.8666 |      2.8731 |      0.68546 |       61.287 |    0.0099165 | |   26 | Accept |      2.9138 |    0.057869 |      2.8666 |      2.8676 |    0.0012185 |       8.8743 |    0.0093263 | |   27 | Accept |      2.9193 |    0.059383 |      2.8666 |      2.8731 |    0.0099434 |       30.484 |    0.0093546 | |   28 | Accept |      8.5384 |      10.335 |      2.8666 |      2.8683 |       992.36 |       1.4043 |    0.0093129 | |   29 | Accept |      3.2254 |    0.048242 |      2.8666 |      2.8682 |    0.0010092 |       16.917 |       7.3665 | |   30 | Accept |      4.1884 |     0.06625 |      2.8666 |      2.8683 |       983.95 |       42.654 |       287.19 |  __________________________________________________________ Optimization completed. MaxObjectiveEvaluations of 30 reached. Total function evaluations: 30 Total elapsed time: 70.2663 seconds. Total objective function evaluation time: 39.8961  Best observed feasible point:     BoxConstraint    KernelScale    Epsilon     _____________    ___________    _______          997.3          317.41       3.7696   Observed objective function value = 2.8666 Estimated objective function value = 2.8683 Function evaluation time = 0.50618  Best estimated feasible point (according to models):     BoxConstraint    KernelScale    Epsilon     _____________    ___________    _______          997.3          317.41       3.7696   Estimated objective function value = 2.8683 Estimated function evaluation time = 0.4589 
Mdl =    RegressionSVM                          ResponseName: 'Y'                 CategoricalPredictors: []                     ResponseTransform: 'none'                                 Alpha: [35×1 double]                                  Bias: 48.8155                      KernelParameters: [1×1 struct]                       NumObservations: 93     HyperparameterOptimizationResults: [1×1 BayesianOptimization]                        BoxConstraints: [93×1 double]                       ConvergenceInfo: [1×1 struct]                       IsSupportVector: [93×1 logical]                                Solver: 'SMO'     Properties, Methods  

La optimización buscó, y.BoxConstraintKernelScaleEpsilon La salida es la regresión con la pérdida de validación cruzada mínima estimada.

Argumentos de entrada

contraer todo

Datos de ejemplo utilizados para entrenar el modelo, especificado como una tabla. Cada fila de corresponde a una observación, y cada columna corresponde a una variable predictora.Tbl Opcionalmente, puede contener una columna adicional para la variable de respuesta.Tbl No se permiten las variables de varias columnas ni matrices de celdas que no sean matrices de celdas de vectores de caracteres.

Si contiene la variable de respuesta y desea utilizar todas las variables restantes como predictores, especifique la variable de respuesta mediante.TblTblResponseVarName

Si contiene la variable de respuesta y desea utilizar solo un subconjunto de las variables restantes como predictores, especifique una fórmula mediante.TblTblFórmula

Si no contiene la variable de respuesta, especifique una variable de respuesta mediante.TblY La longitud de la variable de respuesta y el número de filas de debe ser igual.Tbl

Si una fila de o un elemento contiene al menos uno, a continuación, quita esas filas y elementos de ambos argumentos al entrenar el modelo.TblYNaNfitrsvm

Para especificar los nombres de los predictores en el orden de su aparición en, utilice el argumento de par nombre-valor.TblPredictorNames

Tipos de datos: table

Nombre de variable de respuesta, especificado como el nombre de una variable en.Tbl La variable de respuesta debe ser un vector numérico.

Debe especificar como un vector de caracteres o un escalar de cadena.ResponseVarName Por ejemplo, si almacena la variable de respuesta como, a continuación, especifíquese como.TblYTbl.Y'Y' De lo contrario, el software trata todas las columnas de, incluidos, como predictores al entrenar el modelo.TblY

Tipos de datos: char | string

Modelo explicativo de la respuesta y un subconjunto de las variables predictoras, especificadas como un vector de caracteres o un escalar de cadena en el formulario.'Y~X1+X2+X3' En este formulario, representa la variable de respuesta y, y representa las variables predictoras.YX1X2X3 Las variables deben ser nombres de variable en ().TblTbl.Properties.VariableNames

Para especificar un subconjunto de variables como predictores para entrenar el modelo, utilice una fórmula.Tbl Si especifica una fórmula, el software no utiliza ninguna variable en la que no aparezcan.TblFórmula

Tipos de datos: char | string

Datos de respuesta, especificados como un vector numérico de-por-1.n La longitud y el número de filas de o deben ser iguales.YTblX

Si una fila de o, o un elemento de, contiene al menos uno, a continuación, quita esas filas y elementos de ambos argumentos al entrenar el modelo.TblXYNaNfitrsvm

Para especificar el nombre de la variable de respuesta, use el argumento de par nombre-valor.ResponseName

Tipos de datos: single | double

Datos de predictor a los que se ajusta el modelo de regresión de SVM, especificados como una matriz numérica. es el número de observaciones y es el número de variables predictoras.npnp

La longitud y el número de filas de deben ser iguales.YX

Si una fila de o un elemento contiene al menos uno, a continuación, quita esas filas y elementos de ambos argumentos.XYNaNfitrsvm

Para especificar los nombres de los predictores en el orden de su aparición en, utilice el argumento de par nombre-valor.XPredictorNames

Tipos de datos: single | double

Argumentos de par nombre-valor

Especifique pares de argumentos separados por comas opcionales. es el nombre del argumento y es el valor correspondiente. deben aparecer dentro de las cotizaciones.Name,ValueNameValueName Puede especificar varios argumentos de par de nombre y valor en cualquier orden como.Name1,Value1,...,NameN,ValueN

Ejemplo: entrena un modelo de regresión SVM con validación cruzada de 10 veces mediante un kernel gaussiano y datos de entrenamiento estandarizados.'KernelFunction','gaussian','Standardize',true,'CrossVal','on'

Nota

No puede usar ningún argumento de par nombre-valor de validación cruzada junto con el argumento de par nombre-valor.'OptimizeHyperparameters' Solo puede modificar la validación cruzada mediante el argumento de par nombre-valor.'OptimizeHyperparameters''HyperparameterOptimizationOptions'

Opciones de máquina de vectores de soporte

contraer todo

Restricción de cuadro para los coeficientes alfa, especificado como el par separado por comas que consta de y un valor escalar positivo.'BoxConstraint'

El valor absoluto de los coeficientes no puede exceder el valor de.AlphaBoxConstraint

El valor predeterminado para la función o kernel es, donde está el rango intercuartil de la variable de respuesta.BoxConstraint'gaussian''rbf'iqr(Y)/1.349iqr(Y)Y Para el resto de kernels, el valor predeterminado es 1.BoxConstraint

Ejemplo: BoxConstraint,10

Tipos de datos: single | double

Función del kernel utilizada para calcular el, especificado como el par separado por comas que consta de y un valor en esta tabla.Matriz de Gram'KernelFunction'

ValorDescripciónFórmula
O'gaussian''rbf'El kernel de la función de base radial (RBF) de Gaussian

G(xj,xk)=exp(xjxk2)

'linear'Kernel lineal

G(xj,xk)=xjxk

'polynomial'Núcleo polinómico. Uso 'PolynomialOrder',p para especificar un kernel Polinómico de orden p.

G(xj,xk)=(1+xjxk)q

Puede establecer su propia función del kernel, por ejemplo,, estableciendo. debe tener la siguiente forma: Dónde:kernel'KernelFunction','kernel'kernel

function G = kernel(U,V)

  • es una-por-matriz.Ump

  • es una-por-matriz.Vnp

  • es un-por-gramo matriz de las filas de y.GmnUV

Y debe estar en el camino.kernel.mMATLAB®

Es una buena práctica evitar el uso de nombres genéricos para las funciones del kernel. Por ejemplo, llame a una función del kernel sigmoide en lugar de.'mysigmoid''sigmoid'

Ejemplo: 'KernelFunction','gaussian'

Tipos de datos: char | string

Parámetro de escala del kernel, especificado como el par separado por comas que consta de un escalar positivo o o un resultado.'KernelScale''auto' El software divide todos los elementos de la matriz predictora por el valor de.XKernelScale Entonces, el software aplica la norma de kernel apropiada para computar la matriz Gram.

  • Si se especifica, el software selecciona un factor de escala adecuado mediante un procedimiento heurístico.'auto' Este procedimiento heurístico utiliza el submuestreo, por lo que las estimaciones pueden variar de una llamada a otra. Por lo tanto, para reproducir los resultados, establezca un número de semilla aleatorio utilizando antes del entrenamiento.rng

  • Si especifica y su propia función del kernel, por ejemplo,, entonces el software produce un error.KernelScale'KernelFunction','kernel' Debe aplicar el escalado dentro de.kernel

Ejemplo: 'KernelScale','auto'

Tipos de datos: double | single | char | string

Orden de función del kernel Polinómico, especificada como el par separado por comas que consta de un entero positivo.'PolynomialOrder'

Si usted fija y no es, después el software arroja un error.'PolynomialOrder'KernelFunction'polynomial'

Ejemplo: 'PolynomialOrder',2

Tipos de datos: double | single

Parámetro de desfase del kernel, especificado como el par separado por comas que consta de un escalar no negativo.'KernelOffset'

El software se suma a cada elemento de la matriz Gram.KernelOffset

Los valores predeterminados son:

  • Si el solucionador es SMO (es decir, se establece)0'Solver','SMO'

  • Si el solucionador es ISDA (es decir, se establece)0.1'Solver','ISDA'

Ejemplo: 'KernelOffset',0

Tipos de datos: double | single

La mitad del ancho de la banda sin distinción de épsilon, especificada como el par separado por comas que consta de un valor escalar no negativo.'Epsilon'

El valor predeterminado es, que es una estimación de una décima parte de la desviación estándar utilizando el rango intercuartil de la variable de respuesta.Epsiloniqr(Y)/13.49Y Si es igual a cero, el valor predeterminado es 0,1.iqr(Y)Epsilon

Ejemplo: 'Epsilon',0.3

Tipos de datos: single | double

Marcar para estandarizar los Datos predictores, especificados como el par separado por comas que consta de y () o.'Standardize'true1false(0)

Si establece:'Standardize',true

  • El software centra y escala cada columna de los Datos predictores () por la media de la columna ponderada y la desviación estándar, respectivamente (para obtener detalles sobre la estandarización ponderada, ver). no estandariza los datos contenidos en las columnas de variables ficticias generadas para los predictores categóricos.XAlgoritmosMATLAB

  • El software entrena el modelo utilizando la matriz predictora estandarizada, pero almacena los datos no estandarizados en la propiedad del modelo.X

Ejemplo: 'Standardize',true

Tipos de datos: logical

Rutina de optimización, especificada como el par separado por comas que consta de y un valor en esta tabla.'Solver'

ValorDescripción
'ISDA'Algoritmo de datos único iterativo (véase)[30]
'L1QP'Se utiliza para implementar 1 minimización de margen suave mediante programación cuadrática.quadprogL Esta opción requiere una licencia.Optimization Toolbox™ Para obtener más información, consulte.Definición de programación cuadrática (Optimization Toolbox)
'SMO'Optimización mínima secuencial (véase)[17]

Los valores predeterminados son:

  • Si se establece en un valor positivo'ISDA''OutlierFraction'

  • Lo contrario'SMO'

Ejemplo: 'Solver','ISDA'

Estimaciones iniciales de los coeficientes alfa, especificadas como el par separado por comas que consta de un vector numérico.'Alpha' La longitud de debe ser igual al número de filas de.AlphaX

  • Cada elemento corresponde a una observación en.AlphaX

  • no puede contener ninguna s.AlphaNaN

  • Si especifica y cualquiera de los argumentos de par nombre-valor de validación cruzada (,,,, o), el software devuelve un error.Alpha'CrossVal''CVPartition''Holdout''KFold''Leaveout'

Si contiene los valores que faltan, quite todas las filas de, y que corresponden a los valores que faltan.YYXAlpha Es decir, escriba: a continuación, pase, y como la respuesta, predictores y estimaciones alfa iniciales, respectivamente.

idx = ~isnan(Y); Y = Y(idx); X = X(idx,:); alpha = alpha(idx);
YXalpha

El valor predeterminado es.zeros(size(Y,1))

Ejemplo: 'Alpha',0.1*ones(size(X,1),1)

Tipos de datos: single | double

Tamaño de la caché, especificado como el par separado por comas que consta de un escalar positivo o un resultado.'CacheSize''maximal'

Si es, entonces el software reserva bastante memoria para sostener el todo-por-.CacheSize'maximal'nnMatriz de Gram

Si es un escalar positivo, el software reserva megabytes de memoria para entrenar el modelo.CacheSizeCacheSize

Ejemplo: 'CacheSize','maximal'

Tipos de datos: double | single | char | string

Marcar para recortar los coeficientes alfa, especificados como el par separado por comas que consta de y cualquiera o.'ClipAlphas'truefalse

Supongamos que el coeficiente alfa para la observación esj Αj y la restricción de la caja de observación esj Cj, = 1,...,, donde está el tamaño de la muestra de entrenamiento.jnn

ValorDescripción
trueEn cada iteración, si Αj está cerca de 0 o cerca Cj, a continuación, estableceMATLAB Αj a 0 o a CjRespectivamente.
falseno cambia los coeficientes alfa durante la optimización.MATLAB

almacena los valores finales de en la propiedad del objeto de modelo de SVM entrenado.MATLABαAlpha

puede afectar a la convergencia SMO e ISDA.ClipAlphas

Ejemplo: 'ClipAlphas',false

Tipos de datos: logical

Número de iteraciones entre la salida del mensaje de diagnóstico de optimización, especificada como el par separado por comas que consta de un entero no negativo.'NumPrint'

Si especifica y, a continuación, el software muestra todos los mensajes de diagnóstico de optimización de SMO e ISDA cada iteraciones en la ventana de comandos.'Verbose',1'NumPrint',numprintnumprint

Ejemplo: 'NumPrint',500

Tipos de datos: double | single

Proporción esperada de valores atípicos en los datos de entrenamiento, especificados como el par separado por comas que consta de y un escalar numérico en el intervalo [0,1). elimina las observaciones con gradientes grandes, asegurando que elimina la fracción de observaciones especificada por el momento de la convergencia se alcanza.'OutlierFraction'fitrsvmfitrsvmOutlierFraction Este par nombre-valor sólo es válido cuando es.'Solver''ISDA'

Ejemplo: 'OutlierFraction',0.1

Tipos de datos: single | double

Marcar para reemplazar las observaciones duplicadas con observaciones individuales en los datos de entrenamiento, especificadas como el par separado por comas que consta de y o.'RemoveDuplicates'truefalse

Si es así,RemoveDuplicatestrue fitrsvm reemplaza las observaciones duplicadas en los datos de entrenamiento con una sola observación del mismo valor. El peso de la única observación es igual a la suma de los pesos de los duplicados eliminados correspondientes (ver).Weights

Sugerencia

Si el conjunto de datos contiene muchas observaciones duplicadas, la especificación puede reducir considerablemente el tiempo de convergencia.'RemoveDuplicates',true

Tipos de datos: logical

Nivel de verbosidad, especificado como el par separado por comas que consta de y, o.'Verbose'012 El valor de controla la cantidad de información de optimización que el software muestra en la ventana de comandos y guarda la información como una estructura.VerboseMdl.ConvergenceInfo.History

En esta tabla se resumen las opciones de nivel de detalle disponibles.

ValorDescripción
0El software no muestra ni guarda la información de convergencia.
1El software muestra los mensajes de diagnóstico y guarda los criterios de convergencia cada iteraciones, donde es el valor del argumento del par nombre-valor.numprintnumprint'NumPrint'
2El software muestra mensajes de diagnóstico y guarda los criterios de convergencia en cada iteración.

Ejemplo: 'Verbose',1

Tipos de datos: double | single

Otras opciones de regresión

contraer todo

Lista de predictores categóricos, especificada como el par separado por comas que consta de y uno de los valores de esta tabla.'CategoricalPredictors'

ValorDescripción
Vector de enteros positivosUna entrada en el vector es el valor de índice correspondiente a la columna de los Datos predictores (o) que contiene una variable categórica.XTbl
Vector lógicoUna entrada significa que la columna correspondiente de Datos predictores (o) es una variable categórica.trueXTbl
Matriz de caracteresCada fila de la matriz es el nombre de una variable predictora. Los nombres deben coincidir con las entradas.PredictorNames Pad los nombres con espacios en blanco adicionales por lo que cada fila de la matriz de caracteres tiene la misma longitud.
Matriz de cadenas o matriz de vectores de caracteresCada elemento de la matriz es el nombre de una variable predictora. Los nombres deben coincidir con las entradas.PredictorNames
todosTodos los predictores son categóricos.

De forma predeterminada, si los Datos predictores están en una tabla (),Tbl fitrsvm asume que una variable es categórica si contiene valores lógicos, valores categóricos, una matriz de cadenas o una matriz de vectores de caracteres. Si los Datos predictores son una matriz (),X fitrsvm asume que todos los predictores son continuos. Para identificar los predictores categóricos cuando los datos son una matriz, utilice el argumento de par nombre-valor.'CategoricalPredictors'

Ejemplo: 'CategoricalPredictors','all'

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

Los nombres de variables predictoras, especificados como el par separado por comas que consta de y una matriz de cadenas de nombres únicos o matriz de celdas de vectores de caracteres únicos.'PredictorNames' La funcionalidad de depende de la forma en que proporcione los datos de entrenamiento.'PredictorNames'

  • Si se suministra y, a continuación, se puede utilizar para dar las variables predictoras en los nombres.XY'PredictorNames'X

    • El orden de los nombres en debe corresponder al orden de las columnas de.PredictorNamesX Es decir, es el nombre de, es el nombre de, y así sucesivamente.PredictorNames{1}X(:,1)PredictorNames{2}X(:,2) También, y debe ser igual.size(X,2)numel(PredictorNames)

    • De forma predeterminada, es.PredictorNames{'x1','x2',...}

  • Si usted suministra, entonces usted puede utilizar para elegir qué variables predictoras a utilizar en el entrenamiento.Tbl'PredictorNames' Es decir fitrsvm utiliza únicamente las variables predictoras y la variable de respuesta en el entrenamiento.PredictorNames

    • debe ser un subconjunto de y no puede incluir el nombre de la variable de respuesta.PredictorNamesTbl.Properties.VariableNames

    • De forma predeterminada, contiene los nombres de todas las variables predictoras.PredictorNames

    • Es una buena práctica para especificar los predictores para el entrenamiento utilizando cualquiera o sólo.'PredictorNames'Fórmula

Ejemplo: 'PredictorNames',{'SepalLength','SepalWidth','PetalLength','PetalWidth'}

Tipos de datos: string | cell

Nombre de variable de respuesta, especificado como el par separado por comas que consta de un vector de caracteres o un escalar de cadena.'ResponseName'

  • Si proporciona, puede usar para especificar un nombre para la variable de respuesta.Y'ResponseName'

  • Si usted suministra o, entonces usted no puede utilizar.ResponseVarNameFórmula'ResponseName'

Ejemplo: 'ResponseName','response'

Tipos de datos: char | string

Transformación de respuesta, especificada como el par separado por comas que consta de y uno o un identificador de función.'ResponseTransform''none' El valor predeterminado es, que significa, o ninguna transformación.'none'@(y)y Para una función o una función que defina, utilice su manejador de funciones.MATLAB El identificador de función debe aceptar un vector (los valores de respuesta originales) y devolver un vector del mismo tamaño (los valores de respuesta transformados).

Ejemplo: Supongamos que crea un identificador de función que aplica una transformación exponencial a un vector de entrada mediante el uso de.myfunction = @(y)exp(y) A continuación, puede especificar la transformación de respuesta como.'ResponseTransform',myfunction

Tipos de datos: char | string | function_handle

Ponderaciones de observación, especificadas como el par separado por comas que consta de un vector de valores numéricos.'Weights' El tamaño de debe ser igual al número de filas en. Normaliza los valores de sumar a 1.WeightsXfitrsvmWeights

Tipos de datos: single | double

Opciones de validación cruzada

contraer todo

Indicador de validación cruzada, especificado como el par separado por comas que consta de y cualquiera o.'CrossVal''on''off'

Si se especifica, el software implementa la validación cruzada de 10 veces.'on'

Para invalidar esta configuración de validación cruzada, use uno de estos argumentos de par nombre-valor:,, o.CVPartitionHoldoutKFoldLeaveout Para crear un modelo validado de forma cruzada, puede usar un argumento de par nombre-valor de validación cruzada a la vez.

Alternativamente, puede validar de forma cruzada el modelo más adelante utilizando el crossval Método.

Ejemplo: 'CrossVal','on'

Partición de validación cruzada, especificada como el par separado por comas que consta de un objeto de partición creado por.'CVPartition'cvpartitioncvpartition El objeto de partición especifica el tipo de validación cruzada y la indización para los conjuntos de entrenamiento y validación.

Para crear un modelo con validación cruzada, puede usar uno de estos cuatro argumentos de par nombre-valor solamente:,,, o.CVPartitionHoldoutKFoldLeaveout

Ejemplo: Supongamos que crea una partición aleatoria para la validación cruzada de 5 veces en 500 observaciones mediante el uso de.cvp = cvpartition(500,'KFold',5) A continuación, puede especificar el modelo con validación cruzada mediante.'CVPartition',cvp

Fracción de los datos utilizados para la validación de exclusión, especificado como el par separado por comas que consta de y un valor escalar en el intervalo (0,1).'Holdout' Si usted especifica, después el software completa estos pasos:'Holdout',p

  1. Seleccione aleatoriamente y Reserve% de los datos como datos de validación y capacite al modelo con el resto de los datos.p*100

  2. Almacene el modelo compacto y entrenado en la propiedad del modelo con validación cruzada.Trained

Para crear un modelo con validación cruzada, puede usar uno de estos cuatro argumentos de par nombre-valor solamente:,,, o.CVPartitionHoldoutKFoldLeaveout

Ejemplo: 'Holdout',0.1

Tipos de datos: double | single

Número de pliegues que se utilizarán en un modelo con validación cruzada, especificado como el par separado por comas y que consta de un valor entero positivo mayor que 1.'KFold' Si usted especifica, después el software completa estos pasos:'KFold',k

  1. Particionar aleatoriamente los datos en sets.k

  2. Para cada conjunto, Reserve el conjunto como datos de validación y entrene el modelo utilizando el otro k – 1 Establece.

  3. Almacene los modelos compactos y entrenados en las celdas de un vector de celda a-por-1 en la propiedad del modelo validado de forma cruzada.kkTrained

Para crear un modelo con validación cruzada, puede usar uno de estos cuatro argumentos de par nombre-valor solamente:,,, o.CVPartitionHoldoutKFoldLeaveout

Ejemplo: 'KFold',5

Tipos de datos: single | double

Marca de validación cruzada de Leave-One-out, especificada como el par separado por comas que consta de y o.'Leaveout''on''off' Si especifica, a continuación, para cada una de las observaciones (donde está el número de observaciones excluyendo las observaciones faltantes, especificadas en la propiedad del modelo), el software completa estos pasos:'Leaveout','on'nnNumObservations

  1. Reservar la observación como datos de validación, y entrenar el modelo utilizando el otro – 1 observaciones.n

  2. Almacene los modelos compactos y entrenados en las celdas de un vector de celda-por-1 en la propiedad del modelo validado de forma cruzada.nnTrained

Para crear un modelo con validación cruzada, puede usar uno de estos cuatro argumentos de par nombre-valor solamente:,,, o.CVPartitionHoldoutKFoldLeaveout

Ejemplo: 'Leaveout','on'

Controles de convergencia

contraer todo

Tolerancia para la diferencia de gradiente entre los infractores superior e inferior obtenidos por SMO o ISDA, especificados como el par separado por comas que consta de un escalar no negativo.'DeltaGradientTolerance'

Ejemplo: 'DeltaGradientTolerance',1e-4

Tipos de datos: single | double

Tolerancia de brecha de viabilidad obtenida por SMO o ISDA, especificada como el par separado por comas que consta de un escalar no negativo.'GapTolerance'

Si es, después no utiliza este parámetro para marcar la convergencia.GapTolerance0fitrsvm

Ejemplo: 'GapTolerance',1e-4

Tipos de datos: single | double

Número máximo de iteraciones de optimización numérica, especificadas como el par separado por comas que consta de un entero positivo.'IterationLimit'

El software devuelve un modelo entrenado independientemente de si la rutina de optimización converge correctamente. contiene información de convergencia.Mdl.ConvergenceInfo

Ejemplo: 'IterationLimit',1e8

Tipos de datos: double | single

Tolerancia para la infracción de Karush-Kuhn-Tucker (KKT), especificada como el par separado por comas y que consta de un valor escalar no negativo.'KKTTolerance'

Este par nombre-valor se aplica sólo si es o.'Solver''SMO''ISDA'

Si es, después no utiliza este parámetro para marcar la convergencia.KKTTolerance0fitrsvm

Ejemplo: 'KKTTolerance',1e-4

Tipos de datos: single | double

Número de iteraciones entre reducciones del conjunto activo, especificadas como el par separado por comas que consta de un entero no negativo.'ShrinkagePeriod'

Si se establece, el software no encoge el conjunto activo.'ShrinkagePeriod',0

Ejemplo: 'ShrinkagePeriod',1000

Tipos de datos: double | single

La optimización de hiperparámetros

contraer todo

Parámetros para optimizar, especificados como el par separado por comas que consta de uno de los siguientes:'OptimizeHyperparameters'

  • — No optimice.'none'

  • Uso.'auto'{'BoxConstraint','KernelScale','Epsilon'}

  • : Optimice todos los parámetros elegibles.'all'

  • Matriz de cadenas o matriz de celdas de nombres de parámetro elegibles.

  • Vector de objetos, normalmente la salida de.optimizableVariablehiperparámetros

La optimización intenta minimizar la pérdida de validación cruzada (error) para variando los parámetros.fitrsvm Para controlar el tipo de validación cruzada y otros aspectos de la optimización, utilice el par nombre-valor.HyperparameterOptimizationOptions

Nota

valores reemplazan los valores que se establecen con otros argumentos de par nombre-valor.'OptimizeHyperparameters' Por ejemplo, si se establece en hace que los valores se apliquen.'OptimizeHyperparameters''auto''auto'

Los parámetros elegibles para son:fitrsvm

  • — busca entre valores positivos, de forma predeterminada, con escala logaritmo en el rango.BoxConstraintfitrsvm[1e-3,1e3]

  • — busca entre valores positivos, de forma predeterminada, con escala logaritmo en el rango.KernelScalefitrsvm[1e-3,1e3]

  • — busca entre valores positivos, de forma predeterminada, con escala logaritmo en el rango.Epsilonfitrsvm[1e-3,1e2]*iqr(Y)/1.349

  • — busca entre, y.KernelFunctionfitrsvm'gaussian''linear''polynomial'

  • : busca entre números enteros en el rango.PolynomialOrderfitrsvm[2,4]

  • — busca entre y.Standardizefitrsvm'true''false'

Establezca parámetros no predeterminados pasando un vector de objetos que tienen valores no predeterminados.optimizableVariable Por ejemplo,

load carsmall params = hyperparameters('fitrsvm',[Horsepower,Weight],MPG); params(1).Range = [1e-4,1e6];

Pase como el valor de.paramsOptimizeHyperparameters

De forma predeterminada, la visualización iterativa aparece en la línea de comandos y los trazados aparecen según el número de hiperparámetros de la optimización. Para la optimización y los trazados, la función objetivo es log(1 + cross-validation loss) para la regresión y la tasa de clasificación errónea para la clasificación. Para controlar la visualización iterativa, establezca el campo del argumento de par nombre-valor.Verbose'HyperparameterOptimizationOptions' Para controlar los trazados, establezca el campo del argumento de par nombre-valor.ShowPlots'HyperparameterOptimizationOptions'

Para ver un ejemplo, vea.Optimice la regresión de SVM

Ejemplo: 'OptimizeHyperparameters','auto'

Opciones de optimización, especificadas como el par separado por comas que consta de una estructura.'HyperparameterOptimizationOptions' Este argumento modifica el efecto del argumento de par nombre-valor.OptimizeHyperparameters Todos los campos de la estructura son opcionales.

Nombre de campoValoresPredeterminado
Optimizer
  • — Utilice la optimización bayesiana.'bayesopt' Internamente, esta configuración llama.bayesopt

  • : Utilice la búsqueda de cuadrícula con valores por dimensión.'gridsearch'NumGridDivisions

  • — Búsqueda aleatoria entre puntos.'randomsearch'MaxObjectiveEvaluations

búsquedas en orden aleatorio, utilizando muestreo uniforme sin sustitución de la rejilla.'gridsearch' Después de la optimización, puede obtener una tabla en orden de cuadrícula mediante el comando.sortrows(Mdl.HyperparameterOptimizationResults)

'bayesopt'
AcquisitionFunctionName

  • 'expected-improvement-per-second-plus'

  • 'expected-improvement'

  • 'expected-improvement-plus'

  • 'expected-improvement-per-second'

  • 'lower-confidence-bound'

  • 'probability-of-improvement'

Las funciones de adquisición cuyos nombres incluyen no producen resultados reproducibles porque la optimización depende del tiempo de ejecución de la función objetiva.per-second Las funciones de adquisición cuyos nombres incluyen modificar su comportamiento cuando están sobreexplotando un área.plus Para obtener más información, consulte.Tipos de función de adquisición

'expected-improvement-per-second-plus'
MaxObjectiveEvaluationsNúmero máximo de evaluaciones de funciones objetivas.para o, y toda la rejilla para30'bayesopt''randomsearch''gridsearch'
MaxTime

Límite de tiempo, especificado como real positivo. El límite de tiempo es en segundos, medido por y.tictoc El tiempo de ejecución puede exceder porque no interrumpe las evaluaciones de funciones.MaxTimeMaxTime

Inf
NumGridDivisionsPara el número de valores de cada dimensión.'gridsearch' El valor puede ser un vector de enteros positivos que da el número de valores para cada dimensión, o un escalar que se aplica a todas las dimensiones. Este campo se omite para las variables categóricas.10
ShowPlotsValor lógico que indica si se mostrarán los trazados. Si, este campo traza el mejor valor de la función objetiva con respecto al número de iteración.true Si hay uno o dos parámetros de optimización, y si es así, también traza un modelo de la función objetiva contra los parámetros.Optimizer'bayesopt'ShowPlotstrue
SaveIntermediateResultsValor lógico que indica si se guardan los resultados cuando es.Optimizer'bayesopt' Si, este campo sobrescribe una variable de espacio de trabajo denominada en cada iteración.true'BayesoptResults' La variable es un objeto.BayesianOptimizationfalse
Verbose

Mostrar en la línea de comandos.

  • — Sin visualización iterativa0

  • — Visualización iterativa1

  • — Visualización iterativa con información adicional2

Para obtener información detallada, vea el argumento de par nombre-valor.bayesoptVerbose

1
UseParallelValor lógico que indica si se debe ejecutar la optimización bayesiana en paralelo, lo que requiere.Parallel Computing Toolbox™ Para obtener más información, consulte.Optimización bayesiana paralelafalse
Repartition

Valor lógico que indica si se vuelve a particionar la validación cruzada en cada iteración. Si, el optimizador utiliza una sola partición para la optimización.false

normalmente proporciona los resultados más sólidos, ya que esta configuración tiene en cuenta el ruido de partición.true Sin embargo, para obtener buenos resultados, requiere al menos el doble de evaluaciones de función.true

false
No utilice más de uno de los tres nombres de campo siguientes.
CVPartitionUn objeto, creado por.cvpartitioncvpartitionSi no especifica ningún campo de validación cruzada'Kfold',5
HoldoutUn escalar en el rango que representa la fracción de exclusión.(0,1)
KfoldUn entero mayor que 1.

Ejemplo: 'HyperparameterOptimizationOptions',struct('MaxObjectiveEvaluations',60)

Tipos de datos: struct

Argumentos de salida

contraer todo

Modelo de regresión de SVM entrenado, devuelto como un modelo o modelo validado de forma cruzada.RegressionSVMRegressionPartitionedSVM

Si establece cualquiera de los argumentos de par nombre-valor,,, o, a continuación, es un modelo con validación cruzada.KFoldHoldoutLeaveoutCrossValCVPartitionMdlRegressionPartitionedSVM De lo contrario, es un modelo.MdlRegressionSVM

Limitaciones

fitrsvm admite conjuntos de datos de baja y moderada dimensión. Para el conjunto de datos de alta dimensión, utilice en su lugar.fitrlinear

Sugerencias

  • A menos que el conjunto de datos sea grande, siempre intente estandarizar los predictores (consulte).Standardize La estandarización hace que los predictores sean insensibles a las escalas en las que se miden.

  • Es recomendable realizar una validación cruzada mediante el argumento de par nombre-valor.KFold Los resultados de la validación cruzada determinan qué tan bien se generaliza el modelo SVM.

  • La Sparsity en vectores de soporte es una propiedad deseable de un modelo SVM. Para reducir el número de vectores de soporte, establezca el argumento de par nombre-valor en un valor grande.BoxConstraint Esta acción también incrementa el tiempo de entrenamiento.

  • Para un tiempo de entrenamiento óptimo, establecer tan alto como el límite de memoria en su ordenador permite.CacheSize

  • Si espera muchos menos vectores de soporte que las observaciones del 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 de usar.'ShrinkagePeriod',1000

  • Las observaciones duplicadas que están lejos de la línea de regresión no afectan a la convergencia. Sin embargo, sólo unas cuantas observaciones duplicadas que ocurren cerca de la línea de regresión pueden ralentizar la convergencia considerablemente. Para acelerar la convergencia, especifique si:'RemoveDuplicates',true

    • El conjunto de datos contiene muchas observaciones duplicadas.

    • Usted sospecha que algunas observaciones duplicadas pueden caer cerca de la línea de regresión.

    Sin embargo, para mantener el conjunto de datos original durante el entrenamiento, fitrsvm debe almacenar temporalmente conjuntos de datos separados: el original y otro sin las observaciones duplicadas. Por lo tanto, si especifica para conjuntos de datos que contengan pocos duplicados,true fitrsvm consume cerca del doble de la memoria de los datos originales.

  • Después de entrenar un modelo, puede generar código de C/C++ que predice las respuestas de los nuevos datos. La generación de código C/C++ requiere MATLABCoder™. Para obtener más información, consulte.Introducción a la generación de código

Algoritmos

  • Para la formulación matemática de problemas de regresión SVM lineales y no lineales y los algoritmos de solucionador, consulte.Comprensión de la regresión de máquina de vectores de soporte

  • ,, el vector de carácter vacío (), la cadena vacía () y los valores indican valores de datos faltantes.NaN<undefined>''""<missing> fitrsvm elimina filas enteras de datos correspondientes a una respuesta que falta. Cuando se normalizan pesos, fitrsvm ignora cualquier peso correspondiente a una observación con al menos un predictor que falta. Por consiguiente, las restricciones del cuadro de observación podrían no ser iguales.BoxConstraint

  • fitrsvm elimina las observaciones que tienen peso cero.

  • Si establece y, a continuación,'Standardize',true'Weights' fitrsvm Estandariza los predictores utilizando sus medias ponderadas correspondientes y las desviaciones estándar ponderadas. Es decir fitrsvm Estandariza el predictor (jXj) 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.

  • 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.SupportVectorsm

    • La propiedad almacena los datos de entrenamiento como entrada original.X No incluye las variables ficticias. 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 que tiene 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

  • Vamos a ser la proporción de valores atípicos que esperas en los datos de entrenamiento.p Si se establece, a continuación, el software implementa.'OutlierFraction',paprendizaje 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.

Referencias

[1] Clark, D., Z. Schreter, A. Adams. A Quantitative Comparison of Dystal and Backpropagation, submitted to the Australian Conference on Neural Networks, 1996.

[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] Kecman V., T. -M. Huang, and M. Vogt. “Iterative Single Data Algorithm for Training Kernel Machines from Huge Data Sets: Theory and Performance.” In Support Vector Machines: Theory and Applications. Edited by Lipo Wang, 255–274. Berlin: Springer-Verlag, 2005.

[4] Lichman, M. UCI Machine Learning Repository, [http://archive.ics.uci.edu/ml]. Irvine, CA: University of California, School of Information and Computer Science.

[5] Nash, W.J., T. L. Sellers, S. R. Talbot, A. J. Cawthorn, and W. B. Ford. The Population Biology of Abalone (Haliotis species) in Tasmania. I. Blacklip Abalone (H. rubra) from the North Coast and Islands of Bass Strait, Sea Fisheries Division, Technical Report No. 48, 1994.

[6] Waugh, S. Extending and benchmarking Cascade-Correlation, Ph.D. thesis, Computer Science Department, University of Tasmania, 1995.

Capacidades ampliadas

Introducido en R2015b