fitrgp

Подбирайте модель Gaussian process regression (GPR)

Описание

пример

gprMdl = fitrgp(Tbl,ResponseVarName) возвращается модель Gaussian process regression (GPR) обучила использование выборочных данных в Tbl, где ResponseVarName имя переменной отклика в Tbl.

gprMdl = fitrgp(Tbl,formula) возвращает модель Gaussian process regression (GPR), обученное использование выборочных данных в Tbl, для переменных предикторов и переменных отклика, идентифицированных formula.

gprMdl = fitrgp(Tbl,y) возвращает модель GPR для предикторов в таблице Tbl и непрерывный вектор отклика y.

пример

gprMdl = fitrgp(X,y) возвращает модель GPR для предикторов X и непрерывный вектор отклика y.

пример

gprMdl = fitrgp(___,Name,Value) возвращает модель GPR для любого из входных параметров в предыдущих синтаксисах, с дополнительными опциями, заданными одним или несколькими Name,Value парные аргументы.

Например, можно задать подходящий метод, метод прогноза, функцию ковариации или активный метод выбора набора. Можно также обучить перекрестную подтвержденную модель.

gprMdl RegressionGP объект. Для методов и свойств этого класса, смотрите RegressionGP страница класса.

Если вы обучаете перекрестную подтвержденную модель, то gprMdl RegressionPartitionedModel объект. Для последующего анализа на перекрестном подтвержденном объекте используйте методы RegressionPartitionedModel класс. Для методов этого класса смотрите RegressionPartitionedModel страница класса.

Примеры

свернуть все

