exponenta event banner

резюме

Возобновление обучения модели регрессии ядра Гаусса

Описание

пример

UpdatedMdl = resume(Mdl,X,Y) продолжает обучение с теми же вариантами, которые используются для обучения Mdl, включая обучающие данные (данные предиктора в X и данные ответа в Y) и расширение функции. Обучение начинается с текущих расчетных параметров в Mdl. Функция возвращает новую модель регрессии ядра Гаусса UpdatedMdl.

UpdatedMdl = resume(Mdl,Tbl,ResponseVarName) продолжает обучение с данными предиктора в Tbl и истинные ответы в Tbl.ResponseVarName.

UpdatedMdl = resume(Mdl,Tbl,Y) продолжает обучение с данными предиктора в таблице Tbl и истинные ответы в Y.

пример

UpdatedMdl = resume(___,Name,Value) указывает параметры, использующие один или несколько аргументов пары имя-значение в дополнение к любой из комбинаций входных аргументов в предыдущих синтаксисах. Например, можно изменить параметры управления сходимостью, такие как допуски сходимости и максимальное количество дополнительных итераций оптимизации.

пример

[UpdatedMdl,FitInfo] = resume(___) также возвращает информацию о соответствии в массиве структуры FitInfo.

Примеры

свернуть все

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

Загрузить carbig набор данных.

load carbig

Укажите переменные предиктора (X) и переменной ответа (Y).

X = [Acceleration,Cylinders,Displacement,Horsepower,Weight];
Y = MPG;

Удалить строки X и Y где любой массив имеет NaN значения. Удаление строк с NaN значения перед передачей данных fitrkernel может ускорить обучение и сократить использование памяти.

R = rmmissing([X Y]); % Data with missing entries removed
X = R(:,1:5); 
Y = R(:,end); 

Зарезервировать 10% наблюдений как выборку с удержанием. Извлеките учебные и тестовые индексы из определения раздела.

rng(10)  % For reproducibility
N = length(Y);
cvp = cvpartition(N,'Holdout',0.1);
idxTrn = training(cvp); % Training set indices
idxTest = test(cvp);    % Test set indices

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

Xtrain = X(idxTrn,:);
Ytrain = Y(idxTrn);
[Ztrain,tr_mu,tr_sigma] = zscore(Xtrain); % Standardize the training data
tr_sigma(tr_sigma==0) = 1;
Mdl = fitrkernel(Ztrain,Ytrain,'IterationLimit',5,'Verbose',1)
|=================================================================================================================|
| Solver |  Pass  |   Iteration  |   Objective   |     Step      |    Gradient   |    Relative    |  sum(beta~=0) |
|        |        |              |               |               |   magnitude   | change in Beta |               |
|=================================================================================================================|
|  LBFGS |      1 |            0 |  5.691016e+00 |  0.000000e+00 |  5.852758e-02 |                |             0 |
|  LBFGS |      1 |            1 |  5.086537e+00 |  8.000000e+00 |  5.220869e-02 |   9.846711e-02 |           256 |
|  LBFGS |      1 |            2 |  3.862301e+00 |  5.000000e-01 |  3.796034e-01 |   5.998808e-01 |           256 |
|  LBFGS |      1 |            3 |  3.460613e+00 |  1.000000e+00 |  3.257790e-01 |   1.615091e-01 |           256 |
|  LBFGS |      1 |            4 |  3.136228e+00 |  1.000000e+00 |  2.832861e-02 |   8.006254e-02 |           256 |
|  LBFGS |      1 |            5 |  3.063978e+00 |  1.000000e+00 |  1.475038e-02 |   3.314455e-02 |           256 |
|=================================================================================================================|
Mdl = 
  RegressionKernel
              ResponseName: 'Y'
                   Learner: 'svm'
    NumExpansionDimensions: 256
               KernelScale: 1
                    Lambda: 0.0028
             BoxConstraint: 1
                   Epsilon: 0.8617


  Properties, Methods

Mdl является RegressionKernel модель.

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

Xtest = X(idxTest,:);
Ztest = (Xtest-tr_mu)./tr_sigma; % Standardize the test data
Ytest = Y(idxTest);

L = loss(Mdl,Ztest,Ytest,'LossFun','epsiloninsensitive')
L = 2.0674

Продолжайте обучение модели с помощью resume. Эта функция продолжает обучение с теми же опциями, что и для обучения. Mdl.

