Подгонка модели регрессии ядра Гаусса с использованием случайного расширения элементов
fitrkernel выполняет или перекрестную проверку модели регрессии ядра Гаусса для нелинейной регрессии. fitrkernel является более практичным для приложений больших данных, которые имеют большие обучающие наборы, но также могут быть применены к меньшим наборам данных, которые подходят в памяти.
fitrkernel отображает данные в низкоразмерном пространстве в высокомерное пространство, затем укладывает линейную модель в высокомерное пространство путем минимизации регуляризованной целевой функции. Получение линейной модели в высокомерном пространстве эквивалентно применению гауссова ядра к модели в низкоразмерном пространстве. Доступные линейные регрессионные модели включают регуляризованные векторные модели поддержки (SVM) и регрессионные модели наименьших квадратов.
Чтобы обучить нелинейную регрессионную модель SVM данным в памяти, см. раздел fitrsvm.
возвращает модель регрессии ядра Mdl = fitrkernel(Tbl,ResponseVarName)Mdl обучены с использованием переменных предиктора, содержащихся в таблице Tbl и значения ответа в Tbl.ResponseVarName.
указывает параметры, использующие один или несколько аргументов пары имя-значение в дополнение к любой из комбинаций входных аргументов в предыдущих синтаксисах. Например, можно реализовать регрессию методом наименьших квадратов, задать количество размеров развернутого пространства или задать опции перекрестной проверки.Mdl = fitrkernel(___,Name,Value)
[ также возвращает результаты оптимизации гиперпараметров при оптимизации гиперпараметров с помощью Mdl,FitInfo,HyperparameterOptimizationResults] = fitrkernel(___)'OptimizeHyperparameters' аргумент пары имя-значение.
Обучение модели регрессии ядра для массива высокого уровня с помощью SVM.
При выполнении вычислений в массивах TALL MATLAB ® использует либо параллельный пул (по умолчанию при наличии Toolbox™ Parallel Computing), либо локальный сеанс MATLAB. Для выполнения примера с использованием локального сеанса MATLAB при наличии панели инструментов Parallel Computing Toolbox измените глобальную среду выполнения с помощью mapreducer функция.
mapreducer(0)
Создайте хранилище данных, которое ссылается на расположение папки с данными. Данные могут содержаться в одном файле, коллекции файлов или во всей папке. Удовольствие 'NA' значения как отсутствующие данные, так что datastore заменяет их на NaN значения. Выберите подмножество переменных для использования. Создайте высокую таблицу поверх хранилища данных.
varnames = {'ArrTime','DepTime','ActualElapsedTime'};
ds = datastore('airlinesmall.csv','TreatAsMissing','NA',...
'SelectedVariableNames',varnames);
t = tall(ds);Определить DepTime и ArrTime в качестве переменных предиктора (X) и ActualElapsedTime в качестве переменной ответа (Y). Выберите наблюдения, для которых ArrTime позднее, чем DepTime.
daytime = t.ArrTime>t.DepTime; Y = t.ActualElapsedTime(daytime); % Response data X = t{daytime,{'DepTime' 'ArrTime'}}; % Predictor data
Стандартизация переменных предиктора.
Z = zscore(X); % Standardize the dataОбучение модели регрессии гауссова ядра по умолчанию со стандартизированными предикторами. Извлеките сводку соответствия, чтобы определить, насколько хорошо алгоритм оптимизации соответствует модели данным.
[Mdl,FitInfo] = fitrkernel(Z,Y)
Found 6 chunks. |========================================================================= | Solver | Iteration / | Objective | Gradient | Beta relative | | | Data Pass | | magnitude | change | |========================================================================= | INIT | 0 / 1 | 4.307833e+01 | 4.345788e-02 | NaN | | LBFGS | 0 / 2 | 3.705713e+01 | 1.577301e-02 | 9.988252e-01 | | LBFGS | 1 / 3 | 3.704022e+01 | 3.082836e-02 | 1.338410e-03 | | LBFGS | 2 / 4 | 3.701398e+01 | 3.006488e-02 | 1.116070e-03 | | LBFGS | 2 / 5 | 3.698797e+01 | 2.870642e-02 | 2.234599e-03 | | LBFGS | 2 / 6 | 3.693687e+01 | 2.625581e-02 | 4.479069e-03 | | LBFGS | 2 / 7 | 3.683757e+01 | 2.239620e-02 | 8.997877e-03 | | LBFGS | 2 / 8 | 3.665038e+01 | 1.782358e-02 | 1.815682e-02 | | LBFGS | 3 / 9 | 3.473411e+01 | 4.074480e-02 | 1.778166e-01 | | LBFGS | 4 / 10 | 3.684246e+01 | 1.608942e-01 | 3.294968e-01 | | LBFGS | 4 / 11 | 3.441595e+01 | 8.587703e-02 | 1.420892e-01 | | LBFGS | 5 / 12 | 3.377755e+01 | 3.760006e-02 | 4.640134e-02 | | LBFGS | 6 / 13 | 3.357732e+01 | 1.912644e-02 | 3.842057e-02 | | LBFGS | 7 / 14 | 3.334081e+01 | 3.046709e-02 | 6.211243e-02 | | LBFGS | 8 / 15 | 3.309239e+01 | 3.858085e-02 | 6.411356e-02 | | LBFGS | 9 / 16 | 3.276577e+01 | 3.612292e-02 | 6.938579e-02 | | LBFGS | 10 / 17 | 3.234029e+01 | 2.734959e-02 | 1.144307e-01 | | LBFGS | 11 / 18 | 3.205763e+01 | 2.545990e-02 | 7.323180e-02 | | LBFGS | 12 / 19 | 3.183341e+01 | 2.472411e-02 | 3.689625e-02 | | LBFGS | 13 / 20 | 3.169307e+01 | 2.064613e-02 | 2.998555e-02 | |========================================================================= | Solver | Iteration / | Objective | Gradient | Beta relative | | | Data Pass | | magnitude | change | |========================================================================= | LBFGS | 14 / 21 | 3.146896e+01 | 1.788395e-02 | 5.967293e-02 | | LBFGS | 15 / 22 | 3.118171e+01 | 1.660696e-02 | 1.124062e-01 | | LBFGS | 16 / 23 | 3.106224e+01 | 1.506147e-02 | 7.947037e-02 | | LBFGS | 17 / 24 | 3.098395e+01 | 1.564561e-02 | 2.678370e-02 | | LBFGS | 18 / 25 | 3.096029e+01 | 4.464104e-02 | 4.547148e-02 | | LBFGS | 19 / 26 | 3.085475e+01 | 1.442800e-02 | 1.677268e-02 | | LBFGS | 20 / 27 | 3.078140e+01 | 1.906548e-02 | 2.275185e-02 | |========================================================================|
Mdl =
RegressionKernel
PredictorNames: {'x1' 'x2'}
ResponseName: 'Y'
Learner: 'svm'
NumExpansionDimensions: 64
KernelScale: 1
Lambda: 8.5385e-06
BoxConstraint: 1
Epsilon: 5.9303
Properties, Methods
FitInfo = struct with fields:
Solver: 'LBFGS-tall'
LossFunction: 'epsiloninsensitive'
Lambda: 8.5385e-06
BetaTolerance: 1.0000e-03
GradientTolerance: 1.0000e-05
ObjectiveValue: 30.7814
GradientMagnitude: 0.0191
RelativeChangeInBeta: 0.0228
FitTime: 56.8110
History: [1x1 struct]
Mdl является RegressionKernel модель. Для проверки ошибки регрессии можно пройти Mdl и данные обучения или новые данные для loss функция. Или, вы можете пройти Mdl и новые данные предиктора для predict функция для прогнозирования ответов для новых наблюдений. Вы также можете пройти Mdl и данные обучения для resume функция продолжения обучения.
FitInfo - структурный массив, содержащий информацию об оптимизации. Использовать FitInfo чтобы определить, являются ли измерения окончания оптимизации удовлетворительными.
Для повышения точности можно увеличить максимальное число итераций оптимизации ('IterationLimit') и уменьшите значения допуска ('BetaTolerance' и 'GradientTolerance') с использованием аргументов пары имя-значение fitrkernel. Это может улучшить такие меры, как ObjectiveValue и RelativeChangeInBeta в FitInfo. Можно также оптимизировать параметры модели с помощью 'OptimizeHyperparameters' аргумент пары имя-значение.
Загрузить 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); Стандартизация переменных предиктора.
Z = zscore(X);
Перекрестная проверка модели регрессии ядра с использованием пятикратной перекрестной проверки.
Mdl = fitrkernel(Z,Y,'Kfold',5)Mdl =
RegressionPartitionedKernel
CrossValidatedModel: 'Kernel'
ResponseName: 'Y'
NumObservations: 392
KFold: 5
Partition: [1x1 cvpartition]
ResponseTransform: 'none'
Properties, Methods
numel(Mdl.Trained)
ans = 5
Mdl является RegressionPartitionedKernel модель. Поскольку fitrkernel реализует пятикратную перекрестную проверку, Mdl содержит пять RegressionKernel модели, которые программное обеспечение обучает тренировочным (кратным) наблюдениям.
Проверьте потерю перекрестной проверки (средняя квадратичная ошибка) для каждого раза.
kfoldLoss(Mdl,'mode','individual')
ans = 5×1
13.0610
14.0975
24.0104
21.1223
24.3979
Автоматическая оптимизация гиперпараметров с помощью 'OptimizeHyperparameters' аргумент пары имя-значение.
Загрузить 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); Стандартизация переменных предиктора.
Z = zscore(X);
Найдите гиперпараметры, которые минимизируют пятикратные потери при перекрестной проверке, используя автоматическую оптимизацию гиперпараметров. Определить 'OptimizeHyperparameters' как 'auto' чтобы fitrkernel находит оптимальные значения 'KernelScale', 'Lambda', и 'Epsilon' аргументы пары имя-значение. Для воспроизводимости задайте случайное начальное число и используйте 'expected-improvement-plus' функция приобретения.
rng('default') [Mdl,FitInfo,HyperparameterOptimizationResults] = fitrkernel(Z,Y,'OptimizeHyperparameters','auto',... 'HyperparameterOptimizationOptions',struct('AcquisitionFunctionName','expected-improvement-plus'))
|====================================================================================================================| | Iter | Eval | Objective: | Objective | BestSoFar | BestSoFar | KernelScale | Lambda | Epsilon | | | result | log(1+loss) | runtime | (observed) | (estim.) | | | | |====================================================================================================================| | 1 | Best | 4.8295 | 6.7644 | 4.8295 | 4.8295 | 0.011518 | 6.8068e-05 | 0.95918 | | 2 | Best | 4.1488 | 0.41379 | 4.1488 | 4.1855 | 477.57 | 0.066115 | 0.091828 | | 3 | Accept | 4.1521 | 0.22316 | 4.1488 | 4.1747 | 0.0080478 | 0.0052867 | 520.84 | | 4 | Accept | 4.1506 | 0.24382 | 4.1488 | 4.1488 | 0.10935 | 0.35931 | 0.013372 | | 5 | Best | 4.1446 | 0.57425 | 4.1446 | 4.1446 | 326.29 | 2.5457 | 0.22475 | | 6 | Accept | 4.1521 | 0.24056 | 4.1446 | 4.1447 | 719.11 | 0.19478 | 881.84 | | 7 | Accept | 4.1501 | 0.36784 | 4.1446 | 4.1461 | 0.052426 | 2.5402 | 0.051319 | | 8 | Accept | 4.1521 | 0.22448 | 4.1446 | 4.1447 | 990.71 | 0.014203 | 702.34 | | 9 | Accept | 4.1521 | 0.23926 | 4.1446 | 4.1465 | 415.85 | 0.054602 | 81.005 | | 10 | Accept | 4.1454 | 0.25366 | 4.1446 | 4.1455 | 972.49 | 1.1601 | 1.8715 | | 11 | Accept | 4.1495 | 0.29478 | 4.1446 | 4.1473 | 121.79 | 1.4077 | 0.061055 | | 12 | Accept | 4.1521 | 0.16042 | 4.1446 | 4.1474 | 985.81 | 0.83297 | 213.45 | | 13 | Best | 4.1374 | 0.30021 | 4.1374 | 4.1441 | 167.34 | 2.5497 | 4.8997 | | 14 | Accept | 4.1434 | 0.24781 | 4.1374 | 4.1437 | 74.527 | 2.55 | 6.1044 | | 15 | Accept | 4.1402 | 0.28729 | 4.1374 | 4.1407 | 877.17 | 2.5391 | 2.2888 | | 16 | Accept | 4.1436 | 0.93646 | 4.1374 | 4.1412 | 0.0010354 | 0.017613 | 0.11811 | | 17 | Best | 4.1346 | 1.0133 | 4.1346 | 4.1375 | 0.0010362 | 0.010401 | 8.9719 | | 18 | Accept | 4.1521 | 0.22251 | 4.1346 | 4.1422 | 0.0010467 | 0.0094817 | 563.96 | | 19 | Accept | 4.1508 | 0.29329 | 4.1346 | 4.1367 | 760.12 | 0.0079557 | 0.009087 | | 20 | Accept | 4.1435 | 1.0817 | 4.1346 | 4.143 | 0.020647 | 0.0089063 | 2.3699 | |====================================================================================================================| | Iter | Eval | Objective: | Objective | BestSoFar | BestSoFar | KernelScale | Lambda | Epsilon | | | result | log(1+loss) | runtime | (observed) | (estim.) | | | | |====================================================================================================================| | 21 | Best | 3.7172 | 0.57616 | 3.7172 | 3.7174 | 818.08 | 2.5529e-06 | 2.1058 | | 22 | Accept | 4.1521 | 0.22403 | 3.7172 | 3.7177 | 0.006272 | 2.5598e-06 | 93.063 | | 23 | Accept | 4.0567 | 0.31628 | 3.7172 | 3.7176 | 940.43 | 2.6941e-06 | 0.12016 | | 24 | Best | 2.8979 | 2.6062 | 2.8979 | 2.8979 | 37.141 | 2.5677e-06 | 2.71 | | 25 | Accept | 4.1521 | 0.19873 | 2.8979 | 2.898 | 13.817 | 2.5755e-06 | 863.91 | | 26 | Best | 2.795 | 5.1108 | 2.795 | 2.7953 | 20.022 | 2.6098e-06 | 1.6561 | | 27 | Accept | 2.8284 | 3.3885 | 2.795 | 2.7956 | 17.252 | 2.7719e-06 | 0.82777 | | 28 | Best | 2.7896 | 2.2461 | 2.7896 | 2.7898 | 11.432 | 7.621e-06 | 2.094 | | 29 | Accept | 2.8191 | 7.4885 | 2.7896 | 2.7899 | 8.5133 | 2.5872e-06 | 2.0567 | | 30 | Accept | 2.8061 | 3.7809 | 2.7896 | 2.7968 | 15.823 | 6.1956e-06 | 2.0085 |