Этот пример использует данные о морском ушке [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

Набор данных имеет 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 с помощью экспоненциальной функции ядра в квадрате с отдельной шкалой расстояний для каждого предиктора. Эта функция ковариации задана как:

k(xi,xj|θ)=σf2exp[-12m=1d(xim-xjm)2σm2].

где σm представляет шкалу расстояний для предиктора m, m = 1, 2, ..., d и σf стандартное отклонение сигнала. Неограниченная параметризация θ

θm=журналσm,form=1,2,...,dθd+1=журналσf.

Инициализируйте шкалы расстояний функции ядра в 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.1730
    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 | log(1+loss) | runtime     | (observed)  | (estim.)    |              |
|======================================================================================|
|    1 | Best   |     0.29417 |      2.4152 |     0.29417 |     0.29417 |    0.0015045 |
|    2 | Best   |    0.037898 |      1.8636 |    0.037898 |    0.060792 |      0.14147 |
|    3 | Accept |      1.5693 |      1.1083 |    0.037898 |    0.040633 |       25.279 |
|    4 | Accept |     0.29417 |      2.3293 |    0.037898 |    0.037984 |    0.0001091 |
|    5 | Accept |     0.29393 |      2.5312 |    0.037898 |    0.038029 |     0.029932 |
|    6 | Accept |     0.13152 |      1.7266 |    0.037898 |    0.038127 |      0.37127 |
|    7 | Best   |    0.037785 |       2.064 |    0.037785 |    0.037728 |      0.18116 |
|    8 | Accept |     0.03783 |       1.837 |    0.037785 |    0.036524 |      0.16251 |
|    9 | Accept |    0.037833 |      1.9385 |    0.037785 |    0.036854 |      0.16159 |
|   10 | Accept |    0.037835 |      1.9463 |    0.037785 |    0.037052 |      0.16072 |
|   11 | Accept |     0.29417 |      2.3556 |    0.037785 |     0.03705 |   0.00038214 |
|   12 | Accept |     0.42256 |      1.3779 |    0.037785 |     0.03696 |       3.2067 |
|   13 | Accept |     0.03786 |       1.845 |    0.037785 |    0.037087 |      0.15245 |
|   14 | Accept |     0.29417 |      2.3797 |    0.037785 |    0.037043 |    0.0063584 |
|   15 | Accept |     0.42302 |      1.3971 |    0.037785 |     0.03725 |       1.2221 |
|   16 | Accept |    0.039486 |      1.6847 |    0.037785 |    0.037672 |      0.10069 |
|   17 | Accept |    0.038591 |       1.745 |    0.037785 |    0.037687 |      0.12077 |
|   18 | Accept |    0.038513 |      1.8117 |    0.037785 |    0.037696 |       0.1227 |
|   19 | Best   |    0.037757 |      1.8722 |    0.037757 |    0.037572 |      0.19621 |
|   20 | Accept |    0.037787 |      1.9044 |    0.037757 |    0.037601 |      0.18068 |
|======================================================================================|
| Iter | Eval   | Objective:  | Objective   | BestSoFar   | BestSoFar   |        Sigma |
|      | result | log(1+loss) | runtime     | (observed)  | (estim.)    |              |
|======================================================================================|
|   21 | Accept |     0.44917 |      1.2512 |    0.037757 |     0.03766 |       8.7818 |
|   22 | Accept |    0.040201 |      1.6171 |    0.037757 |    0.037601 |     0.075414 |
|   23 | Accept |    0.040142 |       1.581 |    0.037757 |    0.037607 |     0.087198 |
|   24 | Accept |     0.29417 |      2.3457 |    0.037757 |     0.03758 |    0.0031018 |
|   25 | Accept |     0.29417 |      2.3225 |    0.037757 |    0.037555 |   0.00019545 |
|   26 | Accept |     0.29417 |      2.3207 |    0.037757 |    0.037582 |     0.013608 |
|   27 | Accept |     0.29417 |      2.3569 |    0.037757 |    0.037556 |   0.00076147 |
|   28 | Accept |     0.42162 |      1.3194 |    0.037757 |    0.037854 |       0.6791 |
|   29 | Best   |    0.037704 |      1.9705 |    0.037704 |    0.037908 |       0.2367 |
|   30 | Accept |    0.037725 |      2.0022 |    0.037704 |    0.037881 |      0.21743 |

__________________________________________________________
Optimization completed.
MaxObjectiveEvaluations of 30 reached.
Total function evaluations: 30
Total elapsed time: 74.3299 seconds.
Total objective function evaluation time: 57.2206

Best observed feasible point:
    Sigma 
    ______

    0.2367

Observed objective function value = 0.037704
Estimated objective function value = 0.037881
Function evaluation time = 1.9705

Best estimated feasible point (according to models):
     Sigma 
    _______

    0.16159

Estimated objective function value = 0.037881
Estimated function evaluation time = 1.8253

Сравните пред - и подгонки постоптимизации.

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

Задайте экспоненциальную функцию ядра в квадрате как пользовательскую функцию ядра.

Можно вычислить экспоненциальную функцию ядра в квадрате как

k(xi,xj|θ)=σf2exp(-12(xi-xj)T(xi-xj)σl2),

где σf стандартное отклонение сигнала, σl шкала расстояний. Оба σf и σl должен быть больше нуля. Это условие может быть осуществлено неограниченной параметризацией, σl=exp(θ(1)) и σf=exp(θ(2)), для некоторого неограниченного вектора параметризации θ.

Следовательно, можно задать экспоненциальную функцию ядра в квадрате как пользовательскую функцию ядра можно следующим образом:

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 как допуск завершения к относительной норме градиента.

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-м предикторам. Несоответствующие предикторы имеют веса близко к нулю.

Входные параметры

свернуть все

Выборочные данные раньше обучали модель, заданную как table. Каждая строка Tbl соответствует одному наблюдению, и каждый столбец соответствует одной переменной. Tbl содержит переменные предикторы, и опционально это может также содержать один столбец для переменной отклика. Многостолбцовые переменные и массивы ячеек кроме массивов ячеек из символьных векторов не позволены.

  • Если Tbl содержит переменную отклика, и вы хотите использовать все остающиеся переменные в качестве предикторов, затем задать переменную отклика с помощью ResponseVarName.

  • Если Tbl содержит переменную отклика, и вы хотите использовать только подмножество предикторов в обучении модель, затем задать переменную отклика и переменные предикторы с помощью formula.

  • Если Tbl не содержит переменную отклика, затем задает переменную отклика с помощью y. Длина переменной отклика и количество строк в Tbl должно быть равным.

Для получения дополнительной информации о table тип данных, смотрите table.

Если ваши данные о предикторе содержат категориальные переменные, то программное обеспечение использует полное фиктивное кодирование в этих переменных. Программное обеспечение создает одну фиктивную переменную для каждого уровня категориальной переменной.

Типы данных: table

Имя переменной отклика, заданное как имя переменной в Tbl. Необходимо задать ResponseVarName как вектор символов или скаляр строки. Например, если переменная отклика y хранится в Tbl (как Tbl.y), затем задайте его как 'y'. В противном случае программное обеспечение обрабатывает все столбцы Tbl, включая y, как предикторы, когда обучение модель.

Типы данных: char | string

Переменные отклика и переменные предикторы, чтобы использовать в обучении модели, заданном как вектор символов или представить скаляр в виде строки в форме 'y~x1+x2+x3'. В этой форме, y представляет переменную отклика; x1x2 , x3 представляйте переменные предикторы, чтобы использовать в обучении модель.

Используйте формулу, если вы хотите задать подмножество переменных в Tbl как предикторы, чтобы использовать, когда обучение модель. Если вы задаете формулу, то любые переменные, которые не появляются в formula не используются, чтобы обучить модель.

Имена переменных в формуле должны быть оба именами переменных в Tbl (Tbl.Properties.VariableNames) и допустимые идентификаторы MATLAB®.

Можно проверить имена переменных в Tbl при помощи isvarname функция. Следующий код возвращает логический 1 TRUE) для каждой переменной, которая имеет допустимое имя переменной.