UpdatedMdl = resume(Mdl,Ztrain,Ytrain);
|=================================================================================================================|
| Solver |  Pass  |   Iteration  |   Objective   |     Step      |    Gradient   |    Relative    |  sum(beta~=0) |
|        |        |              |               |               |   magnitude   | change in Beta |               |
|=================================================================================================================|
|  LBFGS |      1 |            0 |  3.063978e+00 |  0.000000e+00 |  1.475038e-02 |                |           256 |
|  LBFGS |      1 |            1 |  3.007822e+00 |  8.000000e+00 |  1.391637e-02 |   2.603966e-02 |           256 |
|  LBFGS |      1 |            2 |  2.817171e+00 |  5.000000e-01 |  5.949008e-02 |   1.918084e-01 |           256 |
|  LBFGS |      1 |            3 |  2.807294e+00 |  2.500000e-01 |  6.798867e-02 |   2.973097e-02 |           256 |
|  LBFGS |      1 |            4 |  2.791060e+00 |  1.000000e+00 |  2.549575e-02 |   1.639328e-02 |           256 |
|  LBFGS |      1 |            5 |  2.767821e+00 |  1.000000e+00 |  6.154419e-03 |   2.468903e-02 |           256 |
|  LBFGS |      1 |            6 |  2.738163e+00 |  1.000000e+00 |  5.949008e-02 |   9.476263e-02 |           256 |
|  LBFGS |      1 |            7 |  2.719146e+00 |  1.000000e+00 |  1.699717e-02 |   1.849972e-02 |           256 |
|  LBFGS |      1 |            8 |  2.705941e+00 |  1.000000e+00 |  3.116147e-02 |   4.152590e-02 |           256 |
|  LBFGS |      1 |            9 |  2.701162e+00 |  1.000000e+00 |  5.665722e-03 |   9.401466e-03 |           256 |
|  LBFGS |      1 |           10 |  2.695341e+00 |  5.000000e-01 |  3.116147e-02 |   4.968046e-02 |           256 |
|  LBFGS |      1 |           11 |  2.691277e+00 |  1.000000e+00 |  8.498584e-03 |   1.017446e-02 |           256 |
|  LBFGS |      1 |           12 |  2.689972e+00 |  1.000000e+00 |  1.983003e-02 |   9.938921e-03 |           256 |
|  LBFGS |      1 |           13 |  2.688979e+00 |  1.000000e+00 |  1.416431e-02 |   6.606316e-03 |           256 |
|  LBFGS |      1 |           14 |  2.687787e+00 |  1.000000e+00 |  1.621956e-03 |   7.089542e-03 |           256 |
|  LBFGS |      1 |           15 |  2.686539e+00 |  1.000000e+00 |  1.699717e-02 |   1.169701e-02 |           256 |
|  LBFGS |      1 |           16 |  2.685356e+00 |  1.000000e+00 |  1.133144e-02 |   1.069310e-02 |           256 |
|  LBFGS |      1 |           17 |  2.685021e+00 |  5.000000e-01 |  1.133144e-02 |   2.104248e-02 |           256 |
|  LBFGS |      1 |           18 |  2.684002e+00 |  1.000000e+00 |  2.832861e-03 |   6.175231e-03 |           256 |
|  LBFGS |      1 |           19 |  2.683507e+00 |  1.000000e+00 |  5.665722e-03 |   3.724026e-03 |           256 |
|  LBFGS |      1 |           20 |  2.683343e+00 |  5.000000e-01 |  5.665722e-03 |   9.549119e-03 |           256 |
|=================================================================================================================|
| Solver |  Pass  |   Iteration  |   Objective   |     Step      |    Gradient   |    Relative    |  sum(beta~=0) |
|        |        |              |               |               |   magnitude   | change in Beta |               |
|=================================================================================================================|
|  LBFGS |      1 |           21 |  2.682897e+00 |  1.000000e+00 |  5.665722e-03 |   7.172867e-03 |           256 |
|  LBFGS |      1 |           22 |  2.682682e+00 |  1.000000e+00 |  2.832861e-03 |   2.587726e-03 |           256 |
|  LBFGS |      1 |           23 |  2.682485e+00 |  1.000000e+00 |  2.832861e-03 |   2.953648e-03 |           256 |
|  LBFGS |      1 |           24 |  2.682326e+00 |  1.000000e+00 |  2.832861e-03 |   7.777294e-03 |           256 |
|  LBFGS |      1 |           25 |  2.681914e+00 |  1.000000e+00 |  2.832861e-03 |   2.778555e-03 |           256 |
|  LBFGS |      1 |           26 |  2.681867e+00 |  5.000000e-01 |  1.031085e-03 |   3.638352e-03 |           256 |
|  LBFGS |      1 |           27 |  2.681725e+00 |  1.000000e+00 |  5.665722e-03 |   1.515199e-03 |           256 |
|  LBFGS |      1 |           28 |  2.681692e+00 |  5.000000e-01 |  1.314940e-03 |   1.850055e-03 |           256 |
|  LBFGS |      1 |           29 |  2.681625e+00 |  1.000000e+00 |  2.832861e-03 |   1.456903e-03 |           256 |
|  LBFGS |      1 |           30 |  2.681594e+00 |  5.000000e-01 |  2.832861e-03 |   8.704875e-04 |           256 |
|  LBFGS |      1 |           31 |  2.681581e+00 |  5.000000e-01 |  8.498584e-03 |   3.934768e-04 |           256 |
|  LBFGS |      1 |           32 |  2.681579e+00 |  1.000000e+00 |  8.498584e-03 |   1.847866e-03 |           256 |
|  LBFGS |      1 |           33 |  2.681553e+00 |  1.000000e+00 |  9.857038e-04 |   6.509825e-04 |           256 |
|  LBFGS |      1 |           34 |  2.681541e+00 |  5.000000e-01 |  8.498584e-03 |   6.635528e-04 |           256 |
|  LBFGS |      1 |           35 |  2.681499e+00 |  1.000000e+00 |  5.665722e-03 |   6.194735e-04 |           256 |
|  LBFGS |      1 |           36 |  2.681493e+00 |  5.000000e-01 |  1.133144e-02 |   1.617763e-03 |           256 |
|  LBFGS |      1 |           37 |  2.681473e+00 |  1.000000e+00 |  9.869233e-04 |   8.418484e-04 |           256 |
|  LBFGS |      1 |           38 |  2.681469e+00 |  1.000000e+00 |  5.665722e-03 |   1.069722e-03 |           256 |
|  LBFGS |      1 |           39 |  2.681432e+00 |  1.000000e+00 |  2.832861e-03 |   8.501930e-04 |           256 |
|  LBFGS |      1 |           40 |  2.681423e+00 |  2.500000e-01 |  1.133144e-02 |   9.543716e-04 |           256 |
|=================================================================================================================|
| Solver |  Pass  |   Iteration  |   Objective   |     Step      |    Gradient   |    Relative    |  sum(beta~=0) |
|        |        |              |               |               |   magnitude   | change in Beta |               |
|=================================================================================================================|
|  LBFGS |      1 |           41 |  2.681416e+00 |  1.000000e+00 |  2.832861e-03 |   8.763251e-04 |           256 |
|  LBFGS |      1 |           42 |  2.681413e+00 |  5.000000e-01 |  2.832861e-03 |   4.101888e-04 |           256 |
|  LBFGS |      1 |           43 |  2.681403e+00 |  1.000000e+00 |  5.665722e-03 |   2.713209e-04 |           256 |
|  LBFGS |      1 |           44 |  2.681392e+00 |  1.000000e+00 |  2.832861e-03 |   2.115241e-04 |           256 |
|  LBFGS |      1 |           45 |  2.681383e+00 |  1.000000e+00 |  2.832861e-03 |   2.872858e-04 |           256 |
|  LBFGS |      1 |           46 |  2.681374e+00 |  1.000000e+00 |  8.498584e-03 |   5.771001e-04 |           256 |
|  LBFGS |      1 |           47 |  2.681353e+00 |  1.000000e+00 |  2.832861e-03 |   3.160871e-04 |           256 |
|  LBFGS |      1 |           48 |  2.681334e+00 |  5.000000e-01 |  8.498584e-03 |   1.045502e-03 |           256 |
|  LBFGS |      1 |           49 |  2.681314e+00 |  1.000000e+00 |  7.878714e-04 |   1.505118e-03 |           256 |
|  LBFGS |      1 |           50 |  2.681306e+00 |  1.000000e+00 |  2.832861e-03 |   4.756894e-04 |           256 |
|  LBFGS |      1 |           51 |  2.681301e+00 |  1.000000e+00 |  1.133144e-02 |   3.664873e-04 |           256 |
|  LBFGS |      1 |           52 |  2.681288e+00 |  1.000000e+00 |  2.832861e-03 |   1.449821e-04 |           256 |
|  LBFGS |      1 |           53 |  2.681287e+00 |  2.500000e-01 |  1.699717e-02 |   2.357176e-04 |           256 |
|  LBFGS |      1 |           54 |  2.681282e+00 |  1.000000e+00 |  5.665722e-03 |   2.046663e-04 |           256 |
|  LBFGS |      1 |           55 |  2.681278e+00 |  1.000000e+00 |  2.832861e-03 |   2.546349e-04 |           256 |
|  LBFGS |      1 |           56 |  2.681276e+00 |  2.500000e-01 |  1.307940e-03 |   1.966786e-04 |           256 |
|  LBFGS |      1 |           57 |  2.681274e+00 |  5.000000e-01 |  1.416431e-02 |   1.005310e-04 |           256 |
|  LBFGS |      1 |           58 |  2.681271e+00 |  5.000000e-01 |  1.118892e-03 |   1.147324e-04 |           256 |
|  LBFGS |      1 |           59 |  2.681269e+00 |  1.000000e+00 |  2.832861e-03 |   1.332914e-04 |           256 |
|  LBFGS |      1 |           60 |  2.681268e+00 |  2.500000e-01 |  1.132045e-03 |   5.441369e-05 |           256 |
|=================================================================================================================|

