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.

kfoldPredict

Predecir respuestas para observaciones no utilizadas para el entrenamiento

Descripción

ejemplo

YHat = kfoldPredict(CVMdl) Devuelve respuestas predichas validadas entre el modelo de regresión lineal validada por el cruce.CVMdl Es decir, para cada pliegue, predice las respuestas para las observaciones que se mantiene cuando se entrena utilizando todas las demás observaciones.kfoldPredict

contiene respuestas previstas para cada fuerza de regularización en los modelos de regresión lineal que componen.YHatCVMdl

Argumentos de entrada

expandir todo

Modelo de regresión lineal validado mediante validación cruzada, especificado como objeto de modelo.RegressionPartitionedLinear Puede crear un modelo utilizando y especificando cualquiera de los argumentos de la validación cruzada, el par nombre-valor, por ejemplo,.RegressionPartitionedLinearfitrlinearCrossVal

Para obtener estimaciones, se aplican los mismos datos utilizados para validar el modelo de regresión lineal (y).kfoldPredictXY

Argumentos de salida

expandir todo

Respuestas predichas de validación cruzada, devueltas como una matriz numérica. es el número de observaciones en los Datos predictores que crearon (ver) y es el número de fortalezas de regularización en.nLnCVMdlXLCVMdl.Trained{1}.Lambda YHat(i,j) es la respuesta pronosticada para la observación i utilizando el modelo de regresión lineal que tiene fuerza de regularización CVMdl.Trained{1}.Lambda(j).

La respuesta pronosticada usando el modelo con fuerza de regularización esj y^j=xβj+bj.

  • es una observación de la matriz de Datos predictores y es un vector de fila.xX

  • βj es el vector de columna estimado de los coeficientes. El software almacena este vector en Mdl.Beta(:,j).

  • bj es el sesgo escalar estimado, que el software almacena en Mdl.Bias(j).

Ejemplos

expandir todo

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);

Valide de forma cruzada un modelo de regresión lineal.

CVMdl = fitrlinear(X,Y,'CrossVal','on')
CVMdl =    classreg.learning.partition.RegressionPartitionedLinear     CrossValidatedModel: 'Linear'            ResponseName: 'Y'         NumObservations: 10000                   KFold: 10               Partition: [1x1 cvpartition]       ResponseTransform: 'none'     Properties, Methods  
Mdl1 = CVMdl.Trained{1}
Mdl1 =    RegressionLinear          ResponseName: 'Y'     ResponseTransform: 'none'                  Beta: [1000x1 double]                  Bias: 0.0107                Lambda: 1.1111e-04               Learner: 'svm'     Properties, Methods  

De forma predeterminada, implementa la validación cruzada de 10 veces. es un modelo.fitrlinearCVMdlRegressionPartitionedLinear Contiene la propiedad, que es una matriz de celdas de 10 por 1 con 10 modelos que el software entrenado utilizando el conjunto de entrenamiento.TrainedRegressionLinear

Predecir respuestas para observaciones que no se emplearon en el entrenamiento de los pliegues.fitrlinear

yHat = kfoldPredict(CVMdl);

Porque hay una fuerza de regularización en, es un vector numérico.MdlyHat

Simular 10000 observaciones como en.Predecir respuestas validadas entre

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);

Cree un conjunto de 15 puntos fuertes de regularización logarmicamente espaciados de

<math display="block">
<mrow>
<mn>1</mn>
<msup>
<mrow>
<mn>0</mn>
</mrow>
<mrow>
<mo>-</mo>
<mn>5</mn>
</mrow>
</msup>
</mrow>
</math>
a través de
<math display="block">
<mrow>
<mn>1</mn>
<msup>
<mrow>
<mn>0</mn>
</mrow>
<mrow>
<mo>-</mo>
<mn>1</mn>
</mrow>
</msup>
</mrow>
</math>
.

Lambda = logspace(-5,-1,15);

Valide los modelos en cruz. Para aumentar la velocidad de ejecución, transponer los Datos predictores y especificar que las observaciones se encuentran en columnas. Especifique el uso de mínimos cuadrados con una penalización de lazo y la optimización de la función objetivo utilizando SpaRSA.

X = X';  CVMdl = fitrlinear(X,Y,'ObservationsIn','columns','KFold',5,'Lambda',Lambda,...     'Learner','leastsquares','Solver','sparsa','Regularization','lasso');

es un modelo.CVMdlRegressionPartitionedLinear Su propiedad contiene una matriz de 5 por 1 célula de modelos entrenados, cada uno tiene un pliegue diferente durante el entrenamiento.TrainedRegressionLinear Porque entrenado con 15 fortalezas de regularización, se puede pensar en cada modelo como 15 modelos.fitrlinearRegressionLinear

Predecir respuestas con validación cruzada.

YHat = kfoldPredict(CVMdl); size(YHat)
ans = 1×2

       10000          15

YHat(2,:)
ans = 1×15

   -1.7338   -1.7332   -1.7319   -1.7299   -1.7266   -1.7239   -1.7135   -1.7210   -1.7324   -1.7063   -1.6397   -1.5112   -1.2631   -0.7841   -0.0096

es una matriz 10000-by-15. es la respuesta validada cruzada para la observación 2 utilizando el modelo regularizado con los 15 valores de regularización.YHatYHat(2,:)

Introducido en R2016a