cellfun(@isvarname,Tbl.Properties.VariableNames)
Если имена переменных в Tbl не допустимы, затем преобразуют их при помощи matlab.lang.makeValidName функция.
Tbl.Properties.VariableNames = matlab.lang.makeValidName(Tbl.Properties.VariableNames);

Формула не указывает на форму BasisFunction.

Пример: 'PetalLength~PetalWidth+Species' идентифицирует переменную PetalLength как переменная отклика и PetalWidth и Species как переменные предикторы.

Типы данных: char | string

Данные о предикторе для модели GPR, заданной как n-by-d матрица. n является количеством наблюдений (строки), и d является количеством предикторов (столбцы).

Длина y и количество строк X должно быть равным.

Задавать имена предикторов в порядке их внешнего вида в X, используйте PredictorNames аргумент пары "имя-значение".

Типы данных: double

Данные об ответе для модели 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' аргумент пары "имя-значение".

Подбор кривой

свернуть все

Метод, чтобы оценить параметры модели GPR, заданной как разделенная запятой пара, состоящая из 'FitMethod' и одно из следующих.

Подходящий методОписание
'none'Никакая оценка, используйте начальные значения параметров в качестве известных значений параметров.
'exact'Точная Гауссова регрессия процесса. Значение по умолчанию, если n ≤ 2000, где n является количеством наблюдений.
'sd'Подмножество приближения точек данных. Значение по умолчанию, если n> 2000, где n является количеством наблюдений.
'sr'Подмножество приближения регрессоров.
'fic'Полностью независимое условное приближение.

Пример: 'FitMethod','fic'

Явное основание в модели GPR, заданной как разделенная запятой пара, состоящая из 'BasisFunction' и одно из следующих. Если n является количеством наблюдений, основная функция добавляет термин H *β к модели, где H является базисной матрицей, и β является p-by-1 вектор базисных коэффициентов.

Явное основаниеБазисная матрица
'none'Пустая матрица.
'constant'

H=1

(n-by-1 вектор 1 с, где n является количеством наблюдений),

'linear'

H=[1,X]

'pureQuadratic'

H=[1,X,X2],

где

X2=[x112x122x1d2x212x222x2d2xn12xn22xnd2].

Указатель на функцию

Указатель на функцию, hfcn, тот fitrgp вызовы как:

H=hfcn(X),

где X n-by-d матрица предикторов, и H является n-by-p матрица основных функций.

Пример: 'BasisFunction','pureQuadratic'

Типы данных: char | string | function_handle

Начальное значение коэффициентов для явного основания, заданного как разделенная запятой пара, состоящая из 'Beta' и p-by-1 вектор, где p является количеством столбцов в базисной матрице H.

Базисная матрица зависит от выбора явной основной функции можно следующим образом (также смотрите BasisFunction).

fitrgp использует содействующие начальные значения в качестве известных содействующих значений, только когда FitMethod 'none'.

Типы данных: double

Начальное значение для шумового стандартного отклонения Гауссовой модели процесса, заданной как разделенная запятой пара, состоящая из 'Sigma' и значение положительной скалярной величины.

Пример: 'Sigma',2

Типы данных: double

Постоянное значение Sigma для шумового стандартного отклонения Гауссовой модели процесса, заданной как логический скаляр. Когда ConstantSigma true, fitrgp не оптимизирует значение Sigma, но вместо этого принимает начальное значение как значение в течение его расчетов.

Пример: 'ConstantSigma',true

Типы данных: логический

Нижняя граница на шумовом стандартном отклонении, заданном как разделенная запятой пара, состоящая из 'SigmaLowerBound' и значение положительной скалярной величины.

Пример: 'SigmaLowerBound',0.02

Типы данных: double

Категориальный список предикторов, заданный как разделенная запятой пара, состоящая из 'CategoricalPredictors' и одно из значений в этой таблице.

