Ajustar un modelo de regresión del proceso gaussiano (GPR)
devuelve un modelo de regresión de proceso gaussiano (GPR) entrenado utilizando los datos de ejemplo en , donde está el nombre de la variable de respuesta en .gprMdl
= fitrgp(Tbl
,ResponseVarName
)Tbl
ResponseVarName
Tbl
devuelve un modelo GPR para cualquiera de los argumentos de entrada de las sintaxis anteriores, con opciones adicionales especificadas por uno o varios argumentos de par.gprMdl
= fitrgp(___,Name,Value
)Name,Value
Por ejemplo, puede especificar el método de ajuste, el método de predicción, la función de covarianza o el método de selección de conjunto activo. También puede entrenar un modelo validado entre vías cruzadas.
es un objeto.gprMdl
RegressionGP
Para conocer los métodos y propiedades de esta clase, consulte la página de clases.RegressionGP
Si entrena un modelo validado de forma cruzada, es un objeto.gprMdl
RegressionPartitionedModel
Para un análisis más disemitivo sobre el objeto validado entre cruces, utilice los métodos de clase.RegressionPartitionedModel
Para conocer los métodos de esta clase, consulte la página de clase.RegressionPartitionedModel
En este ejemplo se utilizan los datos abulón , , del repositorio de aprendizaje automático de UCI.[1][2][3] Descargue los datos y guárdelos en su carpeta actual con el nombre .abalone.data
Almacene los datos en una tabla. Muestre las primeras siete filas.
tbl = readtable('abalone.data','Filetype','text',... 'ReadVariableNames',false); tbl.Properties.VariableNames = {'Sex','Length','Diameter','Height',... 'WWeight','SWeight','VWeight','ShWeight','NoShellRings'}; tbl(1:7,:)
ans = Sex Length Diameter Height WWeight SWeight VWeight ShWeight NoShellRings ___ ______ ________ ______ _______ _______ _______ ________ ____________ 'M' 0.455 0.365 0.095 0.514 0.2245 0.101 0.15 15 'M' 0.35 0.265 0.09 0.2255 0.0995 0.0485 0.07 7 'F' 0.53 0.42 0.135 0.677 0.2565 0.1415 0.21 9 'M' 0.44 0.365 0.125 0.516 0.2155 0.114 0.155 10 'I' 0.33 0.255 0.08 0.205 0.0895 0.0395 0.055 7 'I' 0.425 0.3 0.095 0.3515 0.141 0.0775 0.12 8 'F' 0.53 0.415 0.15 0.7775 0.237 0.1415 0.33 20
El conjunto de datos tiene 4177 observaciones. El objetivo es predecir la edad del abulón a partir de ocho mediciones físicas. La última variable, el número de anillos de vaciado muestra la edad del abulón. El primer predictor es una variable categórica. La última variable de la tabla es la variable de respuesta.
Ajuste un modelo GPR utilizando el subconjunto de regresores para la estimación de parámetros y el método condicional totalmente independiente para la predicción. Estandarizar los predictores.
gprMdl = fitrgp(tbl,'NoShellRings','KernelFunction','ardsquaredexponential',... 'FitMethod','sr','PredictMethod','fic','Standardize',1)
grMdl = RegressionGP PredictorNames: {1x8 cell} ResponseName: 'Var9' ResponseTransform: 'none' NumObservations: 4177 KernelFunction: 'ARDSquaredExponential' KernelInformation: [1x1 struct] BasisFunction: 'Constant' Beta: 10.9148 Sigma: 2.0243 PredictorLocation: [10x1 double] PredictorScale: [10x1 double] Alpha: [1000x1 double] ActiveSetVectors: [1000x10 double] PredictMethod: 'FIC' ActiveSetSize: 1000 FitMethod: 'SR' ActiveSetMethod: 'Random' IsActiveSetVector: [4177x1 logical] LogLikelihood: -9.0013e+03 ActiveSetHistory: [1x1 struct] BCDInformation: []
Predecir las respuestas mediante el modelo entrenado.
ypred = resubPredict(gprMdl);
Trazar la respuesta verdadera y las respuestas pronosticadas.
figure(); plot(tbl.NoShellRings,'r.'); hold on plot(ypred,'b'); xlabel('x'); ylabel('y'); legend({'data','predictions'},'Location','Best'); axis([0 4300 0 30]); hold off;
Calcular la pérdida de regresión en los datos de entrenamiento (pérdida de resustitución) para el modelo entrenado.
L = resubLoss(gprMdl)
L = 4.0064
Generar datos de ejemplo.
rng(0,'twister'); % For reproducibility n = 1000; x = linspace(-10,10,n)'; y = 1 + x*5e-2 + sin(x)./x + 0.2*randn(n,1);
Ajuste un modelo GPR utilizando una función de base lineal y el método de ajuste exacto para estimar los parámetros. Utilice también el método de predicción exacto.
gprMdl = fitrgp(x,y,'Basis','linear',... 'FitMethod','exact','PredictMethod','exact');
Predecir la respuesta correspondiente a las filas de (predicciones de resustitución) mediante el modelo entrenado.x
ypred = resubPredict(gprMdl);
Trazar la respuesta verdadera con los valores predichos.
plot(x,y,'b.'); hold on; plot(x,ypred,'r','LineWidth',1.5); xlabel('x'); ylabel('y'); legend('Data','GPR predictions'); hold off
Cargue los datos de ejemplo.
load(fullfile(matlabroot,'examples','stats','gprdata2.mat'))
Los datos tienen una variable predictora y una respuesta continua. Se trata de datos simulados.
Ajuste un modelo GPR utilizando la función de kernel exponencial al cuadrado con los parámetros predeterminados del kernel.
gprMdl1 = fitrgp(x,y,'KernelFunction','squaredexponential');
Ahora, ajuste un segundo modelo, donde especifique los valores iniciales para los parámetros del kernel.
sigma0 = 0.2; kparams0 = [3.5, 6.2]; gprMdl2 = fitrgp(x,y,'KernelFunction','squaredexponential',... 'KernelParameters',kparams0,'Sigma',sigma0);
Calcular las predicciones de resustitución de ambos modelos.
ypred1 = resubPredict(gprMdl1); ypred2 = resubPredict(gprMdl2);
Trazar las predicciones de respuesta de ambos modelos y las respuestas en los datos de entrenamiento.
figure(); plot(x,y,'r.'); hold on plot(x,ypred1,'b'); plot(x,ypred2,'g'); xlabel('x'); ylabel('y'); legend({'data','default kernel parameters',... 'kparams0 = [3.5,6.2], sigma0 = 0.2'},... 'Location','Best'); title('Impact of initial kernel parameter values'); hold off
La probabilidad de registro marginal que se maximiza para estimar los parámetros de GPR tiene varias soluciones locales; la solución a la que converge depende del punto inicial.fitrgp
Cada solución local corresponde a una interpretación particular de los datos. En este ejemplo, la solución con los parámetros iniciales predeterminados del kernel corresponde a una señal de baja frecuencia con alto ruido, mientras que la segunda solución con parámetros iniciales del kernel personalizados corresponde a una señal de alta frecuencia con poco ruido.
Cargue los datos de ejemplo.
load(fullfile(matlabroot,'examples','stats','gprdata.mat'))
Hay seis variables predictoras continuas. Hay 500 observaciones en el conjunto de datos de entrenamiento y 100 observaciones en el conjunto de datos de prueba. Se trata de datos simulados.
Ajuste un modelo GPR utilizando la función de kernel exponencial al cuadrado con una escala de longitud independiente para cada predictor. Esta función de covarianza se define como:
Dónde
Inicializar las escalas de longitud de la función del núcleo a 10 y las desviaciones estándar de señal y ruido en la desviación estándar de la respuesta.
sigma0 = std(ytrain); sigmaF0 = sigma0; d = size(Xtrain,2); sigmaM0 = 10*ones(d,1);
Ajuste el modelo GPR utilizando los valores iniciales de los parámetros del kernel. Estandarizar los predictores en los datos de entrenamiento. Utilice los métodos exactos de ajuste y predicción.
gprMdl = fitrgp(Xtrain,ytrain,'Basis','constant','FitMethod','exact',... 'PredictMethod','exact','KernelFunction','ardsquaredexponential',... 'KernelParameters',[sigmaM0;sigmaF0],'Sigma',sigma0,'Standardize',1);
Calcular la pérdida de regresión en los datos de prueba.
L = loss(gprMdl,Xtest,ytest)
L = 0.6919
Acceda a la información del kernel.
gprMdl.KernelInformation
ans = struct with fields:
Name: 'ARDSquaredExponential'
KernelParameters: [7x1 double]
KernelParameterNames: {7x1 cell}
Mostrar los nombres de los parámetros del kernel.
gprMdl.KernelInformation.KernelParameterNames
ans = 7x1 cell array
{'LengthScale1'}
{'LengthScale2'}
{'LengthScale3'}
{'LengthScale4'}
{'LengthScale5'}
{'LengthScale6'}
{'SigmaF' }
Visualice los parámetros del kernel.
sigmaM = gprMdl.KernelInformation.KernelParameters(1:end-1,1)
sigmaM = 6×1
104 ×
0.0004
0.0007
0.0004
4.1731
0.1018
0.0056
sigmaF = gprMdl.KernelInformation.KernelParameters(end)
sigmaF = 28.1718
sigma = gprMdl.Sigma
sigma = 0.8162
Trazar el registro de escalas de longitud aprendidas.
figure() plot((1:d)',log(sigmaM),'ro-'); xlabel('Length scale number'); ylabel('Log of length scale');
El registro de la escala de longitud para las variables predictoras 4 y 5a son altos en relación con las demás. Estas variables predictoras no parecen ser tan influyentes en la respuesta como las otras variables predictoras.
Ajuste el modelo GPR sin utilizar las variables 4 a 5a como variables predictoras.
X = [Xtrain(:,1:3) Xtrain(:,6)]; sigma0 = std(ytrain); sigmaF0 = sigma0; d = size(X,2); sigmaM0 = 10*ones(d,1); gprMdl = fitrgp(X,ytrain,'Basis','constant','FitMethod','exact',... 'PredictMethod','exact','KernelFunction','ardsquaredexponential',... 'KernelParameters',[sigmaM0;sigmaF0],'Sigma',sigma0,'Standardize',1);
Calcular el error de regresión en los datos de prueba.
xtest = [Xtest(:,1:3) Xtest(:,6)]; L = loss(gprMdl,xtest,ytest)
L = 0.6928
La pérdida es similar a la que se utiliza como variables predictoras.
Calcular la respuesta prevista para los datos de prueba.
ypred = predict(gprMdl,xtest);
Trazar la respuesta original junto con los valores ajustados.
figure; plot(ytest,'r'); hold on; plot(ypred,'b'); legend('True response','GPR predicted values','Location','Best'); hold off
En este ejemplo se muestra cómo optimizar los hiperparámetros automáticamente mediante .fitrgp
En el ejemplo se utilizan los datos que se incluye con el software.gprdata2
Cargue los datos.
load(fullfile(matlabroot,'examples','stats','gprdata2.mat'))
Los datos tienen una variable predictora y una respuesta continua. Se trata de datos simulados.
Ajuste un modelo GPR utilizando la función de kernel exponencial al cuadrado con los parámetros predeterminados del kernel.
gprMdl1 = fitrgp(x,y,'KernelFunction','squaredexponential');
Busque hiperparámetros que minimicen la pérdida de validación cruzada 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 gprMdl2 = fitrgp(x,y,'KernelFunction','squaredexponential',... 'OptimizeHyperparameters','auto','HyperparameterOptimizationOptions',... struct('AcquisitionFunctionName','expected-improvement-plus'));
|======================================================================================| | Iter | Eval | Objective: | Objective | BestSoFar | BestSoFar | Sigma | | | result | log(1+loss) | runtime | (observed) | (estim.) | | |======================================================================================| | 1 | Best | 0.29417 | 2.4152 | 0.29417 | 0.29417 | 0.0015045 | | 2 | Best | 0.037898 | 1.8636 | 0.037898 | 0.060792 | 0.14147 | | 3 | Accept | 1.5693 | 1.1083 | 0.037898 | 0.040633 | 25.279 | | 4 | Accept | 0.29417 | 2.3293 | 0.037898 | 0.037984 | 0.0001091 | | 5 | Accept | 0.29393 | 2.5312 | 0.037898 | 0.038029 | 0.029932 | | 6 | Accept | 0.13152 | 1.7266 | 0.037898 | 0.038127 | 0.37127 | | 7 | Best | 0.037785 | 2.064 | 0.037785 | 0.037728 | 0.18116 | | 8 | Accept | 0.03783 | 1.837 | 0.037785 | 0.036524 | 0.16251 | | 9 | Accept | 0.037833 | 1.9385 | 0.037785 | 0.036854 | 0.16159 | | 10 | Accept | 0.037835 | 1.9463 | 0.037785 | 0.037052 | 0.16072 | | 11 | Accept | 0.29417 | 2.3556 | 0.037785 | 0.03705 | 0.00038214 | | 12 | Accept | 0.42256 | 1.3779 | 0.037785 | 0.03696 | 3.2067 | | 13 | Accept | 0.03786 | 1.845 | 0.037785 | 0.037087 | 0.15245 | | 14 | Accept | 0.29417 | 2.3797 | 0.037785 | 0.037043 | 0.0063584 | | 15 | Accept | 0.42302 | 1.3971 | 0.037785 | 0.03725 | 1.2221 | | 16 | Accept | 0.039486 | 1.6847 | 0.037785 | 0.037672 | 0.10069 | | 17 | Accept | 0.038591 | 1.745 | 0.037785 | 0.037687 | 0.12077 | | 18 | Accept | 0.038513 | 1.8117 | 0.037785 | 0.037696 | 0.1227 | | 19 | Best | 0.037757 | 1.8722 | 0.037757 | 0.037572 | 0.19621 | | 20 | Accept | 0.037787 | 1.9044 | 0.037757 | 0.037601 | 0.18068 | |======================================================================================| | Iter | Eval | Objective: | Objective | BestSoFar | BestSoFar | Sigma | | | result | log(1+loss) | runtime | (observed) | (estim.) | | |======================================================================================| | 21 | Accept | 0.44917 | 1.2512 | 0.037757 | 0.03766 | 8.7818 | | 22 | Accept | 0.040201 | 1.6171 | 0.037757 | 0.037601 | 0.075414 | | 23 | Accept | 0.040142 | 1.581 | 0.037757 | 0.037607 | 0.087198 | | 24 | Accept | 0.29417 | 2.3457 | 0.037757 | 0.03758 | 0.0031018 | | 25 | Accept | 0.29417 | 2.3225 | 0.037757 | 0.037555 | 0.00019545 | | 26 | Accept | 0.29417 | 2.3207 | 0.037757 | 0.037582 | 0.013608 | | 27 | Accept | 0.29417 | 2.3569 | 0.037757 | 0.037556 | 0.00076147 | | 28 | Accept | 0.42162 | 1.3194 | 0.037757 | 0.037854 | 0.6791 | | 29 | Best | 0.037704 | 1.9705 | 0.037704 | 0.037908 | 0.2367 | | 30 | Accept | 0.037725 | 2.0022 | 0.037704 | 0.037881 | 0.21743 | __________________________________________________________ Optimization completed. MaxObjectiveEvaluations of 30 reached. Total function evaluations: 30 Total elapsed time: 74.3299 seconds. Total objective function evaluation time: 57.2206 Best observed feasible point: Sigma ______ 0.2367 Observed objective function value = 0.037704 Estimated objective function value = 0.037881 Function evaluation time = 1.9705 Best estimated feasible point (according to models): Sigma _______ 0.16159 Estimated objective function value = 0.037881 Estimated function evaluation time = 1.8253
Compare los ajustes previos y posteriores a la optimización.
ypred1 = resubPredict(gprMdl1); ypred2 = resubPredict(gprMdl2); figure(); plot(x,y,'r.'); hold on plot(x,ypred1,'b'); plot(x,ypred2,'k','LineWidth',2); xlabel('x'); ylabel('y'); legend({'data','Initial Fit','Optimized Fit'},'Location','Best'); title('Impact of Optimization'); hold off
En este ejemplo se utilizan los datos abulón , , del repositorio de aprendizaje automático de UCI.[1][2][3] Descargue los datos y guárdelos en su carpeta actual con el nombre .abalone.data
Almacene los datos en un archivo .table
Muestre las primeras siete filas.
tbl = readtable('abalone.data','Filetype','text','ReadVariableNames',false);tbl.Properties.VariableNames = {'Sex','Length','Diameter','Height','WWeight','SWeight','VWeight','ShWeight','NoShellRings'}; tbl(1:7,:)
ans = Sex Length Diameter Height WWeight SWeight VWeight ShWeight NoShellRings ___ ______ ________ ______ _______ _______ _______ ________ ____________ 'M' 0.455 0.365 0.095 0.514 0.2245 0.101 0.15 15 'M' 0.35 0.265 0.09 0.2255 0.0995 0.0485 0.07 7 'F' 0.53 0.42 0.135 0.677 0.2565 0.1415 0.21 9 'M' 0.44 0.365 0.125 0.516 0.2155 0.114 0.155 10 'I' 0.33 0.255 0.08 0.205 0.0895 0.0395 0.055 7 'I' 0.425 0.3 0.095 0.3515 0.141 0.0775 0.12 8 'F' 0.53 0.415 0.15 0.7775 0.237 0.1415 0.33 20
El conjunto de datos tiene 4177 observaciones. El objetivo es predecir la edad del abulón a partir de ocho mediciones físicas. La última variable, el número de anillos de vaciado muestra la edad del abulón. El primer predictor es una variable categórica. La última variable de la tabla es la variable de respuesta.
Entrene un modelo GPR validado entre referencias cruzadas utilizando el 25% de los datos para la validación.
rng('default') % For reproducibility cvgprMdl = fitrgp(tbl,'NoShellRings','Standardize',1,'Holdout',0.25);
Calcular la pérdida media en pliegues utilizando modelos entrenados en observaciones fuera de plegado.
kfoldLoss(cvgprMdl)
ans = 4.6409
Predecir las respuestas para los datos fuera de la página.
ypred = kfoldPredict(cvgprMdl);
Trazar las respuestas verdaderas utilizadas para las pruebas y las predicciones.
figure(); plot(ypred(cvgprMdl.Partition.test)); hold on; y = table2array(tbl(:,end)); plot(y(cvgprMdl.Partition.test),'r.'); axis([0 1050 0 30]); xlabel('x') ylabel('y') hold off;
Genere los datos de ejemplo.
rng(0,'twister'); % For reproducibility n = 1000; x = linspace(-10,10,n)'; y = 1 + x*5e-2 + sin(x)./x + 0.2*randn(n,1);
Defina la función de kernel exponencial al cuadrado como una función de kernel personalizada.
Puede calcular la función de kernel exponencial al cuadrado como
Dónde
Por lo tanto, puede definir la función de kernel exponencial al cuadrado como una función de kernel personalizada de la siguiente manera:
kfcn = @(XN,XM,theta) (exp(theta(2))^2)*exp(-(pdist2(XN,XM).^2)/(2*exp(theta(1))^2));
Aquí se calcula la matriz de distancia.pdist2(XN,XM).^2
Ajuste un modelo GPR utilizando la función de kernel personalizada, .kfcn
Especifique los valores iniciales de los parámetros del kernel (Dado que utiliza una función de kernel personalizada, debe proporcionar valores iniciales para el vector de parametrización sin restricciones, ).theta
theta0 = [1.5,0.2]; gprMdl = fitrgp(x,y,'KernelFunction',kfcn,'KernelParameters',theta0);
utiliza derivados analíticos para estimar parámetros cuando se utiliza una función de kernel integrada, mientras que cuando se utiliza una función de kernel personalizada utiliza derivados numéricos.fitrgp
Calcular la pérdida de resustitución para este modelo.
L = resubLoss(gprMdl)
L = 0.0391
Ajuste el modelo GPR utilizando la opción de función de kernel exponencial cuadrada incorporada. Especifique los valores iniciales de los parámetros del kernel (debido a que utiliza la función de kernel personalizada integrada y especifica los valores de los parámetros iniciales, debe proporcionar los valores iniciales para la desviación estándar de la señal y la escala de longitud directamente).
sigmaL0 = exp(1.5); sigmaF0 = exp(0.2); gprMdl2 = fitrgp(x,y,'KernelFunction','squaredexponential','KernelParameters',[sigmaL0,sigmaF0]);
Calcular la pérdida de resustitución para este modelo.
L2 = resubLoss(gprMdl2)
L2 = 0.0391
Los dos valores de pérdida son los mismos que se esperaban.
Entrene un modelo GPR en los datos generados con muchos predictores. Especifique el tamaño de paso inicial para el optimizador LBFGS.
Establezca la semilla y el tipo del generador de números aleatorios para la reproducibilidad de los resultados.
rng(0,'twister'); % For reproducibility
Genere datos de muestra con 300 observaciones y 3000 predictores, donde la variable de respuesta depende de los predictores 4o, 7o y 13o.
N = 300; P = 3000; X = rand(N,P); y = cos(X(:,7)) + sin(X(:,4).*X(:,13)) + 0.1*randn(N,1);
Establezca los valores iniciales para los parámetros del kernel.
sigmaL0 = sqrt(P)*ones(P,1); % Length scale for predictors sigmaF0 = 1; % Signal standard deviation
Establezca la desviación estándar de ruido inicial en .1
sigmaN0 = 1;
Especifique como tolerancia de terminación para la norma de degradado relativo. 1e-2
opts = statset('fitrgp'); opts.TolFun = 1e-2;
Ajuste un modelo GPR utilizando los valores de parámetro sin núcleo iniciales, la desviación estándar de ruido inicial y una función de kernel exponencial cuadrada de determinación de relevancia automática (ARD).
Especifique el tamaño del paso inicial como 1 para determinar la aproximación inicial de Hesse para un optimizador LBFGS.
gpr = fitrgp(X,y,'KernelFunction','ardsquaredexponential','Verbose',1, ... 'Optimizer','lbfgs','OptimizerOptions',opts, ... 'KernelParameters',[sigmaL0;sigmaF0],'Sigma',sigmaN0,'InitialStepSize',1);
o Parameter estimation: FitMethod = Exact, Optimizer = lbfgs o Solver = LBFGS, HessianHistorySize = 15, LineSearchMethod = weakwolfe |====================================================================================================| | ITER | FUN VALUE | NORM GRAD | NORM STEP | CURV | GAMMA | ALPHA | ACCEPT | |====================================================================================================| | 0 | 3.004966e+02 | 2.569e+02 | 0.000e+00 | | 3.893e-03 | 0.000e+00 | YES | | 1 | 9.525779e+01 | 1.281e+02 | 1.003e+00 | OK | 6.913e-03 | 1.000e+00 | YES | | 2 | 3.972026e+01 | 1.647e+01 | 7.639e-01 | OK | 4.718e-03 | 5.000e-01 | YES | | 3 | 3.893873e+01 | 1.073e+01 | 1.057e-01 | OK | 3.243e-03 | 1.000e+00 | YES | | 4 | 3.859904e+01 | 5.659e+00 | 3.282e-02 | OK | 3.346e-03 | 1.000e+00 | YES | | 5 | 3.748912e+01 | 1.030e+01 | 1.395e-01 | OK | 1.460e-03 | 1.000e+00 | YES | | 6 | 2.028104e+01 | 1.380e+02 | 2.010e+00 | OK | 2.326e-03 | 1.000e+00 | YES | | 7 | 2.001849e+01 | 1.510e+01 | 9.685e-01 | OK | 2.344e-03 | 1.000e+00 | YES | | 8 | -7.706109e+00 | 8.340e+01 | 1.125e+00 | OK | 5.771e-04 | 1.000e+00 | YES | | 9 | -1.786074e+01 | 2.323e+02 | 2.647e+00 | OK | 4.217e-03 | 1.250e-01 | YES | | 10 | -4.058422e+01 | 1.972e+02 | 6.796e-01 | OK | 7.035e-03 | 1.000e+00 | YES | | 11 | -7.850209e+01 | 4.432e+01 | 8.335e-01 | OK | 3.099e-03 | 1.000e+00 | YES | | 12 | -1.312162e+02 | 3.334e+01 | 1.277e+00 | OK | 5.432e-02 | 1.000e+00 | YES | | 13 | -2.005064e+02 | 9.519e+01 | 2.828e+00 | OK | 5.292e-03 | 1.000e+00 | YES | | 14 | -2.070150e+02 | 1.898e+01 | 1.641e+00 | OK | 6.817e-03 | 1.000e+00 | YES | | 15 | -2.108086e+02 | 3.793e+01 | 7.685e-01 | OK | 3.479e-03 | 1.000e+00 | YES | | 16 | -2.122920e+02 | 7.057e+00 | 1.591e-01 | OK | 2.055e-03 | 1.000e+00 | YES | | 17 | -2.125610e+02 | 4.337e+00 | 4.818e-02 | OK | 1.974e-03 | 1.000e+00 | YES | | 18 | -2.130162e+02 | 1.178e+01 | 8.891e-02 | OK | 2.856e-03 | 1.000e+00 | YES | | 19 | -2.139378e+02 | 1.933e+01 | 2.371e-01 | OK | 1.029e-02 | 1.000e+00 | YES | |====================================================================================================| | ITER | FUN VALUE | NORM GRAD | NORM STEP | CURV | GAMMA | ALPHA | ACCEPT | |====================================================================================================| | 20 | -2.151111e+02 | 1.550e+01 | 3.015e-01 | OK | 2.765e-02 | 1.000e+00 | YES | | 21 | -2.173046e+02 | 5.856e+00 | 6.537e-01 | OK | 1.414e-02 | 1.000e+00 | YES | | 22 | -2.201781e+02 | 8.918e+00 | 8.484e-01 | OK | 6.381e-03 | 1.000e+00 | YES | | 23 | -2.288858e+02 | 4.846e+01 | 2.311e+00 | OK | 2.661e-03 | 1.000e+00 | YES | | 24 | -2.392171e+02 | 1.190e+02 | 6.283e+00 | OK | 8.113e-03 | 1.000e+00 | YES | | 25 | -2.511145e+02 | 1.008e+02 | 1.198e+00 | OK | 1.605e-02 | 1.000e+00 | YES | | 26 | -2.742547e+02 | 2.207e+01 | 1.231e+00 | OK | 3.191e-03 | 1.000e+00 | YES | | 27 | -2.849931e+02 | 5.067e+01 | 3.660e+00 | OK | 5.184e-03 | 1.000e+00 | YES | | 28 | -2.899797e+02 | 2.068e+01 | 1.162e+00 | OK | 6.270e-03 | 1.000e+00 | YES | | 29 | -2.916723e+02 | 1.816e+01 | 3.213e-01 | OK | 1.415e-02 | 1.000e+00 | YES | | 30 | -2.947674e+02 | 6.965e+00 | 1.126e+00 | OK | 6.339e-03 | 1.000e+00 | YES | | 31 | -2.962491e+02 | 1.349e+01 | 2.352e-01 | OK | 8.999e-03 | 1.000e+00 | YES | | 32 | -3.004921e+02 | 1.586e+01 | 9.880e-01 | OK | 3.940e-02 | 1.000e+00 | YES | | 33 | -3.118906e+02 | 1.889e+01 | 3.318e+00 | OK | 1.213e-01 | 1.000e+00 | YES | | 34 | -3.189215e+02 | 7.086e+01 | 3.070e+00 | OK | 8.095e-03 | 1.000e+00 | YES | | 35 | -3.245557e+02 | 4.366e+00 | 1.397e+00 | OK | 2.718e-03 | 1.000e+00 | YES | | 36 | -3.254613e+02 | 3.751e+00 | 6.546e-01 | OK | 1.004e-02 | 1.000e+00 | YES | | 37 | -3.262823e+02 | 4.011e+00 | 2.026e-01 | OK | 2.441e-02 | 1.000e+00 | YES | | 38 | -3.325606e+02 | 1.773e+01 | 2.427e+00 | OK | 5.234e-02 | 1.000e+00 | YES | | 39 | -3.350374e+02 | 1.201e+01 | 1.603e+00 | OK | 2.674e-02 | 1.000e+00 | YES | |====================================================================================================| | ITER | FUN VALUE | NORM GRAD | NORM STEP | CURV | GAMMA | ALPHA | ACCEPT | |====================================================================================================| | 40 | -3.379112e+02 | 5.280e+00 | 1.393e+00 | OK | 1.177e-02 | 1.000e+00 | YES | | 41 | -3.389136e+02 | 3.061e+00 | 7.121e-01 | OK | 2.935e-02 | 1.000e+00 | YES | | 42 | -3.401070e+02 | 4.094e+00 | 6.224e-01 | OK | 3.399e-02 | 1.000e+00 | YES | | 43 | -3.436291e+02 | 8.833e+00 | 1.707e+00 | OK | 5.231e-02 | 1.000e+00 | YES | | 44 | -3.456295e+02 | 5.891e+00 | 1.424e+00 | OK | 3.772e-02 | 1.000e+00 | YES | | 45 | -3.460069e+02 | 1.126e+01 | 2.580e+00 | OK | 3.907e-02 | 1.000e+00 | YES | | 46 | -3.481756e+02 | 1.546e+00 | 8.142e-01 | OK | 1.565e-02 | 1.000e+00 | YES | Infinity norm of the final gradient = 1.546e+00 Two norm of the final step = 8.142e-01, TolX = 1.000e-12 Relative infinity norm of the final gradient = 6.016e-03, TolFun = 1.000e-02 EXIT: Local minimum found. o Alpha estimation: PredictMethod = Exact
Debido a que el modelo GPR utiliza un kernel ARD con muchos predictores, el uso de una aproximación LBFGS al Hessian es más eficiente en memoria que almacenar la matriz completa de Hesse. Además, el uso del tamaño del paso inicial para determinar la aproximación inicial de Hesse puede ayudar a acelerar la optimización.
Encuentre los pesos del predictor tomando el exponencial de las escalas de longitud aprendidas negativas. Normalizar los pesos.
sigmaL = gpr.KernelInformation.KernelParameters(1:end-1); % Learned length scales weights = exp(-sigmaL); % Predictor weights weights = weights/sum(weights); % Normalized predictor weights
Trazar los pesos del predictor normalizado.
figure; semilogx(weights,'ro'); xlabel('Predictor index'); ylabel('Predictor weight');
El modelo GPR entrenado asigna los pesos más grandes a los predictores 4o, 7o y 13o. Los predictores irrelevantes tienen pesos cercanos a cero.
Tbl
— Datos de muestratable
Datos de ejemplo utilizados para entrenar el modelo, especificados como un archivo .table
Cada fila de corresponde a una observación y cada columna corresponde a una variable. contiene las variables predictoras y, opcionalmente, también puede contener una columna para la variable de respuesta.Tbl
Tbl
No se permiten variables de varias columnas y 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 .Tbl
ResponseVarName
Si contiene la variable de respuesta y desea utilizar solo un subconjunto de los predictores en el entrenamiento del modelo, especifique la variable de respuesta y las variables predictoras mediante .Tbl
Fórmula
Si no contiene la variable de respuesta, especifique una variable de respuesta mediante .Tbl
y
La longitud de la variable de respuesta y el número de filas deben ser iguales.Tbl
Para obtener más información sobre el tipo de datos, consulte .table
table
Si los datos del predictor contienen variables categóricas, el software utiliza la codificación ficticia completa para estas variables. El software crea una variable ficticia para cada nivel de la variable categórica.
Tipos de datos: table
ResponseVarName
— Nombre de la variable de respuestaTbl
Nombre de la variable de respuesta, especificado como el nombre de una variable en .Tbl
Debe especificar como vector de caracteres o escalar de cadena.ResponseVarName
Por ejemplo, si la variable de respuesta se almacena en (as ), escórbela como .y
Tbl
Tbl.y
'y'
De lo contrario, el software trata todas las columnas de , incluyendo , como predictores al entrenar el modelo.Tbl
y
Tipos de datos: char
| string
formula
— Respuesta y variables predictoras a utilizar en el entrenamiento de modelos'y~x1+x2+x3'
Variables de respuesta y predictor que se utilizarán en el entrenamiento del modelo, especificadas como vector de caracteres o escalar de cadena en forma de .'y~x1+x2+x3'
En este formulario, representa la variable de respuesta; , , representan las variables predictoras que se utilizarán en el entrenamiento del modelo.y
x1
x2
x3
Utilice una fórmula si desea especificar un subconjunto de variables como predictores para utilizarales al entrenar el modelo.Tbl
Si especifica una fórmula, las variables que no aparecen en no se utilizan para entrenar el modelo.Fórmula
Los nombres de variable de la fórmula deben ser ambos nombres de variable en ( ) como identificadores válidos.Tbl
Tbl.Properties.VariableNames
MATLAB®
Puede verificar los nombres de las variables mediante la función.Tbl
isvarname
El código siguiente devuelve logical ( ) para cada variable que tiene un nombre de variable válido.1
true
Si los nombres de variable en no son válidos, a continuación, convertirlos mediante la función.
cellfun(@isvarname,Tbl.Properties.VariableNames)
Tbl
matlab.lang.makeValidName
Tbl.Properties.VariableNames = matlab.lang.makeValidName(Tbl.Properties.VariableNames);
La fórmula no indica la forma del archivo .BasisFunction
Ejemplo: identifica la variable como la variable de respuesta y como variables predictoras.'PetalLength~PetalWidth+Species'
PetalLength
PetalWidth
Species
Tipos de datos: char
| string
X
— Datos del predictor para el modelo GPRDatos del predictor para el modelo GPR, especificados como una matriz -by-. es el número de observaciones (filas), y es el número de predictores (columnas).ndnd
La longitud y el número de filas de debe ser igual.y
X
Para especificar los nombres de los predictores en el orden de su aparición en , utilice el argumento de par nombre-valor.X
PredictorNames
Tipos de datos: double
y
— Datos de respuesta para el modelo GPRDatos de respuesta para el modelo GPR, especificados como un vector -by-1.n Puede omitir si proporciona los datos de entrenamiento que también incluyen .y
Tbl
y
En ese caso, se utiliza para identificar la variable de respuesta o utilizar para identificar las variables de respuesta y predictor.ResponseVarName
Fórmula
Tipos de datos: double
Especifique pares opcionales separados por comas de argumentos. es el nombre del argumento y es el valor correspondiente. deben aparecer entre comillas.Name,Value
Name
Value
Name
Puede especificar varios argumentos de par de nombre y valor en cualquier orden como .Name1,Value1,...,NameN,ValueN
'FitMethod','sr','BasisFunction','linear','ActiveSetMethod','sgma','PredictMethod',fic'
Nota
No puede utilizar ningún argumento de par nombre-valor de validación cruzada junto con el argumento de par nombre-valor.'OptimizeHyperparameters'
Puede modificar la validación cruzada solo mediante el argumento de par nombre-valor.'OptimizeHyperparameters'
'HyperparameterOptimizationOptions'
'FitMethod'
— Método para estimar los parámetros del modelo GPR'none'
| 'exact'
| 'sd'
| 'sr'
| 'fic'
Método para estimar los parámetros del modelo GPR, especificado como el par separado por comas que consta de y uno de los siguientes.'FitMethod'
Método de ajuste | Descripción |
---|---|
'none' | Sin estimación, utilice los valores de parámetro iniciales como valores de parámetro conocidos. |
'exact' | Regresión exacta del proceso gaussiano. Por defecto si es 2000, ¿dónde está el número de observaciones.nn |
'sd' | Subconjunto de aproximación de puntos de datos. Predeterminado si > 2000, donde está el número de observaciones.nn |
'sr' | Subconjunto de aproximaciones de regresores. |
'fic' | Aproximación condicional totalmente independiente. |
Ejemplo: 'FitMethod','fic'
'BasisFunction'
— Base explícita en el modelo GPR'constant'
(predeterminado) | 'none'
| 'linear'
| 'pureQuadratic'
| manija de la funciónBase explícita en el modelo GPR, especificada como el par separado por comas que consta de y uno de los siguientes.'BasisFunction'
Si es el número de observaciones, la función base añade el términon H*β al modelo, donde H es la matriz base y
β es un vector -by-1 de coeficientes base.p
Base explícita | Matriz de base |
---|---|
'none' | Matriz vacía. |
'constant' |
( -por-1 vector de 1s, donde está el número de observaciones)nn |
'linear' |
|
'pureQuadratic' |
Dónde
|
Mango de función |
Identificador de función, , que llama como: donde es una matriz -por- de predictores y es una matriz -por- de funciones base. |
Ejemplo: 'BasisFunction','pureQuadratic'
Tipos de datos: char
| string
| function_handle
'Beta'
— Valor inicial de los coeficientesValor inicial de los coeficientes para la base explícita, especificado como el par separado por comas que consiste en un vector y -por-1, donde está el número de columnas en la matriz base'Beta'
pp H.
La matriz de base depende de la elección de la función de base explícita de la siguiente manera (véase también ).BasisFunction
utiliza los valores iniciales del coeficiente como los valores de coeficiente conocidos, sólo cuando es .fitrgp
FitMethod
'none'
Tipos de datos: double
'Sigma'
— Valor inicial para la desviación estándar de ruido del modelo de proceso gaussianostd
(y
)/sqrt(2)
(predeterminado) | valor escalar positivoValor inicial para la desviación estándar de ruido del modelo de proceso gaussiano, especificado como el par separado por comas que consta de un valor escalar positivo.'Sigma'
Ejemplo: 'Sigma',2
Tipos de datos: double
'ConstantSigma'
— Valor constante de la desviación estándar de ruido del modelo de proceso gaussianoSigma
false
(predeterminado) | true
Valor constante de la desviación estándar de ruido del modelo de proceso gaussiano, especificado como un escalar lógico.Sigma
When is , no optimiza el valor de , sino que toma el valor inicial como valor en sus cálculos.ConstantSigma
true
fitrgp
Sigma
Ejemplo: 'ConstantSigma',true
Tipos de datos: logical
'SigmaLowerBound'
— Límite inferior en la desviación estándar de ruido1e-2*std
(y
) (predeterminado) | valor escalar positivoLímite inferior en la desviación estándar de ruido, especificado como el par separado por comas que consta de y un valor escalar positivo.'SigmaLowerBound'
Ejemplo: 'SigmaLowerBound',0.02
Tipos de datos: double
'CategoricalPredictors'
— Lista de predictores categóricos'all'
Lista de predictores categóricos, especificada como el par separado por comas que consta de y uno de los valores de esta tabla.'CategoricalPredictors'
Valor | Descripción |
---|---|
Vector de enteros positivos | Cada entrada del vector es un valor de índice correspondiente a la columna de los datos predictores ( o ) que contiene una variable categórica.X Tbl |
Vector lógico | Una entrada significa que la columna correspondiente de datos predictores ( o ) es una variable categórica.true X Tbl |
Matriz de caracteres | Cada fila de la matriz es el nombre de una variable predictora. Los nombres deben coincidir con las entradas de .PredictorNames Rellena los nombres con espacios en blanco adicionales para que cada fila de la matriz de caracteres tenga la misma longitud. |
Matriz de cadenas o matriz de celdas de vectores de caracteres | Cada elemento de la matriz es el nombre de una variable predictora. Los nombres deben coincidir con las entradas de .PredictorNames |
'todos' | Todos los predictores son categóricos. |
De forma predeterminada, si los datos del predictor están en una tabla ( ),Tbl
fitrgp
supone que una variable es categórica si es un vector lógico, vector categórico, matriz de caracteres, matriz de cadenas o matriz de celdas de vectores de caracteres. Si los datos del predictor son una matriz ( ),X
fitrgp
asume que todos los predictores son continuos. Para identificar cualquier otro predictor como predictores categóricos, escépéscalos mediante el argumento de par nombre-valor.'CategoricalPredictors'
Para los predictores categóricos identificados, fitrgp
crea variables ficticias utilizando dos esquemas diferentes, dependiendo de si una variable categórica está desordenada u ordenada. Para obtener más información, consulte .Automatic Creation of Dummy Variables
Ejemplo: 'CategoricalPredictors','all'
Tipos de datos: single
| double
| logical
| char
| string
| cell
'Standardize'
— Indicador para estandarizar datos0 (false)
(predeterminado) | valor lógicoIndicador para estandarizar datos, especificado como el par separado por comas que consta de y un valor lógico.'Standardize'
Si establece , el software centra y escala cada columna de los datos del predictor, por la media de columna y la desviación estándar, respectivamente.'Standardize',1
El software no estandariza los datos contenidos en las columnas de variables ficticias que genera para los predictores categóricos.
Ejemplo: 'Standardize',1
Ejemplo: 'Standardize',true
Tipos de datos: logical
'Regularization'
— Desviación estándar de regularización1e-2*std
(y
) (predeterminado) | valor escalar positivoDesviación estándar de regularización para métodos dispersos subconjunto de regresores ( ) y condicional totalmente independiente ( ), especificado como el par separado por comas que consta de y un valor escalar positivo.'sr'
'fic'
'Regularization'
Ejemplo: 'Regularization',0.2
Tipos de datos: double
'ComputationMethod'
— Método para calcular la probabilidad y el gradiente del registro'qr'
(predeterminado) | 'v'
Método para calcular la probabilidad de registro y el gradiente para la estimación de parámetros utilizando subconjunto según ( ) y métodos de aproximación condicional totalmente independientes ( ), especificados como el par separado por comas que consta de y uno de los siguientes.'sr'
'fic'
'ComputationMethod'
— Utilice el enfoque basado en la factorización QR, esta opción proporciona una mejor precisión.'qr'
— Utilice el enfoque basado en el método V.'v'
Esta opción proporciona un cálculo más rápido de los gradientes de probabilidad de registro.
Ejemplo: 'ComputationMethod','v'
'KernelFunction'
— Forma de la función de covarianza'squaredexponential'
(predeterminado) | 'exponential'
| 'matern32'
| 'matern52'
| 'rationalquadratic'
| 'ardsquaredexponential'
| 'ardexponential'
| 'ardmatern32'
| 'ardmatern52'
| 'ardrationalquadratic'
| manija de la funciónForma de la función de covarianza, especificada como el par separado por comas que consta de y uno de los siguientes.'KernelFunction'
Función | Descripción |
---|---|
'exponential' | Kernel exponencial. |
'squaredexponential' | Núcleo exponencial cuadrado. |
'matern32' | Núcleo Matern con parámetro 3/2. |
'matern52' | Núcleo Matern con parámetro 5/2. |
'rationalquadratic' | Núcleo cuadrático racional. |
'ardexponential' | Núcleo exponencial con una escala de longitud separada por predictor. |
'ardsquaredexponential' | Núcleo exponencial cuadrado con una escala de longitud separada por predictor. |
'ardmatern32' | Núcleo Matern con parámetro 3/2 y una escala de longitud separada por predictor. |
'ardmatern52' | Núcleo Matern con parámetro 5/2 y una escala de longitud separada por predictor. |
'ardrationalquadratic' | Núcleo cuadrático racional con una escala de longitud separada por predictor. |
Mango de función | Un identificador de función que se puede llamar así: ¿dónde hay una matriz -by-, es una matriz -by- y es una matriz -by- de productos de núcleo de tal manera que ( , ) es el producto del núcleo entre ( ,:) y ( ,:). es el vector de parámetros sin restricciones -by-1 para .Kmn = kfcn(Xm,Xn,theta) Xm mdXn ndKmn mnKmn ijXm iXn jtheta rkfcn |
Para obtener más información sobre las funciones del kernel, consulte .Kernel (Covariance) Function Options
Ejemplo: 'KernelFunction','matern32'
Tipos de datos: char
| string
| function_handle
'KernelParameters'
— Valores iniciales para los parámetros del kernelValores iniciales para los parámetros del kernel, especificados como el par separado por comas que consta de un vector y un vector.'KernelParameters'
El tamaño del vector y los valores dependen de la forma de la función de covarianza, especificada por el argumento de par nombre-valor.KernelFunction
'KernelFunction' | 'KernelParameters' |
---|---|
or or or'exponential' 'squaredexponential' 'matern32' 'matern52' | 2 por 1 vector, donde contiene la escala de longitud y contiene la desviación estándar de la señal.phi phi(1) phi(2) El valor inicial predeterminado del parámetro de escala de longitud es la media de las desviaciones estándar de los predictores, y la desviación estándar de la señal es la desviación estándar de las respuestas divididas por la raíz cuadrada de 2.Es decir phi = [mean(std(X));std(y)/sqrt(2)] |
'rationalquadratic' | 3 por 1 vector , donde contiene la escala de longitud, contiene el parámetro escala-mezcla y contiene la desviación estándar de la señal.phi phi(1) phi(2) phi(3) El valor inicial predeterminado del parámetro de escala de longitud es la media de las desviaciones estándar de los predictores, y la desviación estándar de la señal es la desviación estándar de las respuestas divididas por la raíz cuadrada de 2.El valor inicial predeterminado para el parámetro scale-mixture es 1. Es decir phi = [mean(std(X));1;std(y)/sqrt(2)] |
or or or'ardexponential' 'ardsquaredexponential' 'ardmatern32' 'ardmatern52' | ( +1)-por-1 vector , donde contiene la escala de longitud para el predictor y contiene la desviación estándar de la señal. es el número de variables predictoras.dphi phi(i) iphi(d+1) d El valor inicial predeterminado de los parámetros de escala de longitud son las desviaciones estándar de los predictores y la desviación estándar de la señal es la desviación estándar de las respuestas divididas por la raíz cuadrada de 2.Es decir phi = [std(X)';std(y)/sqrt(2)] |
'ardrationalquadratic' | ( +2)-por-1 vector , donde contiene la escala de longitud para el predictor , contiene el parámetro de mezcla de escala y contiene la desviación estándar de la señal. El valor inicial predeterminado de los parámetros de escala de longitud son las desviaciones estándar de los predictores y la desviación estándar de la señal es la desviación estándar de las respuestas divididas por la raíz cuadrada de 2.dphi phi(i) iphi(d+1) phi(d+2) El valor inicial predeterminado para el parámetro scale-mixture es 1. Es decir phi = [std(X)';1;std(y)/sqrt(2)] |
Mango de función | -by-1 vector como valor inicial del vector de parámetros sin restricciones para la función de kernel personalizada.rphi kfcn Cuando es un identificador de función, debe proporcionar valores iniciales para los parámetros del kernel.KernelFunction |
Para obtener más información sobre las funciones del kernel, consulte .Kernel (Covariance) Function Options
Ejemplo: 'KernelParameters',theta
Tipos de datos: double
'DistanceMethod'
— Método para calcular distancias entre puntos'fast'
(predeterminado) | 'accurate'
Método para calcular distancias entre puntos para evaluar las funciones del kernel integradas, especificadas como el par separado por comas que consta de y o . Calcula'DistanceMethod'
'fast'
'accurate'
fitrgp
Como cuando usted elige la opción y comofast
cuando elija la opción.accurate
Ejemplo: 'DistanceMethod','accurate'
'ActiveSet'
— Observaciones en el conjunto activo[]
(predeterminado) | -por-1 vector de enteros que van de 1 a ( )mnmn | vector lógico de longitudnObservaciones en el conjunto activo, especificados como el par separado por comas que consta de un vector -by-1 de enteros que van de 1 a ( ) o un vector lógico de longitud con al menos un elemento. es el número total de observaciones en los datos de entrenamiento.'ActiveSet'
mnmnntrue
n
utiliza las observaciones indicadas por para entrenar el modelo GPR.fitrgp
ActiveSet
El conjunto activo no puede tener elementos duplicados.
Si suministra , entonces:ActiveSet
no utiliza y .fitrgp
ActiveSetSize
ActiveSetMethod
No puede realizar la validación cruzada en este modelo.
Tipos de datos: double
| logical
'ActiveSetSize'
— Tamaño del conjunto activo para métodos dispersosTamaño del conjunto activo para los métodos dispersos ( , , ), especificado como el par separado por comas que consta de y un entero, 1 , , donde está el número de observaciones.'sd'
'sr'
'fic'
'ActiveSetSize'
mmnn
El valor predeterminado es min(1000, ) when is or , y min(2000, ), otherwise.nFitMethod
'sr'
'fic'
n
Ejemplo: 'ActiveSetSize',100
Tipos de datos: double
'ActiveSetMethod'
— Método de selección de conjunto activo'random'
(predeterminado) | 'sgma'
| 'entropy'
| 'likelihood'
Método de selección de conjunto activo, especificado como el par separado por comas que consta de y uno de los siguientes.'ActiveSetMethod'
Método | Descripción |
---|---|
'random' | Selección aleatoria |
'sgma' | Aproximación de matriz codiciosa dispersa |
'entropy' | Selección diferencial basada en entropía |
'likelihood' | Subconjunto de regresores registran la selección basada en la probabilidad |
Todos los métodos de selección de conjuntos activos (excepto ) requieren el almacenamiento de una matriz -by-, donde está el tamaño del conjunto activo y es el número de observaciones.'random'
nmmn
Ejemplo: 'ActiveSetMethod','entropy'
'RandomSearchSetSize'
— Tamaño del conjunto de búsqueda aleatoriaTamaño del conjunto de búsqueda aleatoria por inclusión expansiva para la selección de conjuntos activos, especificado como el par separado por comas que consta de y un valor entero.'RandomSearchSetSize'
Ejemplo: 'RandomSearchSetSize',30
Tipos de datos: double
'ToleranceActiveSet'
— Tolerancia relativa para finalizar la selección del conjunto activoTolerancia relativa para terminar la selección de conjuntos activos, especificada como el par separado por comas que consta de un valor escalar positivo y un valor escalar positivo.'ToleranceActiveset'
Ejemplo: 'ToleranceActiveset',0.0002
Tipos de datos: double
'NumActiveSetRepeats'
— Número de repeticionesNúmero de repeticiones para cuando no es , especificado como el par separado por comas que consta de y un valor entero.selección de conjuntos activos intercalados y estimación de parámetrosActiveSetMethod
'random'
'NumActiveSetRepeats'
Ejemplo: 'NumActiveSetRepeats',5
Tipos de datos: double
'PredictMethod'
— Método utilizado para hacer predicciones'exact'
| 'bcd'
| 'sd'
| 'sr'
| 'fic'
Método utilizado para realizar predicciones a partir de un modelo de proceso gaussiano dados los parámetros, especificados como el par separado por comas que consta de y uno de los siguientes.'PredictMethod'
Método | Descripción |
---|---|
'exact' | Método exacto de regresión del proceso gaussiano. Predeterminado, si es 10000.n |
'bcd' | Descenso de coordenadas de bloque. Predeterminado, si > 10000.n |
'sd' | Subconjunto de aproximación de puntos de datos. |
'sr' | Subconjunto de aproximación de Regressores. |
'fic' | Aproximación condicional totalmente independiente. |
Ejemplo: 'PredictMethod','bcd'
'BlockSizeBCD'
— Tamaño del bloqueTamaño de bloque para el método de descenso de coordenadas de bloque ( ), especificado como el par separado por comas que consta de y un entero en el rango de 1 a , donde está el número de observaciones.'bcd'
'BlockSizeBCD'
nn
Ejemplo: 'BlockSizeBCD',1500
Tipos de datos: double
'NumGreedyBCD'
— Número de selecciones codiciosasBlockSizeBCD
(predeterminado) | valor entero en el rango de 1 aBlockSizeBCD
Número de selecciones expansivas para el método de descenso de coordenadas de bloque ( ), especificado como el par separado por comas que consta de y un entero en el intervalo de 1 a .'bcd'
'NumGreedyBCD'
BlockSizeBCD
Ejemplo: 'NumGreedyBCD',150
Tipos de datos: double
'ToleranceBCD'
— Tolerancia relativa a la norma de gradiente1e-3
(predeterminado) | escalar positivoTolerancia relativa en la norma de degradado para terminar iteraciones del método de descenso de coordenadas de bloque ( ), especificada como el par separado por comas que consta de un escalar positivo.'bcd'
'ToleranceBCD'
Ejemplo: 'ToleranceBCD',0.002
Tipos de datos: double
'StepToleranceBCD'
— Tolerancia absoluta en el tamaño del escalón1e-3
(predeterminado) | escalar positivoTolerancia absoluta en el tamaño del paso para terminar las iteraciones del método de descenso de coordenadas de bloque ( ), especificada como el par separado por comas que consta de un escalar positivo.'bcd'
'StepToleranceBCD'
Ejemplo: 'StepToleranceBCD',0.002
Tipos de datos: double
'IterationLimitBCD'
— Número máximo de iteraciones BCD1000000
(predeterminado) | valor enteroNúmero máximo de iteraciones del método de descenso de coordenadas de bloque ( ), especificado como el par separado por comas que consta de un valor entero y un valor entero.'bcd'
'IterationLimitBCD'
Ejemplo: 'IterationLimitBCD',10000
Tipos de datos: double
'Optimizer'
— Optimizador que se utilizará para la estimación de parámetros'quasinewton'
(predeterminado) | 'lbfgs'
| 'fminsearch'
| 'fminunc'
| 'fmincon'
Optimizador que se utilizará para la estimación de parámetros, especificado como el par separado por comas que consta de y uno de los valores de esta tabla.'Optimizer'
Valor | Descripción |
---|---|
'quasinewton' | Densa, simétrica basada en el rango 1, aproximación cuasi-Newton al Hessian |
'lbfgs' | Aproximación cuasi-Newton basada en LBFGS al Hessian |
'fminsearch' | Optimización no lineal sin restricciones utilizando el método de búsqueda simplex de Lagarias et al. [5] |
'fminunc' | Optimización no lineal sin restricciones (requiere una licencia)Optimization Toolbox™ |
'fmincon' | Optimización no lineal restringida (requiere una licencia)Optimization Toolbox |
Para obtener más información sobre los optimizadores, consulte .Algoritmos
Ejemplo: 'Optimizer','fmincon'
'OptimizerOptions'
— Opciones para el optimizadorOpciones para el optimizador que elija mediante el argumento de par nombre-valor, especificado como el par separado por comas que consta de y una estructura u objeto creado por , , o .Optimizer
'OptimizerOptions'
optimset
statset('fitrgp')
optimoptions
Optimizer | Crear opciones de optimizador mediante |
---|---|
'fminsearch' | (estructura)optimset |
O'quasinewton' 'lbfgs' | (estructura)statset('fitrgp') |
O'fminunc' 'fmincon' | (objeto)optimoptions |
Las opciones predeterminadas dependen del tipo de optimizador.
Ejemplo: 'OptimizerOptions',opt
'InitialStepSize'
— Tamaño del paso inicial[]
(predeterminado) | escalar positivo real | 'auto'
Tamaño de paso inicial, especificado como el par separado por comas que consta de un escalar o .'InitialStepSize'
'auto'
es el valor absoluto máximo aproximado del primer paso de optimización cuando el optimizador es o .'InitialStepSize'
'quasinewton'
'lbfgs'
El tamaño del paso inicial puede determinar la aproximación inicial de Hesse durante la optimización.
De forma predeterminada, no utiliza el tamaño de paso inicial para determinar la aproximación inicial de Hesse.fitrgp
Para utilizar el tamaño de paso inicial, establezca un valor para el argumento de par nombre-valor o especifique que se determine un valor automáticamente.'InitialStepSize'
'InitialStepSize','auto'
fitrgp
Para obtener más información sobre , consulte .'auto'
Algoritmos
Ejemplo: 'InitialStepSize','auto'
'CrossVal'
— Indicador de validación cruzada'off'
(predeterminado) | 'on'
Indicador de validación cruzada, especificado como el par separado por comas que consta de y uno o .'CrossVal'
'off'
'on'
Si es así, devuelve un modelo GPR validado con 10 pliegues.'on'
fitrgp
Puede utilizar uno de los argumentos de par , , o nombre-valor para cambiar la configuración de validación cruzada predeterminada.KFold
Holdout
Leaveout
CVPartition
Solo puede utilizar uno de estos pares nombre-valor a la vez.
Como alternativa, puede utilizar el método para el modelo.crossval
Ejemplo: 'CrossVal','on'
'CVPartition'
— Partición aleatoria para una validación cruzada estratificada -foldkcvpartition
Partición aleatoria para una validación cruzada de plegado estratificado, especificada como el par separado por comas que consta de y un objeto.k'CVPartition'
cvpartition
Ejemplo: utiliza la partición aleatoria definida por .'CVPartition',cvp
cvp
Si especifica , no puede especificar , , o .CVPartition
Holdout
KFold
Leaveout
'Holdout'
— Fracción de datos a utilizar para pruebasFracción de los datos que se van a utilizar para las pruebas en la validación de retención, especificada como el par separado por comas que consta de y un valor escalar en el intervalo de 0 a 1.'Holdout'
Si especifica , el software:'Holdout',p
1.
Reserva aleatoriamente alrededor del *100% de los datos como datos de validación y entrena el modelo utilizando el resto de los datos 2.p
Almacena el modelo compacto y entrenado en .cvgprMdl.Trained
Ejemplo: utiliza el 30% de los datos para las pruebas y el 70% de los datos para la formación.'Holdout', 0.3
Si especifica , no puede especificar , , o .Holdout
CVPartition
KFold
Leaveout
Tipos de datos: double
'KFold'
— Número de plieguesNúmero de pliegues que se van a utilizar en el modelo GPR validado entre referencias cruzadas, especificado como el par separado por comas que consta de un valor entero positivo. debe ser mayor que 1.'KFold'
KFold
Si especifica entonces el software:'KFold',k
1.
Particione aleatoriamente los datos en conjuntos. 2.k
Para cada conjunto, reserva el conjunto como datos de prueba y entrena el modelo utilizando los conjuntos otro – 1. 3.k
Almacena los modelos compactos y entrenados en las celdas de una matriz de celdas -by-1 en .kkcvgprMdl.Trained
Ejemplo: utiliza 5 pliegues en la validación cruzada.'KFold',5
Es decir, para cada pliegue, utiliza ese pliegue como datos de prueba y entrena el modelo en los 4 pliegues restantes.
Si especifica , no puede especificar , , o .KFold
CVPartition
Holdout
Leaveout
Tipos de datos: double
'Leaveout'
— Indicador de validación cruzada de dejar una sola vez'off'
(predeterminado) | 'on'
Indicador de validación cruzada de salida uno, especificado como el par separado por comas que consta de y , o .'Leaveout'
'off'
'on'
Si especifica , entonces, para cada una de las observaciones, el software: 1.'Leaveout','on'
n
Reserva la observación como datos de prueba, y entrena el modelo utilizando las otras observaciones – 1. 2.n
Almacena el modelo compacto y entrenado en una celda en la matriz de celdas -by-1 .ncvgprMdl.Trained
Ejemplo: 'Leaveout','on'
Si especifica , no puede especificar , , o .Leaveout
CVPartition
Holdout
KFold
'OptimizeHyperparameters'
— Parámetros para optimizar'none'
(predeterminado) | 'auto'
| 'all'
| matriz de cadenas o matriz de celdas de nombres de parámetros elegibles | vector de objetosoptimizableVariable
Parámetros para optimizar, especificados como el par separado por comas que consta de y uno de los siguientes:'OptimizeHyperparameters'
— No optimizar.'none'
— Utilice .'auto'
{'Sigma'}
— Optimizar todos los parámetros admisibles, equivalentes a .'all'
{'BasisFunction','KernelFunction','KernelScale','Sigma','Standardize'}
Matriz de cadenas o matriz de celdas de nombres de parámetros elegibles.
Vector de objetos, normalmente la salida de .optimizableVariable
hyperparameters
La optimización intenta minimizar la pérdida de validación cruzada (error) para variar los parámetros.fitrgp
Para obtener información sobre la pérdida de validación cruzada (aunque en un contexto diferente), consulte .Classification Loss Para controlar el tipo de validación cruzada y otros aspectos de la optimización, utilice el par nombre-valor.HyperparameterOptimizationOptions
Nota
los valores reemplazan los valores que establezca utilizando otros argumentos de par nombre-valor.'OptimizeHyperparameters'
Por ejemplo, establecer para hacer que se apliquen los valores.'OptimizeHyperparameters'
'auto'
'auto'
Los parámetros elegibles para son:fitrgp
— búsquedas entre , , , y .BasisFunction
fitrgp
'constant'
'none'
'linear'
'pureQuadratic'
— búsquedas entre , , , , , , , , y .KernelFunction
fitrgp
'ardexponential'
'ardmatern32'
'ardmatern52'
'ardrationalquadratic'
'ardsquaredexponential'
'exponential'
'matern32'
'matern52'
'rationalquadratic'
'squaredexponential'
: utiliza el argumento para especificar el valor del parámetro de escala del núcleo, que se mantiene constante durante el ajuste.KernelScale
fitrgp
KernelParameters
En este caso, todas las dimensiones de entrada están restringidas para tener el mismo valor. búsquedas entre el valor real en el rango, dondeKernelScale
fitrgp
[1e-3*MaxPredictorRange,MaxPredictorRange]
MaxPredictorRange = max(max(X) - min(X))
.
no se puede optimizar para ninguno de los kernels ARD.KernelScale
— búsquedas entre el valor real en el rango , dondeSigma
fitrgp
[1e-4, max(1e-3,10*ResponseStd)]
ResponseStd = std(y)
.
Internamente, establece el par nombre-valor en para que el valor de sea constante durante el empalme.fitrgp
ConstantSigma
true
Sigma
— búsquedas entre y .Standardize
fitrgp
true
false
Establezca parámetros no predeterminados pasando un vector de objetos que tengan valores no predeterminados.optimizableVariable
Por ejemplo,
load fisheriris params = hyperparameters('fitrgp',meas,species); params(1).Range = [1e-4,1e6];
Pase como el valor de .params
OptimizeHyperparameters
De forma predeterminada, la visualización iterativa aparece en la línea de comandoy los trazados aparecen según el número de hiperparámetros de la optimización. Para la optimización y las gráficas, 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 obtener un ejemplo, consulte .Optimizar la regresión GPR
Ejemplo: 'auto'
'HyperparameterOptimizationOptions'
— Opciones para la optimizaciónOpciones para la optimización, especificadas como el par separado por comas que consta de y una estructura.'HyperparameterOptimizationOptions'
Este argumento modifica el efecto del argumento de par nombre-valor.OptimizeHyperparameters
Todos los campos de la estructura son opcionales.
Nombre del campo | Valores | Predeterminado |
---|---|---|
Optimizer |
búsquedas en un orden aleatorio, utilizando muestreo uniforme sin reemplazo de la cuadrícula. | 'bayesopt' |
AcquisitionFunctionName |
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 objetivo. | 'expected-improvement-per-second-plus' |
MaxObjectiveEvaluations | Número máximo de evaluaciones de funciones objetivas. | para o , y toda la cuadrícula para30 'bayesopt' 'randomsearch' 'gridsearch' |
MaxTime | Límite de tiempo, especificado como un real positivo. El límite de tiempo es en segundos, medido por y . | Inf |
NumGridDivisions | Para , el número de valores en cada dimensión.'gridsearch' El valor puede ser un vector de enteros positivos que dan 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 |
ShowPlots | Valor lógico que indica si se deben mostrar trazados. Si , este campo traza el mejor valor de función objetivo con respecto al número de iteración.true Si hay uno o dos parámetros de optimización, y si es , también se traza un modelo de la función objetivo con los parámetros.Optimizer 'bayesopt' ShowPlots | true |
SaveIntermediateResults | Valor lógico que indica si se deben guardar los resultados cuando es .Optimizer 'bayesopt' Si , este campo sobrescribe una variable de área de trabajo denominada en cada iteración.true 'BayesoptResults' La variable es un objeto.BayesianOptimization | false |
Verbose | Visualice en la línea de comandos.
Para obtener más información, consulte el argumento de par nombre-valor. | 1 |
UseParallel | Valor lógico que indica si se debe ejecutar la optimización bayesiana en paralelo, lo que requiere .Parallel Computing Toolbox™ Debido a la no reproducibilidad de la sincronización paralela, la optimización bayesiana paralela no produce necesariamente resultados reproducibles. Para obtener más información, consulte .Parallel Bayesian Optimization | false |
Repartition | Valor lógico que indica si se debe volver a particionar la validación cruzada en cada iteración. Si , el optimizador utiliza una sola partición para la optimización. por lo general da los resultados más robustos porque esta configuración tiene en cuenta el ruido de partición. | false |
No utilice más de uno de los tres nombres de campo siguientes. | ||
CVPartition | Un objeto, tal como lo creó .cvpartition cvpartition | si no especifica ningún campo de validación cruzada'Kfold',5 |
Holdout | Un escalar en el rango que representa la fracción de retención.(0,1) | |
Kfold | Un entero mayor que 1. |
Ejemplo: 'HyperparameterOptimizationOptions',struct('MaxObjectiveEvaluations',60)
Tipos de datos: struct
'PredictorNames'
— Nombres de variables predictorasNombres de variables predictoras, especificados como el par separado por comas que consta de y una matriz de cadenas de nombres únicos o una 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 proporciona y , entonces puede utilizar para dar las variables predictoras en los nombres.X
y
'PredictorNames'
X
El orden de los nombres en debe corresponder al orden de columna de .PredictorNames
X
Es decir, es el nombre de , es el nombre de , y así sucesivamente.PredictorNames{1}
X(:,1)
PredictorNames{2}
X(:,2)
Además, y debe ser igual.size(X,2)
numel(PredictorNames)
De forma predeterminada, es .PredictorNames
{'x1','x2',...}
Si proporciona , entonces puede utilizar para elegir qué variables predictoras utilizar en el entrenamiento.Tbl
'PredictorNames'
Es decir
fitrgp
utiliza las variables predictoras y la respuesta solo en el entrenamiento.PredictorNames
debe ser un subconjunto de y no puede incluir el nombre de la variable de respuesta.PredictorNames
Tbl.Properties.VariableNames
De forma predeterminada, contiene los nombres de todas las variables predictoras.PredictorNames
Es una buena práctica especificar los predictores para el entrenamiento utilizando uno de o solo.'PredictorNames'
Fórmula
Ejemplo: 'PredictorNames',{'PedalLength','PedalWidth'}
Tipos de datos: string
| cell
'ResponseName'
— Nombre de la variable de respuesta'Y'
(predeterminado) | vector de caracteres | cuerda escalarNombre de la 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 suministra o , entonces no puede utilizar .ResponseVarName
Fórmula
'ResponseName'
Ejemplo: 'ResponseName','response'
Tipos de datos: char
| string
'Verbose'
— Nivel de verbosidadNivel de detalle, especificado como el par separado por comas que consta de y uno de los siguientes.'Verbose'
0 — suprime los mensajes de diagnóstico relacionados con la selección de conjuntos activos y el descenso de coordenadas de bloque, pero muestra los mensajes relacionados con la estimación de parámetros, dependiendo del valor de in .fitrgp
'Display'
OptimizerOptions
1: muestra los mensajes de diagnóstico iterativos relacionados con la estimación de parámetros, la selección de conjuntos activos y el descenso de coordenadas de bloque.fitrgp
Ejemplo: 'Verbose',1
'CacheSize'
— Tamaño de caché en megabytesTamaño de caché en megabytes (MB), especificado como el par separado por comas que consta de y un escalar positivo.'CacheSize'
El tamaño de caché es la memoria adicional que está disponible además de la necesaria para la selección de ajustes y conjuntos activos. utiliza para:fitrgp
CacheSize
Decida si las distancias de punto de interpunto deben almacenarse en caché al estimar parámetros.
Decida cómo se deben calcular los productos vectoriales de matriz para el método de descenso de coordenadas de bloque y para realizar predicciones.
Ejemplo: 'CacheSize',2000
Tipos de datos: double
gprMdl
— Modelo de regresión del proceso gaussianoRegressionGP
| ObjetoRegressionPartitionedModel
Modelo de regresión de proceso gaussiano, devuelto como un objeto o un objeto.RegressionGP
RegressionPartitionedModel
Si realiza una validación cruzada, es decir, si utiliza uno de los pares , , , , o nombre-valor, entonces es un objeto.'Crossval'
'KFold'
'Holdout'
'Leaveout'
'CVPartition'
gprMdl
RegressionPartitionedModel
No se puede utilizar un objeto para realizar predicciones mediante .RegressionPartitionedModel
predict
Para obtener más información sobre los métodos y propiedades de este objeto, consulte .RegressionPartitionedModel
Si no se valida cruzadamente, entonces es un objeto.gprMdl
RegressionGP
Puede utilizar este objeto para predicciones utilizando el predict
Método. Para obtener más información sobre los métodos y propiedades de este objeto, consulte .RegressionGP
Para subconjuntos de datos, subconjuntos de regresores o métodos de conexión de aproximación condicional totalmente independientes (igual a , , o ), si no proporciona el conjunto activo, selecciona el conjunto activo y calcula las estimaciones de parámetros en una serie de iteraciones.FitMethod
'sd'
'sr'
'fic'
fitrgp
En la primera iteración, el software utiliza los valores de parámetro iniciales en vectorη0 = [β0,σ0,θ0] para seleccionar un conjunto activo A1. Maximiza la probabilidad de registro marginal GPR o su aproximación usando0 como los valores iniciales y A1 para calcular las nuevas estimaciones de parámetros1. A continuación, calcula la nueva probabilidad de registroL1 usando ?1 y A1.
En la segunda iteración, el software selecciona el conjunto activo A2 utilizando los valores de los parámetros en el valor de la1. A continuación, usando ?1 como los valores iniciales y A2, maximiza la probabilidad de registro marginal GPR o su aproximación y estima los nuevos valores de parámetros2. A continuación, el uso de la aplicación de la aplicación2 y A2, calcula el nuevo valor de probabilidad de registroL2.
En la tabla siguiente se resumen las iteraciones y lo que se calcula en cada iteración.
Número de iteración | Conjunto activo | Vector de parámetros | Probabilidad de registro |
---|---|---|---|
1 | Un1 | Η1 | L1 |
2 | Un2 | Η2 | L2 |
3 | Un3 | Η3 | L3 |
… | … | … | … |
El software itera de forma similar para un número especificado de repeticiones. Puede especificar el número de replicaciones para la selección de conjuntos activos mediante el argumento de par nombre-valor.NumActiveSetRepeats
acepta cualquier combinación de métodos de selección de ajuste, predicción y conjunto activo.fitrgp
En algunos casos, es posible que no sea posible calcular las desviaciones estándar de las respuestas predichas, de ahí los intervalos de predicción. Ver predict
. Y en algunos casos, el uso del método exacto podría ser costoso debido al tamaño de los datos de entrenamiento.
La propiedad almacena un elemento para cada uno de los nombres de variable predictor originales.PredictorNames
Por ejemplo, si hay tres predictores, uno de los cuales es una variable categórica con tres niveles, es una matriz de celdas de 1 por 3 de vectores de caracteres.PredictorNames
La propiedad almacena un elemento para cada una de las variables predictoras, incluidas las variables ficticias.ExpandedPredictorNames
Por ejemplo, si hay tres predictores, uno de los cuales es una variable categórica con tres niveles, entonces es una matriz de celdas de 1 por 5 de vectores de caracteres.ExpandedPredictorNames
Del mismo modo, la propiedad almacena un coeficiente beta para cada predictor, incluidas las variables ficticias.Beta
La propiedad almacena los datos de entrenamiento como entrada original.X
No incluye las variables ficticias.
El enfoque predeterminado para inicializar la aproximación de Hesse puede ser lento cuando se tiene un modelo GPR con muchos parámetros del kernel, como cuando se utiliza un kernel ARD con muchos predictores.fitrgp
En este caso, considere la posibilidad de especificar o un valor para el tamaño de paso inicial.'auto'
Puede establecer para la visualización de mensajes de diagnóstico iterativos y comenzar a entrenar un modelo GPR mediante un optimizador LBFGS o quasi-Newton con la optimización predeterminada.'Verbose',1
fitrgp
Si los mensajes de diagnóstico iterativos no se muestran después de unos segundos, es posible que la inicialización de la aproximación de Hesse está tardando demasiado. En este caso, considere reiniciar el entrenamiento y usar el tamaño del paso inicial para acelerar la optimización.
Después de entrenar un modelo, puede generar código C/C++ que predice las respuestas para nuevos datos. La generación de código C/C++ requiere MATLAB Coder™. Para obtener más información, consulte .Introduction to Code Generation.
La adaptación de un modelo GPR implica la estimación de los siguientes parámetros de modelo a partir de los datos:
Función de covarianza parametrizado en términos de parámetros del núcleo en vectores (véase )Kernel (Covariance) Function Options
Variación de ruido,
Vector de coeficiente de las funciones de base fija,
El valor del argumento de par nombre-valor es un vector que consta de valores iniciales para la desviación estándar de la señal'KernelParameters'
y las escalas de longitud características . La función utiliza estos valores para determinar los parámetros del kernel.fitrgp
Del mismo modo, el argumento de par nombre-valor contiene el valor inicial para la desviación estándar de ruido'Sigma'
.
Durante la optimización, crea un vector de valores de parámetros iniciales sin restriccionesfitrgp
utilizando los valores iniciales para la desviación estándar de ruido y los parámetros del núcleo.
determina analíticamente los coeficientes de base explícitosfitrgp
, especificado por el argumento de par nombre-valor, a partir de los valores estimados de'Beta'
Y . por lo tanto no aparece en el vector cuando inicializa la optimización numérica.fitrgp
Nota
Si no especifica ninguna estimación de parámetros para el modelo GPR, utiliza el valor del argumento de par nombre-valor y otros valores de parámetro iniciales como los valores de parámetro GPR conocidos (consulte ).fitrgp
'Beta'
Beta
En todos los demás casos, el valor del argumento se optimiza analíticamente a partir de la función objetiva.'Beta'
El optimizador cuasi-Newton utiliza un método de región de confianza con una aproximación densa y simétrica basada en rango 1 (SR1), cuasi-Newton al Hessian, mientras que el optimizador LBFGS utiliza un método de búsqueda de línea estándar con una memoria limitada Broyden-Fletcher-Goldfarb-Shanno (LBFGS) casi-Newton aproximación al Hessian. Véase Nocedal y Wright [6].
Si establece el argumento de par nombre-valor en , determina el tamaño del paso inicial,'InitialStepSize'
'auto'
fitrgp
, utilizando .
es el vector de paso inicial, y es el vector de valores de parámetros iniciales sin restricciones.
Durante la optimización, utiliza el tamaño de paso inicial,fitrgp
, como se indica a continuación:
Si utiliza con el tamaño de paso inicial, entonces la aproximación inicial de Hesse es'Optimizer','quasinewton'
.
Si utiliza con el tamaño de paso inicial, la aproximación inicial inversa-hessea es'Optimizer','lbfgs'
.
es el vector de gradiente inicial, y es la matriz de identidad.
[1] Warwick J. N., 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 (ISSN 1034-3288), 1994.
[2] S. Waugh. "Extending and Benchmarking Cascade-Correlation", PhD Thesis. Computer Science Department, University of Tasmania, 1995.
[3] Lichman, M. UCI Machine Learning Repository, Irvine, CA: University of California, School of Information and Computer Science, 2013. http://archive.ics.uci.edu/ml.
[4] Rasmussen, C. E. and C. K. I. Williams. Gaussian Processes for Machine Learning. MIT Press. Cambridge, Massachusetts, 2006.
[5] Lagarias, J. C., J. A. Reeds, M. H. Wright, and P. E. Wright. "Convergence Properties of the Nelder-Mead Simplex Method in Low Dimensions." SIAM Journal of Optimization. Vol. 9, Number 1, 1998, pp. 112–147.
[6] Nocedal, J. and S. J. Wright. Numerical Optimization, Second Edition. Springer Series in Operations Research, Springer Verlag, 2006.
Para ejecutar en paralelo, establezca la opción en .'UseParallel'
true
Para realizar la optimización de hiperparámetros paralelos, utilice el argumento de par nombre-valor en la llamada a esta función.'HyperparameterOptions', struct('UseParallel',true)
Para obtener más información sobre la optimización de hiperparámetros paralelos, consulte .Parallel Bayesian Optimization
Para obtener más información general sobre la informática paralela, consulte .Run MATLAB Functions with Automatic Parallel Support (Parallel Computing Toolbox)
Tiene una versión modificada de este ejemplo. ¿Desea abrir este ejemplo con sus modificaciones?
Ha hecho clic en un enlace que corresponde a este comando de MATLAB:
Ejecute el comando introduciéndolo en la ventana de comandos de MATLAB. Los navegadores web no admiten comandos de MATLAB.
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
Select web siteYou can also select a web site from the following list:
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.