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.

RegressionLinear clase

Modelo de regresión lineal para datos de alta cota

Descripción

es un objeto de modelo lineal entrenado para la regresión; el modelo lineal es una regresión de máquina de vectores de soporte (SVM) o un modelo de regresión lineal. se ajusta a un modelo minimizando la función objetiva utilizando técnicas que reducen el tiempo de cálculo para conjuntos de datos de alta dimensionalidad (p. ej., descenso de gradiente estocástico).RegressionLinearfitrlinearRegressionLinear La pérdida de regresión más el término de regularización componen la función objetiva.

A diferencia de otros modelos de regresión, y para el uso de memoria económica, los objetos de modelo no almacenan los datos de entrenamiento.RegressionLinear Sin embargo, almacenan, por ejemplo, los coeficientes del modelo lineal estimados, los coeficientes estimados y la fuerza de regularización.

Puede utilizar modelos entrenados para predecir las respuestas de los nuevos datos.RegressionLinear Para obtener más información, consulte predict.

Construcción

Cree un objeto mediante.RegressionLinearfitrlinear

Propiedades

expandir todo

Propiedades de regresión lineal

La mitad de la anchura de la banda sin distinción de épsilon, especificada como un escalar no negativo.

Si no es así, entonces es un array vacío ().Learner'svm'Epsilon[]

Tipos de datos: single | double

Fuerza del término de regularización, especificada como un escalar o un vector no negativo de valores no negativos.

Tipos de datos: double | single

Tipo de modelo de regresión lineal, especificado como o.'leastsquares''svm'

En esta tabla, f(x)=xβ+b.

  • es un vector de coeficientes.βp

  • es una observación de variables predictoras.xp

  • es el sesgo escalar.b

ValorAlgoritmoFunción de pérdidaValorFittedLoss
'leastsquares'Regresión lineal a través de mínimos cuadrados ordinariosError cuadrado medio (MSE): [y,f(x)]=12[yf(x)]2'mse'
'svm'Apoye la regresión de la máquina vectorialInsensible a la Epsilon: [y,f(x)]=max[0,|yf(x)|ε]'epsiloninsensitive'

Estimaciones de coeficiente lineales, especificadas como un vector numérico con una longitud igual al número de predictores.

Tipos de datos: double

Término de sesgo Estimado o intersección de modelo, especificado como un escalar numérico.

Tipos de datos: double

Función de pérdida utilizada para ajustarse al modelo, especificada como o.'epsiloninsensitive''mse'

ValorAlgoritmoFunción de pérdidaValorLearner
'epsiloninsensitive'Apoye la regresión de la máquina vectorialInsensible a la Epsilon: [y,f(x)]=max[0,|yf(x)|ε]'svm'
'mse'Regresión lineal a través de mínimos cuadrados ordinariosError cuadrado medio (MSE): [y,f(x)]=12[yf(x)]2'leastsquares'

Tipo de penalización de complejidad, especificada como o.'lasso (L1)''ridge (L2)'

El software compone la función objetiva para la minimización de la suma de la función de pérdida promedio (ver) y un valor de regularización de esta tabla.FittedLoss

ValorDescripción
'lasso (L1)'LazoL1pena λj=1p|βj|
'ridge (L2)'RidgeL2pena λ2j=1pβj2

Especifica la intensidad del término de regularización (véase).λLambda

El software excluye el término de sesgo (β0) de la sanción por regularización.

Otras propiedades de regresión

Los parámetros utilizados para entrenar el RegressionLinear modelo, especificado como una estructura.

Campos de acceso de uso de notación de puntos.ModelParameters Por ejemplo, acceda a la tolerancia relativa en los coeficientes lineales y el término de sesgo mediante el uso de.Mdl.ModelParameters.BetaTolerance

Tipos de datos: struct

Los nombres predictores en orden de su aparición en los Datos predictores, especificados como una matriz de celdas de vectores de caracteres.X La longitud de es igual al número de columnas en.PredictorNamesX

Tipos de datos: cell

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

Porque un RegressionLinear modelo no admite predictores categóricos y son iguales.ExpandedPredictorNamesPredictorNames

Tipos de datos: cell

Nombre de variable de respuesta, especificado 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

Métodos

lossLa pérdida de regresión para modelos de regresión lineal
predictPredecir la respuesta del modelo de regresión lineal
selectModelsSeleccione modelos de regresión lineal regularizados ajustados

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

Entrenar un modelo de regresión lineal mediante SVM, doble SGD y regularización de cresta.

Simular 10000 observaciones de este modelo

<math display="block">
<mrow>
<mi>y</mi>
<mo>=</mo>
<msub>
<mrow>
<mi>x</mi>
</mrow>
<mrow>
<mn>1</mn>
<mn>0</mn>
<mn>0</mn>
</mrow>
</msub>
<mo>+</mo>
<mn>2</mn>
<msub>
<mrow>
<mi>x</mi>
</mrow>
<mrow>
<mn>2</mn>
<mn>0</mn>
<mn>0</mn>
</mrow>
</msub>
<mo>+</mo>
<mi>e</mi>
<mo>.</mo>
</mrow>
</math>

  • <math display="block">
    <mrow>
    <mi>X</mi>
    <mo>=</mo>
    <mrow>
    <msub>
    <mrow>
    <mi>x</mi>
    </mrow>
    <mrow>
    <mn>1</mn>
    </mrow>
    </msub>
    <mo>,</mo>
    <mo>.</mo>
    <mo>.</mo>
    <mo>.</mo>
    <mo>,</mo>
    <msub>
    <mrow>
    <mi>x</mi>
    </mrow>
    <mrow>
    <mn>1</mn>
    <mn>0</mn>
    <mn>0</mn>
    <mn>0</mn>
    </mrow>
    </msub>
    </mrow>
    </mrow>
    </math>
    es una matriz dispersa 10000-by-1000 con un 10% de cero elementos normales estándar.

  • es un error normal aleatorio con la media 0 y la desviación estándar 0,3.e