ЗначениеОписание
Вектор положительных целых чиселКаждая запись в векторе является значением индекса, соответствующим столбцу данных о предикторе (X или Tbl) это содержит категориальную переменную.
Логический векторtrue запись означает что соответствующий столбец данных о предикторе (X или Tbl) категориальная переменная.
Символьная матрицаКаждая строка матрицы является именем переменного предиктора. Имена должны совпадать с записями в PredictorNames. Заполните имена дополнительными пробелами, таким образом, каждая строка символьной матрицы имеет ту же длину.
Массив строк или массив ячеек из символьных векторовКаждый элемент в массиве является именем переменного предиктора. Имена должны совпадать с записями в PredictorNames.
всеВсе предикторы являются категориальными.

По умолчанию, если данные о предикторе находятся в таблице (Tbl), fitrgp принимает, что переменная является категориальной, если это - логический вектор, категориальный вектор, символьный массив, массив строк или массив ячеек из символьных векторов. Если данные о предикторе являются матрицей (X), fitrgp принимает, что все предикторы непрерывны. Чтобы идентифицировать любые другие предикторы как категориальные предикторы, задайте их при помощи 'CategoricalPredictors' аргумент пары "имя-значение".

Для идентифицированных категориальных предикторов, fitrgp создает фиктивные переменные с помощью двух различных схем, в зависимости от того, не упорядочена ли категориальная переменная или упорядочена. Для получения дополнительной информации смотрите Автоматическое Создание Фиктивных Переменных.

Пример: 'CategoricalPredictors','all'

Типы данных: single | double | logical | char | string | cell

Индикатор, чтобы стандартизировать данные, заданные как разделенная запятой пара, состоящая из 'Standardize' и логическое значение.

Если вы устанавливаете 'Standardize',1, затем центры программного обеспечения и шкалы каждый столбец данных о предикторе, столбцом среднее и стандартное отклонение, соответственно. Программное обеспечение не стандартизирует данные, содержавшиеся в фиктивных переменных столбцах, которые это генерирует для категориальных предикторов.

Пример: 'Standardize',1

Пример: 'Standardize',true

Типы данных: логический

Стандартное отклонение регуляризации для разреженного подмножества методов регрессоров ('sr') и полностью независимое условное выражение ('fic'), заданный как разделенная запятой пара, состоящая из 'Regularization' и значение положительной скалярной величины.

Пример: 'Regularization',0.2

Типы данных: double

Метод для вычисления логарифмической вероятности и градиента для оценки параметра с помощью подмножества регрессоров ('sr') и полностью независимое условное выражение ('fic') методы приближения, заданные как разделенная запятой пара, состоящая из 'ComputationMethod' и одно из следующих.

  • 'qr' — Используйте основанный на QR-факторизации подход, эта опция обеспечивает лучшую точность.

  • 'v' — Используйте подход V-method-based. Эта опция обеспечивает более быстрый расчет логарифмических градиентов вероятности.

Пример: 'ComputationMethod','v'

Ядро (ковариация) функция

свернуть все

Форма функции ковариации, заданной как разделенная запятой пара, состоящая из '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, :) и XnJ.
theta r-by-1 неограниченный вектор параметра для kfcn.

Для получения дополнительной информации о функциях ядра смотрите Ядро (Ковариация) Опции Функции.

Пример: 'KernelFunction','matern32'

Типы данных: char | string | function_handle

Начальные значения для параметров ядра, заданных как разделенная запятой пара, состоящая из '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'. fitrgp вычисляет (xy)2 как x2+y22*x*y когда вы выбираете fast опция и как (xy)2 когда вы выбираете accurate опция.

Пример: 'DistanceMethod','accurate'

Активный выбор набора

свернуть все

Наблюдения в активном наборе, заданном как разделенная запятой пара, состоящая из 'ActiveSet' и m-by-1 вектор целых чисел в пределах от 1 к n (mn) или логический вектор длины n по крайней мере с одним true элемент. n является общим количеством наблюдений в обучающих данных.

fitrgp использует наблюдения, обозначенные ActiveSet обучать модель GPR. Активный набор не может иметь дублирующихся элементов.

Если вы предоставляете ActiveSetзатем:

  • fitrgp не использует ActiveSetSize и ActiveSetMethod.

  • Вы не можете выполнить перекрестную проверку на этой модели.

Типы данных: double | logical

Размер активного набора для разреженных методов ('sd', 'sr', 'fic'), заданный как разделенная запятой пара, состоящая из 'ActiveSetSize' и целочисленный m, 1 ≤ mn, где n является количеством наблюдений.

Значением по умолчанию является min (1000, n) когда FitMethod 'sr' или 'fic', и min (2000, n), в противном случае.

Пример: 'ActiveSetSize',100

Типы данных: double

Активный метод выбора набора, заданный как разделенная запятой пара, состоящая из 'ActiveSetMethod' и одно из следующих.

