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.

predict

Predecir las respuestas del modelo de regresión lineal

Descripción

ejemplo

ypred = predict(mdl,Xnew) Devuelve los valores de respuesta pronosticados del modelo de regresión lineal a los puntos en.mdlXnew

[ypred,yci] = predict(mdl,Xnew) también devuelve intervalos de confianza para las respuestas.Xnew

ejemplo

[ypred,yci] = predict(mdl,Xnew,Name,Value) especifica opciones adicionales mediante uno o varios argumentos de par nombre-valor. Por ejemplo, puede especificar el nivel de confianza del intervalo de confianza y el tipo de predicción.

Ejemplos

contraer todo

Crear un modelo cuadrático del kilometraje del coche en función del peso del conjunto de datos.carsmall

load carsmall X = Weight; y = MPG; mdl = fitlm(X,y,'quadratic');

Crear respuestas pronosticadas a los datos.

ypred = predict(mdl,X);

Trace las respuestas originales y las respuestas previstas para ver cómo difieren.

plot(X,y,'o',X,ypred,'x') legend('Data','Predictions')

Ajuste un modelo de regresión lineal y, a continuación, guarde el modelo mediante.saveCompactModel Defina una función de punto de entrada que cargue el modelo utilizando y llame a la función del modelo ajustado.loadCompactModelPredecir A continuación, se utiliza para generar código C/C++.codegen Tenga en cuenta que la generación de código C/C++ requiere MATLAB® Coder™.

En este ejemplo se explica brevemente el flujo de trabajo de generación de código para la predicción de modelos de regresión lineal en la línea de comandos. Para obtener más información, consulte.Generación de código para la predicción del modelo de aprendizaje automático en la línea de comandos También puede generar código mediante la aplicación MATLAB Coder. Para obtener más información, consulte.Generación de código para predicción del modelo de aprendizaje automático utilizando MATLAB Coder App

Entrenar modelo

Cargue el conjunto de datos y, a continuación, ajuste el modelo de regresión cuadrática.carsmall

load carsmall X = Weight; y = MPG; mdl = fitlm(X,y,'quadratic');

Guardar modelo

Guarde el modelo cuadrático ajustado en el archivo utilizando.QLMMdl.matsaveCompactModel

saveCompactModel(mdl,'QLMMdl');

Definir función de punto de entrada

Defina una función de punto de entrada denominada que haga lo siguiente:mypredictQLM

  • Acepte las mediciones correspondientes a X y los argumentos de par nombre-valor válidos y opcionales.

  • Cargue el modelo cuadrático ajustado en.QLMMdl.mat

  • Devuelve predicciones y límites de intervalo de confianza.

type mypredictQLM.m % Display contents of mypredictQLM.m
function [yhat,ci] = mypredictQLM(x,varargin) %#codegen %MYPREDICTQLM Predict response using linear model %   MYPREDICTQLM predicts responses for the n observations in the n-by-1 %   vector x using the linear model stored in the MAT-file QLMMdl.mat, and %   then returns the predictions in the n-by-1 vector yhat. MYPREDICTQLM %   also returns confidence interval bounds for the predictions in the %   n-by-2 vector ci. CompactMdl = loadCompactModel('QLMMdl'); [yhat,ci] = predict(CompactMdl,x,varargin{:}); end 

Agregue la Directiva del compilador (o pragma) a la función de punto de entrada después de la firma de la función para indicar que pretende generar código para el algoritmo de MATLAB.%#codegen La adición de esta directiva indica al analizador de código de MATLAB que le ayudará a diagnosticar y corregir infracciones que provocarán errores durante la generación de código.

Si pulsa el botón situado en la sección superior derecha de este ejemplo y abre el ejemplo en MATLAB®, MATLAB® abre la carpeta de ejemplo.Nota: Esta carpeta incluye el archivo de función de punto de entrada.

Generar código

Genere código para la función de punto de entrada utilizando.codegen Dado que C y C++ son lenguajes con tipos estáticos, debe determinar las propiedades de todas las variables en la función de punto de entrada en tiempo de compilación. Para especificar el tipo de datos y el tamaño exacto de la matriz de entrada, pase una expresión MATLAB® que represente el conjunto de valores con un determinado tipo de datos y tamaño de matriz. Se usa para los nombres de los argumentos de par nombre-valor.coder.Constant

Si el número de observaciones es desconocido en tiempo de compilación, también puede especificar la entrada como de tamaño variable mediante.coder.typeof Para obtener más información, consulte y.Especifique argumentos de tamaño variable para la generación de códigoSpecify Properties of Entry-Point Function Inputs (MATLAB Coder)

codegen mypredictQLM -args {X,coder.Constant('Alpha'),0.1,coder.Constant('Simultaneous'),true}
 

genera la función MEX con una extensión dependiente de la plataforma.codegenmypredictQLM_mex

Compruebe que el código generado

Compare las predicciones y los intervalos de confianza usando y.PredecirmypredictQLM_mex Especifique los argumentos de par nombre-valor en el mismo orden que en el argumento en la llamada a.-argscodegen

Xnew = sort(X); [yhat1,ci1] = predict(mdl,Xnew,'Alpha',0.1,'Simultaneous',true); [yhat2,ci2] = mypredictQLM_mex(Xnew,'Alpha',0.1,'Simultaneous',true);

