fitrgp

Подбор модели регрессии Гауссова процесса (GPR)

Описание

пример

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

gprMdl = fitrgp(Tbl,formula) возвращает модель регрессии Гауссова процесса (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 страница класса.

Примеры

свернуть все

Этот пример использует данные abalone [1], [2] из репозитория машинного обучения UCI [3]. Загрузите данные и сохраните их в текущей папке с именем abalone.data.

Сохраните данные в таблице. Отобразите первые семь строк.

tbl = readtable('abalone.data','Filetype','text',...
     'ReadVariableNames',false);
tbl.Properties.VariableNames = {'Sex','Length','Diameter','Height',...
     'WWeight','SWeight','VWeight','ShWeight','NoShellRings'};
tbl(1:7,:)
ans = 

    Sex    Length    Diameter    Height    WWeight    SWeight    VWeight    ShWeight    NoShellRings
    ___    ______    ________    ______    _______    _______    _______    ________    ____________

    'M'    0.455     0.365       0.095      0.514     0.2245      0.101      0.15       15          
    'M'     0.35     0.265        0.09     0.2255     0.0995     0.0485      0.07        7          
    'F'     0.53      0.42       0.135      0.677     0.2565     0.1415      0.21        9          
    'M'     0.44     0.365       0.125      0.516     0.2155      0.114     0.155       10          
    'I'     0.33     0.255        0.08      0.205     0.0895     0.0395     0.055        7          
    'I'    0.425       0.3       0.095     0.3515      0.141     0.0775      0.12        8          
    'F'     0.53     0.415        0.15     0.7775      0.237     0.1415      0.33       20

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

Подгонка модели GPR с использованием подмножества метода регрессоров для оценки параметра и полностью независимого условного метода для предсказания. Стандартизируйте предикторы.

gprMdl = fitrgp(tbl,'NoShellRings','KernelFunction','ardsquaredexponential',...
      'FitMethod','sr','PredictMethod','fic','Standardize',1)
grMdl = 

  RegressionGP
       PredictorNames: {1x8 cell}
         ResponseName: 'Var9'
    ResponseTransform: 'none'
      NumObservations: 4177
       KernelFunction: 'ARDSquaredExponential'
    KernelInformation: [1x1 struct]
        BasisFunction: 'Constant'
                 Beta: 10.9148
                Sigma: 2.0243
    PredictorLocation: [10x1 double]
       PredictorScale: [10x1 double]
                Alpha: [1000x1 double]
     ActiveSetVectors: [1000x10 double]
        PredictMethod: 'FIC'
        ActiveSetSize: 1000
            FitMethod: 'SR'
      ActiveSetMethod: 'Random'
    IsActiveSetVector: [4177x1 logical]
        LogLikelihood: -9.0013e+03
     ActiveSetHistory: [1x1 struct]
       BCDInformation: []

Спрогнозируйте ответы, используя обученную модель.

ypred = resubPredict(gprMdl);

Постройте график истинного отклика и предсказанных откликов.

figure();
plot(tbl.NoShellRings,'r.');
hold on
plot(ypred,'b');
xlabel('x');
ylabel('y');
legend({'data','predictions'},'Location','Best');
axis([0 4300 0 30]);
hold off;

Вычислите регрессионные потери на обучающих данных (реституционные потери) для обученной модели.

L = resubLoss(gprMdl)
L =

    4.0064

Сгенерируйте выборочные данные.

rng(0,'twister'); % For reproducibility
n = 1000;
x = linspace(-10,10,n)';
y = 1 + x*5e-2 + sin(x)./x + 0.2*randn(n,1);

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

gprMdl = fitrgp(x,y,'Basis','linear',...
      'FitMethod','exact','PredictMethod','exact');

Спрогнозируйте ответ, соответствующий строкам x (прогнозы реституции) с использованием обученной модели.

ypred = resubPredict(gprMdl);

Постройте график истинной характеристики с предсказанными значениями.

plot(x,y,'b.');
hold on;
plot(x,ypred,'r','LineWidth',1.5);
xlabel('x');
ylabel('y');
legend('Data','GPR predictions');
hold off

Figure contains an axes. The axes contains 2 objects of type line. These objects represent Data, GPR predictions.

Загрузите выборочные данные.

load('gprdata2.mat')

Данные имеют одну переменную предиктора и непрерывный ответ. Это моделируемые данные.

Подгонка модели GPR с помощью квадратной экспоненциальной функции ядра с параметрами ядра по умолчанию.

gprMdl1 = fitrgp(x,y,'KernelFunction','squaredexponential');

Теперь подбирайте вторую модель, где вы задаете начальные значения для параметров ядра.

sigma0 = 0.2;
kparams0 = [3.5, 6.2];
gprMdl2 = fitrgp(x,y,'KernelFunction','squaredexponential',...
     'KernelParameters',kparams0,'Sigma',sigma0);

Вычислите предсказания реституции из обеих моделей.

ypred1 = resubPredict(gprMdl1);
ypred2 = resubPredict(gprMdl2);

Постройте график предсказаний отклика из обеих моделей и ответов в обучающих данных.

figure();
plot(x,y,'r.');
hold on
plot(x,ypred1,'b');
plot(x,ypred2,'g');
xlabel('x');
ylabel('y');
legend({'data','default kernel parameters',...
'kparams0 = [3.5,6.2], sigma0 = 0.2'},...
'Location','Best');
title('Impact of initial kernel parameter values');
hold off

Figure contains an axes. The axes with title Impact of initial kernel parameter values contains 3 objects of type line. These objects represent data, default kernel parameters, kparams0 = [3.5,6.2], sigma0 = 0.2.

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

Загрузите выборочные данные.

load('gprdata.mat')

Существует шесть непрерывных переменных предиктора. В наборе обучающих данных 500 наблюдений и 100 наблюдений в наборе тестовых данных. Это моделируемые данные.

Подгонка модели GPR с использованием квадратной экспоненциальной функции ядра с отдельной шкалой длины для каждого предиктора. Эта ковариационная функция определяется как:

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

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

θm=logσm,form=1,2,...,dθd+1=logσ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
    {'LengthScale1'}
    {'LengthScale2'}
    {'LengthScale3'}
    {'LengthScale4'}
    {'LengthScale5'}
    {'LengthScale6'}
    {'SigmaF'      }

Отобразите параметры ядра.

sigmaM = gprMdl.KernelInformation.KernelParameters(1:end-1,1)
sigmaM = 6×1
104 ×

    0.0004
    0.0007
    0.0004
    5.2709
    0.1018
    0.0056

sigmaF = gprMdl.KernelInformation.KernelParameters(end)
sigmaF = 28.1721
sigma  = gprMdl.Sigma
sigma = 0.8162

Постройте график журнала обученных шкал длины.

figure()
plot((1:d)',log(sigmaM),'ro-');
xlabel('Length scale number');
ylabel('Log of length scale');

Figure contains an axes. The axes contains an object of type line.

Логарифмическая шкала длины для 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

Figure contains an axes. The axes contains 2 objects of type line. These objects represent True response, GPR predicted values.

В этом примере показано, как автоматически оптимизировать гиперпараметры с помощью fitrgp. В примере используется gprdata2 данные, которые поставляются с вашим программным обеспечением.

Загрузите данные.

load('gprdata2.mat')

Данные имеют одну переменную предиктора и непрерывный ответ. Это моделируемые данные.

Подгонка модели GPR с помощью квадратной экспоненциальной функции ядра с параметрами ядра по умолчанию.

gprMdl1 = fitrgp(x,y,'KernelFunction','squaredexponential');

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

Для воспроизводимости установите случайный seed и используйте 'expected-improvement-plus' функция сбора.

rng default
gprMdl2 = fitrgp(x,y,'KernelFunction','squaredexponential',...
    'OptimizeHyperparameters','auto','HyperparameterOptimizationOptions',...
    struct('AcquisitionFunctionName','expected-improvement-plus'));
|======================================================================================|
| Iter | Eval   | Objective:  | Objective   | BestSoFar   | BestSoFar   |        Sigma |
|      | result | log(1+loss) | runtime     | (observed)  | (estim.)    |              |
|======================================================================================|
|    1 | Best   |     0.29417 |      4.8721 |     0.29417 |     0.29417 |    0.0015045 |
|    2 | Best   |    0.037898 |      2.9698 |    0.037898 |    0.060792 |      0.14147 |
|    3 | Accept |      1.5693 |      2.2862 |    0.037898 |    0.040633 |       25.279 |
|    4 | Accept |     0.29417 |      3.9255 |    0.037898 |    0.037984 |    0.0001091 |
|    5 | Accept |     0.29393 |       3.575 |    0.037898 |    0.038029 |     0.029932 |
|    6 | Accept |     0.13152 |      3.2312 |    0.037898 |    0.038127 |      0.37127 |
|    7 | Best   |    0.037785 |       5.189 |    0.037785 |    0.037728 |      0.18116 |
|    8 | Accept |     0.03783 |      4.3223 |    0.037785 |    0.036524 |      0.16251 |
|    9 | Accept |    0.037833 |      4.9764 |    0.037785 |    0.036854 |      0.16159 |
|   10 | Accept |    0.037835 |      5.3911 |    0.037785 |    0.037052 |      0.16072 |
|   11 | Accept |     0.29417 |       5.427 |    0.037785 |     0.03705 |   0.00038214 |
|   12 | Accept |     0.42256 |      3.4003 |    0.037785 |     0.03696 |       3.2067 |
|   13 | Accept |     0.03786 |      3.6868 |    0.037785 |    0.037087 |      0.15245 |
|   14 | Accept |     0.29417 |      4.3881 |    0.037785 |    0.037043 |    0.0063584 |
|   15 | Accept |     0.42302 |      3.1663 |    0.037785 |     0.03725 |       1.2221 |
|   16 | Accept |    0.039486 |      2.6376 |    0.037785 |    0.037672 |      0.10069 |
|   17 | Accept |    0.038591 |       3.091 |    0.037785 |    0.037687 |      0.12077 |
|   18 | Accept |    0.038513 |      2.4893 |    0.037785 |    0.037696 |       0.1227 |
|   19 | Best   |    0.037757 |      2.0492 |    0.037757 |    0.037572 |      0.19621 |
|   20 | Accept |    0.037787 |       3.169 |    0.037757 |    0.037601 |      0.18068 |
|======================================================================================|
| Iter | Eval   | Objective:  | Objective   | BestSoFar   | BestSoFar   |        Sigma |
|      | result | log(1+loss) | runtime     | (observed)  | (estim.)    |              |
|======================================================================================|
|   21 | Accept |     0.44917 |      2.4079 |    0.037757 |     0.03766 |       8.7818 |
|   22 | Accept |    0.040201 |      3.4579 |    0.037757 |    0.037601 |     0.075414 |
|   23 | Accept |    0.040142 |      3.7027 |    0.037757 |    0.037607 |     0.087198 |
|   24 | Accept |     0.29417 |      5.0095 |    0.037757 |     0.03758 |    0.0031018 |
|   25 | Accept |     0.29417 |      5.1286 |    0.037757 |    0.037555 |   0.00019545 |
|   26 | Accept |     0.29417 |      4.7136 |    0.037757 |    0.037582 |     0.013608 |
|   27 | Accept |     0.29417 |      3.9032 |    0.037757 |    0.037556 |   0.00076147 |
|   28 | Accept |     0.42162 |      1.9316 |    0.037757 |    0.037854 |       0.6791 |
|   29 | Best   |    0.037704 |      2.7232 |    0.037704 |    0.037908 |       0.2367 |
|   30 | Accept |    0.037725 |      3.5853 |    0.037704 |    0.037881 |      0.21743 |

Figure contains an axes. The axes with title Min objective vs. Number of function evaluations contains 2 objects of type line. These objects represent Min observed objective, Estimated min objective.

Figure contains an axes. The axes with title Objective function model contains 8 objects of type line. These objects represent Observed points, Model mean, Model error bars, Noise error bars, Next point, Model minimum feasible.

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

Best observed feasible point:
    Sigma 
    ______

    0.2367

Observed objective function value = 0.037704
Estimated objective function value = 0.038223
Function evaluation time = 2.7232

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

    0.16159

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

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

ypred1 = resubPredict(gprMdl1);
ypred2 = resubPredict(gprMdl2);

figure();
plot(x,y,'r.');
hold on
plot(x,ypred1,'b');
plot(x,ypred2,'k','LineWidth',2);
xlabel('x');
ylabel('y');
legend({'data','Initial Fit','Optimized Fit'},'Location','Best');
title('Impact of Optimization');
hold off

Figure contains an axes. The axes with title Impact of Optimization contains 3 objects of type line. These objects represent data, Initial Fit, Optimized Fit.

Этот пример использует данные abalone [1], [2] из репозитория машинного обучения UCI [3]. Загрузите данные и сохраните их в текущей папке с именем abalone.data.

Сохраните данные в table. Отобразите первые семь строк.

tbl = readtable('abalone.data','Filetype','text','ReadVariableNames',false);
tbl.Properties.VariableNames = {'Sex','Length','Diameter','Height','WWeight','SWeight','VWeight','ShWeight','NoShellRings'};
tbl(1:7,:)
ans = 

    Sex    Length    Diameter    Height    WWeight    SWeight    VWeight    ShWeight    NoShellRings
    ___    ______    ________    ______    _______    _______    _______    ________    ____________

    'M'    0.455     0.365       0.095      0.514     0.2245      0.101      0.15       15          
    'M'     0.35     0.265        0.09     0.2255     0.0995     0.0485      0.07        7          
    'F'     0.53      0.42       0.135      0.677     0.2565     0.1415      0.21        9          
    'M'     0.44     0.365       0.125      0.516     0.2155      0.114     0.155       10          
    'I'     0.33     0.255        0.08      0.205     0.0895     0.0395     0.055        7          
    'I'    0.425       0.3       0.095     0.3515      0.141     0.0775      0.12        8          
    'F'     0.53     0.415        0.15     0.7775      0.237     0.1415      0.33       20

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

Обучите перекрестно проверенную модель GPR, используя 25% данных для валидации.

rng('default') % For reproducibility
cvgprMdl = fitrgp(tbl,'NoShellRings','Standardize',1,'Holdout',0.25);

Вычислите среднюю потерю на складках, используя модели, обученные несовпадающим наблюдениям.

kfoldLoss(cvgprMdl)
ans =
   4.6409

Спрогнозируйте ответы для несовпадающих данных.

ypred = kfoldPredict(cvgprMdl);

Постройте график истинных откликов, используемых для проверки и предсказаний.

figure();
plot(ypred(cvgprMdl.Partition.test));
hold on;
y = table2array(tbl(:,end));
plot(y(cvgprMdl.Partition.test),'r.');
axis([0 1050 0 30]);
xlabel('x')
ylabel('y')
hold off;

Сгенерируйте выборочные данные.

rng(0,'twister'); % For reproducibility
n = 1000;
x = linspace(-10,10,n)';
y = 1 + x*5e-2 + sin(x)./x + 0.2*randn(n,1);

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

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

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 наблюдениями и 3000 предикторами, где переменная отклика зависит от 4-го, 7-го и 13-го предикторов.

N = 300;
P = 3000;
X = rand(N,P);
y = cos(X(:,7)) + sin(X(:,4).*X(:,13)) + 0.1*randn(N,1);

Установите начальные значения параметров ядра.

sigmaL0 = sqrt(P)*ones(P,1); % Length scale for predictors
sigmaF0 = 1; % Signal standard deviation

Установите начальное стандартное отклонение шума равным 1.

sigmaN0 = 1;

Задайте 1e-2как допуск окончания для относительной нормы градиента.

opts = statset('fitrgp');
opts.TolFun = 1e-2;

Подгонка модели GPR с использованием начальных значений параметров ядра, начального стандартного отклонения шума и автоматического определения релевантности (ARD) квадратной функции экспоненциального ядра.

Задайте начальный размер шага как 1 для определения начального гессианского приближения для оптимизатора LBFGS.

gpr = fitrgp(X,y,'KernelFunction','ardsquaredexponential','Verbose',1, ...
    'Optimizer','lbfgs','OptimizerOptions',opts, ...
    'KernelParameters',[sigmaL0;sigmaF0],'Sigma',sigmaN0,'InitialStepSize',1);
o Parameter estimation: FitMethod = Exact, Optimizer = lbfgs

 o Solver = LBFGS, HessianHistorySize = 15, LineSearchMethod = weakwolfe

|====================================================================================================|
|   ITER   |   FUN VALUE   |  NORM GRAD  |  NORM STEP  |  CURV  |    GAMMA    |    ALPHA    | ACCEPT |
|====================================================================================================|
|        0 |  3.004966e+02 |   2.569e+02 |   0.000e+00 |        |   3.893e-03 |   0.000e+00 |   YES  |
|        1 |  9.525779e+01 |   1.281e+02 |   1.003e+00 |    OK  |   6.913e-03 |   1.000e+00 |   YES  |
|        2 |  3.972026e+01 |   1.647e+01 |   7.639e-01 |    OK  |   4.718e-03 |   5.000e-01 |   YES  |
|        3 |  3.893873e+01 |   1.073e+01 |   1.057e-01 |    OK  |   3.243e-03 |   1.000e+00 |   YES  |
|        4 |  3.859904e+01 |   5.659e+00 |   3.282e-02 |    OK  |   3.346e-03 |   1.000e+00 |   YES  |
|        5 |  3.748912e+01 |   1.030e+01 |   1.395e-01 |    OK  |   1.460e-03 |   1.000e+00 |   YES  |
|        6 |  2.028104e+01 |   1.380e+02 |   2.010e+00 |    OK  |   2.326e-03 |   1.000e+00 |   YES  |
|        7 |  2.001849e+01 |   1.510e+01 |   9.685e-01 |    OK  |   2.344e-03 |   1.000e+00 |   YES  |
|        8 | -7.706109e+00 |   8.340e+01 |   1.125e+00 |    OK  |   5.771e-04 |   1.000e+00 |   YES  |
|        9 | -1.786074e+01 |   2.323e+02 |   2.647e+00 |    OK  |   4.217e-03 |   1.250e-01 |   YES  |
|       10 | -4.058422e+01 |   1.972e+02 |   6.796e-01 |    OK  |   7.035e-03 |   1.000e+00 |   YES  |
|       11 | -7.850209e+01 |   4.432e+01 |   8.335e-01 |    OK  |   3.099e-03 |   1.000e+00 |   YES  |
|       12 | -1.312162e+02 |   3.334e+01 |   1.277e+00 |    OK  |   5.432e-02 |   1.000e+00 |   YES  |
|       13 | -2.005064e+02 |   9.519e+01 |   2.828e+00 |    OK  |   5.292e-03 |   1.000e+00 |   YES  |
|       14 | -2.070150e+02 |   1.898e+01 |   1.641e+00 |    OK  |   6.817e-03 |   1.000e+00 |   YES  |
|       15 | -2.108086e+02 |   3.793e+01 |   7.685e-01 |    OK  |   3.479e-03 |   1.000e+00 |   YES  |
|       16 | -2.122920e+02 |   7.057e+00 |   1.591e-01 |    OK  |   2.055e-03 |   1.000e+00 |   YES  |
|       17 | -2.125610e+02 |   4.337e+00 |   4.818e-02 |    OK  |   1.974e-03 |   1.000e+00 |   YES  |
|       18 | -2.130162e+02 |   1.178e+01 |   8.891e-02 |    OK  |   2.856e-03 |   1.000e+00 |   YES  |
|       19 | -2.139378e+02 |   1.933e+01 |   2.371e-01 |    OK  |   1.029e-02 |   1.000e+00 |   YES  |

|====================================================================================================|
|   ITER   |   FUN VALUE   |  NORM GRAD  |  NORM STEP  |  CURV  |    GAMMA    |    ALPHA    | ACCEPT |
|====================================================================================================|
|       20 | -2.151111e+02 |   1.550e+01 |   3.015e-01 |    OK  |   2.765e-02 |   1.000e+00 |   YES  |
|       21 | -2.173046e+02 |   5.856e+00 |   6.537e-01 |    OK  |   1.414e-02 |   1.000e+00 |   YES  |
|       22 | -2.201781e+02 |   8.918e+00 |   8.484e-01 |    OK  |   6.381e-03 |   1.000e+00 |   YES  |
|       23 | -2.288858e+02 |   4.846e+01 |   2.311e+00 |    OK  |   2.661e-03 |   1.000e+00 |   YES  |
|       24 | -2.392171e+02 |   1.190e+02 |   6.283e+00 |    OK  |   8.113e-03 |   1.000e+00 |   YES  |
|       25 | -2.511145e+02 |   1.008e+02 |   1.198e+00 |    OK  |   1.605e-02 |   1.000e+00 |   YES  |
|       26 | -2.742547e+02 |   2.207e+01 |   1.231e+00 |    OK  |   3.191e-03 |   1.000e+00 |   YES  |
|       27 | -2.849931e+02 |   5.067e+01 |   3.660e+00 |    OK  |   5.184e-03 |   1.000e+00 |   YES  |
|       28 | -2.899797e+02 |   2.068e+01 |   1.162e+00 |    OK  |   6.270e-03 |   1.000e+00 |   YES  |
|       29 | -2.916723e+02 |   1.816e+01 |   3.213e-01 |    OK  |   1.415e-02 |   1.000e+00 |   YES  |
|       30 | -2.947674e+02 |   6.965e+00 |   1.126e+00 |    OK  |   6.339e-03 |   1.000e+00 |   YES  |
|       31 | -2.962491e+02 |   1.349e+01 |   2.352e-01 |    OK  |   8.999e-03 |   1.000e+00 |   YES  |
|       32 | -3.004921e+02 |   1.586e+01 |   9.880e-01 |    OK  |   3.940e-02 |   1.000e+00 |   YES  |
|       33 | -3.118906e+02 |   1.889e+01 |   3.318e+00 |    OK  |   1.213e-01 |   1.000e+00 |   YES  |
|       34 | -3.189215e+02 |   7.086e+01 |   3.070e+00 |    OK  |   8.095e-03 |   1.000e+00 |   YES  |
|       35 | -3.245557e+02 |   4.366e+00 |   1.397e+00 |    OK  |   2.718e-03 |   1.000e+00 |   YES  |
|       36 | -3.254613e+02 |   3.751e+00 |   6.546e-01 |    OK  |   1.004e-02 |   1.000e+00 |   YES  |
|       37 | -3.262823e+02 |   4.011e+00 |   2.026e-01 |    OK  |   2.441e-02 |   1.000e+00 |   YES  |
|       38 | -3.325606e+02 |   1.773e+01 |   2.427e+00 |    OK  |   5.234e-02 |   1.000e+00 |   YES  |
|       39 | -3.350374e+02 |   1.201e+01 |   1.603e+00 |    OK  |   2.674e-02 |   1.000e+00 |   YES  |

|====================================================================================================|
|   ITER   |   FUN VALUE   |  NORM GRAD  |  NORM STEP  |  CURV  |    GAMMA    |    ALPHA    | ACCEPT |
|====================================================================================================|
|       40 | -3.379112e+02 |   5.280e+00 |   1.393e+00 |    OK  |   1.177e-02 |   1.000e+00 |   YES  |
|       41 | -3.389136e+02 |   3.061e+00 |   7.121e-01 |    OK  |   2.935e-02 |   1.000e+00 |   YES  |
|       42 | -3.401070e+02 |   4.094e+00 |   6.224e-01 |    OK  |   3.399e-02 |   1.000e+00 |   YES  |
|       43 | -3.436291e+02 |   8.833e+00 |   1.707e+00 |    OK  |   5.231e-02 |   1.000e+00 |   YES  |
|       44 | -3.456295e+02 |   5.891e+00 |   1.424e+00 |    OK  |   3.772e-02 |   1.000e+00 |   YES  |
|       45 | -3.460069e+02 |   1.126e+01 |   2.580e+00 |    OK  |   3.907e-02 |   1.000e+00 |   YES  |
|       46 | -3.481756e+02 |   1.546e+00 |   8.142e-01 |    OK  |   1.565e-02 |   1.000e+00 |   YES  |

         Infinity norm of the final gradient = 1.546e+00
              Two norm of the final step     = 8.142e-01, TolX   = 1.000e-12
Relative infinity norm of the final gradient = 6.016e-03, TolFun = 1.000e-02
EXIT: Local minimum found.

o Alpha estimation: PredictMethod = Exact

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

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

sigmaL = gpr.KernelInformation.KernelParameters(1:end-1); % Learned length scales
weights = exp(-sigmaL); % Predictor weights
weights = weights/sum(weights); % Normalized predictor weights

Постройте график нормированных весов предиктора.

figure;
semilogx(weights,'ro');
xlabel('Predictor index');
ylabel('Predictor weight');

Обученная модель GPR присваивает наибольшие веса 4-му, 7-му и 13-му предикторам. Нерелевантные предикторы имеют веса, близкие к нулю.

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

свернуть все

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

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

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

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

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

Если ваши данные предиктора содержат категориальные переменные, то fitrgp создает фиктивные переменные. Для получения дополнительной информации смотрите CategoricalPredictors.

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

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

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

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

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

Имена переменных в формуле должны быть обоими именами переменных в Tbl (Tbl.Properties.VariableNames) и действительный MATLAB® идентификаторы. Можно проверить имена переменных в Tbl при помощи isvarname функция. Если имена переменных недопустимы, можно преобразовать их, используя matlab.lang.makeValidName функция.

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

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

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

Данные предиктора для модели 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 на 1.

Явный базисМатрица базиса
'none'Пустая матрица.
'constant'

H=1

(n - на 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

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

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

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

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

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

ЗначениеОписание
Вектор положительных целых чисел

Каждая запись в векторе является индексом значением, соответствующим столбцу данных предиктора, который содержит категориальную переменную. Значения индекса находятся между 1 и p, где p - количество предикторов, используемых для обучения модели.

Если fitrgp использует подмножество входа переменных в качестве предикторов, затем функция индексирует предикторы, используя только подмножество. The 'CategoricalPredictors' значения не подсчитывают переменную отклика, переменную веса наблюдения и любые другие переменные, которые функция не использует.

Логический вектор

A true запись означает, что соответствующий столбец данных предиктора является категориальной переменной. Длина вектора p.

Матрица символовКаждая строка матрицы является именем переменной. Имена должны совпадать с записями в PredictorNames. Дополните имена дополнительными пробелами, чтобы каждая строка матрицы символов имела одинаковую длину.
Строковые массивы или массив ячеек векторов символовКаждый элемент массива является именем переменной. Имена должны совпадать с записями в PredictorNames.
'all'Все предикторы категоричны.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

свернуть все

Форма ковариационной функции, заданная как разделенная запятыми пара, состоящая из 'KernelFunction' и одно из следующих.

ФункцияОписание
'exponential'Экспоненциальное ядро.
'squaredexponential'Квадратное экспоненциальное ядро.
'matern32'Ядро Matern с параметром 3/2.
'matern52'Ядро Matern с параметром 5/2.
'rationalquadratic'Рациональное квадратичное ядро.
'ardexponential'Экспоненциальное ядро с отдельной шкалой длины на предиктор.
'ardsquaredexponential'Квадратное экспоненциальное ядро с отдельной шкалой длины на предиктор.
'ardmatern32'Ядро Матерна с параметром 3/2 и отдельной шкалой длины на предиктор.
'ardmatern52'Ядро Матерна с параметром 5/2 и отдельной шкалой длины на предиктор.
'ardrationalquadratic'Рациональное квадратичное ядро с отдельной шкалой длины на предиктор.
Указатель на функциюУказатель на функцию, который можно вызвать так:
Kmn = kfcn(Xm,Xn,theta)
где Xm является m -by- d матрицей, Xn является n -by d матрицей и Kmn является m -by - n матрицей продуктов ядра, таких что Kmn(i, j) является ядерным продуктом между Xm(i,:) и Xn(j:).
theta - вектор параметра r -by-1 без ограничений для kfcn.

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

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

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

Начальные значения для параметров ядра, заданные как разделенная разделенными запятой парами, состоящая из 'KernelParameters' и вектор. Размер вектора и значений зависит от формы ковариационной функции, заданной KernelFunction аргумент пары "имя-значение".

'KernelFunction''KernelParameters'
'exponential', 'squaredexponential', 'matern32', или 'matern52'Вектор 2 на 1 phi, где phi(1) содержит шкалу длины и phi(2) содержит стандартное отклонение сигнала.
Начальное значение по умолчанию параметра шкалы длины является средним значением стандартных отклонений предикторов, и стандартное отклонение сигнала является стандартным отклонением откликов, разделенных на квадратный корень из 2. То есть,
phi = [mean(std(X));std(y)/sqrt(2)]
'rationalquadratic'Вектор 3 на 1 phi, где phi(1) содержит шкалу длины, phi(2) содержит параметр весовой смеси и phi(3) содержит стандартное отклонение сигнала.
Начальное значение по умолчанию параметра шкалы длины является средним значением стандартных отклонений предикторов, и стандартное отклонение сигнала является стандартным отклонением откликов, разделенных на квадратный корень из 2. Начальное значение по умолчанию для параметра весовой смеси является 1. То есть,
phi = [mean(std(X));1;std(y)/sqrt(2)]
'ardexponential', 'ardsquaredexponential', 'ardmatern32', или 'ardmatern52'(d + 1) -на 1 вектор phi, где phi(i) содержит шкалу длины для i предиктора и phi(d+1) содержит стандартное отклонение сигнала. d - количество переменных предиктора после создания фиктивных переменных для категориальных переменных. Для получения дополнительной информации о создании фиктивных переменных смотрите CategoricalPredictors.
Начальное значение по умолчанию параметров шкалы длины являются стандартными отклонениями предикторов, и стандартное отклонение сигнала является стандартным отклонением откликов, разделенных на квадратный корень из 2. То есть,
phi = [std(X)';std(y)/sqrt(2)]
'ardrationalquadratic'(d + 2) -на 1 вектор phi, где phi(i) содержит шкалу длины для предиктора i, phi(d+1) содержит параметр весовой смеси и phi(d+2) содержит стандартное отклонение сигнала.
Начальное значение по умолчанию параметров шкалы длины являются стандартными отклонениями предикторов, и стандартное отклонение сигнала является стандартным отклонением откликов, разделенных на квадратный корень из 2. Начальное значение по умолчанию для параметра весовой смеси является 1. То есть,
phi = [std(X)';1;std(y)/sqrt(2)]
Указатель на функциюr вектор -by-1 как начальное значение вектора параметра без ограничений phi для пользовательской функции ядра kfcn.
Когда KernelFunction является указателем на функцию, вы должны задать начальные значения для параметров ядра.

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

Пример: 'KernelParameters',theta

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

Метод вычисления межточечных расстояний для оценки встроенных функций ядра, заданный как разделенная разделенными запятой парами, состоящая из 'DistanceMethod' и любой из них 'fast' или 'accurate'. fitrgp вычисляет (xy)2 как x2+y22*x*y когда вы выбираете fast опция и как (xy)2 когда вы выбираете accurate опция.

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

Выбор активного набора

свернуть все

Наблюдения в активном наборе, заданные как разделенная разделенными запятой парами, состоящая из 'ActiveSet' и вектор <reservedrangesplaceholder5>-by-1 целых чисел в пределах от 1 к n (m ≤ <reservedrangesplaceholder2>) или логический вектор длины 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'Плотное, симметричное основанное на ранге 1, квази-Ньютонское приближение к Гессиану
'lbfgs'Квазиньютонское приближение на основе LBFGS к гессианскому
'fminsearch'Нелинейная оптимизация без ограничений с использованием метода симплексного поиска Lagarias et al. [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' и a 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-на-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' - Оптимизируйте все подходящие параметры, эквивалентные {'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.

Установите параметры nondefault путем передачи вектора optimizableVariable объекты, которые имеют значения nondefault. Для примера,

load fisheriris
params = hyperparameters('fitrgp',meas,species);
params(1).Range = [1e-4,1e6];

Передайте params как значение OptimizeHyperparameters.

По умолчанию итеративное отображение появляется в командной строке, и графики появляются согласно количеству гиперпараметров в оптимизации. Для оптимизации и графиков целевой функцией является журнал ( 1 + потери перекрестной валидации) для регрессии и коэффициент неправильной классификации для классификации. Чтобы управлять итеративным отображением, установите Verbose поле 'HyperparameterOptimizationOptions' аргумент пары "имя-значение". Чтобы управлять графиками, установите ShowPlots поле 'HyperparameterOptimizationOptions' аргумент пары "имя-значение".

Для получения примера смотрите Оптимизацию регрессии GPR.

Пример: 'auto'

Опции оптимизации, заданные как разделенная разделенными запятой парами, состоящая из 'HyperparameterOptimizationOptions' и структуру. Этот аргумент изменяет эффект OptimizeHyperparameters аргумент пары "имя-значение". Все поля в структуре являются необязательными.

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

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

  • 'randomsearch' - Поиск наугад среди MaxObjectiveEvaluations точки.

'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
Используйте не более одного из следующих трех имен полей.
CVPartitionA cvpartition объект, созданный 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

Имя переменной отклика, заданное как вектор символов или строковый скаляр.

  • Если вы поставляете 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. Затем, это вычисляет новую вероятность <reservedrangesplaceholder0> 1 журнала, используя η1 и A1.

Во второй итерации программное обеспечение выбирает активный набор A2 используя значения параметров в Затем, используя, в качестве начальных значений и A2, и максимизирует предельную вероятность журнала GPR или ее приближения и оценивает новые значения параметров Затем с помощью, и A2, вычисляет новое значение правдоподобия журнала L 2.

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

Число итерацииАктивный наборВектор параметраЖурнал вероятностей
1A1η1<reservedrangesplaceholder0> 1
2A2η2<reservedrangesplaceholder0> 2
3A3η3<reservedrangesplaceholder0> 3

Программа аналогично итератируется для заданного количества повторений. Количество репликаций для выбора активного набора можно задать с помощью NumActiveSetRepeats аргумент пары "имя-значение".

Совет

  • fitrgp принимает любую комбинацию подборов кривой, предсказания и выбора активного набора. В некоторых случаях может оказаться невозможным вычислить стандартные отклонения предсказанных откликов, следовательно, интервалы предсказания. См. predict. А в некоторых случаях использование точного метода может оказаться дорогим из-за размера обучающих данных.

  • The PredictorNames свойство сохраняет по одному элементу для каждого из исходных имен переменных предиктора. Например, если существует три предиктора, один из которых является категориальной переменной с тремя уровнями, PredictorNames - массив ячеек 1 на 3 из векторов символов.

  • The ExpandedPredictorNames свойство сохраняет по одному элементу для каждой из переменных предиктора, включая фиктивные переменные. Например, если предикторов три, один из которых является категориальной переменной с тремя уровнями, то ExpandedPredictorNames - массив ячеек 1 на 5 из векторов символов.

  • Точно так же Beta свойство сохраняет один бета-коэффициент для каждого предиктора, включая фиктивные переменные.

  • The X свойство сохраняет обучающие данные как исходные входные. Он не включает фиктивные переменные.

  • Подход по умолчанию к инициализации Гессианского приближения в fitrgp может быть медленным, когда у вас есть модель GPR со многими параметрами ядра, такими как при использовании ядра ARD со многими предикторами. В этом случае рассмотрите указание 'auto' или значение начального размера шага.

    Можно задать 'Verbose',1 для отображения итеративных диагностических сообщений и начать обучение модели GPR с помощью оптимизатора LBFGS или квази-Ньютона с параметром по умолчанию fitrgp оптимизация. Если итеративные диагностические сообщения не отображаются через несколько секунд, возможно, что инициализация гессианского приближения занимает слишком много времени. В этом случае рассмотрите перезапуск обучения и использование начального размера шага для ускорения оптимизации.

  • После обучения модели можно сгенерировать код C/C + +, который предсказывает ответы для новых данных. Для генерации кода C/C + + требуется MATLAB Coder™. Для получения дополнительной информации смотрите Введение в Генерацию кода..

Алгоритмы

  • Подбор модели GPR включает оценку следующих параметров модели из данных:

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

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

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

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

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

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

    Примечание

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

  • Оптимизатор квази-Ньютона использует метод доверительной области с плотным, симметричным основанным на ранге 1 (SR1), квази-Ньютонским приближением к Гессиану, в то время как оптимизатор LBFGS использует стандартный метод линейного поиска с ограниченной памятью Broyden-Fletcher-Goldfarb См. Nocedal и Wright [6].

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

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

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

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

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

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

Ссылки

[1] Нэш, У. Дж., Т. Л. Селлерс, С. Р. Тальбот, А. Дж. Коуторн и У. Б. Форд. "Популяционная биология Абалоне (виды Haliotis) в Тасмании. I. Blacklip Abalone (H. rubra) с Северного побережья и островов пролива Басс ". Деление морского рыболовства, технический доклад № 48, 1994 год.

[2] Waugh, S. «Extending and Benchmarking Cascade-Correlation: Extensions to the Cascade-Correlation Architecture and Benchmarking of Feed-Forward Supervied Neural Networds». Тасманийский университет, кафедра компьютерных наук, 1995 год.

[3] Лихман, M. UCI Machine Learning Repository, Irvine, CA: University of California, School of Information and Computer Science, 2013. http://archive.ics.uci.edu/ml.

[4] Расмуссен, К. Э. и К. К. И. Уильямс. Гауссовы процессы для машинного обучения. MIT Press. Кембридж, Массачусетс, 2006.

[5] Лагария, Дж. К., Дж. А. Ридс, М. Х. Райт и П. Э. Райт. «Свойства сходимости метода Нелдера-Мида Симплекса в низких Размерностях». SIAM Journal оптимизации. Том 9, № 1, 1998, стр. 112-147.

[6] Nocedal, J. and S. J. Wright. Численная оптимизация, второе издание. Springer Series in Operations Research, Springer Verlag, 2006.

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

Введенный в R2015b