МетодОписание
'random'Случайный выбор
'sgma'Разреженное жадное матричное приближение
'entropy'Дифференциальный основанный на энтропии выбор
'likelihood'Подмножество регрессоров регистрирует основанный на вероятности выбор

Все активные методы выбора набора (кроме 'random') потребуйте устройства хранения данных n-by-m матрица, где m является размером активного набора, и n является количеством наблюдений.

Пример: 'ActiveSetMethod','entropy'

Случайный поисковый размер набора на жадное включение для активного выбора набора, заданного как разделенная запятой пара, состоящая из 'RandomSearchSetSize' и целочисленное значение.

Пример: 'RandomSearchSetSize',30

Типы данных: double

Относительный допуск к завершению активного выбора набора, заданного как разделенная запятой пара, состоящая из 'ToleranceActiveset' и значение положительной скалярной величины.

Пример: 'ToleranceActiveset',0.0002

Типы данных: double

Количество повторений для чередованного активного выбора набора и оценки параметра, когда ActiveSetMethod не 'random', заданный как разделенная запятой пара, состоящая из 'NumActiveSetRepeats' и целочисленное значение.

Пример: 'NumActiveSetRepeats',5

Типы данных: double

Предсказание

свернуть все

Метод раньше делал прогнозы из Гауссовой модели процесса, учитывая параметры, заданные как разделенная запятой пара, состоящая из 'PredictMethod' и одно из следующих.

МетодОписание
'exact'Точный Гауссов метод регрессии процесса. Значение по умолчанию, если n ≤ 10000.
'bcd'Блокируйте Координатный Спуск. Значение по умолчанию, если n> 10000.
'sd'Подмножество приближения Точек данных.
'sr'Подмножество приближения Регрессоров.
'fic'Полностью Независимое Условное приближение.

Пример: 'PredictMethod','bcd'

Размер блока для блока координирует метод спуска ('bcd'), заданный как разделенная запятой пара, состоящая из 'BlockSizeBCD' и целое число в диапазоне от 1 до n, где n является количеством наблюдений.

Пример: 'BlockSizeBCD',1500

Типы данных: double

Количество жадных выборов для блока координирует метод спуска ('bcd'), заданный как разделенная запятой пара, состоящая из 'NumGreedyBCD' и целое число в диапазоне от 1 до BlockSizeBCD.

Пример: 'NumGreedyBCD',150

Типы данных: double

Относительный допуск на норме градиента для завершения блока координирует метод спуска ('bcd') итерации, заданные как разделенная запятой пара, состоящая из 'ToleranceBCD' и положительная скалярная величина.

Пример: 'ToleranceBCD',0.002

Типы данных: double

Абсолютный допуск на размере шага для завершения блока координирует метод спуска ('bcd') итерации, заданные как разделенная запятой пара, состоящая из 'StepToleranceBCD' и положительная скалярная величина.

Пример: 'StepToleranceBCD',0.002

Типы данных: double

Максимальное количество блока координирует метод спуска ('bcd') итерации, заданные как разделенная запятой пара, состоящая из 'IterationLimitBCD' и целочисленное значение.

Пример: 'IterationLimitBCD',10000

Типы данных: double

Оптимизация

свернуть все

Оптимизатор, чтобы использовать в оценке параметра, заданной как разделенная запятой пара, состоящая из 'Optimizer' и одно из значений в этой таблице.

ЗначениеОписание
'quasinewton'Плотный, симметричный rank-1-based, приближение квазиньютона к Гессиану
'lbfgs'Основанное на LBFGS приближение квазиньютона к Гессиану
'fminsearch'Неограниченная нелинейная оптимизация с помощью симплексного метода поиска Lagarias и др. [5]
'fminunc'Неограниченная нелинейная оптимизация (требует лицензии Optimization Toolbox™),
'fmincon'Ограниченная нелинейная оптимизация (требует лицензии Optimization Toolbox),

Для получения дополнительной информации об оптимизаторах см. Алгоритмы.

Пример: 'Optimizer','fmincon'

Опции для оптимизатора вы выбираете использование Optimizer аргумент пары "имя-значение", заданный как разделенная запятой пара, состоящая из 'OptimizerOptions' и структура или объект создается optimset, statset('fitrgp'), или optimoptions.

ОптимизаторСоздайте опции оптимизатора Используя
'fminsearch'optimset Структура
'quasinewton' или 'lbfgs'statset('fitrgp') Структура
'fminunc' или 'fmincon'optimoptions объект

Опции по умолчанию зависят от типа оптимизатора.

Пример: 'OptimizerOptions',opt