Оцените эпсилон-нечувствительную ошибку для тестового набора с помощью обновленной модели.

UpdatedL = loss(UpdatedMdl,Ztest,Ytest,'LossFun','epsiloninsensitive')
UpdatedL = 1.8933

Регрессионная ошибка уменьшается примерно в 1 раз 0.08 после resume обновляет регрессионную модель с помощью дополнительных итераций.

Загрузить carbig набор данных.

load carbig

Укажите переменные предиктора (X) и переменной ответа (Y).

X = [Acceleration,Cylinders,Displacement,Horsepower,Weight];
Y = MPG;

Удалить строки X и Y где любой массив имеет NaN значения. Удаление строк с NaN значения перед передачей данных fitrkernel может ускорить обучение и сократить использование памяти.

R = rmmissing([X Y]); % Data with missing entries removed
X = R(:,1:5); 
Y = R(:,end); 

Зарезервировать 10% наблюдений как выборку с удержанием. Извлеките учебные и тестовые индексы из определения раздела.

rng(10)  % For reproducibility
N = length(Y);
cvp = cvpartition(N,'Holdout',0.1);
idxTrn = training(cvp); % Training set indices
idxTest = test(cvp);    % Test set indices

Стандартизация обучающих данных и обучение модели регрессии ядра с помощью ослабленных вариантов обучения управлению сходимостью с использованием аргументов пары «имя-значение» 'BetaTolerance' и 'GradientTolerance'. Определить 'Verbose',1 для отображения диагностической информации.