__________________________________________________________
Optimization completed.
MaxObjectiveEvaluations of 30 reached.
Total function evaluations: 30
Total elapsed time: 66.8666 seconds
Total objective function evaluation time: 40.3192
Best observed feasible point:
KernelScale Lambda Epsilon
___________ _________ _______
11.432 7.621e-06 2.094
Observed objective function value = 2.7896
Estimated objective function value = 2.7984
Function evaluation time = 2.2461
Best estimated feasible point (according to models):
KernelScale Lambda Epsilon
___________ __________ _______
15.823 6.1956e-06 2.0085
Estimated objective function value = 2.7968
Estimated function evaluation time = 3.4579
Mdl =
RegressionKernel
ResponseName: 'Y'
Learner: 'svm'
NumExpansionDimensions: 256
KernelScale: 15.8229
Lambda: 6.1956e-06
BoxConstraint: 411.7488
Epsilon: 2.0085
Properties, Methods
FitInfo = struct with fields:
Solver: 'LBFGS-fast'
LossFunction: 'epsiloninsensitive'
Lambda: 6.1956e-06
BetaTolerance: 1.0000e-04
GradientTolerance: 1.0000e-06
ObjectiveValue: 1.3582
GradientMagnitude: 0.0051
RelativeChangeInBeta: 5.3944e-05
FitTime: 1.1977
History: []
HyperparameterOptimizationResults =
BayesianOptimization with properties:
ObjectiveFcn: @createObjFcn/inMemoryObjFcn
VariableDescriptions: [5x1 optimizableVariable]
Options: [1x1 struct]
MinObjective: 2.7896
XAtMinObjective: [1x3 table]
MinEstimatedObjective: 2.7968
XAtMinEstimatedObjective: [1x3 table]
NumObjectiveEvaluations: 30
TotalElapsedTime: 66.8666
NextPoint: [1x3 table]
XTrace: [30x3 table]
ObjectiveTrace: [30x1 double]
ConstraintsTrace: []
UserDataTrace: {30x1 cell}
ObjectiveEvaluationTimeTrace: [30x1 double]
IterationTimeTrace: [30x1 double]
ErrorTrace: [30x1 double]
FeasibilityTrace: [30x1 logical]
FeasibilityProbabilityTrace: [30x1 double]
IndexOfMinimumTrace: [30x1 double]
ObjectiveMinimumTrace: [30x1 double]
EstimatedObjectiveMinimumTrace: [30x1 double]
Для больших данных процедура оптимизации может занять много времени. Если набор данных слишком велик для выполнения процедуры оптимизации, можно попытаться оптимизировать параметры, используя только частичные данные. Используйте datasample функции и указать 'Replace','false' для выборки данных без замены.
X - Данные предиктораДанные предиктора, которым соответствует регрессионная модель, задаются в виде n-за-p числовой матрицы, где n - количество наблюдений, а p - количество переменных предиктора.
Длина Y и число замечаний в X должно быть равным.
Типы данных: single | double
Tbl - Образцы данныхОбразец данных, используемых для обучения модели, указанный как таблица. Каждая строка Tbl соответствует одному наблюдению, и каждый столбец соответствует одной прогнозирующей переменной. Дополнительно, Tbl может содержать один дополнительный столбец для переменной ответа. Многозначные переменные и массивы ячеек, отличные от массивов ячеек символьных векторов, не допускаются.
Если Tbl содержит переменную ответа, и вы хотите использовать все оставшиеся переменные в Tbl в качестве предикторов, затем укажите переменную ответа, используя ResponseVarName.
Если Tbl содержит переменную ответа, и требуется использовать только подмножество остальных переменных в Tbl в качестве предикторов, затем укажите формулу с помощью formula.
Если Tbl не содержит переменную ответа, затем укажите переменную ответа с помощью Y. Длина переменной ответа и количество строк в Tbl должно быть равным.
Типы данных: table
ResponseVarName - Имя переменной ответаTblИмя переменной ответа, указанное как имя переменной в Tbl. Переменная ответа должна быть числовым вектором.
Необходимо указать ResponseVarName в виде вектора символов или строкового скаляра. Например, если Tbl сохраняет переменную ответа Y как Tbl.Y, затем укажите его как 'Y'. В противном случае программа обрабатывает все столбцы Tbl, в том числе Y, в качестве предикторов при обучении модели.
Типы данных: char | string
formula - Пояснительная модель переменной ответа и подмножество переменных предиктораПояснительная модель переменной ответа и подмножество переменных предиктора, указанное как вектор символов или строковый скаляр в форме 'Y~x1+x2+x3'. В этой форме Y представляет переменную ответа, и x1, x2, и x3 представляют переменные предиктора.
Задание подмножества переменных в Tbl в качестве предикторов для обучения модели используйте формулу. Если задать формулу, программа не будет использовать переменные в Tbl которые не отображаются в formula.
Имена переменных в формуле должны быть обоими именами переменных в Tbl (Tbl.Properties.VariableNames) и допустимые идентификаторы MATLAB ®. Имена переменных можно проверить вTbl с помощью isvarname функция. Если имена переменных недопустимы, их можно преобразовать с помощью matlab.lang.makeValidName функция.
Типы данных: char | string
Примечание
Программное обеспечение обрабатывает NaN, пустой символьный вектор (''), пустая строка (""), <missing>, и <undefined> элементы как отсутствующие значения и удаляет наблюдения с любой из следующих характеристик:
Отсутствует значение в переменной ответа
По крайней мере одно отсутствующее значение в наблюдении предиктора (строка в X или Tbl)
NaN значение или 0 вес ('Weights')
Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.
Mdl = fitrkernel(X,Y,'Learner','leastsquares','NumExpansionDimensions',2^15,'KernelScale','auto') реализует регрессию методом наименьших квадратов после отображения данных предиктора в 2^15 размерное пространство с использованием расширения признаков с параметром масштаба ядра, выбранным эвристической процедурой.Примечание
Нельзя использовать любой аргумент пары имя-значение перекрестной проверки вместе с 'OptimizeHyperparameters' аргумент пары имя-значение. Можно изменить перекрестную проверку для 'OptimizeHyperparameters' только с помощью 'HyperparameterOptimizationOptions' аргумент пары имя-значение.
'BoxConstraint' - Ограничение коробки1 (по умолчанию) | положительный скалярОграничение поля, указанное как пара, разделенная запятыми, состоящая из 'BoxConstraint' и положительный скаляр.
Этот аргумент допустим только в том случае, если 'Learner' является 'svm'(по умолчанию) и вы не указываете значение для силы термина регуляризации 'Lambda'. Можно указать либо 'BoxConstraint' или 'Lambda' поскольку ограничение поля (C) и сила члена регуляризации (λ) связаны с C = 1/( λ n), где n - количество наблюдений (строки вX).
Пример: 'BoxConstraint',100
Типы данных: single | double
'Epsilon' - Половина ширины эпсилон-нечувствительной полосы'auto' (по умолчанию) | неотрицательное скалярное значениеПоловина ширины полосы, нечувствительной к эпсилону, указанной как пара, разделенная запятыми, состоящая из 'Epsilon' и 'auto' или неотрицательное скалярное значение.
Для 'auto', fitrkernel функция определяет значение Epsilon как iqr(Y)/13.49, которая представляет собой оценку десятой части стандартного отклонения с использованием межквартильного диапазона переменной отклика Y. Если iqr(Y) равно нулю, то fitrkernel устанавливает значение Epsilon до 0,1.
'Epsilon' действителен только тогда, когда Learner является svm.
Пример: 'Epsilon',0.3
Типы данных: single | double
'NumExpansionDimensions' - Количество габаритов расширенного пространства'auto' (по умолчанию) | положительное целое числоКоличество размеров развернутого пространства, указанного как разделенная запятыми пара, состоящая из 'NumExpansionDimensions' и 'auto' или положительное целое число. Для 'auto', fitrkernel функция выбирает количество размеров с помощью 2.^ceil(min(log2(p)+5,15)), где p - количество предикторов.
Пример: 'NumExpansionDimensions',2^15
Типы данных: char | string | single | double
'KernelScale' - Параметр масштаба ядра1 (по умолчанию) | 'auto' | положительный скалярПараметр масштаба ядра, заданный как разделенная запятыми пара, состоящая из 'KernelScale' и 'auto' или положительный скаляр. MATLAB получает случайный базис для случайного расширения признаков с помощью параметра масштаба ядра. Дополнительные сведения см. в разделе Случайное расширение элементов.
При указании 'auto'затем MATLAB выбирает соответствующий параметр масштаба ядра с использованием эвристической процедуры. Эта эвристическая процедура использует субдискретизацию, поэтому оценки могут варьироваться от одного вызова к другому. Поэтому для воспроизведения результатов установите начальное число случайного числа с помощью rng перед тренировкой.
Пример: 'KernelScale','auto'
Типы данных: char | string | single | double
'Lambda' - Сила термина «регуляризация»'auto' (по умолчанию) | неотрицательный скалярСила термина регуляризации, определяемая как разделенная запятыми пара, состоящая из 'Lambda' и 'auto' или неотрицательный скаляр.
Для 'auto', значение 'Lambda' равно 1/n, где n - количество наблюдений (строки в X).
Можно указать либо 'BoxConstraint' или 'Lambda' поскольку ограничение (С) и сила члена регуляризации (λ) связаны С = 1/( λ n).
Пример: 'Lambda',0.01
Типы данных: char | string | single | double
'Learner' - Тип модели линейной регрессии'svm' (по умолчанию) | 'leastsquares'Тип модели линейной регрессии, указанный как разделенная запятыми пара, состоящая из 'Learner' и 'svm' или 'leastsquares'.
В следующей таблице β + b.
x - наблюдение (вектор строки) из p переменных предиктора.
(·) - преобразование наблюдения (вектор строки) для расширения признаков. T (x) отображает x ℝp в высокомерное пространство ℝm).
β - вектор из m коэффициентов.
b - скалярное смещение.
| Стоимость | Алгоритм | Диапазон ответа | Функция потерь |
|---|---|---|---|
'leastsquares' | Линейная регрессия через обычные наименьшие квадраты | y ∊ (- ∞,∞) | Среднеквадратичная ошибка (MSE): f (x)] 2 |
'svm' | Поддержка векторной машинной регрессии | То же, что и 'leastsquares' | Эпсилон-нечувствительный: f (x) | − |
Пример: 'Learner','leastsquares'
'Verbose' - Уровень детализации0 (по умолчанию) | 1Уровень детализации, указанный как разделенная запятыми пара, состоящая из 'Verbose' и либо 0 или 1. Verbose управляет объемом диагностической информации fitrkernel отображается в командной строке.
| Стоимость | Описание |
|---|---|
0 | fitrkernel не отображает диагностическую информацию. |
1 | fitrkernel отображает и сохраняет значение целевой функции, величину градиента и другую диагностическую информацию. FitInfo.History содержит диагностическую информацию. |
Пример: 'Verbose',1
Типы данных: single | double
'BlockSize' - Максимальный объем выделенной памяти4e^3 (4GB) (по умолчанию) | положительный скалярМаксимальный объем выделенной памяти (в мегабайтах), указанный как разделенная запятыми пара, состоящая из 'BlockSize' и положительный скаляр.
Если fitrkernel требует больше памяти, чем значение BlockSize для хранения преобразованных данных предиктора MATLAB использует блочную стратегию. Дополнительные сведения о блочной стратегии см. в разделе Алгоритмы.
Пример: 'BlockSize',1e4
Типы данных: single | double
'RandomStream' - Поток случайных чиселПоток случайных чисел для воспроизводимости преобразования данных, определяемый как разделенная запятыми пара, состоящая из 'RandomStream' и объект случайного потока. Дополнительные сведения см. в разделе Случайное расширение элементов.
Использовать 'RandomStream' для воспроизведения случайных базисных функций, которые fitrkernel используется для преобразования данных в X в многомерное пространство. Дополнительные сведения см. в разделах Управление глобальным потоком с помощью RandStream и Создание и управление потоком случайных чисел.
Пример: 'RandomStream',RandStream('mlfg6331_64')
'CategoricalPredictors' - Список категориальных предикторов'all'Список категориальных предикторов, указанный как одно из значений в этой таблице.
| Стоимость | Описание |
|---|---|
| Вектор положительных целых чисел |
Каждая запись в векторе представляет собой значение индекса, соответствующее столбцу данных предиктора, который содержит категориальную переменную. Значения индекса находятся в диапазоне от 1 до Если |
| Логический вектор |
A |
| Символьная матрица | Каждая строка матрицы является именем предикторной переменной. Имена должны соответствовать записям в PredictorNames. Поместите имена с дополнительными пробелами, чтобы каждая строка символьной матрицы имела одинаковую длину. |
| Строковый массив или массив ячеек символьных векторов | Каждый элемент массива является именем переменной предиктора. Имена должны соответствовать записям в PredictorNames. |
'all' | Все предикторы категоричны. |
По умолчанию, если данные предиктора находятся в таблице (Tbl), fitrkernel предполагает, что переменная категорична, если она является логическим вектором, категориальным вектором, символьным массивом, строковым массивом или массивом ячеек символьных векторов. Если данные предиктора являются матрицей (X), fitrkernel предполагает, что все предикторы непрерывны. Чтобы определить любые другие предикторы как категориальные предикторы, укажите их с помощью 'CategoricalPredictors' аргумент «имя-значение».
Для выявленных категориальных предикторов fitrkernel создает фиктивные переменные, используя две различные схемы, в зависимости от того, неупорядочена или упорядочена категориальная переменная. Для неупорядоченной категориальной переменной fitrkernel создает одну фиктивную переменную для каждого уровня категориальной переменной. Для упорядоченной категориальной переменной fitrkernel создает на одну фиктивную переменную меньше числа категорий. Дополнительные сведения см. в разделе Автоматическое создание фиктивных переменных.
Пример: 'CategoricalPredictors','all'
Типы данных: single | double | logical | char | string | cell
'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 чтобы выбрать, какие переменные предиктора использовать в обучении. То есть fitrkernel использует только переменные предиктора в PredictorNames и переменную ответа во время обучения.
PredictorNames должен быть подмножеством Tbl.Properties.VariableNames и не может включать имя переменной ответа.
По умолчанию PredictorNames содержит имена всех переменных предиктора.
Хорошей практикой является определение предикторов для обучения с использованием 'PredictorNames' или formulaно не оба.
Пример: 'PredictorNames',{'SepalLength','SepalWidth','PetalLength','PetalWidth'}
Типы данных: string | cell
'ResponseName' - Имя переменной ответа'Y' (по умолчанию) | символьный вектор | строковый скалярИмя переменной ответа, указанное как вектор символа или скаляр строки.
Если вы поставляете Y, то вы можете использовать 'ResponseName' для указания имени переменной ответа.
Если вы поставляете ResponseVarName или formula, то вы не можете использовать 'ResponseName'.
Пример: 'ResponseName','response'
Типы данных: char | string
'ResponseTransform' - Преобразование ответа'none' (по умолчанию) | дескриптор функцииПреобразование ответа, указанное как 'none' или дескриптор функции. Значение по умолчанию: 'none', что означает @(y)y, или нет трансформации. Для функции MATLAB или определяемой функции используйте ее дескриптор функции для преобразования ответа. Дескриптор функции должен принимать вектор (исходные значения ответа) и возвращать вектор того же размера (преобразованные значения ответа).
Пример: Предположим, что вы создаете дескриптор функции, который применяет экспоненциальное преобразование к входному вектору с помощью myfunction = @(y)exp(y). Затем можно указать преобразование ответа как 'ResponseTransform',myfunction.
Типы данных: char | string | function_handle
'Weights' - Наблюдательные весаTblВеса наблюдения, указанные как разделенная запятыми пара, состоящая из 'Weights' и вектор скалярных значений или имя переменной в Tbl. Программное обеспечение взвешивает каждое наблюдение (или строку) в X или Tbl с соответствующим значением в Weights. Длина Weights должно равняться количеству строк в X или Tbl.
Если входные данные указаны как таблица Tbl, то Weights может быть именем переменной в Tbl содержит числовой вектор. В этом случае необходимо указать Weights в виде вектора символов или строкового скаляра. Например, если весовые коэффициенты вектора W хранится как Tbl.W, затем укажите его как 'W'. В противном случае программа обрабатывает все столбцы Tbl, в том числе W, в качестве предикторов при обучении модели.
По умолчанию Weights является ones(n,1), где n - количество наблюдений в X или Tbl.
fitrkernel нормализует веса для суммирования в 1.
Типы данных: single | double | char | string
'CrossVal' - Флаг перекрестной проверки'off' (по умолчанию) | 'on'Флаг перекрестной проверки, заданный как пара, разделенная запятыми, состоящая из 'Crossval' и 'on' или 'off'.
При указании 'on', то программное обеспечение реализует 10-кратную перекрестную проверку.
Этот параметр перекрестной проверки можно переопределить с помощью CVPartition, Holdout, KFold, или Leaveout аргумент пары имя-значение. Одновременно можно использовать только один аргумент пары имя-значение перекрестной проверки для создания модели с перекрестной проверкой.
Пример: 'Crossval','on'
'CVPartition' - Раздел перекрестной проверки[] (по умолчанию) | cvpartition объект секционированияРаздел перекрестной проверки, указанный как cvpartition объект секционирования, созданный cvpartition. Объект секционирования определяет тип перекрестной проверки и индексирования для наборов обучения и проверки.
Чтобы создать модель с перекрестной проверкой, можно указать только один из следующих четырех аргументов: CVPartition, Holdout, KFold, или Leaveout.
Пример: Предположим, что вы создаете случайный раздел для пятикратной перекрестной проверки 500 наблюдений с помощью cvp = cvpartition(500,'KFold',5). Затем можно указать модель с перекрестной проверкой с помощью 'CVPartition',cvp.
'Holdout' - Доля данных для проверки отсутствияДоля данных, используемых для проверки удержания, заданная как скалярное значение в диапазоне (0,1). При указании 'Holdout',p, затем программное обеспечение выполняет следующие действия:
Случайный выбор и резервирование p*100% данных в качестве данных проверки и обучение модели с использованием остальных данных.
Храните компактную обучаемую модель в Trained свойства перекрестной проверенной модели.
Чтобы создать модель с перекрестной проверкой, можно указать только один из следующих четырех аргументов: CVPartition, Holdout, KFold, или Leaveout.
Пример: 'Holdout',0.1
Типы данных: double | single
'KFold' - Количество складок10 (по умолчанию) | положительное целое значение больше 1Число сгибов для использования в модели с перекрестной проверкой, указанное как положительное целое значение больше 1. При указании 'KFold',kзатем программное обеспечение выполняет следующие действия:
Случайное разбиение данных на k наборы.
Для каждого набора зарезервируйте набор в качестве данных проверки и обучайте модель с помощью другого k - 1 комплект.
Сохранить k компактные, обученные модели в k-by-1 клеточный вектор в Trained свойства перекрестной проверенной модели.
Чтобы создать модель с перекрестной проверкой, можно указать только один из следующих четырех аргументов: CVPartition, Holdout, KFold, или Leaveout.
Пример: 'KFold',5
Типы данных: single | double
'Leaveout' - Флаг перекрестной проверки «оставить один»'off' (по умолчанию) | 'on'Флаг перекрестной проверки, определяемый как разделенная запятыми пара, состоящая из 'Leaveout' и 'on' или 'off'. При указании 'Leaveout','on'затем для каждого из n наблюдений (где n - количество наблюдений, исключая пропущенные наблюдения) программное обеспечение выполняет следующие шаги:
Зарезервируйте наблюдения как данные проверки и обучите модель, используя другие n-1 наблюдения.
Храните n компактных обученных моделей в клетках клеточного вектора n-by-1 в Trained свойства перекрестной проверенной модели.
Для создания перекрестно проверенной модели можно использовать только один из следующих четырех аргументов пары имя-значение: CVPartition, Holdout, KFold, или Leaveout.
Пример: 'Leaveout','on'
'BetaTolerance' - Относительный допуск по линейным коэффициентам и термину смещения1e-5 (по умолчанию) | неотрицательный скалярОтносительный допуск на линейные коэффициенты и член смещения (пересечение), указанный как разделенная запятыми пара, состоящая из 'BetaTolerance' и неотрицательный скаляр.
Пусть bt], то есть вектор коэффициентов и член смещения при итерации оптимизации т. Bt−Bt−1Bt‖2<BetaTolerance, то оптимизация заканчивается.
Если также указать GradientTolerance, то оптимизация завершается, когда программное обеспечение удовлетворяет любому критерию остановки.
Пример: 'BetaTolerance',1e-6
Типы данных: single | double
'GradientTolerance' - Абсолютный градиентный допуск1e-6 (по умолчанию) | неотрицательный скалярАбсолютный градиентный допуск, заданный как разделенная запятыми пара, состоящая из 'GradientTolerance' и неотрицательный скаляр.
Пусть является градиентным вектором целевой функции относительно коэффициентов и члена смещения при итерации оптимизации T. Если ∇ℒt‖∞=max|∇ℒt|<GradientTolerance, то оптимизация заканчивается.
Если также указать BetaTolerance, то оптимизация завершается, когда программное обеспечение удовлетворяет любому критерию остановки.
Пример: 'GradientTolerance',1e-5
Типы данных: single | double
'HessianHistorySize' - Размер буфера истории для гессенского приближения15 (по умолчанию) | положительное целое числоРазмер буфера истории для гессенского приближения, определяемый как разделенная запятыми пара, состоящая из 'HessianHistorySize' и положительное целое число. При каждой итерации fitrkernel сочиняет гессенский, используя статистику из последних HessianHistorySize итерации.
Пример: 'HessianHistorySize',10
Типы данных: single | double
'IterationLimit' - Максимальное число итераций оптимизацииМаксимальное число итераций оптимизации, указанное как пара, разделенная запятыми, состоящая из 'IterationLimit' и положительное целое число.
Значение по умолчанию - 1000, если преобразованные данные помещаются в память, как указано BlockSize. В противном случае значение по умолчанию равно 100.
Пример: 'IterationLimit',500
Типы данных: single | double
'OptimizeHyperparameters' - Параметры для оптимизации'none' (по умолчанию) | 'auto' | 'all' | строковый массив или массив ячеек допустимых имен параметров | вектор optimizableVariable объектыПараметры для оптимизации, указанные как пара, разделенная запятыми, состоящая из 'OptimizeHyperparameters' и одно из этих значений:
'none' - Не оптимизировать.
'auto' - Использование {'KernelScale','Lambda','Epsilon'}.
'all' - Оптимизируйте все подходящие параметры.
Массив ячеек допустимых имен параметров.
Вектор optimizableVariable объекты, обычно выходные данные hyperparameters.
Оптимизация пытается минимизировать потери при перекрестной проверке (ошибка) для fitrkernel путем изменения параметров. Для управления типом перекрестной проверки и другими аспектами оптимизации используйте HyperparameterOptimizationOptions аргумент пары имя-значение.
Примечание
'OptimizeHyperparameters' значения переопределяют любые значения, заданные с помощью других аргументов пары «имя-значение». Например, настройка 'OptimizeHyperparameters' кому 'auto' вызывает 'auto' значения для применения.
Подходящие параметры для fitrkernel являются:
Epsilon — fitrkernel поиск среди положительных значений, по умолчанию с логарифмическим масштабированием в диапазоне [1e-3,1e2]*iqr(Y)/1.349.
KernelScale — fitrkernel поиск среди положительных значений, по умолчанию с логарифмическим масштабированием в диапазоне [1e-3,1e3].
Lambda — fitrkernel поиск среди положительных значений, по умолчанию с логарифмическим масштабированием в диапазоне [1e-3,1e3]/n, где n - количество наблюдений.
Learner — fitrkernel поиск среди 'svm' и 'leastsquares'.
NumExpansionDimensions — fitrkernel поиск среди положительных целых чисел, по умолчанию log-scaled в диапазоне [100,10000].
Установка параметров, не используемых по умолчанию, путем передачи вектора optimizableVariable объекты, не имеющие значений по умолчанию. Например:
load carsmall params = hyperparameters('fitrkernel',[Horsepower,Weight],MPG); params(2).Range = [1e-4,1e6];
Проход params как значение 'OptimizeHyperparameters'.
По умолчанию итеративное отображение отображается в командной строке, а графики отображаются в соответствии с количеством гиперпараметров в оптимизации. Для оптимизации и графиков целевой функцией является log ( 1 + потери при перекрестной проверке) для регрессии и коэффициент неправильной классификации для классификации. Для управления итеративным отображением установите Verbose области 'HyperparameterOptimizationOptions' аргумент пары имя-значение. Для управления графиками установите ShowPlots области 'HyperparameterOptimizationOptions' аргумент пары имя-значение.
Пример см. в разделе Оптимизация регрессии ядра.
Пример: 'OptimizeHyperparameters','auto'
'HyperparameterOptimizationOptions' - Варианты оптимизацииОпции оптимизации, указанные как разделенная запятыми пара, состоящая из 'HyperparameterOptimizationOptions' и структура. Этот аргумент изменяет эффект OptimizeHyperparameters аргумент пары имя-значение. Все поля в структуре являются необязательными.
| Имя поля | Ценности | Дефолт |
|---|---|---|
Optimizer |
| 'bayesopt' |
AcquisitionFunctionName |
Функции приобретения, имена которых включают | 'expected-improvement-per-second-plus' |
MaxObjectiveEvaluations | Максимальное количество оценок целевой функции. | 30 для 'bayesopt' или 'randomsearch'и вся сетка для 'gridsearch' |
MaxTime | Ограничение по времени, указанное как положительный реал. Ограничение по времени в секундах, измеренное | Inf |
NumGridDivisions | Для 'gridsearch', количество значений в каждом измерении. Значение может быть вектором положительных целых чисел, дающим количество значений для каждого измерения, или скаляром, который применяется ко всем измерениям. Это поле игнорируется для категориальных переменных. | 10 |
ShowPlots | Логическое значение, указывающее, показывать ли графики. Если trueв этом поле отображается наилучшее значение целевой функции относительно номера итерации. Если имеется один или два параметра оптимизации, и если Optimizer является 'bayesopt', то ShowPlots также строит график модели целевой функции по параметрам. | true |
SaveIntermediateResults | Логическое значение, указывающее, сохранять ли результаты при Optimizer является 'bayesopt'. Если true, это поле перезаписывает переменную рабочей области с именем 'BayesoptResults' на каждой итерации. Переменная является BayesianOptimization объект. | false |
Verbose | Отображение в командной строке.
Для получения более подробной информации см. | 1 |
UseParallel | Логическое значение, указывающее, выполнять ли байесовскую оптимизацию параллельно, что требует Toolbox™ параллельных вычислений. Из-за непродуктивности параллельной синхронизации параллельная байесовская оптимизация не обязательно дает воспроизводимые результаты. Дополнительные сведения см. в разделе Параллельная байесовская оптимизация. | false |
Repartition | Логическое значение, указывающее, следует ли перераспределять перекрестную проверку при каждой итерации. Если
| false |
| Используйте не более одного из следующих трех имен полей. | ||
CVPartition | A cvpartition объект, созданный cvpartition. | 'Kfold',5 если не указано какое-либо поле перекрестной проверки |
Holdout | Скаляр в диапазоне (0,1) представляет собой удерживающую фракцию. | |
Kfold | Целое число больше 1. | |
Пример: 'HyperparameterOptimizationOptions',struct('MaxObjectiveEvaluations',60)
Типы данных: struct
Mdl - Тренированная модель регрессии ядраRegressionKernel объект модели | RegressionPartitionedKernel объект модели с перекрестной проверкойОбученная модель регрессии ядра, возвращенная как RegressionKernel объект модели или RegressionPartitionedKernel объект модели с перекрестной проверкой.
Если задать какой-либо из аргументов пары имя-значение CrossVal, CVPartition, Holdout, KFold, или Leaveout, то Mdl является RegressionPartitionedKernel модель с перекрестной проверкой. В противном случае Mdl является RegressionKernel модель.
Для ссылки на свойства Mdl, используйте точечную нотацию. Например, введите Mdl.NumExpansionDimensions в окне команд для отображения количества размеров развернутого пространства.
Примечание
В отличие от других регрессионных моделей и для экономичного использования памяти, RegressionKernel в объекте модели не хранятся данные обучения или сведения о процессе обучения (например, история сходимости).
FitInfo - Сведения об оптимизацииСведения об оптимизации, возвращаемые в виде массива структуры, включающего поля, описанные в этой таблице. Поля содержат конечные значения или параметры пары «имя-значение».
| Область | Описание |
|---|---|
Solver | Метод минимизации целевой функции: |
LossFunction | Функция потери. Средняя квадратичная ошибка (MSE) или нечувствительная к эпсилону, в зависимости от типа модели линейной регрессии. Посмотрите Learner. |
Lambda | Сила термина «регуляризация». Посмотрите Lambda. |
BetaTolerance | Относительный допуск по линейным коэффициентам и члену смещения. Посмотрите BetaTolerance. |
GradientTolerance | Абсолютный градиентный допуск. Посмотрите GradientTolerance. |
ObjectiveValue | Значение целевой функции при завершении оптимизации. Регрессионная потеря плюс термин регуляризации составляют целевую функцию. |
GradientMagnitude | Бесконечная норма градиентного вектора целевой функции при завершении оптимизации. Посмотрите GradientTolerance. |
RelativeChangeInBeta | Относительные изменения линейных коэффициентов и члена смещения при завершении оптимизации. Посмотрите BetaTolerance. |
FitTime | Прошедшее время (в секундах), необходимое для соответствия модели данным. |
History | История информации об оптимизации. Это поле также включает информацию об оптимизации из обучения Mdl. Это поле пустое ([]) при указании 'Verbose',0. Для получения более подробной информации см. Verbose и Алгоритмы. |
Для доступа к полям используйте точечную нотацию. Например, чтобы получить доступ к вектору значений целевой функции для каждой итерации, введите FitInfo.ObjectiveValue в окне команд.
Изучить информацию, предоставленную FitInfo оценить, является ли сходимость удовлетворительной.
HyperparameterOptimizationResults - Оптимизация гиперпараметров при перекрестной проверкеBayesianOptimization object | таблица гиперпараметров и связанных значенийОптимизация гиперпараметров с перекрестной проверкой, возвращаемая как BayesianOptimization объект или таблица гиперпараметров и связанных значений. Выходные данные не являются пустыми, если значение 'OptimizeHyperparameters' не является 'none'. Выходное значение зависит от Optimizer значение поля 'HyperparameterOptimizationOptions' аргумент пары имя-значение:
Значение Optimizer Область | Значение HyperparameterOptimizationResults |
|---|---|
'bayesopt' (по умолчанию) | Объект класса BayesianOptimization |
'gridsearch' или 'randomsearch' | Таблица используемых гиперпараметров, наблюдаемые значения целевой функции (потеря перекрестной проверки) и ранг наблюдений от самого низкого (лучший) до самого высокого (худший) |
fitrkernel не принимает исходные условия для линейных коэффициентов бета (β) и термина смещения (b), используемых для определения функции принятия решения, β + b.
fitrkernel не поддерживает стандартизацию.
Случайное расширение функций, например, Random Kitchen Sinks [1] и Fastfood [2], - это схема аппроксимации гауссовых ядер алгоритма регрессии ядра для больших данных вычислительно эффективным способом. Случайное расширение функций является более практичным для приложений больших данных, которые имеют большие обучающие наборы, но также могут быть применены к меньшим наборам данных, которые помещаются в память.
Алгоритм регрессии ядра ищет оптимальную функцию, которая отклоняется от каждой ответной точки данных (yi) на значения, не превышающие эпсилонный запас (start) после отображения данных предиктора в высокомерное пространство.
Некоторые проблемы регрессии не могут быть адекватно описаны с помощью линейной модели. В таких случаях получить модель нелинейной регрессии, заменив скалярное произведение x1x2 ′ на нелинейную функцию ядра start( x2) 〉, где xi - i-е наблюдение (вектор строки) и start( xi) - преобразование, отображающее xi в высокомерное пространство (называемое «трюк ядра»). Однако оценка G (x1, x2), матрицы Грама, для каждой пары наблюдений является вычислительно дорогостоящей для большого набора данных (большое n).
Схема случайного расширения признаков находит случайное преобразование так, что её скалярное произведение аппроксимирует гауссово ядро. То есть
x1) T (x2) ',
где T (x) отображает x в ℝp в высокомерное пространство ℝm). Схема Random Kitchen Sink [1] использует случайное преобразование
iZx ')',
где - выборка, взятая из − 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 для больших данных.
Ограничение коробки - это параметр, который управляет максимальным штрафом, наложенным на наблюдения, лежащие за пределами эпсилонового запаса (start), и помогает предотвратить переоборудование (регуляризацию). Увеличение ограничения поля может привести к увеличению времени обучения.
Ограничение бокса (C) и сила члена регуляризации (λ) связаны C = 1/( λ n), где n - количество наблюдений.
fitrkernel минимизирует регуляризованную целевую функцию, используя решатель с ограниченной памятью Бройдена-Флетчера-Гольдфарба-Шанно (LBFGS) с регуляризацией гребня (L2). Чтобы найти тип решателя LBFGS, используемого для обучения, введите FitInfo.Solver в окне команд.
'LBFGS-fast' - решатель LBFGS.
'LBFGS-blockwise' - решатель LBFGS с блочной стратегией. Если fitrkernel требует больше памяти, чем значение BlockSize чтобы сохранить преобразованные данные предиктора, он использует блочную стратегию.
'LBFGS-tall' - решатель LBFGS с блочной стратегией для больших массивов.
Когда fitrkernel использует поэтапную стратегию, fitrkernel реализует LBFGS, распределяя вычисление потерь и градиента между различными частями данных на каждой итерации. Также, fitrkernel уточняет начальные оценки линейных коэффициентов и члена смещения, подгоняя модель локально к частям данных и комбинируя коэффициенты путем усреднения. При указании 'Verbose',1, то fitrkernel отображает диагностическую информацию для каждого прохода данных и сохраняет информацию в History поле FitInfo.
Когда fitrkernel не использует блочную стратегию, начальные оценки равны нулю. При указании 'Verbose',1, то fitrkernel отображает диагностическую информацию для каждой итерации и сохраняет информацию в History поле FitInfo.
[1] Рахими, А. и Б. Рехт. «Случайные возможности для крупногабаритных машин ядра». Достижения в системах обработки нейронной информации. т. 20, 2008, стр. 1177-1184.
[2] Ле, К., Т. Сарлос и А. Смола. «Fastfood - аппроксимация расширений ядра в логлинеарное время». Материалы 30-й Международной конференции по машинному обучению. т. 28, № 3, 2013, стр. 244-252.
[3] Хуан, П. С., Х. Аврон, Т. Н. Сайнатх, В. Синдхвани и Б. Рамабхадран. «Kernel methods match Deep Neural Networks on TIMIT». Международная конференция IEEE 2014 по акустике, речи и обработке сигналов. 2014, стр 205–209.
Примечания и ограничения по использованию:
fitrkernel не поддерживает высокий table данные.
Некоторые аргументы пары имя-значение имеют другие значения по умолчанию по сравнению со значениями по умолчанию для памяти fitrkernel функция. Поддерживаемые аргументы пары имя-значение и любые различия:
'BoxConstraint'
'Epsilon'
'NumExpansionDimensions'
'KernelScale'
'Lambda'
'Learner'
'Verbose' - Значение по умолчанию: 1.
'BlockSize'
'RandomStream'
'ResponseTransform'
'Weights' - Значение должно быть высоким массивом.
'BetaTolerance' - Значение по умолчанию смягчено до 1e–3.
'GradientTolerance' - Значение по умолчанию смягчено до 1e–5.
'HessianHistorySize'
'IterationLimit' - Значение по умолчанию смягчено до 20.
'OptimizeHyperparameters'
'HyperparameterOptimizationOptions' - Для перекрестной проверки поддерживается только оптимизация по высоте 'Holdout' проверка. По умолчанию программа выбирает и резервирует 20% данных в качестве данных проверки отсутствия и обучает модель, используя остальные данные. С помощью этого аргумента можно указать другое значение для удерживаемой дроби. Например, укажите 'HyperparameterOptimizationOptions',struct('Holdout',0.3) зарезервировать 30% данных в качестве данных проверки.
Если 'KernelScale' является 'auto', то fitrkernel использует случайный поток, управляемый tallrng для субдискретизации. Для воспроизводимости необходимо задать начальное число случайных чисел как для глобального потока, так и для случайного потока, управляемого tallrng.
Если 'Lambda' является 'auto', то fitrkernel может потребоваться дополнительный проход через данные для вычисления количества наблюдений в X.
fitrkernel использует блочную стратегию. Дополнительные сведения см. в разделе Алгоритмы.
Дополнительные сведения см. в разделе Массивы Tall.
Чтобы выполнить параллельную оптимизацию гиперпараметров, используйте 'HyperparameterOptimizationOptions', struct('UseParallel',true) аргумент name-value в вызове этой функции.
Дополнительные сведения об оптимизации параллельных гиперпараметров см. в разделе Параллельная байесовская оптимизация.
Общие сведения о параллельных вычислениях см. в разделе Запуск функций MATLAB с автоматической параллельной поддержкой (панель инструментов параллельных вычислений).
bayesopt | bestPoint | fitrlinear | fitrsvm | loss | predict | RegressionKernel | RegressionPartitionedKernel | resume
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.