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.

RegressionSVM clase

Superclases: CompactRegressionSVM

Soporte modelo de regresión de máquina vectorial

Descripción

es un modelo de regresión de máquina de vectores de soporte (SVM).RegressionSVM Entrenar un modelo utilizando y los datos de muestra.RegressionSVMfitrsvm

modelos almacenan datos, valores de parámetros, vectores de soporte e información de implementación algorítmica.RegressionSVM Puede utilizar estos modelos para:

  • Estimar las predicciones de reenvío. Para obtener más información, consulte resubPredict.

  • Predecir valores para nuevos datos. Para obtener más información, consulte predict.

  • Calcule la pérdida de reenvío. Para obtener más información, consulte resubLoss.

  • Calcule el error cuadrado medio o la pérdida de Epsilon insensible. Para obtener más información, consulte loss.

Construcción

Cree un objeto mediante.RegressionSVMfitrsvm

Propiedades

expandir todo

Coeficientes de doble problema, especificados como un vector de valores numéricos. contiene elementos, donde es el número de vectores de soporte en el modelo de regresión de SVM entrenado.Alphamm El doble problema introduce dos multiplicadores de Lagrange por cada vector de soporte. Los valores de son las diferencias entre los dos multiplicadores de Lagrange estimados para los vectores de soporte.Alpha Para obtener más información, consulte.Comprensión de la regresión de máquina de vectores de soporte

Si especificó eliminar duplicados utilizando, a continuación, para un conjunto determinado de observaciones duplicadas que son vectores de soporte, contiene un coeficiente correspondiente a todo el conjunto.RemoveDuplicatesAlpha 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

Coeficientes primarios del problema lineal, almacenados como un vector numérico de longitud, donde es el número de predictores en el modelo de regresión SVM.pp

Los valores en son los coeficientes lineales para el problema de optimización primigenia.Beta

Si el modelo se obtiene utilizando una función del kernel que no sea, esta propiedad está vacía ().'linear''[]'

el predict método calcula los valores de respuesta pronosticados para el modelo como, donde es el valor de la escala del kernel almacenada en la propiedad.YFIT = (X/S)×Beta + BiasSKernelParameters.Scale

Tipos de datos: single | double

Término de sesgo en el modelo de regresión de SVM, almacenado como un valor escalar.

Tipos de datos: single | double

Las restricciones de cuadro para los coeficientes alfa con problemas duales, almacenadas como un vector numérico que contiene elementos, donde es el número de observaciones en ().nnXMdl.NumObservations

El valor absoluto del coeficiente dual para la observación no puede exceder.AlphaiBoxConstraints(i)

Si especifica la eliminación de duplicados mediante, 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 y las restricciones de cuadro de todas las demás observaciones del conjunto.'RemoveDuplicates'MATLAB0

Tipos de datos: single | double

Información de almacenamiento en caché, almacenada como una estructura con los siguientes campos.

CampoDescripción
'Size'Valor escalar positivo que indica el tamaño de la caché (en MB) que el software se reserva para almacenar las entradas de la matriz Gram. Establezca el tamaño de la caché utilizando el argumento de par nombre-valor en.'CacheSize'fitrsvm
'Algorithm'Vector de caracteres que contiene el nombre del algoritmo utilizado para eliminar las entradas de la memoria caché cuando se excede su capacidad. Actualmente, el único algoritmo de almacenamiento en caché disponible es.'Queue' No se puede establecer el algoritmo de almacenamiento en caché.

Tipos de datos: struct

Í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

Información de convergencia, almacenada como una estructura con los siguientes campos.

CampoDescripción
ConvergedIndicador lógico que indica si el algoritmo convergió. Un valor de indica convergencia.1
ReasonForConvergenceVector de caracteres que indica el criterio del software utilizado para detectar la convergencia.
GapBrecha de viabilidad escalar entre las funciones objetivo dual y primigenia.
GapToleranceTolerancia escalar para la brecha de viabilidad. Puede establecer esta tolerancia utilizando el argumento de par nombre-valor en.'GapTolerance'fitrsvm
DeltaGradientDiferencia de gradiente escalar entre violadores superiores e inferiores.
DeltaGradientToleranceTolerancia escalar para la diferencia de degradado. Puede establecer esta tolerancia utilizando el argumento de par nombre-valor en.DeltaGradientTolerancefitrsvm
LargestKKTViolationValor escalar máximo de la infracción de Karush-Kuhn-Tucker (KKT).
KKTToleranceTolerancia escalar para la mayor infracción de KKT. Puede establecer esta tolerancia utilizando el argumento de par nombre-valor en.'KKTTolerance'fitrsvm
History