Начальный размер шага, заданный как разделенная запятой пара, состоящая из 'InitialStepSize' и действительная положительная скалярная величина или 'auto'.

'InitialStepSize' аппроксимированное максимальное абсолютное значение первого шага оптимизации, когда оптимизатором является 'quasinewton' или 'lbfgs'. Начальный размер шага может определить начальное приближение Гессиана во время оптимизации.

По умолчанию, fitrgp не использует начальный размер шага, чтобы определить начальное приближение Гессиана. Чтобы использовать начальный размер шага, установите значение для 'InitialStepSize' аргумент пары "имя-значение", или задают 'InitialStepSize','auto' иметь fitrgp определите значение автоматически. Для получения дополнительной информации о 'auto', см. Алгоритмы.

Пример: 'InitialStepSize','auto'

Перекрестная проверка

свернуть все

Индикатор для перекрестной проверки, заданной как разделенная запятой пара, состоящая из 'CrossVal' и любой 'off' или 'on'. Если это - 'on', затем fitrgp возвращает модель GPR, перекрестную подтвержденную с 10 сгибами.

Можно использовать один из KFold, Holdout, Leaveout или CVPartition аргументы пары "имя-значение", чтобы изменить настройки перекрестной проверки по умолчанию. Можно использовать только одну из этих пар "имя-значение" за один раз.

Как альтернатива, можно использовать crossval метод для вашей модели.

Пример: 'CrossVal','on'

Случайный раздел для стратифицированного k - сворачивает перекрестную проверку, заданную как разделенная запятой пара, состоящая из 'CVPartition' и cvpartition объект.

Пример: 'CVPartition',cvp использует случайный раздел, заданный cvp.

Если вы задаете CVPartition, затем вы не можете задать Holdout, KFold, или Leaveout.

Часть данных, чтобы использовать в тестировании в валидации затяжки, заданной как разделенная запятой пара, состоящая из 'Holdout' и скалярное значение в диапазоне от 0 до 1. Если вы задаете 'Holdout',p, затем программное обеспечение:
1. Случайным образом резервы вокруг p *100% данных как данные о валидации, и обучают модель с помощью остальной части данных
2. Хранит компактную, обученную модель в cvgprMdl.Trained.

Пример: 'Holdout', 0.3 использование 30% данных для тестирования и 70% данных для обучения.

Если вы задаете Holdout, затем вы не можете задать CVPartition, KFold, или Leaveout.

Типы данных: double

Количество сгибов, чтобы использовать в перекрестной подтвержденной модели 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','on', затем, для каждого из наблюдений n, программного обеспечения:
1. Резервирует наблюдение как тестовые данные и обучает модель с помощью другого n – 1 наблюдение.
2. Хранит компактную, обученную модель в ячейке в n-by-1 массив ячеек cvgprMdl.Trained.

Пример: 'Leaveout','on'

Если вы задаете Leaveout, затем вы не можете задать CVPartition, Holdout, или KFold.

Гипероптимизация параметров управления

свернуть все

Параметры, чтобы оптимизировать, заданный как разделенная запятой пара, состоящая из 'OptimizeHyperparameters' и одно из следующего:

  • 'none' — Не оптимизировать.

  • 'auto' — Используйте {'Sigma'}.

  • 'all' — Оптимизируйте все имеющие право параметры, эквивалентный to{'BasisFunction','KernelFunction','KernelScale','Sigma','Standardize'}.

  • Массив строк или массив ячеек имеющих право названий параметра.

  • Вектор optimizableVariable объекты, обычно выход hyperparameters.

Оптимизация пытается минимизировать потерю перекрестной проверки (ошибка) для fitrgp путем варьирования параметров. Для получения информации о потере перекрестной проверки (хотя в различном контексте), смотрите Потерю Классификации. Чтобы управлять типом перекрестной проверки и другими аспектами оптимизации, используйте HyperparameterOptimizationOptions пара "имя-значение".

Примечание

'OptimizeHyperparameters' значения заменяют любые значения, вы устанавливаете использование других аргументов пары "имя-значение". Например, установка 'OptimizeHyperparameters' к 'auto' вызывает 'auto' значения, чтобы применяться.