Xtrain = X(idxTrn,:);
Ytrain = Y(idxTrn);
[Ztrain,tr_mu,tr_sigma] = zscore(Xtrain); % Standardize the training data
tr_sigma(tr_sigma==0) = 1;
[Mdl,FitInfo] = fitrkernel(Ztrain,Ytrain,'Verbose',1, ...
    'BetaTolerance',2e-2,'GradientTolerance',2e-2);
|=================================================================================================================|
| Solver |  Pass  |   Iteration  |   Objective   |     Step      |    Gradient   |    Relative    |  sum(beta~=0) |
|        |        |              |               |               |   magnitude   | change in Beta |               |
|=================================================================================================================|
|  LBFGS |      1 |            0 |  5.691016e+00 |  0.000000e+00 |  5.852758e-02 |                |             0 |
|  LBFGS |      1 |            1 |  5.086537e+00 |  8.000000e+00 |  5.220869e-02 |   9.846711e-02 |           256 |
|  LBFGS |      1 |            2 |  3.862301e+00 |  5.000000e-01 |  3.796034e-01 |   5.998808e-01 |           256 |
|  LBFGS |      1 |            3 |  3.460613e+00 |  1.000000e+00 |  3.257790e-01 |   1.615091e-01 |           256 |
|  LBFGS |      1 |            4 |  3.136228e+00 |  1.000000e+00 |  2.832861e-02 |   8.006254e-02 |           256 |
|  LBFGS |      1 |            5 |  3.063978e+00 |  1.000000e+00 |  1.475038e-02 |   3.314455e-02 |           256 |
|=================================================================================================================|