Estructura que contiene información de convergencia registrada a intervalos periódicos durante el proceso de formación del modelo. Esta estructura contiene los siguientes campos:

  • — Matriz de índices de iteración en el que el software registró criterios de convergencia.NumIterations

  • : valores en estas iteraciones.GapGap

  • : valores en estas iteraciones.DeltaGradientDeltaGradient

  • : valores en estas iteraciones.LargestKKTViolationLargestKKTViolation

  • — Número de vectores de soporte en estas iteraciones.NumSupportVectors

  • : valores en estas iteraciones.ObjectiveObjective

ObjectiveValor numérico del doble objetivo.

Tipos de datos: struct

La mitad del ancho de la banda sin distinción de épsilon, almacenada como un valor escalar no negativo.

Tipos de datos: single | double

Nombres de predictores ampliados, almacenados como una matriz de vectores de caracteres de celda.

Si el modelo utiliza codificación 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

Los valores de gradiente en los datos de entrenamiento, almacenados como un vector numérico que contiene 2 elementos, donde es el número de observaciones en los datos de entrenamiento.nn

Elemento de contiene el valor de degradado para el coeficiente que corresponde al límite superior de la banda de épsilon insensible en la observación al final de la optimización.iGradientAlphai

Elemento de contiene el valor de degradado para el coeficiente que corresponde al límite inferior de la banda de épsilon insensible en la observación al final de la optimización.i + NumObservationsGradientAlphai

Tipos de datos: single | double

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 si el argumento de par nombre-valor no está vacío al crear el modelo.'OptimizeHyperparameters' El valor de depende de la configuración del campo en la estructura cuando se crea el modelo, como se describe en esta tabla.HyperparameterOptimizationResultsOptimizerHyperparameterOptimizationOptions

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)

Indicador que indica si una observación es un vector de soporte, almacenado como un vector lógico-por-1. es el número de observaciones en (véase).nnXNumObservations Un valor de indica que la observación correspondiente en los datos de entrenamiento es un vector de soporte.1

Si especifica la eliminación de duplicados utilizando, a continuación, para un conjunto determinado de observaciones duplicadas que son vectores de soporte, marca sólo uno como un vector de soporte.RemoveDuplicatesIsSupportVector

Tipos de datos: logical

Parámetros de función del kernel, almacenados como una estructura con los siguientes campos.

CampoDescripción
Function Nombre de la función kernel (un vector de caracteres).
ScaleFactor de escala numérico utilizado para dividir los valores predictores.

Puede especificar valores para y mediante el uso de los argumentos de par nombre-valor en, respectivamente.KernelParameters.FunctionKernelParameters.ScaleKernelFunctionKernelScalefitrsvm

Tipos de datos: struct

Valores de parámetro utilizados para entrenar el modelo de regresión de SVM, almacenado como un objeto de parámetro de modelo. Acceda a las propiedades del uso de notación de puntos.ModelParameters Por ejemplo, acceda al valor de usado para entrenar el modelo como.EpsilonMdl.ModelParameters.Epsilon

Predictor significa, almacenado como un vector de valores numéricos.

Si los predictores están estandarizados, entonces es un vector numérico de longitud, donde es el número de predictores utilizados para entrenar el modelo.Mupp En este caso, el predict centros de métodos de matriz predictora restando el elemento correspondiente de cada columna.XMu

Si los predictores no están estandarizados, entonces está vacío ().Mu'[]'

Si los datos contienen predictores categóricos, incluye elementos para las variables ficticias para esos predictores.Mu Las entradas correspondientes en son 0 porque las variables ficticias no están centradas o escaladas.Mu

Tipos de datos: single | double

Número de iteraciones necesarias para que la rutina de optimización alcance la convergencia, almacenada como un valor entero positivo.

Para establecer un límite en el número de iteraciones, utilice el argumento de par nombre-valor de.'IterationLimit'fitrsvm

Tipos de datos: single | double

Número de observaciones en los datos de entrenamiento, almacenados como un valor entero positivo.

Tipos de datos: single | double

Los nombres de predictor, almacenados como una matriz de celdas de vectores de caracteres que contiene el nombre de cada predictor en el orden en que aparecen. tiene una longitud igual al número de columnas en.XPredictorNamesX

Tipos de datos: cell