Имеющие право параметры для fitrgp :

  • BasisFunctionfitrgp поисковые запросы среди 'constant''none', 'linear', и 'pureQuadratic'.

  • KernelFunctionfitrgp поисковые запросы среди 'ardexponential', 'ardmatern32', 'ardmatern52', 'ardrationalquadratic', 'ardsquaredexponential', 'exponential', 'matern32', 'matern52', 'rationalquadratic', и 'squaredexponential'.

  • KernelScalefitrgp использует KernelParameters аргумент, чтобы задать значение масштабного коэффициента ядра, который считается постоянный во время подбора кривой. В этом случае все входные размерности ограничиваются иметь тот же KernelScale значение. fitrgp поисковые запросы среди действительного значения в области значений [1e-3*MaxPredictorRange,MaxPredictorRange], где

    MaxPredictorRange = max(max(X) - min(X)).

    KernelScale не может быть оптимизирован ни для одного из ядер ARD.

  • Sigmafitrgp поисковые запросы среди действительного значения в области значений [1e-4, max(1e-3,10*ResponseStd)], где

    ResponseStd = std(y).

    Внутренне, fitrgp устанавливает ConstantSigma пара "имя-значение" к true так значение Sigma является постоянным во время подбора кривой.

  • Standardizefitrgp поисковые запросы среди 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' и структура. Этот аргумент изменяет эффект OptimizeHyperparameters аргумент пары "имя-значение". Все поля в структуре являются дополнительными.

Имя поляЗначенияЗначение по умолчанию
Optimizer
  • 'bayesopt' — Используйте Байесовую оптимизацию. Внутренне, эта установка вызывает bayesopt.

  • 'gridsearch' — Используйте поиск сетки с NumGridDivisions значения на размерность.

  • 'randomsearch' — Поиск наугад среди MaxObjectiveEvaluations 'points'.

'gridsearch' поисковые запросы в произвольном порядке, с помощью универсальной выборки без замены от сетки. После оптимизации можно получить таблицу в порядке сетки при помощи команды sortrows(Mdl.HyperparameterOptimizationResults).

'bayesopt'
AcquisitionFunctionName

  • 'expected-improvement-per-second-plus'

  • 'expected-improvement'

  • 'expected-improvement-plus'

  • 'expected-improvement-per-second'

  • 'lower-confidence-bound'

  • 'probability-of-improvement'

Приобретение функционирует, чьи имена включают per-second не давайте к восстанавливаемым результатам, потому что оптимизация зависит от времени выполнения целевой функции. Приобретение функционирует, чьи имена включают plus измените их поведение, когда они сверхиспользуют область. Для получения дополнительной информации смотрите Типы Функции Приобретения.

'expected-improvement-per-second-plus'
MaxObjectiveEvaluationsМаксимальное количество оценок целевой функции.30 для 'bayesopt' или 'randomsearch', и целая сетка для 'gridsearch'
MaxTime

Ограничение по времени, заданное как положительное действительное. Ограничение по времени находится в секундах, как измерено tic и toc. Время выполнения может превысить MaxTime потому что MaxTime не делает оценок функции обработки прерываний.

Inf
NumGridDivisionsДля 'gridsearch', количество значений в каждой размерности. Значение может быть вектором положительных целых чисел, дающих количество значений для каждой размерности или скаляр, который применяется ко всем размерностям. Это поле проигнорировано для категориальных переменных.10
ShowPlotsЛогическое значение, указывающее, показать ли графики. Если true, это поле строит лучшее значение целевой функции против номера итерации. Если существуют один или два параметра оптимизации, и если Optimizer 'bayesopt', затем ShowPlots также строит модель целевой функции против параметров.true
SaveIntermediateResultsЛогическое значение, указывающее, сохранить ли результаты когда Optimizer 'bayesopt'. Если true, это поле перезаписывает переменную рабочей области под названием 'BayesoptResults' в каждой итерации. Переменной является BayesianOptimization объект.false
Verbose

Отобразитесь к командной строке.

  • 0 — Никакое итеративное отображение

  • 1 Итеративное отображение

  • 2 — Итеративное отображение с дополнительной информацией

Для получения дополнительной информации смотрите bayesopt Verbose аргумент пары "имя-значение".

1
UseParallelЛогическое значение, указывающее, запустить ли Байесовую оптимизацию параллельно, которая требует Parallel Computing Toolbox™. Из-за невоспроизводимости синхронизации параллели, параллельная Байесова оптимизация не обязательно дает к восстанавливаемым результатам. Для получения дополнительной информации смотрите Параллельную Байесовую Оптимизацию.false
Repartition

Логическое значение, указывающее, повторно разделить ли перекрестную проверку в каждой итерации. Если false, оптимизатор использует один раздел в оптимизации.

true обычно дает большинство устойчивых результатов, потому что эта установка принимает шум разделения во внимание. Однако для хороших результатов, true требует, по крайней мере, вдвое большего количества функциональных оценок.

