Соответствуйте модели Gaussian process regression (GPR)
gprMdl = fitrgp(tbl,ResponseVarName)
gprMdl = fitrgp(tbl,formula)
gprMdl = fitrgp(tbl,y)
gprMdl = fitrgp(X,y)
gprMdl = fitrgp(___,Name,Value)
возвращается модель Gaussian process regression (GPR) обучила использование выборочных данных в gprMdl
= fitrgp(tbl
,ResponseVarName
)tbl
, где ResponseVarName
является именем переменной отклика в tbl
.
возвращает модель GPR для любого из входных параметров в предыдущих синтаксисах, с дополнительными опциями, заданными одним или несколькими аргументами пары gprMdl
= fitrgp(___,Name,Value
)Name,Value
.
Например, можно задать подходящий метод, метод прогноза, функцию ковариации или активный метод выбора набора. Можно также обучить перекрестную подтвержденную модель.
gprMdl
является объектом RegressionGP
. Для методов и свойств этого класса, смотрите страницу класса RegressionGP
.
Если вы обучаете перекрестную подтвержденную модель, то gprMdl
является объектом RegressionPartitionedModel
. Для последующего анализа на перекрестном подтвержденном объекте используйте методы класса RegressionPartitionedModel
. Для методов этого класса смотрите страницу класса RegressionPartitionedModel
.
Этот пример использует данные о морском ушке [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
Набор данных имеет 4 177 наблюдений. Цель состоит в том, чтобы предсказать возраст морского ушка от восьми физических измерений. Последняя переменная, количество звонков интерпретатора показывает возраст морского ушка. Первый предиктор является категориальной переменной. Последняя переменная в таблице является переменной отклика.
Соответствуйте модели 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(fullfile(matlabroot,'examples','stats','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(fullfile(matlabroot,'examples','stats','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 array
{'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
4.1731
0.1018
0.0056
sigmaF = gprMdl.KernelInformation.KernelParameters(end)
sigmaF = 28.1718
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(fullfile(matlabroot,'examples','stats','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 | | runtime | (observed) | (estim.) | | |======================================================================================| | 1 | Best | 0.29417 | 2.1518 | 0.29417 | 0.29417 | 0.0015045 | | 2 | Best | 0.037898 | 1.3153 | 0.037898 | 0.060792 | 0.14147 | | 3 | Accept | 1.5693 | 0.76112 | 0.037898 | 0.040633 | 25.279 | | 4 | Accept | 0.29417 | 1.7549 | 0.037898 | 0.037984 | 0.0001091 | | 5 | Accept | 0.29393 | 1.8182 | 0.037898 | 0.038029 | 0.029932 | | 6 | Accept | 0.13152 | 1.2091 | 0.037898 | 0.038127 | 0.37127 | | 7 | Best | 0.037785 | 1.4368 | 0.037785 | 0.037728 | 0.18116 | | 8 | Accept | 0.03783 | 1.3877 | 0.037785 | 0.036524 | 0.16251 | | 9 | Accept | 0.037833 | 1.5439 | 0.037785 | 0.036854 | 0.16159 | | 10 | Accept | 0.037835 | 1.8267 | 0.037785 | 0.037052 | 0.16072 | | 11 | Accept | 0.29417 | 1.8249 | 0.037785 | 0.03705 | 0.00038214 | | 12 | Accept | 0.42256 | 1.0248 | 0.037785 | 0.03696 | 3.2067 | | 13 | Accept | 0.03786 | 1.3548 | 0.037785 | 0.037087 | 0.15245 | | 14 | Accept | 0.29417 | 1.8118 | 0.037785 | 0.037043 | 0.0063584 | | 15 | Accept | 0.42302 | 1.027 | 0.037785 | 0.03725 | 1.2221 | | 16 | Accept | 0.039486 | 1.2477 | 0.037785 | 0.037672 | 0.10069 | | 17 | Accept | 0.038591 | 1.3022 | 0.037785 | 0.037687 | 0.12077 | | 18 | Accept | 0.038513 | 1.334 | 0.037785 | 0.037696 | 0.1227 | | 19 | Best | 0.037757 | 1.3904 | 0.037757 | 0.037572 | 0.19621 | | 20 | Accept | 0.037787 | 1.452 | 0.037757 | 0.037601 | 0.18068 | |======================================================================================| | Iter | Eval | Objective | Objective | BestSoFar | BestSoFar | Sigma | | | result | | runtime | (observed) | (estim.) | | |======================================================================================| | 21 | Accept | 0.44917 | 0.90673 | 0.037757 | 0.03766 | 8.7818 | | 22 | Accept | 0.040201 | 1.2108 | 0.037757 | 0.037601 | 0.075414 | | 23 | Accept | 0.040142 | 1.1481 | 0.037757 | 0.037607 | 0.087198 | | 24 | Accept | 0.29417 | 1.8435 | 0.037757 | 0.03758 | 0.0031018 | | 25 | Accept | 0.29417 | 1.7875 | 0.037757 | 0.037555 | 0.00019545 | | 26 | Accept | 0.29417 | 1.7721 | 0.037757 | 0.037582 | 0.013608 | | 27 | Accept | 0.29417 | 1.8143 | 0.037757 | 0.037556 | 0.00076147 | | 28 | Accept | 0.42162 | 1.0185 | 0.037757 | 0.037854 | 0.6791 | | 29 | Best | 0.037704 | 1.3398 | 0.037704 | 0.037908 | 0.2367 | | 30 | Accept | 0.037725 | 1.4091 | 0.037704 | 0.037881 | 0.21743 | __________________________________________________________ Optimization completed. MaxObjectiveEvaluations of 30 reached. Total function evaluations: 30 Total elapsed time: 59.3447 seconds. Total objective function evaluation time: 43.2254 Best observed feasible point: Sigma ______ 0.2367 Observed objective function value = 0.037704 Estimated objective function value = 0.037881 Function evaluation time = 1.3398 Best estimated feasible point (according to models): Sigma _______ 0.16159 Estimated objective function value = 0.037881 Estimated function evaluation time = 1.3583
Сравните пред - и подгонки постоптимизации.
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
Этот пример использует данные о морском ушке [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
Набор данных имеет 4 177 наблюдений. Цель состоит в том, чтобы предсказать возраст морского ушка от восьми физических измерений. Последняя переменная, количество звонков интерпретатора показывает возраст морского ушка. Первый предиктор является категориальной переменной. Последняя переменная в таблице является переменной отклика.
Обучите перекрестную подтвержденную модель 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 наблюдениями и 3 000 предикторов, где переменная отклика зависит от 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;
Specify 1e-2 as
допуск завершения к относительной норме градиента.
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
.
Если ваши данные о предикторе содержат категориальные переменные, то программное обеспечение использует полное фиктивное кодирование для этих переменных. Программное обеспечение создает одну фиктивную переменную для каждого уровня категориальной переменной.
Типы данных: 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
, не используются, чтобы обучить модель.
Формула не указывает на форму 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
должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: 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-by-1 вектор базисных коэффициентов.
Явное основание | Базисная матрица |
---|---|
'none' | Пустая матрица. |
'constant' |
(n-by-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
Типы данных: логический
'SigmaLowerBound'
— Нижняя граница на шумовом стандартном отклонении1e-2*std
(y
) (значение по умолчанию) | значение положительной скалярной величиныНижняя граница на шумовом стандартном отклонении, заданном как пара, разделенная запятой, состоящая из 'SigmaLowerBound'
и значения положительной скалярной величины.
Пример: 'SigmaLowerBound',0.02
Типы данных: double
'CategoricalPredictors'
— Категориальный список предикторов'all'
Категориальный список предикторов, заданный как пара, разделенная запятой, состоящая из 'CategoricalPredictors'
и одно из этих значений:
Значение | Описание |
---|---|
Вектор положительных целых чисел | Запись в векторе является индексным значением, соответствующим столбцу данных о предикторе (X или tbl ), который содержит категориальную переменную. |
Логический вектор | Запись true означает, что соответствующий столбец данных о предикторе (X или tbl ) является категориальной переменной. |
Символьная матрица | Каждая строка матрицы является именем переменной прогноза. Имена должны совпадать с записями в PredictorNames . Заполните имена дополнительными пробелами, таким образом, каждая строка символьной матрицы имеет ту же длину. |
Массив строк или массив ячеек из символьных векторов | Каждый элемент в массиве является именем переменной прогноза. Имена должны совпадать с записями в PredictorNames . |
все | Все предикторы являются категориальными. |
По умолчанию, если данные о предикторе находятся в таблице (tbl
), fitrgp
принимает, что переменная является категориальной, если это содержит логические значения, категориальные значения, массив строк или массив ячеек из символьных векторов. Если данные о предикторе являются матрицей (X
), fitrgp
принимает, что все предикторы непрерывны. Чтобы идентифицировать любые категориальные предикторы, когда данные будут матрицей, используйте аргумент пары "имя-значение" 'CategoricalPredictors'
.
Пример: 'CategoricalPredictors','all'
Типы данных: single
| double
| logical
| char
| string
| cell
'Standardize'
— Индикатор, чтобы стандартизировать данные0 (false)
(значение по умолчанию) | логическое значениеИндикатор, чтобы стандартизировать данные, заданные как пара, разделенная запятой, состоящая из 'Standardize'
и логического значения.
Если вы устанавливаете 'Standardize',1
, то центры программного обеспечения и масштабируют каждый столбец данных о предикторе, столбцом среднее и стандартное отклонение, соответственно. Программное обеспечение не стандартизирует данные, содержавшиеся в фиктивных переменных столбцах, которые это генерирует для категориальных предикторов.
Пример: 'Standardize',1
Пример: 'Standardize',true
Типы данных: логический
'Regularization'
— Стандартное отклонение регуляризации1e-2*std
(y
) (значение по умолчанию) | значение положительной скалярной величиныСтандартное отклонение регуляризации для разреженного подмножества методов регрессоров ('sr'
) и полностью независимое условное выражение ('fic'
), заданный как пара, разделенная запятой, состоящая из 'Regularization'
и значения положительной скалярной величины.
Пример: 'Regularization',0.2
Типы данных: double
'ComputationMethod'
— Метод для вычисления логарифмической вероятности и градиента'qr'
(значение по умолчанию) | 'v'
Метод для вычисления логарифмической вероятности и градиента для оценки параметра с помощью подмножества регрессоров ('sr'
) и полностью независимое условное выражение ('fic'
) методы приближения, заданные как пара, разделенная запятой, состоящая из 'ComputationMethod'
и одно из следующих.
qr
Используйте основанный на QR-факторизации подход, эта опция обеспечивает лучшую точность.
V
Используйте подход V-method-based. Эта опция обеспечивает более быстрое вычисление логарифмических градиентов вероятности.
Пример: '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' | Ядро Matern с параметром 3/2 и отдельная шкала расстояний на предиктор. |
'ardmatern52' | Ядро Matern с параметром 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 . |
Для получения дополнительной информации о функциях ядра смотрите Ядро (Ковариация) Опции Функции.
Пример: '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' | Векторный phi 3 на 1, где phi(1) содержит шкалу расстояний, phi(2) , содержит параметр смеси шкалы, и phi(3) содержит стандартное отклонение сигнала. Начальное значение по умолчанию параметра шкалы расстояний является средним значением стандартных отклонений предикторов, и стандартное отклонение сигнала является стандартным отклонением ответов, разделенных на квадратный корень из 2. Начальное значение по умолчанию для параметра смеси шкалы равняется 1. Таким образом, phi = [mean(std(X));1;std(y)/sqrt(2)] |
'ardexponential' или 'ardsquaredexponential' или 'ardmatern32' или 'ardmatern52' | (d +1)-by-1 векторный phi , где phi(i) содержит шкалу расстояний для предиктора i и phi(d+1) , содержит стандартное отклонение сигнала. d является количеством переменных прогноза. Начальное значение по умолчанию параметров шкалы расстояний является стандартными отклонениями предикторов, и стандартное отклонение сигнала является стандартным отклонением ответов, разделенных на квадратный корень из 2. Таким образом, phi = [std(X)';std(y)/sqrt(2)] |
'ardrationalquadratic' | (d +2)-by-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 является указателем на функцию, необходимо предоставить начальные значения для параметров ядра. |
Для получения дополнительной информации о функциях ядра смотрите Ядро (Ковариация) Опции Функции.
Пример: 'KernelParameters',theta
Типы данных: double
'DistanceMethod'
— Метод для вычисления разделяет расстояния знаками препинания'fast'
(значение по умолчанию) | 'accurate'
Метод для вычисления разделяет расстояния знаками препинания, чтобы выполнить встроенные функции ядра, заданные как пара, разделенная запятой, состоящая из 'DistanceMethod'
и или 'fast'
или 'accurate'
. fitrgp
вычисляет как когда вы выбираете опцию fast
и как когда вы выбираете опцию accurate
.
Пример: 'DistanceMethod','accurate'
'ActiveSet'
— Наблюдения в активном наборе[]
(значение по умолчанию) | m-by-1 вектор целых чисел в пределах от 1 к n (m ≤ n) | логический вектор длины nНаблюдения в активном наборе, заданном как пара, разделенная запятой, состоящая из 'ActiveSet'
и m-by-1 вектор целых чисел в пределах от 1 к n (m ≤ n) или логический вектор длины 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' | Плотный, симметричный rank-1-based, приближение квазиньютона к Гессиану |
'lbfgs' | Основанное на LBFGS приближение квазиньютона к Гессиану |
'fminsearch' | Неограниченная нелинейная оптимизация с помощью симплексного метода поиска Lagarias и др. [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'
и объекта cvpartition
.
Пример: 'CVPartition',cvp
использует случайный раздел, заданный cvp
.
Если вы задаете CVPartition
, то вы не можете задать Holdout
, KFold
или Leaveout
.
'Holdout'
— Часть данных, чтобы использовать для тестированияЧасть данных, чтобы использовать для тестирования в валидации затяжки, заданной как пара, разделенная запятой, состоящая из 'Holdout'
и скалярного значения в диапазоне от 0 до 1. Если вы задаете 'Holdout',p
, то программное обеспечение:
1. Случайным образом резервы вокруг p *100% данных как данные о валидации и train модель с помощью остальной части данных
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-by-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'}
.
все
Оптимизируйте все имеющие право параметры, эквивалентный to{'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
.
Установите параметры не по умолчанию путем передачи вектора объектов optimizableVariable
, которые имеют значения не по умолчанию. Например,
load fisheriris params = hyperparameters('fitrgp',meas,species); params(1).Range = [1e-4,1e6];
Передайте params
как значение OptimizeHyperparameters
.
По умолчанию итеративное отображение появляется в командной строке, и графики появляются согласно количеству гиперпараметров в оптимизации. Для оптимизации и графиков, целевая функция является журналом (1 + потеря перекрестной проверки) для регрессии и misclassification уровня для классификации. Чтобы управлять итеративным отображением, установите поле 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 | Объект 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'
(значение по умолчанию) | вектор символов | представляет скаляр в виде строкиИмя переменной отклика, заданное как пара, разделенная запятой, состоящая из 'ResponseName'
и вектора символов или скаляра строки.
Если вы предоставляете 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. Затем, это вычисляет новую логарифмическую вероятность L 1 использование η1 и A1.
Во второй итерации программное обеспечение выбирает активный набор A2 с помощью значений параметров в η1. Затем с помощью η1 как начальные значения и A2, это максимизирует GPR крайняя логарифмическая вероятность или ее приближение и оценивает новые значения параметров η2. Затем с помощью η2 и A2, вычисляет новое логарифмическое значение вероятности L 2.
Следующая таблица обобщает итерации и что вычисляется в каждой итерации.
Номер итерации | Активный набор | Вектор параметра | Регистрируйте вероятность |
---|---|---|---|
1 | A1 | η1 | L 1 |
2 | A2 | η2 | L 2 |
3 | A3 | η3 | L 3 |
… | … | … | … |
Программное обеспечение выполняет итерации так же для конкретного количества повторений. Можно задать количество репликаций для активного выбора набора с помощью аргумента пары "имя-значение" NumActiveSetRepeats
.
fitrgp
принимает любую комбинацию подбора кривой, прогноза и активных методов выбора набора. В некоторых случаях не может быть возможно вычислить стандартные отклонения предсказанных ответов, следовательно интервалы прогноза. Смотрите predict
. И в некоторых случаях, использование точного метода может быть дорогим из-за размера данных тренировки.
Свойство PredictorNames
хранит один элемент для каждого из исходных имен переменной прогноза. Например, если существует три предиктора, один из которых является категориальной переменной с тремя уровнями, PredictorNames
1 3 массив ячеек из символьных векторов.
Свойство ExpandedPredictorNames
хранит один элемент для каждой из переменных прогноза, включая фиктивные переменные. Например, если существует три предиктора, один из которых является категориальной переменной с тремя уровнями, затем ExpandedPredictorNames
является массивом ячеек из символьных векторов 1 на 5.
Точно так же свойство Beta
хранит один бета коэффициент для каждого предиктора, включая фиктивные переменные.
Свойство 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'
оптимизировано аналитически от целевой функции.
Оптимизатор квазиньютона использует метод доверительной области с плотным, симметричным rank-1-based (SR1), приближением квазиньютона к Гессиану, в то время как оптимизатор LBFGS использует стандартный метод поиска строки с приближением квазиньютона ограниченной памяти Бройдена Флетчера Голдфарба Шэнно (LBFGS) к Гессиану. Смотрите Носедэла и Райта [6].
Если вы устанавливаете аргумент пары "имя-значение" 'InitialStepSize'
'auto'
, fitrgp
определяет начальный размер шага, , при помощи .
начальный вектор шага, и вектор неограниченных начальных значений параметров.
Во время оптимизации fitrgp
использует начальный размер шага, , можно следующим образом:
Если вы используете 'Optimizer','quasinewton'
с начальным размером шага, то начальное приближение Гессиана .
Если вы используете 'Optimizer','lbfgs'
с начальным размером шага, то начальное приближение обратного Гессиана .
начальный вектор градиента, и единичная матрица.
[1] Уорик J. N. Т. Л. Селлерс, С. Р. Тэлбот, А. Дж. Которн и В. Б. Форд. "Биология Генеральной совокупности Морского ушка (_Haliotis_ разновидности) на Тасмании. I. Морское ушко Blacklip (_H. rubra _) от Северного Побережья и Островов Пролива Басса". Морское Деление Рыболовства, Технический отчет № 48 (ISSN 1034-3288), 1994.
[2] С. Во. "Расширяя и тестируя Каскадной Корреляции в сравнении с эталоном", диссертация. Кафедра информатики, университет Тасмании, 1995.
[3] Личмен, M. Репозиторий машинного обучения UCI, Ирвин, CA: Калифорнийский университет, школа информатики и вычислительной техники, 2013. http://archive.ics.uci.edu/ml.
[4] Расмуссен, C. E. и К. К. Ай. Уильямс. Гауссовы процессы для машинного обучения. Нажатие MIT. Кембридж, Массачусетс, 2006.
[5] Lagarias, J. C. Дж. А. Ридс, М. Х. Райт и П. Э. Райт. "Свойства сходимости Симплекс-метода Nelder-меда в Низких Размерностях". SIAM Journal Оптимизации. Издание 9, Номер 1, 1998, стр 112–147.
[6] Nocedal, J. и С. Дж. Райт. Числовая оптимизация, второй выпуск. Ряд Спрингера в исследовании операций, Springer Verlag, 2006.
Чтобы запуститься параллельно, установите опцию 'UseParallel'
на true
.
Чтобы выполнить параллельную гипероптимизацию параметров управления, используйте аргумент пары "имя-значение" 'HyperparameterOptions', struct('UseParallel',true)
в вызове этой функции.
Для получения дополнительной информации о параллельной гипероптимизации параметров управления смотрите Параллельную Байесовую Оптимизацию.
Для более общей информации о параллельных вычислениях смотрите функции MATLAB Выполнения с Автоматической Параллельной Поддержкой (Parallel Computing Toolbox).
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.