Mdl является RegressionKernel модель.

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

Xtest = X(idxTest,:);
Ztest = (Xtest-tr_mu)./tr_sigma; % Standardize the test data
Ytest = Y(idxTest);

L = loss(Mdl,Ztest,Ytest,'LossFun','epsiloninsensitive')
L = 2.0674

Продолжайте обучение модели с помощью resume с измененными опциями управления сходимостью.

[UpdatedMdl,UpdatedFitInfo] = resume(Mdl,Ztrain,Ytrain, ...
    'BetaTolerance',2e-3,'GradientTolerance',2e-3);
|=================================================================================================================|
| Solver |  Pass  |   Iteration  |   Objective   |     Step      |    Gradient   |    Relative    |  sum(beta~=0) |
|        |        |              |               |               |   magnitude   | change in Beta |               |
|=================================================================================================================|
|  LBFGS |      1 |            0 |  3.063978e+00 |  0.000000e+00 |  1.475038e-02 |                |           256 |
|  LBFGS |      1 |            1 |  3.007822e+00 |  8.000000e+00 |  1.391637e-02 |   2.603966e-02 |           256 |
|  LBFGS |      1 |            2 |  2.817171e+00 |  5.000000e-01 |  5.949008e-02 |   1.918084e-01 |           256 |
|  LBFGS |      1 |            3 |  2.807294e+00 |  2.500000e-01 |  6.798867e-02 |   2.973097e-02 |           256 |
|  LBFGS |      1 |            4 |  2.791060e+00 |  1.000000e+00 |  2.549575e-02 |   1.639328e-02 |           256 |
|  LBFGS |      1 |            5 |  2.767821e+00 |  1.000000e+00 |  6.154419e-03 |   2.468903e-02 |           256 |
|  LBFGS |      1 |            6 |  2.738163e+00 |  1.000000e+00 |  5.949008e-02 |   9.476263e-02 |           256 |
|  LBFGS |      1 |            7 |  2.719146e+00 |  1.000000e+00 |  1.699717e-02 |   1.849972e-02 |           256 |
|  LBFGS |      1 |            8 |  2.705941e+00 |  1.000000e+00 |  3.116147e-02 |   4.152590e-02 |           256 |
|  LBFGS |      1 |            9 |  2.701162e+00 |  1.000000e+00 |  5.665722e-03 |   9.401466e-03 |           256 |
|  LBFGS |      1 |           10 |  2.695341e+00 |  5.000000e-01 |  3.116147e-02 |   4.968046e-02 |           256 |
|  LBFGS |      1 |           11 |  2.691277e+00 |  1.000000e+00 |  8.498584e-03 |   1.017446e-02 |           256 |
|  LBFGS |      1 |           12 |  2.689972e+00 |  1.000000e+00 |  1.983003e-02 |   9.938921e-03 |           256 |
|  LBFGS |      1 |           13 |  2.688979e+00 |  1.000000e+00 |  1.416431e-02 |   6.606316e-03 |           256 |
|  LBFGS |      1 |           14 |  2.687787e+00 |  1.000000e+00 |  1.621956e-03 |   7.089542e-03 |           256 |
|=================================================================================================================|

Оцените эпсилон-нечувствительную ошибку для тестового набора с помощью обновленной модели.

UpdatedL = loss(UpdatedMdl,Ztest,Ytest,'LossFun','epsiloninsensitive')
UpdatedL = 1.8891

Ошибка регрессии уменьшается после resume обновляет регрессионную модель с меньшими допусками сходимости.

Отображение выходных данных FitInfo и UpdatedFitInfo.

FitInfo
FitInfo = struct with fields:
                  Solver: 'LBFGS-fast'
            LossFunction: 'epsiloninsensitive'
                  Lambda: 0.0028
           BetaTolerance: 0.0200
       GradientTolerance: 0.0200
          ObjectiveValue: 3.0640
       GradientMagnitude: 0.0148
    RelativeChangeInBeta: 0.0331
                 FitTime: 0.0501
                 History: [1x1 struct]