Los valores devueltos de pueden incluir diferencias de redondeo en comparación con los valores de.mypredictQLM_mexPredecir En este caso, compare los valores que permiten una tolerancia pequeña.

find(abs(yhat1-yhat2) > 1e-6)
ans =    0x1 empty double column vector 
find(abs(ci1-ci2) > 1e-6)
ans =    0x1 empty double column vector 

La comparación confirma que los valores devueltos son iguales dentro de la tolerancia.1e–6

Trace los valores devueltos para la comparación.

h1 = plot(X,y,'k.'); hold on h2 = plot(Xnew,yhat1,'ro',Xnew,yhat2,'gx'); h3 = plot(Xnew,ci1,'r-','LineWidth',4); h4 = plot(Xnew,ci2,'g--','LineWidth',2); legend([h1; h2; h3(1); h4(1)], ...     {'Data','predict estimates','MEX estimates','predict CIs','MEX CIs'}); xlabel('Weight'); ylabel('MPG');

Argumentos de entrada

contraer todo

Objeto de modelo de regresión lineal, especificado como un objeto creado mediante o, o un objeto creado medianteLinearModelfitlmstepwiselmCompactLinearModel compact.

Nuevos valores de entrada de predictor, especificados como una tabla, matriz de DataSet o matriz. Cada fila de corresponde a una observación, y cada columna corresponde a una variable.Xnew

  • Si es una matriz de tabla o DataSet, debe contener predictores que tengan los mismos nombres de predictor que en la propiedad de.XnewPredictorNamesmdl

  • Si es una matriz, debe tener el mismo número de variables (columnas) en el mismo orden que la entrada de predictor utilizada para crear.Xnewmdl Tenga en cuenta que también debe contener las variables predictoras que no se utilizan como predictores en el modelo ajustado.Xnew Además, todas las variables utilizadas en la creación deben ser numéricas o lógicas.mdl Para tratar los predictores numéricos como categóricos, identifique los predictores utilizando el argumento de par nombre-valor al crear.'CategoricalVars'mdl

Tipos de datos: single | double | table

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: Devuelve el intervalo de confianza con un nivel de confianza de 99%, calculado simultáneamente para todos los valores predictores.[ypred,yci] = predict(Mdl,Xnew,'Alpha',0.01,'Simultaneous',true)yci

Nivel de significancia para el intervalo de confianza, especificado como el par separado por comas que consta de y un valor numérico en el intervalo [0,1].'Alpha' El nivel de confianza de es igual ayci 100(1 – Alpha)%. es la probabilidad de que el intervalo de confianza no contenga el valor verdadero.Alpha

Ejemplo: 'Alpha',0.01

Tipos de datos: single | double

Tipo de predicción, especificado como el par separado por comas que consta de y cualquiera o.'Prediction''curve''observation'

Un modelo de regresión para las variables predictoras y la variable de respuesta tiene el formatoXy

y = f(X) + ε,

donde se encuentra una función de regresión ajustada y es un término de ruido aleatorio.fε

  • Si es así,'Prediction''curve' predict predice los límites de confianza para f(Xnew), las respuestas ajustadas en.Xnew

  • Si es así,'Prediction''observation' predict predice los límites de confianza para y, las observaciones de respuesta en.Xnew

Los límites para y son más anchos que los límites para f(X) debido a la variabilidad adicional del término de ruido.

Ejemplo: 'Prediction','observation'

Marque para calcular los límites de confianza simultáneos, especificados como el par separado por comas que consta de y true o false.'Simultaneous'

  • true predict calcula los límites de confianza para la curva de los valores de respuesta correspondientes a todos los valores predictores, utilizando el método de Scheffe.Xnew El rango entre los límites superior e inferior contiene la curva que consta de valores de respuesta verdaderos con 100 (1 – α)% de confianza.

  • false predict calcula los límites de confianza para el valor de respuesta en cada observación en.Xnew El intervalo de confianza para un valor de respuesta en un valor de predictor específico contiene el valor de respuesta real con 100 (1 – α)% de confianza.

Los límites simultáneos son más anchos que los límites independientes, ya que exigir que toda la curva de los valores de respuesta esté dentro de los límites es más estricto que exigir que el valor de respuesta en un solo valor predictor esté dentro de los límites.

Ejemplo: 'Simultaneous',true

Argumentos de salida

contraer todo

Valores de respuesta previstos evaluados en, devueltos como un vector numérico.Xnew

Intervalos de confianza para las respuestas, devueltos como una matriz de dos columnas con cada fila que proporciona un intervalo. El significado del intervalo de confianza depende de la configuración de los argumentos de par nombre-valor, y.'Alpha''Prediction''Simultaneous'

Funcionalidad alternativa

  • feval Devuelve las mismas predicciones que.Predecir La función puede tomar varios argumentos de entrada, con una entrada para cada variable predictora y no da intervalos de confianza en sus predicciones.FEVAL

  • random Devuelve predicciones con ruido añadido.

  • Se utiliza para crear una figura que contiene una serie de trazados, cada uno de los cuales representa un sector a través de la superficie de regresión pronosticada.plotSlice Cada gráfica muestra los valores de respuesta ajustados como una función de una sola variable predictora, con las otras variables predictoras mantenidas constantes.

Capacidades ampliadas

Introducido en R2012a