Fracción esperada de valores atípicos en el conjunto de entrenamiento, almacenada como un valor escalar en el intervalo [0,1]. Puede especificar la fracción esperada de los valores atípicos utilizando el argumento de par nombre-valor en.'OutlierFraction'fitrsvm

Tipos de datos: double

Nombre de variable de respuesta, almacenado como un vector de caracteres.

Tipos de datos: char

Función de transformación de respuesta, especificada como o un identificador de función. describe cómo el software transforma los valores de respuesta sin procesar.'none'ResponseTransform

Para una función o una función que defina, introduzca su identificador de función.MATLAB Por ejemplo, puede introducir Mdl.ResponseTransform = @functionDónde function acepta un vector numérico de las respuestas originales y devuelve un vector numérico del mismo tamaño que contiene las respuestas transformadas.

Tipos de datos: char | function_handle

Número de iteraciones entre reducciones del conjunto activo durante la optimización, almacenadas como un valor entero no negativo.

Puede establecer el período de contracción mediante el argumento de par nombre-valor en.'ShrinkagePeriod'fitrsvm

Tipos de datos: single | double

Desviaciones estándar predictoras, almacenadas como un vector de valores numéricos.

Si los predictores están estandarizados, entonces es un vector numérico de longitud, donde es el número de predictores utilizados para entrenar el modelo.Sigmapp En este caso, el predict método escala la matriz predictora dividiendo cada columna por el elemento correspondiente de, después de centrar cada elemento utilizando.XSigmaMu

Si los predictores no están estandarizados, entonces está vacío ().Sigma'[]'

Si los datos contienen predictores categóricos, incluye elementos para las variables ficticias para esos predictores.Sigma Las entradas correspondientes en son 1, porque las variables ficticias no están centradas o escaladas.Sigma

Tipos de datos: single | double

Nombre del algoritmo de solucionador utilizado para resolver el problema de optimización, almacenado como un valor en esta tabla.

ValorDescripción
'SMO'Optimización mínima secuencial
'ISDA'Algoritmo de datos único iterativo
'L1QP'L1 minimización de margen suave por programación cuadrática (requiere una licencia).Optimization Toolbox™

Vectores de soporte, almacenados como un-por-matriz de valores numéricos. es el número de vectores de soporte (), y es el número de predictores en.mpmsum(Mdl.IsSupportVector)pX

Si especificó eliminar duplicados usando, entonces para un conjunto dado de observaciones duplicadas que son vectores de soporte, contiene un vector de soporte único.RemoveDuplicatesSupportVectors

Tipos de datos: single | double

Ponderaciones de observación utilizadas para entrenar el modelo, almacenadas como un vector numérico que contiene el número de elementos. Normaliza los pesos utilizados para el entrenamiento de modo que suman 1.NumObservationfitrsvm

Tipos de datos: single | double

Valores predictores utilizados para entrenar el modelo, almacenados como una matriz de valores numéricos si el modelo está entrenado en una matriz o una tabla si el modelo está entrenado en una tabla. tiene el tamaño por, donde es el número de filas y es el número de variables predictoras o columnas en los datos de entrenamiento.Xnpnp

Tipos de datos: single | double | table

Valores de respuesta observados, almacenados como un vector numérico que contiene el número de elementos.NumObservations

Tipos de datos: single | double

Métodos

compactModelo de regresión de máquina vectorial de soporte compacto
crossvalModelo de regresión de máquina vectorial de soporte validada cruzada
resubLossPérdida de reenvío para el modelo de regresión de máquina vectorial de soporte
resubPredictPredecir la respuesta de reenvío del modelo de regresión de máquina vectorial de soporte
resumeReanudar el soporte de entrenamiento modelo de regresión de máquina vectorial

Métodos heredados

discardSupportVectorsDeseche los vectores de soporte
lossError de regresión para el modelo de regresión de máquina vectorial de soporte
predictPredecir respuestas mediante el modelo de regresión de máquina vectorial de soporte

Semántica de copia

Valor. Para saber cómo afectan las clases de valor a las operaciones de copia, consulte.Copiar objetos (MATLAB)

Ejemplos

contraer todo

Este ejemplo muestra cómo entrenar un modelo de regresión de máquina de vectores de soporte lineal (SVM) utilizando datos de ejemplo 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 SVM lineal.

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  

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

Marque el modelo para la convergencia.

Mdl.ConvergenceInfo.Converged
ans = logical
   0

indica que el modelo no convergen.0

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 cuadrado medio de reenvío 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.

Referencias

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

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

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

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

Capacidades ampliadas

Introducido en R2015b