UpdatedFitInfo
UpdatedFitInfo = struct with fields:
                  Solver: 'LBFGS-fast'
            LossFunction: 'epsiloninsensitive'
                  Lambda: 0.0028
           BetaTolerance: 0.0020
       GradientTolerance: 0.0020
          ObjectiveValue: 2.6878
       GradientMagnitude: 0.0016
    RelativeChangeInBeta: 0.0071
                 FitTime: 0.0675
                 History: [1x1 struct]

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

Постройте график зависимости величины градиента от числа итераций с помощью UpdatedFitInfo.History.GradientMagnitude. Обратите внимание, что History поле UpdatedFitInfo включает информацию в History поле FitInfo.

semilogy(UpdatedFitInfo.History.GradientMagnitude,'o-')
ax = gca;
ax.XTick = 1:21;
ax.XTickLabel = UpdatedFitInfo.History.IterationNumber;
grid on
xlabel('Number of Iterations')
ylabel('Gradient Magnitude')

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

Первая тренировка завершается после пяти итераций, потому что величина градиента становится меньше 2e-2. Вторая тренировка заканчивается после 14 итераций, потому что величина градиента становится меньше 2e-3.

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

свернуть все

Регрессионная модель ядра, заданная как RegressionKernel объект модели. Можно создать RegressionKernel объект модели с использованием fitrkernel.

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

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

Данные ответа, используемые для обучения Mdl, задается как числовой вектор.

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

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

Если вы тренировались Mdl используя образцы данных, содержащиеся в таблице, затем входные данные для resume также должен находиться в таблице.

Имя переменной ответа, используемой для обучения Mdl, указанное как имя переменной в Tbl. ResponseVarName значение должно соответствовать имени Mdl.ResponseName.

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

Примечание

resume должен работать только на одних и тех же учебных данных и весах наблюдения (Weights) используется для обучения Mdl. resume функция использует те же самые варианты обучения, такие как расширение функций, используемые для обучения Mdl.

Аргументы пары «имя-значение»

Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.

Пример: UpdatedMdl = resume(Mdl,X,Y,'BetaTolerance',1e-3) возобновляет обучение с теми же опциями, которые используются для обучения Mdl, за исключением относительного допуска на линейные коэффициенты и член смещения.

Наблюдательные веса, используемые для обучения Mdl, указанная как пара, разделенная запятыми, состоящая из 'Weights' и числовой вектор или имя переменной в Tbl.

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

  • Если Weights - имя переменной в Tbl, необходимо указать Weights в виде вектора символов или строкового скаляра. Например, если веса сохранены как Tbl.W, затем укажите Weights как 'W'. В противном случае программа обрабатывает все столбцы Tbl, в том числе Tbl.W, как предикторы.

При вводе весов наблюдения resume нормализует Weights для суммирования в 1.

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

Относительный допуск на линейные коэффициенты и член смещения (пересечение), указанный как разделенная запятыми пара, состоящая из 'BetaTolerance' и неотрицательный скаляр.

Пусть Bt = [βt bt], то есть вектор коэффициентов и член смещения при итерации оптимизации т. Если Bt−Bt−1Bt‖2<BetaTolerance, то оптимизация заканчивается.

Если также указать GradientTolerance, то оптимизация завершается, когда программное обеспечение удовлетворяет любому критерию остановки.

По умолчанию значение совпадает BetaTolerance значение, используемое для обучения Mdl.

Пример: 'BetaTolerance',1e-6

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

Абсолютный градиентный допуск, заданный как разделенная запятыми пара, состоящая из 'GradientTolerance' и неотрицательный скаляр.

Пусть ∇ℒt является градиентным вектором целевой функции относительно коэффициентов и члена смещения при итерации оптимизации T. Если ∇ℒt‖∞=max|∇ℒt|<GradientTolerance, то оптимизация заканчивается.

Если также указать BetaTolerance, то оптимизация завершается, когда программное обеспечение удовлетворяет любому критерию остановки.

По умолчанию значение совпадает GradientTolerance значение, используемое для обучения Mdl.

Пример: 'GradientTolerance',1e-5

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

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

Значение по умолчанию - 1000, если преобразованные данные помещаются в память (Mdl.ModelParameters.BlockSize), который задается с помощью 'BlockSize' аргумент пары имя-значение при обучении Mdl с fitrkernel. В противном случае значение по умолчанию равно 100.