false
Используйте не больше, чем одни из следующих трех имен полей.
CVPartitioncvpartition объект, как создано cvpartition.'Kfold',5 если вы не задаете поля перекрестной проверки
HoldoutСкаляр в области значений (0,1) представление части затяжки.
KfoldЦелое число, больше, чем 1.

Пример: 'HyperparameterOptimizationOptions',struct('MaxObjectiveEvaluations',60)

Типы данных: struct

Другой

свернуть все

Имена переменного предиктора, заданные как разделенная запятой пара, состоящая из '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' задавать имя для переменной отклика.

  • Если вы предоставляете ResponseVarName или formula, затем вы не можете использовать 'ResponseName'.

Пример: 'ResponseName','response'

Типы данных: char | string

Уровень многословия, заданный как разделенная запятой пара, состоящая из 'Verbose' и одно из следующих.

  • 0 — fitrgp подавляет диагностические сообщения, связанные с активным выбором набора и спуском координаты блока, но отображает сообщения, связанные с оценкой параметра, в зависимости от значения 'Display' в OptimizerOptions.

  • 1 — fitrgp отображает итеративные диагностические сообщения, связанные с оценкой параметра, активным выбором набора и спуском координаты блока.

Пример: 'Verbose',1

Размер кэша в мегабайтах (МБ), заданных как разделенная запятой пара, состоящая из 'CacheSize' и положительная скалярная величина. Размер кэша является дополнительной памятью, которая доступна в дополнение к требуемому для подбора кривой и активного выбора набора. fitrgp использование CacheSize к:

  • Решите, разделяют ли расстояния знаками препинания, должен кэшироваться при оценке параметров.

  • Решите, как матричные векторные произведения должны быть вычислены для метода спуска координаты блока и для того, чтобы сделать прогнозы.

Пример: 'CacheSize',2000

Типы данных: double

Выходные аргументы

свернуть все

Гауссова модель регрессии процесса, возвращенная как 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.

Следующая таблица обобщает итерации и что вычисляется в каждой итерации.

Номер итерацииАктивный наборВектор параметраРегистрируйте вероятность
1A1η1L 1
2A2η2L 2
3A3η3L 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 включает оценку следующих параметров модели из данных:

    • Функция ковариации k(xi,xj|θ) параметризованный в терминах параметров ядра в векторе θ (см. ядро (ковариация) опции функции),

    • Шумовое отклонение, σ2

    • Вектор коэффициентов фиксированных основных функций, β

    Значение 'KernelParameters' аргументом пары "имя-значение" является вектор, который состоит из начальных значений для стандартного отклонения сигнала σf и характеристические шкалы расстояний σl. fitrgp функционируйте использует эти значения, чтобы определить параметры ядра. Точно так же 'Sigma' аргумент пары "имя-значение" содержит начальное значение для шумового стандартного отклонения σ.

  • Во время оптимизации, fitrgp создает вектор неограниченных начальных значений параметров η0 при помощи начальных значений для шумового стандартного отклонения и параметров ядра.

  • fitrgp аналитически определяет явные базисные коэффициенты β, заданный 'Beta' аргумент пары "имя-значение", от ориентировочных стоимостей θ и σ2. Поэтому β не появляется в η0 вектор, когда fitrgp инициализирует числовую оптимизацию.

    Примечание

    Если вы не задаете оценки параметров для модели GPR, fitrgp использует значение 'Beta' аргумент пары "имя-значение" и другие начальные значения параметров как известные значения параметров GPR (см. Beta). Во всех других случаях, значении 'Beta' аргумент оптимизирован аналитически от целевой функции.

  • Оптимизатор квазиньютона использует метод доверительной области с плотным, симметричным rank-1-based (SR1), приближением квазиньютона к Гессиану, в то время как оптимизатор LBFGS использует стандартный метод поиска линии приближением квазиньютона ограниченной памяти Бройдена Флетчера Голдфарба Шэнно (LBFGS) к Гессиану. Смотрите Носедэла и Райта [6].

  • Если вы устанавливаете 'InitialStepSize' аргумент пары "имя-значение" 'auto', fitrgp определяет начальный размер шага, s0, при помощи s0=0.5η0+0.1.

    s0 начальный вектор шага, и η0 вектор неограниченных начальных значений параметров.

  • Во время оптимизации, fitrgp использует начальный размер шага, s0, можно следующим образом:

    Если вы используете 'Optimizer','quasinewton' с начальным размером шага затем начальное приближение Гессиана g0s0I.

    Если вы используете 'Optimizer','lbfgs' с начальным размером шага затем начальное приближение обратного Гессиана s0g0I.

    g0 начальный вектор градиента, и I единичная матрица.

Ссылки

[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.

Расширенные возможности

Введенный в R2015b