Подбор модели регрессии Гауссова процесса (GPR)
возвращает модель регрессии Гауссова процесса (GPR), обученную с использованием выборочных данных в gprMdl
= fitrgp(Tbl
,ResponseVarName
)Tbl
, где ResponseVarName
- имя переменной отклика в Tbl
.
возвращает модель GPR для любого из входных параметров в предыдущих синтаксисах с дополнительными опциями, заданными одним или несколькими gprMdl
= fitrgp(___,Name,Value
)Name,Value
аргументы в виде пар.
Для примера можно задать метод аппроксимации, метод предсказания, функцию ковариация или метод выбора активного набора. Можно также обучить перекрестно проверенную модель.
gprMdl
является RegressionGP
объект. Для методов и свойств этого класса смотрите RegressionGP
страница класса.
Если вы обучаете перекрестно проверенную модель, то gprMdl
является RegressionPartitionedModel
объект. Для последующего анализа перекрестного проверенного объекта используйте методы RegressionPartitionedModel
класс. Методы этого класса см. в RegressionPartitionedModel
страница класса.
Этот пример использует данные abalone [1], [2] из репозитория машинного обучения UCI [3]. Загрузите данные и сохраните их в текущей папке с именем abalone.data
.
Сохраните данные в таблице. Отобразите первые семь строк.
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
Набор данных имеет 4177 наблюдений. Цель состоит в том, чтобы предсказать возраст абалоны из восьми физических измерений. Последняя переменная, количество интерпретатора звонков показывает возраст абалоны. Первый предиктор является категориальной переменной. Последней переменной в таблице является переменная отклика.
Подгонка модели GPR с использованием подмножества метода регрессоров для оценки параметра и полностью независимого условного метода для предсказания. Стандартизируйте предикторы.
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: []
Спрогнозируйте ответы, используя обученную модель.
ypred = resubPredict(gprMdl);
Постройте график истинного отклика и предсказанных откликов.
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;
Вычислите регрессионные потери на обучающих данных (реституционные потери) для обученной модели.
L = resubLoss(gprMdl)
L = 4.0064
Сгенерируйте выборочные данные.
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);
Подгонка модели GPR с помощью линейного базиса функций и точного метода подгонки для оценки параметров. Также используйте точный метод предсказания.
gprMdl = fitrgp(x,y,'Basis','linear',... 'FitMethod','exact','PredictMethod','exact');
Спрогнозируйте ответ, соответствующий строкам x
(прогнозы реституции) с использованием обученной модели.
ypred = resubPredict(gprMdl);
Постройте график истинной характеристики с предсказанными значениями.
plot(x,y,'b.'); hold on; plot(x,ypred,'r','LineWidth',1.5); xlabel('x'); ylabel('y'); legend('Data','GPR predictions'); hold off
Загрузите выборочные данные.
load('gprdata2.mat')
Данные имеют одну переменную предиктора и непрерывный ответ. Это моделируемые данные.
Подгонка модели GPR с помощью квадратной экспоненциальной функции ядра с параметрами ядра по умолчанию.
gprMdl1 = fitrgp(x,y,'KernelFunction','squaredexponential');
Теперь подбирайте вторую модель, где вы задаете начальные значения для параметров ядра.
sigma0 = 0.2; kparams0 = [3.5, 6.2]; gprMdl2 = fitrgp(x,y,'KernelFunction','squaredexponential',... 'KernelParameters',kparams0,'Sigma',sigma0);
Вычислите предсказания реституции из обеих моделей.
ypred1 = resubPredict(gprMdl1); ypred2 = resubPredict(gprMdl2);
Постройте график предсказаний отклика из обеих моделей и ответов в обучающих данных.
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
Предельный журнал вероятность того, что fitrgp
максимизирует для оценки параметров GPR имеет несколько локальных решений; решение, к которому оно сходится, зависит от начальной точки. Каждое локальное решение соответствует определенной интерпретации данных. В этом примере решение с параметрами начального ядра по умолчанию соответствует сигналу низкой частоты с высоким уровнем шума, в то время как второе решение с пользовательскими параметрами начального ядра соответствует сигналу высокой частоты с низким уровнем шума.
Загрузите выборочные данные.
load('gprdata.mat')
Существует шесть непрерывных переменных предиктора. В наборе обучающих данных 500 наблюдений и 100 наблюдений в наборе тестовых данных. Это моделируемые данные.
Подгонка модели GPR с использованием квадратной экспоненциальной функции ядра с отдельной шкалой длины для каждого предиктора. Эта ковариационная функция определяется как:
где представляет шкалу длины для предиктора , = 1, 2, ..., и - стандартное отклонение сигнала. Параметризация без ограничений является
Инициализируйте шкалы длины функции ядра при 10 и стандартные отклонения сигнала и шума при стандартном отклонении отклика.
sigma0 = std(ytrain); sigmaF0 = sigma0; d = size(Xtrain,2); sigmaM0 = 10*ones(d,1);
Подгонка модели GPR с помощью начальных значений параметров ядра. Стандартизируйте предикторы в обучающих данных. Используйте точные методы подбора кривой и предсказания.
gprMdl = fitrgp(Xtrain,ytrain,'Basis','constant','FitMethod','exact',... 'PredictMethod','exact','KernelFunction','ardsquaredexponential',... 'KernelParameters',[sigmaM0;sigmaF0],'Sigma',sigma0,'Standardize',1);
Вычислите потери регрессии на тестовых данных.
L = loss(gprMdl,Xtest,ytest)
L = 0.6919
Доступ к информации о ядре.
gprMdl.KernelInformation
ans = struct with fields:
Name: 'ARDSquaredExponential'
KernelParameters: [7x1 double]
KernelParameterNames: {7x1 cell}
Отобразите имена параметров ядра.
gprMdl.KernelInformation.KernelParameterNames
ans = 7x1 cell
{'LengthScale1'}
{'LengthScale2'}
{'LengthScale3'}
{'LengthScale4'}
{'LengthScale5'}
{'LengthScale6'}
{'SigmaF' }
Отобразите параметры ядра.
sigmaM = gprMdl.KernelInformation.KernelParameters(1:end-1,1)
sigmaM = 6×1
104 ×
0.0004
0.0007
0.0004
5.2709
0.1018
0.0056
sigmaF = gprMdl.KernelInformation.KernelParameters(end)
sigmaF = 28.1721
sigma = gprMdl.Sigma
sigma = 0.8162
Постройте график журнала обученных шкал длины.
figure() plot((1:d)',log(sigmaM),'ro-'); xlabel('Length scale number'); ylabel('Log of length scale');
Логарифмическая шкала длины для 4-й и 5-й переменных предиктора высока относительно других. Эти переменные предиктора, по-видимому, не так влияют на ответ, как другие переменные предиктора.
Подгонка модели GPR, не используя 4-ю и 5-ю переменные в качестве переменных-предикторов.
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);
Вычислите ошибку регрессии для тестовых данных.
xtest = [Xtest(:,1:3) Xtest(:,6)]; L = loss(gprMdl,xtest,ytest)
L = 0.6928
Потеря подобна той, когда все переменные используются в качестве переменных-предикторов.
Вычислите предсказанный ответ для тестовых данных.
ypred = predict(gprMdl,xtest);
Постройте график исходной характеристики вместе с подобранными значениями.
figure; plot(ytest,'r'); hold on; plot(ypred,'b'); legend('True response','GPR predicted values','Location','Best'); hold off
В этом примере показано, как автоматически оптимизировать гиперпараметры с помощью fitrgp
. В примере используется gprdata2
данные, которые поставляются с вашим программным обеспечением.
Загрузите данные.
load('gprdata2.mat')
Данные имеют одну переменную предиктора и непрерывный ответ. Это моделируемые данные.
Подгонка модели GPR с помощью квадратной экспоненциальной функции ядра с параметрами ядра по умолчанию.
gprMdl1 = fitrgp(x,y,'KernelFunction','squaredexponential');
Найдите гиперпараметры, которые минимизируют пятикратные потери при перекрестной проверке с помощью автоматической оптимизации гипероптимизации параметров управления.
Для воспроизводимости установите случайный seed и используйте '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 | 4.8721 | 0.29417 | 0.29417 | 0.0015045 | | 2 | Best | 0.037898 | 2.9698 | 0.037898 | 0.060792 | 0.14147 | | 3 | Accept | 1.5693 | 2.2862 | 0.037898 | 0.040633 | 25.279 | | 4 | Accept | 0.29417 | 3.9255 | 0.037898 | 0.037984 | 0.0001091 | | 5 | Accept | 0.29393 | 3.575 | 0.037898 | 0.038029 | 0.029932 | | 6 | Accept | 0.13152 | 3.2312 | 0.037898 | 0.038127 | 0.37127 | | 7 | Best | 0.037785 | 5.189 | 0.037785 | 0.037728 | 0.18116 | | 8 | Accept | 0.03783 | 4.3223 | 0.037785 | 0.036524 | 0.16251 | | 9 | Accept | 0.037833 | 4.9764 | 0.037785 | 0.036854 | 0.16159 | | 10 | Accept | 0.037835 | 5.3911 | 0.037785 | 0.037052 | 0.16072 | | 11 | Accept | 0.29417 | 5.427 | 0.037785 | 0.03705 | 0.00038214 | | 12 | Accept | 0.42256 | 3.4003 | 0.037785 | 0.03696 | 3.2067 | | 13 | Accept | 0.03786 | 3.6868 | 0.037785 | 0.037087 | 0.15245 | | 14 | Accept | 0.29417 | 4.3881 | 0.037785 | 0.037043 | 0.0063584 | | 15 | Accept | 0.42302 | 3.1663 | 0.037785 | 0.03725 | 1.2221 | | 16 | Accept | 0.039486 | 2.6376 | 0.037785 | 0.037672 | 0.10069 | | 17 | Accept | 0.038591 | 3.091 | 0.037785 | 0.037687 | 0.12077 | | 18 | Accept | 0.038513 | 2.4893 | 0.037785 | 0.037696 | 0.1227 | | 19 | Best | 0.037757 | 2.0492 | 0.037757 | 0.037572 | 0.19621 | | 20 | Accept | 0.037787 | 3.169 | 0.037757 | 0.037601 | 0.18068 | |======================================================================================| | Iter | Eval | Objective: | Objective | BestSoFar | BestSoFar | Sigma | | | result | log(1+loss) | runtime | (observed) | (estim.) | | |======================================================================================| | 21 | Accept | 0.44917 | 2.4079 | 0.037757 | 0.03766 | 8.7818 | | 22 | Accept | 0.040201 | 3.4579 | 0.037757 | 0.037601 | 0.075414 | | 23 | Accept | 0.040142 | 3.7027 | 0.037757 | 0.037607 | 0.087198 | | 24 | Accept | 0.29417 | 5.0095 | 0.037757 | 0.03758 | 0.0031018 | | 25 | Accept | 0.29417 | 5.1286 | 0.037757 | 0.037555 | 0.00019545 | | 26 | Accept | 0.29417 | 4.7136 | 0.037757 | 0.037582 | 0.013608 | | 27 | Accept | 0.29417 | 3.9032 | 0.037757 | 0.037556 | 0.00076147 | | 28 | Accept | 0.42162 | 1.9316 | 0.037757 | 0.037854 | 0.6791 | | 29 | Best | 0.037704 | 2.7232 | 0.037704 | 0.037908 | 0.2367 | | 30 | Accept | 0.037725 | 3.5853 | 0.037704 | 0.037881 | 0.21743 |
__________________________________________________________ Optimization completed. MaxObjectiveEvaluations of 30 reached. Total function evaluations: 30 Total elapsed time: 140.3815 seconds Total objective function evaluation time: 110.8067 Best observed feasible point: Sigma ______ 0.2367 Observed objective function value = 0.037704 Estimated objective function value = 0.038223 Function evaluation time = 2.7232 Best estimated feasible point (according to models): Sigma _______ 0.16159 Estimated objective function value = 0.037881 Estimated function evaluation time = 3.3839
Сравнение подгонок до и после оптимизации.
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
Этот пример использует данные abalone [1], [2] из репозитория машинного обучения UCI [3]. Загрузите данные и сохраните их в текущей папке с именем abalone.data
.
Сохраните данные в table
. Отобразите первые семь строк.
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
Набор данных имеет 4177 наблюдений. Цель состоит в том, чтобы предсказать возраст абалоны из восьми физических измерений. Последняя переменная, количество интерпретатора звонков показывает возраст абалоны. Первый предиктор является категориальной переменной. Последней переменной в таблице является переменная отклика.
Обучите перекрестно проверенную модель GPR, используя 25% данных для валидации.
rng('default') % For reproducibility cvgprMdl = fitrgp(tbl,'NoShellRings','Standardize',1,'Holdout',0.25);
Вычислите среднюю потерю на складках, используя модели, обученные несовпадающим наблюдениям.
kfoldLoss(cvgprMdl)
ans = 4.6409
Спрогнозируйте ответы для несовпадающих данных.
ypred = kfoldPredict(cvgprMdl);
Постройте график истинных откликов, используемых для проверки и предсказаний.
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;
Сгенерируйте выборочные данные.
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);
Задайте квадратную экспоненциальную функцию ядра как пользовательскую функцию ядра.
Можно вычислить квадратную экспоненциальную функцию ядра как
где - стандартное отклонение сигнала, - шкала длины. Оба и должно быть больше нуля. Это условие может быть применено без ограничений параметризации, и , для некоторого вектора параметризации без ограничений .
Следовательно, можно задать квадратную экспоненциальную функцию ядра как пользовательскую функцию ядра следующим образом:
kfcn = @(XN,XM,theta) (exp(theta(2))^2)*exp(-(pdist2(XN,XM).^2)/(2*exp(theta(1))^2));
Вот pdist2(XN,XM).^2
вычисляет матрицу расстояний.
Подгонка модели GPR с помощью пользовательской функции ядра, kfcn
. Задайте начальные значения параметров ядра (Поскольку вы используете пользовательскую функцию ядра, вы должны предоставить начальные значения для вектора параметризации без ограничений theta
).
theta0 = [1.5,0.2]; gprMdl = fitrgp(x,y,'KernelFunction',kfcn,'KernelParameters',theta0);
fitrgp
использует аналитические производные для оценки параметров при использовании встроенной функции ядра, тогда как при использовании пользовательской функции ядра использует числовые производные.
Вычислите потери реституции для этой модели.
L = resubLoss(gprMdl)
L = 0.0391
Подгонка модели GPR с помощью встроенной опции квадратного экспоненциального ядра. Задайте начальные значения параметров ядра (Поскольку вы используете встроенную пользовательскую функцию ядра и задаете начальные значения параметров, вы должны предоставить начальные значения для стандартного отклонения сигнала и шкал (шкал ) (шкалы) длины непосредственно ).
sigmaL0 = exp(1.5); sigmaF0 = exp(0.2); gprMdl2 = fitrgp(x,y,'KernelFunction','squaredexponential','KernelParameters',[sigmaL0,sigmaF0]);
Вычислите потери реституции для этой модели.
L2 = resubLoss(gprMdl2)
L2 = 0.0391
Два значения потерь совпадают с ожидаемыми.
Обучите модель GPR на сгенерированных данных со многими предикторами. Задайте начальный размер шага для оптимизатора LBFGS.
Установите seed и тип генератора случайных чисел для воспроизводимости результатов.
rng(0,'twister'); % For reproducibility
Сгенерируйте выборочные данные с 300 наблюдениями и 3000 предикторами, где переменная отклика зависит от 4-го, 7-го и 13-го предикторов.
N = 300; P = 3000; X = rand(N,P); y = cos(X(:,7)) + sin(X(:,4).*X(:,13)) + 0.1*randn(N,1);
Установите начальные значения параметров ядра.
sigmaL0 = sqrt(P)*ones(P,1); % Length scale for predictors sigmaF0 = 1; % Signal standard deviation
Установите начальное стандартное отклонение шума равным 1
.
sigmaN0 = 1;
Задайте 1e-2
как допуск окончания для относительной нормы градиента.
opts = statset('fitrgp');
opts.TolFun = 1e-2;
Подгонка модели GPR с использованием начальных значений параметров ядра, начального стандартного отклонения шума и автоматического определения релевантности (ARD) квадратной функции экспоненциального ядра.
Задайте начальный размер шага как 1 для определения начального гессианского приближения для оптимизатора 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
Поскольку в модели GPR используется ядро ARD со многими предикторами, использование LBFGS- приближения к Гессиану более память эффективно, чем хранение полной матрицы Гессия. Кроме того, использование начального размера шага для определения начального гессианского приближения может помочь ускорить оптимизацию.
Найдите веса предиктора, взяв экспоненциал отрицательных выученных шкал длины. Нормализуйте веса.
sigmaL = gpr.KernelInformation.KernelParameters(1:end-1); % Learned length scales weights = exp(-sigmaL); % Predictor weights weights = weights/sum(weights); % Normalized predictor weights
Постройте график нормированных весов предиктора.
figure; semilogx(weights,'ro'); xlabel('Predictor index'); ylabel('Predictor weight');
Обученная модель GPR присваивает наибольшие веса 4-му, 7-му и 13-му предикторам. Нерелевантные предикторы имеют веса, близкие к нулю.
Tbl
- Выборочные данныеtable
Выборочные данные, используемых для обучения модели, заданная как table
. Каждая строка Tbl
соответствует одному наблюдению, и каждый столбец соответствует одной переменной. Tbl
содержит переменные предиктора, и опционально может также содержать один столбец для переменной отклика. Многополюсные переменные и массивы ячеек, отличные от массивов ячеек векторов символов, не разрешены.
Если Tbl
содержит переменную отклика, и вы хотите использовать все оставшиеся переменные в качестве предикторов, затем задайте переменную отклика используя ResponseVarName
.
Если Tbl
содержит переменную отклика, и вы хотите использовать только подмножество предикторов при обучении модели, затем задавать переменную отклика и переменные предиктора используя formula
.
Если Tbl
не содержит переменную отклика, затем задает переменную отклика используя y
. Длина переменной отклика и количество строк в Tbl
должно быть равным.
Для получения дополнительной информации о table
тип данных, см. table
.
Если ваши данные предиктора содержат категориальные переменные, то fitrgp
создает фиктивные переменные. Для получения дополнительной информации смотрите CategoricalPredictors
.
Типы данных: table
ResponseVarName
- Имя переменной откликаTbl
Имя переменной отклика, заданное как имя переменной в Tbl
. Вы должны задать ResponseVarName
как вектор символов или строковый скаляр. Для примера, если переменная отклика y
хранится в Tbl
(как Tbl.y
), затем укажите его следующим 'y'
. В противном случае программное обеспечение обрабатывает все столбцы Tbl
, включая y
, как предикторы при обучении модели.
Типы данных: char
| string
formula
- Переменные отклика и предиктора для использования в обучении модели'y~x1+x2+x3'
Переменные отклика и предиктора для использования в обучении модели, заданные как вектор символов или строковый скаляр в форме 'y~x1+x2+x3'
. В этой форме y
представляет переменную отклика; x1
, x2
, x3
представление переменных предиктора для использования при обучении модели.
Используйте формулу, если вы хотите задать подмножество переменных в Tbl
в качестве предикторов, используемых при обучении модели. Если вы задаете формулу, то любые переменные, которые не появляются в formula
не используются для обучения модели.
Имена переменных в формуле должны быть обоими именами переменных в Tbl
(Tbl.Properties.VariableNames
) и действительный MATLAB® идентификаторы. Можно проверить имена переменных в Tbl
при помощи isvarname
функция. Если имена переменных недопустимы, можно преобразовать их, используя matlab.lang.makeValidName
функция.
Формула не указывает на форму BasisFunction
.
Пример: 'PetalLength~PetalWidth+Species'
определяет переменную PetalLength
как переменная отклика, и PetalWidth
и Species
как переменные предиктора.
Типы данных: char
| string
X
- Данные предиктора для модели GPRДанные предиктора для модели GPR, заданные как n -by- d матрица. n - количество наблюдений (строк), а d - количество предикторов (столбцов).
Длина y
и количество строк X
должно быть равным.
Чтобы задать имена предикторов в порядке их внешнего вида в X
, используйте PredictorNames
аргумент пары "имя-значение".
Типы данных: double
y
- Данные отклика для модели GPRДанные отклика для модели GPR, заданные как вектор n -by-1. Можно опускать y
если вы предоставляете Tbl
обучающих данных, которые также включают y
. В этом случае используйте ResponseVarName
для идентификации переменной отклика или использования formula
идентифицировать переменные отклика и предиктора.
Типы данных: double
Задайте необязательные разделенные разделенными запятой парами Name,Value
аргументы. Name
- имя аргумента и Value
- соответствующее значение. Name
должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN
.
'FitMethod','sr','BasisFunction','linear','ActiveSetMethod','sgma','PredictMethod','fic'
обучает модель GPR с помощью подмножества метода приближения регрессоров для оценки параметра, использует линейную функцию базиса, использует разреженное жадное матричное приближение для активного выбора и полностью независимый метод условного приближения для предсказания.Примечание
Вы не можете использовать какой-либо аргумент пары "имя-значение" перекрестной проверки наряду с 'OptimizeHyperparameters'
аргумент пары "имя-значение". Можно изменить перекрестную валидацию для 'OptimizeHyperparameters'
только при помощи 'HyperparameterOptimizationOptions'
аргумент пары "имя-значение".
'FitMethod'
- Метод оценки параметров модели GPR'none'
| 'exact'
| 'sd'
| 'sr'
| 'fic'
Метод оценки параметров модели GPR, заданный как разделенная разделенными запятой парами, состоящая из 'FitMethod'
и одно из следующих.
Метод подгонки | Описание |
---|---|
'none' | Без оценки используйте начальные значения параметров в качестве известных значений параметров. |
'exact' | Точная регрессия Гауссова процесса. По умолчанию, если n ≤ 2000, где n - количество наблюдений. |
'sd' | Подмножество точек данных приближений. По умолчанию, если n > 2000, где n - количество наблюдений. |
'sr' | Подмножество приближения регрессоров. |
'fic' | Полностью независимое условное приближение. |
Пример: 'FitMethod','fic'
'BasisFunction'
- Явный базис в модели GPR'constant'
(по умолчанию) | 'none'
| 'linear'
| 'pureQuadratic'
| указатель на функциюЯвный базис в модели GPR, заданный как разделенная разделенными запятой парами, состоящая из 'BasisFunction'
и одно из следующих. Если n - количество наблюдений, функция базиса добавляет термин H * β в модель, где H - матрица базиса, а β - вектор базиса p на 1.
Явный базис | Матрица базиса |
---|---|
'none' | Пустая матрица. |
'constant' |
(n - на 1 вектор 1с, где n - количество наблюдений) |
'linear' |
|
'pureQuadratic' |
где
|
Указатель на функцию | Указатель на функцию, где |
Пример: 'BasisFunction','pureQuadratic'
Типы данных: char
| string
| function_handle
'Beta'
- Начальное значение коэффициентовНачальное значение коэффициентов для явного базиса, заданное как разделенная разделенными запятой парами, состоящая из 'Beta'
и p вектор -by-1, где p - количество столбцов в базисной матричной H.
Матрица базиса зависит от выбора явной функции базиса следующим образом (также см BasisFunction
).
fitrgp
использует начальные значения коэффициентов в качестве известных значений коэффициентов, только когда FitMethod
является 'none'
.
Типы данных: double
'Sigma'
- Начальное значение для стандартного отклонения шума модели Гауссова процессаstd
(y
) / sqrt(2)
(по умолчанию) | положительное скалярное значениеНачальное значение для стандартного отклонения шума модели Гауссова процесса, заданное как разделенная разделенными запятой парами, состоящая из 'Sigma'
и положительная скалярная величина значение.
Пример: 'Sigma',2
Типы данных: double
'ConstantSigma'
- Постоянное значение Sigma
для шумового стандартного отклонения модели Гауссова процессаfalse
(по умолчанию) | true
Постоянное значение Sigma
для шумового стандартного отклонения модели Гауссова процесса, заданного как логический скаляр. Когда ConstantSigma
является true
, fitrgp
не оптимизирует значение Sigma
, но вместо этого принимает начальное значение как значение во всех его расчетах.
Пример: 'ConstantSigma',true
Типы данных: logical
'SigmaLowerBound'
- нижняя граница стандартного отклонения шума1e-2*std
(y
) (по умолчанию) | положительное скалярное значениеНижняя граница стандартного отклонения шума, заданная как разделенная разделенными запятой парами, состоящая из 'SigmaLowerBound'
и положительная скалярная величина значение.
Пример: 'SigmaLowerBound',0.02
Типы данных: double
'CategoricalPredictors'
- Категориальный список предикторов'all'
Категориальный список предикторов, заданный как одно из значений в этой таблице.
Значение | Описание |
---|---|
Вектор положительных целых чисел |
Каждая запись в векторе является индексом значением, соответствующим столбцу данных предиктора, который содержит категориальную переменную. Значения индекса находятся между 1 и Если |
Логический вектор |
A |
Матрица символов | Каждая строка матрицы является именем переменной. Имена должны совпадать с записями в PredictorNames . Дополните имена дополнительными пробелами, чтобы каждая строка матрицы символов имела одинаковую длину. |
Строковые массивы или массив ячеек векторов символов | Каждый элемент массива является именем переменной. Имена должны совпадать с записями в PredictorNames . |
'all' | Все предикторы категоричны. |
По умолчанию, если данные предиктора находятся в таблице (Tbl
), fitrgp
принимает, что переменная категориальна, если это логический вектор, категориальный вектор, символьный массив, строковые массивы или массив ячеек из векторов символов. Если данные предиктора являются матрицей (X
), fitrgp
принимает, что все предикторы непрерывны. Чтобы идентифицировать любые другие предикторы как категориальные предикторы, задайте их с помощью 'CategoricalPredictors'
аргумент имя-значение.
Для идентифицированных категориальных предикторов, fitrgp
создает фиктивные переменные с помощью двух различных схем, в зависимости от того, является ли категориальная переменная неупорядоченной или упорядоченной. Для неупорядоченной категориальной переменной, fitrgp
создает одну фиктивную переменную для каждого уровня категориальной переменной. Для упорядоченной категориальной переменной, fitrgp
создает одну переменную с меньшим количеством манекенов, чем количество категорий. Для получения дополнительной информации смотрите Автоматическое создание переменных манекена.
Пример: 'CategoricalPredictors','all'
Типы данных: single
| double
| logical
| char
| string
| cell
'Standardize'
- Индикатор для стандартизации данных0 (false)
(по умолчанию) | логическое значениеИндикатор для стандартизации данных, заданный как разделенная разделенными запятой парами, состоящая из 'Standardize'
и логическое значение.
Если вы задаете 'Standardize',1
затем программное обеспечение центрирует и масштабирует каждый столбец данных предиктора на среднее значение столбца и стандартное отклонение, соответственно. Программа не стандартизирует данные, содержащиеся в столбцах фиктивных переменных, которые она генерирует для категориальных предикторов.
Пример: 'Standardize',1
Пример: 'Standardize',true
Типы данных: logical
'Regularization'
- Стандартное отклонение регуляризации1e-2*std
(y
) (по умолчанию) | положительное скалярное значениеСтандартное отклонение регуляризации для разреженных методов подмножества регрессоров ('sr'
) и полностью независимый условный ('fic'
), заданная как разделенная разделенными запятой парами, состоящая из 'Regularization'
и положительная скалярная величина значение.
Пример: 'Regularization',0.2
Типы данных: double
'ComputationMethod'
- Метод вычисления логарифмической вероятности и градиента'qr'
(по умолчанию) | 'v'
Метод вычисления журнала правдоподобия и градиента для оценки параметра с помощью подмножества регрессоров ('sr'
) и полностью независимый условный ('fic'
) методы приближения, заданные как разделенная разделенными запятой парами, состоящая из 'ComputationMethod'
и одно из следующих.
'qr'
- Используйте основанный на QR факторизации подход, эта опция обеспечивает лучшую точность.
'v'
- Используйте подход, основанный на V-методе. Эта опция обеспечивает более быстрый расчет градиентов вероятностей журнала.
Пример: 'ComputationMethod','v'
'KernelFunction'
- Форма ковариационной функции'squaredexponential'
(по умолчанию) | 'exponential'
| 'matern32'
| 'matern52'
| 'rationalquadratic'
| 'ardsquaredexponential'
| 'ardexponential'
| 'ardmatern32'
| 'ardmatern52'
| 'ardrationalquadratic'
| указатель на функциюФорма ковариационной функции, заданная как разделенная запятыми пара, состоящая из 'KernelFunction'
и одно из следующих.
Функция | Описание |
---|---|
'exponential' | Экспоненциальное ядро. |
'squaredexponential' | Квадратное экспоненциальное ядро. |
'matern32' | Ядро Matern с параметром 3/2. |
'matern52' | Ядро Matern с параметром 5/2. |
'rationalquadratic' | Рациональное квадратичное ядро. |
'ardexponential' | Экспоненциальное ядро с отдельной шкалой длины на предиктор. |
'ardsquaredexponential' | Квадратное экспоненциальное ядро с отдельной шкалой длины на предиктор. |
'ardmatern32' | Ядро Матерна с параметром 3/2 и отдельной шкалой длины на предиктор. |
'ardmatern52' | Ядро Матерна с параметром 5/2 и отдельной шкалой длины на предиктор. |
'ardrationalquadratic' | Рациональное квадратичное ядро с отдельной шкалой длины на предиктор. |
Указатель на функцию | Указатель на функцию, который можно вызвать так:Kmn = kfcn(Xm,Xn,theta)
где Xm является m -by- d матрицей, Xn является n -by d матрицей и Kmn является m -by - n матрицей продуктов ядра, таких что Kmn (i, j) является ядерным продуктом между Xm (i,:) и Xn (j:). theta - вектор параметра r -by-1 без ограничений для kfcn . |
Для получения дополнительной информации о функциях ядра смотрите Kernel (Ковариация) Function Опций.
Пример: 'KernelFunction','matern32'
Типы данных: char
| string
| function_handle
'KernelParameters'
- Начальные значения параметров ядраНачальные значения для параметров ядра, заданные как разделенная разделенными запятой парами, состоящая из 'KernelParameters'
и вектор. Размер вектора и значений зависит от формы ковариационной функции, заданной KernelFunction
аргумент пары "имя-значение".
'KernelFunction' | 'KernelParameters' |
---|---|
'exponential' , 'squaredexponential' , 'matern32' , или 'matern52' | Вектор 2 на 1 phi , где phi(1) содержит шкалу длины и phi(2) содержит стандартное отклонение сигнала. Начальное значение по умолчанию параметра шкалы длины является средним значением стандартных отклонений предикторов, и стандартное отклонение сигнала является стандартным отклонением откликов, разделенных на квадратный корень из 2. То есть, phi = [mean(std(X));std(y)/sqrt(2)] |
'rationalquadratic' | Вектор 3 на 1 phi , где phi(1) содержит шкалу длины, phi(2) содержит параметр весовой смеси и phi(3) содержит стандартное отклонение сигнала. Начальное значение по умолчанию параметра шкалы длины является средним значением стандартных отклонений предикторов, и стандартное отклонение сигнала является стандартным отклонением откликов, разделенных на квадратный корень из 2. Начальное значение по умолчанию для параметра весовой смеси является 1. То есть, phi = [mean(std(X));1;std(y)/sqrt(2)] |
'ardexponential' , 'ardsquaredexponential' , 'ardmatern32' , или 'ardmatern52' | (d + 1) -на 1 вектор phi , где phi(i) содержит шкалу длины для i предиктора и phi(d+1) содержит стандартное отклонение сигнала. d - количество переменных предиктора после создания фиктивных переменных для категориальных переменных. Для получения дополнительной информации о создании фиктивных переменных смотрите CategoricalPredictors . Начальное значение по умолчанию параметров шкалы длины являются стандартными отклонениями предикторов, и стандартное отклонение сигнала является стандартным отклонением откликов, разделенных на квадратный корень из 2. То есть, phi = [std(X)';std(y)/sqrt(2)] |
'ardrationalquadratic' | (d + 2) -на 1 вектор phi , где phi(i) содержит шкалу длины для предиктора i, phi(d+1) содержит параметр весовой смеси и phi(d+2) содержит стандартное отклонение сигнала.Начальное значение по умолчанию параметров шкалы длины являются стандартными отклонениями предикторов, и стандартное отклонение сигнала является стандартным отклонением откликов, разделенных на квадратный корень из 2. Начальное значение по умолчанию для параметра весовой смеси является 1. То есть, phi = [std(X)';1;std(y)/sqrt(2)] |
Указатель на функцию | r вектор -by-1 как начальное значение вектора параметра без ограничений phi для пользовательской функции ядра kfcn . Когда KernelFunction является указателем на функцию, вы должны задать начальные значения для параметров ядра. |
Для получения дополнительной информации о функциях ядра смотрите Kernel (Ковариация) Function Опций.
Пример: 'KernelParameters',theta
Типы данных: double
'DistanceMethod'
- Метод вычисления межточечных расстояний'fast'
(по умолчанию) | 'accurate'
Метод вычисления межточечных расстояний для оценки встроенных функций ядра, заданный как разделенная разделенными запятой парами, состоящая из 'DistanceMethod'
и любой из них 'fast'
или 'accurate'
. fitrgp
вычисляет как когда вы выбираете fast
опция и как когда вы выбираете accurate
опция.
Пример: 'DistanceMethod','accurate'
'ActiveSet'
- Наблюдения в активном наборе[]
(дефолт) | вектор <reservedrangesplaceholder4>-by-1 целых чисел в пределах от 1 к n (m ≤ <reservedrangesplaceholder1>Наблюдения в активном наборе, заданные как разделенная разделенными запятой парами, состоящая из 'ActiveSet'
и вектор <reservedrangesplaceholder5>-by-1 целых чисел в пределах от 1 к n (m ≤ <reservedrangesplaceholder2>) или логический вектор длины n по крайней мере с одним true
элемент. n - общее количество наблюдений в обучающих данных.
fitrgp
использует наблюдения, обозначенные ActiveSet
для обучения модели GPR. Активный набор не может иметь повторяющихся элементов.
Если вы поставляете ActiveSet
, затем:
fitrgp
не использует ActiveSetSize
и ActiveSetMethod
.
Вы не можете выполнить перекрестную проверку на этой модели.
Типы данных: double
| logical
'ActiveSetSize'
- Размер активного набора для разреженных методовРазмер активного набора для разреженных методов ('sd'
, 'sr'
, 'fic'
), заданная как разделенная разделенными запятой парами, состоящая из 'ActiveSetSize'
и целое число m, 1 ≤ m ≤ n, где n - количество наблюдений.
По умолчанию является min (1000, n), когда FitMethod
является 'sr'
или 'fic'
, и min (2000, n), в противном случае.
Пример: 'ActiveSetSize',100
Типы данных: double
'ActiveSetMethod'
- Метод выбора активного набора'random'
(по умолчанию) | 'sgma'
| 'entropy'
| 'likelihood'
Метод выбора активного набора, заданный как разделенная разделенными запятой парами, состоящая из 'ActiveSetMethod'
и одно из следующих.
Метод | Описание |
---|---|
'random' | Случайный выбор |
'sgma' | Разреженное жадное матричное приближение |
'entropy' | Дифференциальный выбор на основе энтропии |
'likelihood' | Подмножество регрессоров регистрирует выбор, основанный на вероятностях |
Все активные методы выбора набора (кроме 'random'
) требуют хранения n -by - m матрицы, где m - размер активного множества и n - количество наблюдений.
Пример: 'ActiveSetMethod','entropy'
'RandomSearchSetSize'
- Размер набора случайных поисковРазмер случайного поискового набора на жадное включение для выбора активного набора, заданный как разделенная разделенными запятой парами, состоящая из 'RandomSearchSetSize'
и целое число значения.
Пример: 'RandomSearchSetSize',30
Типы данных: double
'ToleranceActiveSet'
- Относительная погрешность для завершения выбора активного набораОтносительная погрешность для прекращения выбора активного набора, заданный как разделенная разделенными запятой парами, состоящая из 'ToleranceActiveset'
и положительная скалярная величина значение.
Пример: 'ToleranceActiveset',0.0002
Типы данных: double
'NumActiveSetRepeats'
- Количество повторенийКоличество повторений для выбора чередующегося активного набора и оценки параметра при ActiveSetMethod
не 'random'
, заданная как разделенная разделенными запятой парами, состоящая из 'NumActiveSetRepeats'
и целое число значения.
Пример: 'NumActiveSetRepeats',5
Типы данных: double
'PredictMethod'
- Метод, используемый для прогнозирования'exact'
| 'bcd'
| 'sd'
| 'sr'
| 'fic'
Метод, используемый для того, чтобы делать предсказания из модели Гауссова процесса, учитывая параметры, заданные как разделенная разделенными запятой парами, состоящая из 'PredictMethod'
и одно из следующих.
Метод | Описание |
---|---|
'exact' | Точный метод регрессии Гауссова процесса. По умолчанию, если n ≤ 10000. |
'bcd' | Блочный спуск координат. По умолчанию, если n > 10000. |
'sd' | Подмножество точек данных приближений. |
'sr' | Подмножество приближения регрессоров. |
'fic' | Полностью независимое условное приближение. |
Пример: 'PredictMethod','bcd'
'BlockSizeBCD'
- Размер блокаРазмер блока для метода спуска координат блока ('bcd'
), заданная как разделенная разделенными запятой парами, состоящая из 'BlockSizeBCD'
и целое число в области значений от 1 до n, где n количество наблюдений.
Пример: 'BlockSizeBCD',1500
Типы данных: double
'NumGreedyBCD'
- Количество жадных подборовBlockSizeBCD
(по умолчанию) | целое значение в области значений от 1 до BlockSizeBCD
Количество жадных выборов для метода координатного спуска блока ('bcd'
), заданная как разделенная разделенными запятой парами, состоящая из 'NumGreedyBCD'
и целое число в области значений от 1 до BlockSizeBCD
.
Пример: 'NumGreedyBCD',150
Типы данных: double
'ToleranceBCD'
- Относительная погрешность по норме градиента1e-3
(по умолчанию) | положительная скалярная величинаОтносительная погрешность на норму градиента для метода отключения координат блока ('bcd'
) итерации, заданные как разделенная разделенными запятой парами, состоящая из 'ToleranceBCD'
и положительная скалярная величина.
Пример: 'ToleranceBCD',0.002
Типы данных: double
'StepToleranceBCD'
- Абсолютная погрешность по размеру шага1e-3
(по умолчанию) | положительная скалярная величинаАбсолютная погрешность на размер шага для завершения метода координат спуска блока ('bcd'
) итерации, заданные как разделенная разделенными запятой парами, состоящая из 'StepToleranceBCD'
и положительная скалярная величина.
Пример: 'StepToleranceBCD',0.002
Типы данных: double
'IterationLimitBCD'
- Максимальное количество итераций BCD1000000
(по умолчанию) | целое значениеМаксимальное количество метода координатного спуска блока ('bcd'
) итерации, заданные как разделенная разделенными запятой парами, состоящая из 'IterationLimitBCD'
и целое число значения.
Пример: 'IterationLimitBCD',10000
Типы данных: double
'Optimizer'
- Оптимизатор, используемый для оценки параметра'quasinewton'
(по умолчанию) | 'lbfgs'
| 'fminsearch'
| 'fminunc'
| 'fmincon'
Оптимизатор для оценки параметра, заданный как разделенная разделенными запятой парами, состоящая из 'Optimizer'
и одно из значений в этой таблице.
Значение | Описание |
---|---|
'quasinewton' | Плотное, симметричное основанное на ранге 1, квази-Ньютонское приближение к Гессиану |
'lbfgs' | Квазиньютонское приближение на основе LBFGS к гессианскому |
'fminsearch' | Нелинейная оптимизация без ограничений с использованием метода симплексного поиска Lagarias et al. [5] |
'fminunc' | Нелинейная оптимизация без ограничений (требует лицензии Optimization Toolbox™) |
'fmincon' | Нелинейная оптимизация с ограничениями (требует лицензии Optimization Toolbox) |
Для получения дополнительной информации об оптимизаторах см. «Алгоритмы».
Пример: 'Optimizer','fmincon'
'OptimizerOptions'
- Опции для оптимизатораОпции для оптимизатора, который вы выбираете, используя Optimizer
аргумент пары "имя-значение", заданный как разделенная разделенными запятой парами, состоящая из 'OptimizerOptions'
и структуру или объект, созданный optimset
, statset('fitrgp')
, или optimoptions
.
Оптимизатор | Создайте опции оптимизатора с помощью |
---|---|
'fminsearch' | optimset (структура) |
'quasinewton' или 'lbfgs' | statset('fitrgp') (структура) |
'fminunc' или 'fmincon' | optimoptions (объект) |
Опции по умолчанию зависят от типа оптимизатора.
Пример: 'OptimizerOptions',opt
'InitialStepSize'
- Начальный размер шага[]
(по умолчанию) | действительный положительный скалярный | 'auto'
Начальный размер шага, заданный как разделенная разделенными запятой парами, состоящая из 'InitialStepSize'
и настоящая положительная скалярная величина или 'auto'
.
'InitialStepSize'
- приблизительное максимальное абсолютное значение первого шага оптимизации, когда оптимизатор 'quasinewton'
или 'lbfgs'
. Начальный размер шага может определить начальное Гессианское приближение во время оптимизации.
По умолчанию, fitrgp
не использует начальный размер шага, чтобы определить начальное гессианское приближение. Чтобы использовать начальный размер шага, задайте значение для 'InitialStepSize'
Аргумент пары "имя-значение", или задайте 'InitialStepSize','auto'
иметь fitrgp
автоматическое определение значения. Для получения дополнительной информации о 'auto'
, см. Алгоритмы.
Пример: 'InitialStepSize','auto'
'CrossVal'
- Индикатор перекрестной проверки'off'
(по умолчанию) | 'on'
Индикатор для перекрестной проверки, заданный как разделенная разделенными запятой парами, состоящая из 'CrossVal'
и любой из них 'off'
или 'on'
. Если это 'on'
, затем fitrgp
возвращает модель GPR, перекрестная проверка с 10 складками.
Можно использовать один из KFold
, Holdout
, Leaveout
или CVPartition
аргументы пары "имя-значение" для изменения параметров перекрестной проверки по умолчанию. Можно использовать только одну из этих пар "имя-значение" за раз.
В качестве альтернативы можно использовать crossval
метод для вашей модели.
Пример: 'CrossVal','on'
'CVPartition'
- Случайный раздел для стратифицированного k - перекрестная валидацияcvpartition
объектСлучайный раздел для стратифицированного k - перекрестная валидация, заданная как разделенная разделенными запятой парами, состоящая из 'CVPartition'
и a cvpartition
объект.
Пример: 'CVPartition',cvp
использует случайный раздел, заданный как cvp
.
Если вы задаете CVPartition
, тогда вы не можете задать Holdout
, KFold
, или Leaveout
.
'Holdout'
- Часть данных для использования для проверкиДоля данных, используемых для проверки при валидации отключения, заданная как разделенная разделенными запятой парами, состоящая из 'Holdout'
и скалярное значение в области значений от 0 до 1. Если вы задаете 'Holdout',p
, затем программное обеспечение:
1. Случайным образом резервирует p * 100% данных в качестве данных валидации и обучает модель, используя остальную часть данных
2. Хранит компактную, обученную модель в cvgprMdl.Trained
.
Пример: 'Holdout', 0.3
использует 30% данных для проверки и 70% данных для обучения.
Если вы задаете Holdout
, тогда вы не можете задать CVPartition
, KFold
, или Leaveout
.
Типы данных: double
'KFold'
- Количество складокКоличество складок для использования в перекрестно проверенной модели GPR, заданное как разделенная разделенными запятой парами, состоящая из 'KFold'
и положительное целое значение. KFold
должно быть больше 1. Если вы задаете 'KFold',k
затем программное обеспечение:
1. Случайным образом разделяет данные на k набора.
2. Для каждого набора резервирует набор как тестовые данные и обучает модель, используя другой k - 1 набор.
3. Хранит k компактные обученные модели в камерах массива ячеек k-на-1 в cvgprMdl.Trained
.
Пример: 'KFold',5
использует 5 складок в перекрестной проверке. То есть для каждой складки используется, которая складывается как тестовые данные, и обучает модель на остальных 4 складках.
Если вы задаете KFold
, тогда вы не можете задать CVPartition
, Holdout
, или Leaveout
.
Типы данных: double
'Leaveout'
- Индикатор кросс-валидации с единичным выходом'off'
(по умолчанию) | 'on'
Индикатор для кросс-валидации с одним выходом, заданный как разделенная разделенными запятой парами, состоящая из 'Leaveout'
и любой из них 'off'
или 'on'
.
Если вы задаете 'Leaveout','on'
затем для каждого из n наблюдений программное обеспечение:
1. Резервирует наблюдение как тестовые данные и обучает модель, используя другие n - 1 наблюдения.
2. Сохраняет компактную обученную модель в ячейке массива ячеек n -by-1 cvgprMdl.Trained
.
Пример: 'Leaveout','on'
Если вы задаете Leaveout
, тогда вы не можете задать CVPartition
, Holdout
, или KFold
.
'OptimizeHyperparameters'
- Параметры для оптимизации'none'
(по умолчанию) | 'auto'
| 'all'
| строковые массивы или массив ячеек из допустимых имен параметров | вектор optimizableVariable
объектыОптимизируемые параметры, заданные как разделенная разделенными запятой парами, состоящая из 'OptimizeHyperparameters'
и одно из следующих:
'none'
- Не оптимизировать.
'auto'
- Использовать {'Sigma'}
.
'all'
- Оптимизируйте все подходящие параметры, эквивалентные {'BasisFunction','KernelFunction','KernelScale','Sigma','Standardize'}
.
Строковые массивы или массив ячеек с допустимыми именами параметров.
Вектор optimizableVariable
объекты, как правило, выходные данные hyperparameters
.
Оптимизация пытается минимизировать потери перекрестной валидации (ошибка) для fitrgp
путем изменения параметров. Для получения информации о потерях при перекрестной проверке (хотя и в другом контексте), смотрите Классификационные потери. Чтобы контролировать тип перекрестной валидации и другие аспекты оптимизации, используйте HyperparameterOptimizationOptions
Пара "имя-значение".
Примечание
'OptimizeHyperparameters'
значения переопределяют все значения, которые вы устанавливаете, используя другие аргументы пары "имя-значение". Для примера установка 'OptimizeHyperparameters'
на 'auto'
вызывает 'auto'
значения для применения.
Подходящие параметры для fitrgp
являются:
BasisFunction
— fitrgp
поиск среди 'constant'
, 'none'
, 'linear'
, и 'pureQuadratic'
.
KernelFunction
— fitrgp
поиск среди 'ardexponential'
, 'ardmatern32'
, 'ardmatern52'
, 'ardrationalquadratic'
, 'ardsquaredexponential'
, 'exponential'
, 'matern32'
, 'matern52'
, 'rationalquadratic'
, и 'squaredexponential'
.
KernelScale
— fitrgp
использует KernelParameters
аргумент для задания значения параметра шкалы ядра, который поддерживается постоянным во время подбора кривой. В этом случае все входные размерности ограничены одинаковыми KernelScale
значение. fitrgp
поиск среди вещественных значений в области значений [1e-3*MaxPredictorRange,MaxPredictorRange]
, где
MaxPredictorRange = max(max(X) - min(X))
.
KernelScale
не может быть оптимизирована для любого из ядер ARD.
Sigma
— fitrgp
поиск среди вещественных значений в области значений [1e-4, max(1e-3,10*ResponseStd)]
, где
ResponseStd = std(y)
.
Внутренне, fitrgp
устанавливает ConstantSigma
Пара "имя-значение" с true
поэтому значение Sigma
является постоянным во время подбора кривой.
Standardize
— fitrgp
поиск среди true
и false
.
Установите параметры nondefault путем передачи вектора optimizableVariable
объекты, которые имеют значения nondefault. Для примера,
load fisheriris params = hyperparameters('fitrgp',meas,species); params(1).Range = [1e-4,1e6];
Передайте params
как значение OptimizeHyperparameters
.
По умолчанию итеративное отображение появляется в командной строке, и графики появляются согласно количеству гиперпараметров в оптимизации. Для оптимизации и графиков целевой функцией является журнал ( 1 + потери перекрестной валидации) для регрессии и коэффициент неправильной классификации для классификации. Чтобы управлять итеративным отображением, установите Verbose
поле 'HyperparameterOptimizationOptions'
аргумент пары "имя-значение". Чтобы управлять графиками, установите ShowPlots
поле 'HyperparameterOptimizationOptions'
аргумент пары "имя-значение".
Для получения примера смотрите Оптимизацию регрессии GPR.
Пример: 'auto'
'HyperparameterOptimizationOptions'
- Опции для оптимизацииОпции оптимизации, заданные как разделенная разделенными запятой парами, состоящая из 'HyperparameterOptimizationOptions'
и структуру. Этот аргумент изменяет эффект OptimizeHyperparameters
аргумент пары "имя-значение". Все поля в структуре являются необязательными.
Имя поля | Значения | Дефолт |
---|---|---|
Optimizer |
| 'bayesopt' |
AcquisitionFunctionName |
Функции сбора данных, имена которых включают | 'expected-improvement-per-second-plus' |
MaxObjectiveEvaluations | Максимальное количество вычислений целевой функции. | 30 для 'bayesopt' или 'randomsearch' , и вся сетка для 'gridsearch' |
MaxTime | Временной предел, заданный как положительный действительный. Предел времени в секундах, что измеряется | Inf |
NumGridDivisions | Для 'gridsearch' , количество значений в каждой размерности. Значение может быть вектором положительных целых чисел, дающих количество значений для каждой размерности, или скаляром, который применяется ко всем размерностям. Это поле игнорируется для категориальных переменных. | 10 |
ShowPlots | Логическое значение, указывающее, показывать ли графики. Если true , это поле строит график наилучшего значения целевой функции относительно числа итерации. Если существует один или два параметра оптимизации и если Optimizer является 'bayesopt' , затем ShowPlots также строит график модели целевой функции относительно параметров. | true |
SaveIntermediateResults | Логическое значение, указывающее, сохранять ли результаты при Optimizer является 'bayesopt' . Если true , это поле перезаписывает переменную рабочей области с именем 'BayesoptResults' при каждой итерации. Переменная является BayesianOptimization объект. | false |
Verbose | Отображение в командной строке.
Для получения дополнительной информации смотрите | 1 |
UseParallel | Логическое значение, указывающее, запускать ли байесовскую оптимизацию параллельно, что требует Parallel Computing Toolbox™. Из-за непродуктивности параллельной синхронизации параллельная байесовская оптимизация не обязательно приводит к воспроизводимым результатам. Для получения дополнительной информации см. «Параллельная байесовская оптимизация». | false |
Repartition | Логическое значение, указывающее, следует ли повторять перекрестную валидацию при каждой итерации. Если
| false |
Используйте не более одного из следующих трех имен полей. | ||
CVPartition | A cvpartition объект, созданный cvpartition . | 'Kfold',5 если вы не задаете какое-либо поле перекрестной проверки |
Holdout | Скаляр в области значений (0,1) представляющий фракцию удержания. | |
Kfold | Целое число, больше 1. |
Пример: 'HyperparameterOptimizationOptions',struct('MaxObjectiveEvaluations',60)
Типы данных: struct
'PredictorNames'
- Имена переменных предиктораИмена переменных предиктора, заданные как разделенная разделенными запятой парами, состоящая из 'PredictorNames'
и строковые массивы уникальных имен или массив ячеек уникальных векторов символов. Функциональность 'PredictorNames'
зависит от способа предоставления обучающих данных.
Если вы поставляете X
и y
, тогда можно использовать 'PredictorNames'
чтобы задать переменные предиктора в X
имена.
Порядок имен в PredictorNames
должен соответствовать порядку столбцов X
. То есть PredictorNames{1}
- имя X(:,1)
, PredictorNames{2}
- имя X(:,2)
и так далее. Кроме того, size(X,2)
и numel(PredictorNames)
должно быть равным.
По умолчанию PredictorNames
является {'x1','x2',...}
.
Если вы поставляете Tbl
, тогда можно использовать 'PredictorNames'
выбрать, какие переменные предиктора использовать в обучении. То есть, fitrgp
использует переменные предиктора в PredictorNames
и реагирование только на обучение.
PredictorNames
должен быть подмножеством Tbl.Properties.VariableNames
и не может включать имя переменной отклика.
По умолчанию PredictorNames
содержит имена всех переменных предиктора.
Хорошей практикой является определение предикторов для обучения с использованием одного из 'PredictorNames'
или formula
только.
Пример: 'PredictorNames',{'PedalLength','PedalWidth'}
Типы данных: string
| cell
'ResponseName'
- Имя переменной отклика'Y'
(по умолчанию) | символьный вектор | строковый скалярИмя переменной отклика, заданное как вектор символов или строковый скаляр.
Если вы поставляете Y
, тогда можно использовать 'ResponseName'
чтобы задать имя для переменной отклика.
Если вы поставляете ResponseVarName
или formula
, тогда вы не можете использовать 'ResponseName'
.
Пример: 'ResponseName','response'
Типы данных: char
| string
'Verbose'
- Уровень подробностейУровень подробностей, заданный как разделенная разделенными запятой парами, состоящая из 'Verbose'
и одно из следующих.
0 — fitrgp
подавляет диагностические сообщения, связанные с выбором активного набора и снижением координат блоков, но отображает сообщения, связанные с оценкой параметра, в зависимости от значения 'Display'
в OptimizerOptions
.
1 — fitrgp
отображает итерационные диагностические сообщения, связанные с оценкой параметра, выбором активного набора и снижением координат блоков.
Пример: 'Verbose',1
'CacheSize'
- Размер кэша в мегабайтахРазмер кэша в мегабайтах (МБ), заданный как разделенная разделенными запятой парами, состоящая из 'CacheSize'
и положительная скалярная величина. Размер кэша - это дополнительная память, которая доступна в дополнение к памяти, необходимой для подбора кривой и выбора активного набора. fitrgp
использует CacheSize
кому:
Решите, следует ли кэшировать расстояния между точками при оценке параметров.
Решите, как матричные векторные продукты должны вычисляться для метода координатного спуска блоков и для создания предсказаний.
Пример: 'CacheSize',2000
Типы данных: double
gprMdl
- Гауссовская регрессионая модель процессаRegressionGP
| объекта RegressionPartitionedModel
объектГауссовская регрессионая модель процесса, возвращенная как RegressionGP
или RegressionPartitionedModel
объект.
Если вы перекрестно проверяете, то есть, если вы используете один из 'Crossval'
, 'KFold'
, 'Holdout'
, 'Leaveout'
, или 'CVPartition'
Пары "имя-значение", затем gprMdl
является RegressionPartitionedModel
объект. Вы не можете использовать RegressionPartitionedModel
объект для создания предсказаний с помощью predict
. Для получения дополнительной информации о методах и свойствах этого объекта смотрите RegressionPartitionedModel
.
Если вы не выполняете перекрестную проверку, то gprMdl
является RegressionGP
объект. Вы можете использовать этот объект для предсказаний, используя predict
способ. Для получения дополнительной информации о методах и свойствах этого объекта смотрите RegressionGP
.
Для подмножества данных, подмножества регрессоров или полностью независимых методов условного приближения (FitMethod
равно 'sd'
, 'sr'
, или 'fic'
), если вы не предоставляете активный набор, fitrgp
выбирает активный набор и вычисляет оценки параметров в серии итераций.
В первой итерации программа использует начальные значения параметров в векторе η 0 = [β 0, σ 0, θ 0], чтобы выбрать активный A1 набора. Это максимизирует крайнюю вероятность журнала GPR или ее приближение, используя η0 как начальные значения и A1, чтобы вычислить новые оценки параметра η1. Затем, это вычисляет новую вероятность <reservedrangesplaceholder0> 1 журнала, используя η1 и A1.
Во второй итерации программное обеспечение выбирает активный набор A2 используя значения параметров в Затем, используя, в качестве начальных значений и A2, и максимизирует предельную вероятность журнала GPR или ее приближения и оценивает новые значения параметров Затем с помощью, и A2, вычисляет новое значение правдоподобия журнала L 2.
В следующей таблице суммированы итерации и то, что вычисляется при каждой итерации.
Число итерации | Активный набор | Вектор параметра | Журнал вероятностей |
---|---|---|---|
1 | A1 | η1 | <reservedrangesplaceholder0> 1 |
2 | A2 | η2 | <reservedrangesplaceholder0> 2 |
3 | A3 | η3 | <reservedrangesplaceholder0> 3 |
… | … | … | … |
Программа аналогично итератируется для заданного количества повторений. Количество репликаций для выбора активного набора можно задать с помощью NumActiveSetRepeats
аргумент пары "имя-значение".
fitrgp
принимает любую комбинацию подборов кривой, предсказания и выбора активного набора. В некоторых случаях может оказаться невозможным вычислить стандартные отклонения предсказанных откликов, следовательно, интервалы предсказания. См. predict
. А в некоторых случаях использование точного метода может оказаться дорогим из-за размера обучающих данных.
The PredictorNames
свойство сохраняет по одному элементу для каждого из исходных имен переменных предиктора. Например, если существует три предиктора, один из которых является категориальной переменной с тремя уровнями, PredictorNames
- массив ячеек 1 на 3 из векторов символов.
The ExpandedPredictorNames
свойство сохраняет по одному элементу для каждой из переменных предиктора, включая фиктивные переменные. Например, если предикторов три, один из которых является категориальной переменной с тремя уровнями, то ExpandedPredictorNames
- массив ячеек 1 на 5 из векторов символов.
Точно так же Beta
свойство сохраняет один бета-коэффициент для каждого предиктора, включая фиктивные переменные.
The X
свойство сохраняет обучающие данные как исходные входные. Он не включает фиктивные переменные.
Подход по умолчанию к инициализации Гессианского приближения в fitrgp
может быть медленным, когда у вас есть модель GPR со многими параметрами ядра, такими как при использовании ядра ARD со многими предикторами. В этом случае рассмотрите указание 'auto'
или значение начального размера шага.
Можно задать 'Verbose',1
для отображения итеративных диагностических сообщений и начать обучение модели GPR с помощью оптимизатора LBFGS или квази-Ньютона с параметром по умолчанию fitrgp
оптимизация. Если итеративные диагностические сообщения не отображаются через несколько секунд, возможно, что инициализация гессианского приближения занимает слишком много времени. В этом случае рассмотрите перезапуск обучения и использование начального размера шага для ускорения оптимизации.
После обучения модели можно сгенерировать код C/C + +, который предсказывает ответы для новых данных. Для генерации кода C/C + + требуется MATLAB Coder™. Для получения дополнительной информации смотрите Введение в Генерацию кода..
Подбор модели GPR включает оценку следующих параметров модели из данных:
Ковариационная функция параметризованный в терминах параметров ядра в векторе (см. «Опции функции ядра (ковариации)»)
Шумовое отклонение,
Вектор коэффициентов функций с фиксированным базисом,
Значение 'KernelParameters'
Аргумент пары "имя-значение" является вектором, который состоит из начальных значений для стандартного отклонения сигнала и характеристические шкалы длины . fitrgp
функция использует эти значения для определения параметров ядра. Точно так же 'Sigma'
аргумент пары "имя-значение" содержит начальное значение для стандартного отклонения шума .
Во время оптимизации, fitrgp
создает вектор без ограничений начальных значений параметров при помощи начальных значений для стандартного отклонения шума и параметров ядра.
fitrgp
аналитически определяет явные базисные коэффициенты , заданный как 'Beta'
аргумент пары "имя-значение" из предполагаемых значений и . Поэтому, не отображается в вектор, когда fitrgp
инициализирует числовую оптимизацию.
Примечание
Если вы не задаете оценку параметров для модели GPR, fitrgp
использует значение 'Beta'
аргумент пары "имя-значение" и другие начальные значения параметров в виде известных значений параметров GPR (см. Beta
). Во всех других случаях значение 'Beta'
аргумент оптимизируется аналитически из целевой функции.
Оптимизатор квази-Ньютона использует метод доверительной области с плотным, симметричным основанным на ранге 1 (SR1), квази-Ньютонским приближением к Гессиану, в то время как оптимизатор LBFGS использует стандартный метод линейного поиска с ограниченной памятью Broyden-Fletcher-Goldfarb См. Nocedal и Wright [6].
Если вы задаете 'InitialStepSize'
аргумент пары "имя-значение" в 'auto'
, fitrgp
определяет начальный размер шага, , при помощи .
является начальным вектором шага, и - вектор без ограничений начальных значений параметров.
Во время оптимизации, fitrgp
использует начальный размер шага, , следующим образом:
Если вы используете 'Optimizer','quasinewton'
с начальным размером шага, тогда начальное Гессианское приближение .
Если вы используете 'Optimizer','lbfgs'
с начальным размером шага, тогда начальное обратное-гессианское приближение является .
является начальным вектором градиента, и - матрица тождеств.
[1] Нэш, У. Дж., Т. Л. Селлерс, С. Р. Тальбот, А. Дж. Коуторн и У. Б. Форд. "Популяционная биология Абалоне (виды Haliotis) в Тасмании. I. Blacklip Abalone (H. rubra) с Северного побережья и островов пролива Басс ". Деление морского рыболовства, технический доклад № 48, 1994 год.
[2] Waugh, S. «Extending and Benchmarking Cascade-Correlation: Extensions to the Cascade-Correlation Architecture and Benchmarking of Feed-Forward Supervied Neural Networds». Тасманийский университет, кафедра компьютерных наук, 1995 год.
[3] Лихман, M. UCI Machine Learning Repository, Irvine, CA: University of California, School of Information and Computer Science, 2013. http://archive.ics.uci.edu/ml.
[4] Расмуссен, К. Э. и К. К. И. Уильямс. Гауссовы процессы для машинного обучения. MIT Press. Кембридж, Массачусетс, 2006.
[5] Лагария, Дж. К., Дж. А. Ридс, М. Х. Райт и П. Э. Райт. «Свойства сходимости метода Нелдера-Мида Симплекса в низких Размерностях». SIAM Journal оптимизации. Том 9, № 1, 1998, стр. 112-147.
[6] Nocedal, J. and S. J. Wright. Численная оптимизация, второе издание. Springer Series in Operations Research, Springer Verlag, 2006.
Чтобы выполнить параллельную оптимизацию гипероптимизации параметров управления, используйте 'HyperparameterOptimizationOptions', struct('UseParallel',true)
аргумент имя-значение в вызове этой функции.
Для получения дополнительной информации об оптимизации параллельной гипероптимизации параметров управления смотрите Parallel Bayesian Optimization.
Общие сведения о параллельных вычислениях см. в разделе Запуск функций MATLAB с поддержкой автоматических параллелей (Parallel Computing Toolbox).
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.