Обратите внимание, что значение по умолчанию не является значением, используемым для обучения Mdl.

Пример: 'IterationLimit',500

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

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

свернуть все

Обновленная модель регрессии ядра, возвращенная как RegressionKernel объект модели.

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

ОбластьОписание
Solver

Метод минимизации целевой функции: 'LBFGS-fast', 'LBFGS-blockwise', или 'LBFGS-tall'. Дополнительные сведения см. в разделе Алгоритмы fitrkernel.

LossFunctionФункция потери. Средняя квадратичная ошибка (MSE) или нечувствительная к эпсилону, в зависимости от типа модели линейной регрессии. Посмотрите Learner из fitrkernel.
LambdaСила термина «регуляризация». Посмотрите Lambda из fitrkernel.
BetaToleranceОтносительный допуск по линейным коэффициентам и члену смещения. Посмотрите BetaTolerance.
GradientToleranceАбсолютный градиентный допуск. Посмотрите GradientTolerance.
ObjectiveValueЗначение целевой функции при завершении оптимизации. Регрессионная потеря плюс термин регуляризации составляют целевую функцию.
GradientMagnitudeБесконечная норма градиентного вектора целевой функции при завершении оптимизации. Посмотрите GradientTolerance.
RelativeChangeInBetaОтносительные изменения линейных коэффициентов и члена смещения при завершении оптимизации. Посмотрите BetaTolerance.
FitTimeПрошедшее время (в секундах), необходимое для соответствия модели данным.
HistoryИстория информации об оптимизации. Это поле также включает информацию об оптимизации из обучения Mdl. Это поле пустое ([]) при указании 'Verbose',0 при обучении Mdl. Для получения более подробной информации см. Verbose и раздел Алгоритмы fitrkernel.

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

Изучить информацию, предоставленную FitInfo оценить, является ли сходимость удовлетворительной.

Подробнее

свернуть все

Случайное расширение функций

Случайное расширение функций, например, Random Kitchen Sinks [1] и Fastfood [2], - это схема аппроксимации гауссовых ядер алгоритма регрессии ядра для больших данных вычислительно эффективным способом. Случайное расширение функций является более практичным для приложений больших данных, которые имеют большие обучающие наборы, но также могут быть применены к меньшим наборам данных, которые помещаются в память.

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

Некоторые проблемы регрессии не могут быть адекватно описаны с помощью линейной модели. В таких случаях получить модель нелинейной регрессии, заменив скалярное произведение x1x2 ′ на нелинейную функцию ядра G (x1, x2) =〈φ (x1), start( x2) 〉, где xi - i-е наблюдение (вектор строки) и start( xi) - преобразование, отображающее xi в высокомерное пространство (называемое «трюк ядра»). Однако оценка G (x1, x2), матрицы Грама, для каждой пары наблюдений является вычислительно дорогостоящей для большого набора данных (большое n).

Схема случайного расширения признаков находит случайное преобразование так, что её скалярное произведение аппроксимирует гауссово ядро. То есть

G (x1, x2) =〈φ (x1), (x2) ≈T (x1) T (x2) ',

где T (x) отображает x в ℝp в высокомерное пространство (ℝm). Схема Random Kitchen Sink [1] использует случайное преобразование

T (x) = m 1/2exp (iZx ')',

где Z∈ℝm×p - выборка, взятая из N (0, λ − 2), а start2 - шкала ядра. Эта схема требует O (mp) вычислений и хранения. Схема Fastfood [2] вводит другой случайный базис V вместо Z с использованием матриц Адамара, объединенных с гауссовыми матрицами масштабирования. Этот случайный базис снижает затраты на вычисления до O (mlogр) и уменьшает объем хранения до O (м ).

Можно задать значения для m и start2, используя NumExpansionDimensions и KernelScale аргументы пары имя-значение fitrkernelсоответственно.

fitrkernel функция использует схему Fastfood для случайного расширения признаков и использует линейную регрессию для обучения модели регрессии ядра Гаусса. В отличие от решателей в fitrsvm функция, которая требует вычисления матрицы n-на-n Gram, решателя в fitrkernel требуется только сформировать матрицу размера n-by-m, где m обычно намного меньше, чем n для больших данных.

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

См. также

| | |

Представлен в R2018a