rng(1) % For reproducibility n = 1e4; d = 1e3; nz = 0.1; X = sprandn(n,d,nz); Y = X(:,100) + 2*X(:,200) + 0.3*randn(n,1);

Entrenar un modelo de regresión lineal. De forma predeterminada, utiliza máquinas de vectores de soporte con una penalización de cresta y optimiza el uso de SGD dual para SVM.fitrlinear Determine qué tan bien el algoritmo de optimización ajusta el modelo a los datos mediante la extracción de un resumen de ajuste.

[Mdl,FitInfo] = fitrlinear(X,Y)
Mdl =    RegressionLinear          ResponseName: 'Y'     ResponseTransform: 'none'                  Beta: [1000x1 double]                  Bias: -0.0056                Lambda: 1.0000e-04               Learner: 'svm'     Properties, Methods  
FitInfo = struct with fields:
                    Lambda: 1.0000e-04
                 Objective: 0.2725
                 PassLimit: 10
                 NumPasses: 10
                BatchLimit: []
             NumIterations: 100000
              GradientNorm: NaN
         GradientTolerance: 0
      RelativeChangeInBeta: 0.4907
             BetaTolerance: 1.0000e-04
             DeltaGradient: 1.5816
    DeltaGradientTolerance: 0.1000
           TerminationCode: 0
         TerminationStatus: {'Iteration limit exceeded.'}
                     Alpha: [10000x1 double]
                   History: []
                   FitTime: 0.0924
                    Solver: {'dual'}

es un modelo.MdlRegressionLinear Puede pasar y el entrenamiento o los nuevos datos para inspeccionar el error medio cuadrado de la muestra.Mdlloss O puede pasar y nuevos Datos predictores para predecir respuestas para nuevas observaciones.MdlPredecir

es una matriz de estructura que contiene, entre otras cosas, el estado de terminación () y el tiempo que el solucionador tomó para ajustarse al modelo a los datos ().FitInfoTerminationStatusFitTime Es una buena práctica utilizar para determinar si las mediciones de optimización-terminación son satisfactorias.FitInfo En este caso, alcanzó el número máximo de iteraciones.fitrlinear Dado que el tiempo de entrenamiento es rápido, puede volver a entrenar el modelo, pero aumentar el número de pasadas a través de los datos. O, pruebe con otro solucionador, como LBFGS.

Simular 10000 observaciones de este modelo

<math display="block">
<mrow>
<mi>y</mi>
<mo>=</mo>
<msub>
<mrow>
<mi>x</mi>
</mrow>
<mrow>
<mn>1</mn>
<mn>0</mn>
<mn>0</mn>
</mrow>
</msub>
<mo>+</mo>
<mn>2</mn>
<msub>
<mrow>
<mi>x</mi>
</mrow>
<mrow>
<mn>2</mn>
<mn>0</mn>
<mn>0</mn>
</mrow>
</msub>
<mo>+</mo>
<mi>e</mi>
<mo>.</mo>
</mrow>
</math>

  • <math display="block">
    <mrow>
    <mi>X</mi>
    <mo>=</mo>
    <mo stretchy="false">{</mo>
    <msub>
    <mrow>
    <mi>x</mi>
    </mrow>
    <mrow>
    <mn>1</mn>
    </mrow>
    </msub>
    <mo>,</mo>
    <mo>.</mo>
    <mo>.</mo>
    <mo>.</mo>
    <mo>,</mo>
    <msub>
    <mrow>
    <mi>x</mi>
    </mrow>
    <mrow>
    <mn>1</mn>
    <mn>0</mn>
    <mn>0</mn>
    <mn>0</mn>
    </mrow>
    </msub>
    <mo stretchy="false">}</mo>
    </mrow>
    </math>
    es una matriz dispersa 10000-by-1000 con un 10% de cero elementos normales estándar.

  • es un error normal aleatorio con la media 0 y la desviación estándar 0,3.e

rng(1) % For reproducibility n = 1e4; d = 1e3; nz = 0.1; X = sprandn(n,d,nz); Y = X(:,100) + 2*X(:,200) + 0.3*randn(n,1);

Mantenga el 5% de los datos.

rng(1); % For reproducibility cvp = cvpartition(n,'Holdout',0.05)
cvp =  Hold-out cross validation partition    NumObservations: 10000        NumTestSets: 1          TrainSize: 9500           TestSize: 500 

es un objeto que define la partición aleatoria de datos en conjuntos de entrenamiento y pruebas.cvpCVPartitionn

Entrenar un modelo de regresión lineal utilizando el conjunto de entrenamiento. Para un tiempo de entrenamiento más rápido, Oriente la matriz de Datos predictores para que las observaciones estén en columnas.

idxTrain = training(cvp); % Extract training set indices X = X'; Mdl = fitrlinear(X(:,idxTrain),Y(idxTrain),'ObservationsIn','columns');

Predecir las observaciones y el error cuadrado medio (MSE) para la muestra de espera.

idxTest = test(cvp); % Extract test set indices yHat = predict(Mdl,X(:,idxTest),'ObservationsIn','columns'); L = loss(Mdl,X(:,idxTest),Y(idxTest),'ObservationsIn','columns')
L = 0.1851 

La muestra de retención MSE es 0,1852.

Capacidades ampliadas

Introducido en R2016a