Подогнать модель классификации ядра по Гауссу, используя случайное расширение признаков
fitckernel выполняет или перекрестную проверку двоичной модели классификации ядра Гаусса для нелинейной классификации. fitckernel является более практичным для приложений больших данных, которые имеют большие обучающие наборы, но могут также применяться к меньшим наборам данных, которые помещаются в память.
fitckernel отображает данные в низкоразмерном пространстве в высокомерное пространство, затем укладывает линейную модель в высокомерное пространство путем минимизации регуляризованной целевой функции. Получение линейной модели в высокомерном пространстве эквивалентно применению гауссова ядра к модели в низкоразмерном пространстве. Доступные модели линейной классификации включают регуляризованные векторные модели поддержки (SVM) и модели логистической регрессии.
Чтобы обучить нелинейную модель SVM для двоичной классификации данных в памяти, см. fitcsvm.
возвращает двоичную модель классификации ядра Гаусса, обученную с использованием данных предиктора в Mdl = fitckernel(X,Y)X и соответствующие метки классов в Y. fitckernel функция отображает предикторы в низкоразмерном пространстве в высокомерное пространство, затем подгоняет двоичную модель SVM к преобразованным предикторам и меткам класса. Эта линейная модель эквивалентна модели классификации ядра Гаусса в низкомерном пространстве.
возвращает модель классификации ядра Mdl = fitckernel(Tbl,ResponseVarName)Mdl обучены с использованием переменных предиктора, содержащихся в таблице Tbl и метки классов в Tbl.ResponseVarName.
указывает параметры, использующие один или несколько аргументов пары имя-значение в дополнение к любой из комбинаций входных аргументов в предыдущих синтаксисах. Например, можно реализовать логистическую регрессию, указать количество размеров развернутого пространства или задать перекрестную проверку.Mdl = fitckernel(___,Name,Value)
[ также возвращает результаты оптимизации гиперпараметров Mdl,FitInfo,HyperparameterOptimizationResults] = fitckernel(___)HyperparameterOptimizationResults при оптимизации гиперпараметров с помощью 'OptimizeHyperparameters' аргумент пары имя-значение.
Обучение модели классификации двоичного ядра с помощью SVM.
Загрузить ionosphere набор данных. Этот набор данных имеет 34 предиктора и 351 двоичный отклик для радарных возвращений, либо плохой ('b') или хорошо ('g').
load ionosphere
[n,p] = size(X)n = 351
p = 34
resp = unique(Y)
resp = 2x1 cell
{'b'}
{'g'}
Обучить двоичную модель классификации ядра, которая определяет, является ли возврат радара плохим ('b') или хорошо ('g'). Извлеките сводку соответствия, чтобы определить, насколько хорошо алгоритм оптимизации соответствует модели данным.
rng('default') % For reproducibility [Mdl,FitInfo] = fitckernel(X,Y)
Mdl =
ClassificationKernel
ResponseName: 'Y'
ClassNames: {'b' 'g'}
Learner: 'svm'
NumExpansionDimensions: 2048
KernelScale: 1
Lambda: 0.0028
BoxConstraint: 1
Properties, Methods
FitInfo = struct with fields:
Solver: 'LBFGS-fast'
LossFunction: 'hinge'
Lambda: 0.0028
BetaTolerance: 1.0000e-04
GradientTolerance: 1.0000e-06
ObjectiveValue: 0.2604
GradientMagnitude: 0.0028
RelativeChangeInBeta: 8.2512e-05
FitTime: 1.0377
History: []
Mdl является ClassificationKernel модель. Для проверки ошибки классификации в образце можно пройти Mdl и данные обучения или новые данные для loss функция. Или, вы можете пройти Mdl и новые данные предиктора для predict функция для прогнозирования меток классов для новых наблюдений. Вы также можете пройти Mdl и данные обучения для resume функция продолжения обучения.
FitInfo - структурный массив, содержащий информацию об оптимизации. Использовать FitInfo чтобы определить, являются ли измерения окончания оптимизации удовлетворительными.
Для большей точности можно увеличить максимальное число итераций оптимизации ('IterationLimit') и уменьшите значения допуска ('BetaTolerance' и 'GradientTolerance') с использованием аргументов пары имя-значение. Это может улучшить такие меры, как ObjectiveValue и RelativeChangeInBeta в FitInfo. Можно также оптимизировать параметры модели с помощью 'OptimizeHyperparameters' аргумент пары имя-значение.
Загрузить ionosphere набор данных. Этот набор данных имеет 34 предиктора и 351 двоичный отклик для радарных возвращений, либо плохой ('b') или хорошо ('g').
load ionosphere rng('default') % For reproducibility
Перекрестная проверка двоичной модели классификации ядра. По умолчанию программа использует десятикратную перекрестную проверку.
CVMdl = fitckernel(X,Y,'CrossVal','on')
CVMdl =
ClassificationPartitionedKernel
CrossValidatedModel: 'Kernel'
ResponseName: 'Y'
NumObservations: 351
KFold: 10
Partition: [1x1 cvpartition]
ClassNames: {'b' 'g'}
ScoreTransform: 'none'
Properties, Methods
numel(CVMdl.Trained)
ans = 10
CVMdl является ClassificationPartitionedKernel модель. Поскольку fitckernel реализует 10-кратную перекрестную проверку, CVMdl содержит 10 ClassificationKernel модели, которые программное обеспечение обучает тренировочным (кратным) наблюдениям.
Оценка кросс-проверенной ошибки классификации.
kfoldLoss(CVMdl)
ans = 0.0940
Коэффициент ошибок классификации составляет приблизительно 9%.
Автоматическая оптимизация гиперпараметров с помощью 'OptimizeHyperparameters' аргумент пары имя-значение.
Загрузить ionosphere набор данных. Этот набор данных имеет 34 предиктора и 351 двоичный отклик для радарных возвращений, либо плохой ('b') или хорошо ('g').
load ionosphereНайдите гиперпараметры, которые минимизируют пятикратные потери при перекрестной проверке, используя автоматическую оптимизацию гиперпараметров. Определить 'OptimizeHyperparameters' как 'auto' чтобы fitckernel находит оптимальные значения 'KernelScale' и 'Lambda' аргументы пары имя-значение. Для воспроизводимости задайте случайное начальное число и используйте 'expected-improvement-plus' функция приобретения.
rng('default') [Mdl,FitInfo,HyperparameterOptimizationResults] = fitckernel(X,Y,'OptimizeHyperparameters','auto',... 'HyperparameterOptimizationOptions',struct('AcquisitionFunctionName','expected-improvement-plus'))
|=====================================================================================================| | Iter | Eval | Objective | Objective | BestSoFar | BestSoFar | KernelScale | Lambda | | | result | | runtime | (observed) | (estim.) | | | |=====================================================================================================| | 1 | Best | 0.35897 | 0.92665 | 0.35897 | 0.35897 | 64.836 | 4.4811e-06 | | 2 | Accept | 0.35897 | 4.6519 | 0.35897 | 0.35897 | 0.036335 | 0.015885 | | 3 | Accept | 0.39601 | 5.5965 | 0.35897 | 0.36053 | 0.0022147 | 6.8254e-06 | | 4 | Accept | 0.35897 | 1.0763 | 0.35897 | 0.35898 | 5.1259 | 0.28097 | | 5 | Accept | 0.35897 | 3.5904 | 0.35897 | 0.35897 | 0.24853 | 0.10828 | | 6 | Accept | 0.35897 | 0.74403 | 0.35897 | 0.35897 | 885.09 | 0.00057316 | | 7 | Best | 0.10826 | 3.5537 | 0.10826 | 0.10833 | 8.0346 | 0.0048286 | | 8 | Best | 0.076923 | 3.2422 | 0.076923 | 0.076999 | 7.0902 | 0.0034068 | | 9 | Accept | 0.091168 | 3.3186 | 0.076923 | 0.077059 | 9.1504 | 0.0020604 | | 10 | Best | 0.062678 | 3.9429 | 0.062678 | 0.062723 | 3.5487 | 0.0025912 | | 11 | Accept | 0.062678 | 3.2212 | 0.062678 | 0.062741 | 2.3869 | 0.003321 | | 12 | Accept | 0.41026 | 3.1638 | 0.062678 | 0.062536 | 0.14075 | 0.0022499 | | 13 | Accept | 0.062678 | 3.3683 | 0.062678 | 0.062532 | 3.4215 | 0.0036803 | | 14 | Accept | 0.062678 | 4.2194 | 0.062678 | 0.061956 | 3.2928 | 0.0030533 | | 15 | Best | 0.05698 | 2.6177 | 0.05698 | 0.057204 | 5.0598 | 0.0025499 | | 16 | Accept | 0.062678 | 5.4455 | 0.05698 | 0.057186 | 5.3401 | 0.0015096 | | 17 | Accept | 0.05698 | 4.4441 | 0.05698 | 0.057118 | 1.813 | 0.0069209 | | 18 | Accept | 0.059829 | 4.0439 | 0.05698 | 0.057092 | 1.5122 | 0.0046637 | | 19 | Accept | 0.059829 | 4.2654 | 0.05698 | 0.05718 | 1.9277 | 0.0056364 | | 20 | Accept | 0.065527 | 3.8732 | 0.05698 | 0.057189 | 1.4064 | 0.0094306 | |=====================================================================================================| | Iter | Eval | Objective | Objective | BestSoFar | BestSoFar | KernelScale | Lambda | | | result | | runtime | (observed) | (estim.) | | | |=====================================================================================================| | 21 | Accept | 0.05698 | 5.1486 | 0.05698 | 0.057033 | 5.1719 | 0.0023614 | | 22 | Best | 0.054131 | 12.263 | 0.054131 | 0.054176 | 1.9618 | 6.5704e-05 | | 23 | Best | 0.042735 | 5.0079 | 0.042735 | 0.042763 | 1.9463 | 1.0169e-05 | | 24 | Accept | 0.082621 | 5.1015 | 0.042735 | 0.042775 | 1.0661 | 1.3245e-05 | | 25 | Accept | 0.054131 | 10.538 | 0.042735 | 0.042789 | 3.288 | 2.0035e-05 | | 26 | Accept | 0.062678 | 5.7598 | 0.042735 | 0.042769 | 2.657 | 3.0334e-06 | | 27 | Accept | 0.059829 | 7.2348 | 0.042735 | 0.043054 | 2.0381 | 1.9791e-05 | | 28 | Accept | 0.042735 | 9.0399 | 0.042735 | 0.042764 | 3.5043 | 0.0001237 | | 29 | Accept | 0.054131 | 5.0304 | 0.042735 | 0.042764 | 1.3897 | 3.2288e-06 | | 30 | Accept | 0.062678 | 7.0101 | 0.042735 | 0.042792 | 2.2414 | 0.0002259 |


__________________________________________________________
Optimization completed.
MaxObjectiveEvaluations of 30 reached.
Total function evaluations: 30
Total elapsed time: 177.4022 seconds
Total objective function evaluation time: 141.4395
Best observed feasible point:
KernelScale Lambda
___________ __________
1.9463 1.0169e-05
Observed objective function value = 0.042735
Estimated objective function value = 0.043106
Function evaluation time = 5.0079
Best estimated feasible point (according to models):
KernelScale Lambda
___________ _________
3.5043 0.0001237
Estimated objective function value = 0.042792
Estimated function evaluation time = 8.6972
Mdl =
ClassificationKernel
ResponseName: 'Y'
ClassNames: {'b' 'g'}
Learner: 'svm'
NumExpansionDimensions: 2048
KernelScale: 3.5043
Lambda: 1.2370e-04
BoxConstraint: 23.0320
Properties, Methods
FitInfo = struct with fields:
Solver: 'LBFGS-fast'
LossFunction: 'hinge'
Lambda: 1.2370e-04
BetaTolerance: 1.0000e-04
GradientTolerance: 1.0000e-06
ObjectiveValue: 0.0426
GradientMagnitude: 0.0028
RelativeChangeInBeta: 8.9154e-05
FitTime: 2.0813
History: []
HyperparameterOptimizationResults =
BayesianOptimization with properties:
ObjectiveFcn: @createObjFcn/inMemoryObjFcn
VariableDescriptions: [4x1 optimizableVariable]
Options: [1x1 struct]
MinObjective: 0.0427
XAtMinObjective: [1x2 table]
MinEstimatedObjective: 0.0428
XAtMinEstimatedObjective: [1x2 table]
NumObjectiveEvaluations: 30
TotalElapsedTime: 177.4022
NextPoint: [1x2 table]
XTrace: [30x2 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
Y - Этикетки классовМетки класса, указанные как категориальный, символьный или строковый массив, логический или числовой вектор или массив ячеек символьных векторов.
fitckernel поддерживает только двоичную классификацию. Также Y должны содержать ровно два отдельных класса, или необходимо указать два класса для обучения с помощью ClassNames аргумент пары имя-значение.
Если Y является символьным массивом, то каждый элемент должен соответствовать одной строке массива.
Длина Y должно быть равно количеству наблюдений в X или Tbl.
Рекомендуется указать порядок классов с помощью ClassNames аргумент пары имя-значение.
Типы данных: categorical | char | string | logical | single | double | cell
Tbl - Образцы данныхОбразец данных, используемых для обучения модели, указанный как таблица. Каждая строка Tbl соответствует одному наблюдению, и каждый столбец соответствует одной прогнозирующей переменной. Дополнительно, Tbl может содержать один дополнительный столбец для переменной ответа. Многозначные переменные и массивы ячеек, отличные от массивов ячеек символьных векторов, не допускаются.
Если Tbl содержит переменную ответа, и вы хотите использовать все оставшиеся переменные в Tbl в качестве предикторов, затем укажите переменную ответа, используя ResponseVarName.
Если Tbl содержит переменную ответа, и требуется использовать только подмножество остальных переменных в Tbl в качестве предикторов, затем укажите формулу с помощью formula.
Если Tbl не содержит переменную ответа, затем укажите переменную ответа с помощью Y. Длина переменной ответа и количество строк в Tbl должно быть равным.
Типы данных: table
ResponseVarName - Имя переменной ответаTblИмя переменной ответа, указанное как имя переменной в Tbl.
Необходимо указать ResponseVarName в виде вектора символов или строкового скаляра. Например, если переменная ответа Y хранится как Tbl.Y, затем укажите его как 'Y'. В противном случае программа обрабатывает все столбцы Tbl, в том числе Y, в качестве предикторов при обучении модели.
Переменная ответа должна быть категориальным, символьным или строковым массивом; логический или числовой вектор; или массив ячеек символьных векторов. Если Y является символьным массивом, то каждый элемент переменной ответа должен соответствовать одной строке массива.
Рекомендуется указывать порядок классов с помощью ClassNames аргумент «имя-значение».
Типы данных: 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 = fitckernel(X,Y,'Learner','logistic','NumExpansionDimensions',2^15,'KernelScale','auto') реализует логистическую регрессию после сопоставления данных предиктора с 2^15 размерное пространство с использованием расширения признаков с параметром масштаба ядра, выбранным эвристической процедурой.Примечание
Нельзя использовать любой аргумент пары имя-значение перекрестной проверки вместе с 'OptimizeHyperparameters' аргумент пары имя-значение. Можно изменить перекрестную проверку для 'OptimizeHyperparameters' только с помощью 'HyperparameterOptimizationOptions' аргумент пары имя-значение.
'Learner' - Тип модели линейной классификации'svm' (по умолчанию) | 'logistic'Тип модели линейной классификации, указанный как разделенная запятыми пара, состоящая из 'Learner' и 'svm' или 'logistic'.
В следующей таблице β + b.
x - наблюдение (вектор строки) из p переменных предиктора.
(·) - преобразование наблюдения (вектор строки) для расширения признаков. T (x) отображает x ℝp в высокомерное пространство ℝm).
β - вектор из m коэффициентов.
b - скалярное смещение.
| Стоимость | Алгоритм | Диапазон ответа | Функция потерь |
|---|---|---|---|
'svm' | Опорная векторная машина | y ∊ {-1,1}; 1 для положительного класса и -1 в противном случае | Шарнир: yf (x)] |
'logistic' | Логистическая регрессия | То же, что и 'svm' | Отклонение (логистическое): yf (x)]} |
Пример: 'Learner','logistic'
'NumExpansionDimensions' - Количество габаритов расширенного пространства'auto' (по умолчанию) | положительное целое числоКоличество размеров развернутого пространства, указанного как разделенная запятыми пара, состоящая из 'NumExpansionDimensions' и 'auto' или положительное целое число. Для 'auto', fitckernel функция выбирает количество размеров с помощью 2.^ceil(min(log2(p)+5,15)), где p - количество предикторов.
Дополнительные сведения см. в разделе Случайное расширение элементов.
Пример: 'NumExpansionDimensions',2^15
Типы данных: char | string | single | double
'KernelScale' - Параметр масштаба ядра1 (по умолчанию) | 'auto' | положительный скалярПараметр масштаба ядра, заданный как разделенная запятыми пара, состоящая из 'KernelScale' и 'auto' или положительный скаляр. Программное обеспечение получает случайный базис для случайного расширения признаков с использованием параметра масштаба ядра. Дополнительные сведения см. в разделе Случайное расширение элементов.
При указании 'auto'затем программное обеспечение выбирает соответствующий параметр масштаба ядра с использованием эвристической процедуры. Эта эвристическая процедура использует субдискретизацию, поэтому оценки могут варьироваться от одного вызова к другому. Поэтому для воспроизведения результатов установите начальное число случайного числа с помощью rng перед тренировкой.
Пример: 'KernelScale','auto'
Типы данных: char | string | single | double
'BoxConstraint' - Ограничение коробкиОграничение поля, указанное как пара, разделенная запятыми, состоящая из 'BoxConstraint' и положительный скаляр.
Этот аргумент допустим только в том случае, если 'Learner' является 'svm'(по умолчанию) и вы не указываете значение для силы термина регуляризации 'Lambda'. Можно указать либо 'BoxConstraint' или 'Lambda' поскольку ограничение поля (C) и сила члена регуляризации (λ) связаны C = 1/( λ n), где n - число наблюдений.
Пример: 'BoxConstraint',100
Типы данных: single | double
'Lambda' - Сила термина «регуляризация»'auto' (по умолчанию) | неотрицательный скалярСила термина регуляризации, определяемая как разделенная запятыми пара, состоящая из 'Lambda' и 'auto' или неотрицательный скаляр.
Для 'auto', значение 'Lambda' равно 1/n, где n - число наблюдений.
Можно указать либо 'BoxConstraint' или 'Lambda' поскольку ограничение (С) и сила члена регуляризации (λ) связаны С = 1/( λ n).
Пример: 'Lambda',0.01
Типы данных: char | string | single | double
'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
'IterationLimit' - Максимальное число итераций оптимизацииМаксимальное число итераций оптимизации, указанное как пара, разделенная запятыми, состоящая из 'IterationLimit' и положительное целое число.
Значение по умолчанию - 1000, если преобразованные данные помещаются в память, как указано в BlockSize аргумент пары имя-значение. В противном случае значение по умолчанию равно 100.
Пример: 'IterationLimit',500
Типы данных: single | double
'BlockSize' - Максимальный объем выделенной памяти4e^3 (4GB) (по умолчанию) | положительный скалярМаксимальный объем выделенной памяти (в мегабайтах), указанный как разделенная запятыми пара, состоящая из 'BlockSize' и положительный скаляр.
Если fitckernel требует больше памяти, чем значение 'BlockSize' для хранения преобразованных данных предиктора программное обеспечение использует блочную стратегию. Дополнительные сведения о блочной стратегии см. в разделе Алгоритмы.
Пример: 'BlockSize',1e4
Типы данных: single | double
'RandomStream' - Поток случайных чиселПоток случайных чисел для воспроизводимости преобразования данных, определяемый как разделенная запятыми пара, состоящая из 'RandomStream' и объект случайного потока. Дополнительные сведения см. в разделе Случайное расширение элементов.
Использовать 'RandomStream' для воспроизведения случайных базисных функций, которые fitckernel используется для преобразования данных предиктора в многомерное пространство. Дополнительные сведения см. в разделах Управление глобальным потоком с помощью RandStream и Создание и управление потоком случайных чисел.
Пример: 'RandomStream',RandStream('mlfg6331_64')
'HessianHistorySize' - Размер буфера истории для гессенского приближения15 (по умолчанию) | положительное целое числоРазмер буфера истории для гессенского приближения, определяемый как разделенная запятыми пара, состоящая из 'HessianHistorySize' и положительное целое число. При каждой итерации fitckernel составляет гессенское приближение, используя статистику из последних HessianHistorySize итерации.
Пример: 'HessianHistorySize',10
Типы данных: single | double
'Verbose' - Уровень детализации0 (по умолчанию) | 1Уровень детализации, указанный как разделенная запятыми пара, состоящая из 'Verbose' и либо 0 или 1. Verbose управляет отображением диагностической информации в командной строке.
| Стоимость | Описание |
|---|---|
0 | fitckernel не отображает диагностическую информацию. |
1 | fitckernel отображает и сохраняет значение целевой функции, величину градиента и другую диагностическую информацию. FitInfo.History содержит диагностическую информацию. |
Пример: 'Verbose',1
Типы данных: single | double
'CategoricalPredictors' - Список категориальных предикторов'all'Список категориальных предикторов, указанный как одно из значений в этой таблице.
| Стоимость | Описание |
|---|---|
| Вектор положительных целых чисел |
Каждая запись в векторе представляет собой значение индекса, соответствующее столбцу данных предиктора, который содержит категориальную переменную. Значения индекса находятся в диапазоне от 1 до Если |
| Логический вектор |
A |
| Символьная матрица | Каждая строка матрицы является именем предикторной переменной. Имена должны соответствовать записям в PredictorNames. Поместите имена с дополнительными пробелами, чтобы каждая строка символьной матрицы имела одинаковую длину. |
| Строковый массив или массив ячеек символьных векторов | Каждый элемент массива является именем переменной предиктора. Имена должны соответствовать записям в PredictorNames. |
'all' | Все предикторы категоричны. |
По умолчанию, если данные предиктора находятся в таблице (Tbl), fitckernel предполагает, что переменная категорична, если она является логическим вектором, категориальным вектором, символьным массивом, строковым массивом или массивом ячеек символьных векторов. Если данные предиктора являются матрицей (X), fitckernel предполагает, что все предикторы непрерывны. Чтобы определить любые другие предикторы как категориальные предикторы, укажите их с помощью 'CategoricalPredictors' аргумент «имя-значение».
Для выявленных категориальных предикторов fitckernel создает фиктивные переменные, используя две различные схемы, в зависимости от того, неупорядочена или упорядочена категориальная переменная. Для неупорядоченной категориальной переменной fitckernel создает одну фиктивную переменную для каждого уровня категориальной переменной. Для упорядоченной категориальной переменной fitckernel создает на одну фиктивную переменную меньше числа категорий. Дополнительные сведения см. в разделе Автоматическое создание фиктивных переменных.
Пример: 'CategoricalPredictors','all'
Типы данных: single | double | logical | char | string | cell
'ClassNames' - Названия классов, используемых для обученияИмена классов, используемых для обучения, указанные как категориальный, символьный или строковый массив; логический или числовой вектор; или массив ячеек символьных векторов. ClassNames должен иметь тот же тип данных, что и переменная ответа в Tbl или Y.
Если ClassNames является символьным массивом, то каждый элемент должен соответствовать одной строке массива.
Использовать ClassNames кому:
Укажите порядок занятий во время обучения.
Укажите порядок любого измерения входного или выходного аргумента, соответствующего порядку класса. Например, использовать ClassNames для указания порядка размеров Cost или порядок столбцов классификационных баллов, возвращенных predict.
Выберите подмножество классов для обучения. Например, предположим, что набор всех различных имен классов в Y является {'a','b','c'}. Обучение модели с использованием наблюдений из классов 'a' и 'c' только, укажите 'ClassNames',{'a','c'}.
Значение по умолчанию для ClassNames - набор всех различающихся имен классов в переменной ответа в Tbl или Y.
Пример: 'ClassNames',{'b','g'}
Типы данных: categorical | char | string | logical | single | double | cell
'Cost' - Расходы на неправильную классификациюСтоимость неправильной классификации, указанная как разделенная запятыми пара, состоящая из 'Cost' и квадратную матрицу или структуру.
При указании квадратной матрицы cost ('Cost',cost), то cost(i,j) - стоимость классификации точки по классу j если его истинный класс i. То есть строки соответствуют истинному классу, а столбцы - прогнозируемому классу. Определение порядка классов для соответствующих строк и столбцов cost, используйте ClassNames аргумент пары имя-значение.
При указании структуры S ('Cost',S), то он должен иметь два поля:
S.ClassNames, который содержит имена классов в качестве переменной того же типа данных, что и Y
S.ClassificationCosts, которая содержит матрицу затрат со строками и столбцами, упорядоченными как в S.ClassNames
Значение по умолчанию для Cost является ones(, где K) – eye(K)K - количество различных классов.
fitckernel использование Cost для корректировки вероятностей предыдущего класса, указанных в Prior. Затем, fitckernel использует скорректированные предыдущие вероятности для обучения и сбрасывает матрицу затрат до значения по умолчанию.
Пример: 'Cost',[0 2; 1 0]
Типы данных: single | double | 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 чтобы выбрать, какие переменные предиктора использовать в обучении. То есть fitckernel использует только переменные предиктора в PredictorNames и переменную ответа во время обучения.
PredictorNames должен быть подмножеством Tbl.Properties.VariableNames и не может включать имя переменной ответа.
По умолчанию PredictorNames содержит имена всех переменных предиктора.
Хорошей практикой является определение предикторов для обучения с использованием 'PredictorNames' или formulaно не оба.
Пример: 'PredictorNames',{'SepalLength','SepalWidth','PetalLength','PetalWidth'}
Типы данных: string | cell
'Prior' - Предварительные вероятности'empirical' (по умолчанию) | 'uniform' | числовой вектор | массив структурыПредыдущие вероятности для каждого класса, указанные как пара, разделенная запятыми, состоящая из 'Prior' и 'empirical', 'uniform', числовой вектор или структурный массив.
В этой таблице представлены доступные параметры настройки предыдущих вероятностей.
| Стоимость | Описание |
|---|---|
'empirical' | Предшествующие вероятности класса являются относительными частотами класса в Y. |
'uniform' | Все предшествующие вероятности класса равны 1/K, где K - количество классов. |
| числовой вектор | Каждый элемент является классом предшествующей вероятности. Упорядочить элементы в соответствии с их порядком в Y. При указании заказа с помощью 'ClassNames' аргумент пары имя-значение, затем упорядочить элементы соответствующим образом. |
| структурный массив |
Структура
|
fitckernel нормализует предыдущие вероятности в Prior для суммирования в 1.
Пример: 'Prior',struct('ClassNames',{{'setosa','versicolor'}},'ClassProbs',1:2)
Типы данных: char | string | double | single | struct
'ResponseName' - Имя переменной ответа'Y' (по умолчанию) | символьный вектор | строковый скалярИмя переменной ответа, указанное как вектор символа или скаляр строки.
Если вы поставляете Y, то вы можете использовать 'ResponseName' для указания имени переменной ответа.
Если вы поставляете ResponseVarName или formula, то вы не можете использовать 'ResponseName'.
Пример: 'ResponseName','response'
Типы данных: char | string
'ScoreTransform' - Преобразование баллов'none' (по умолчанию) | 'doublelogit' | 'invlogit' | 'ismax' | 'logit' | дескриптор функции |...Преобразование оценки, указанное как вектор символа, скаляр строки или дескриптор функции.
В этой таблице представлены доступные векторы символов и строковые скаляры.
| Стоимость | Описание |
|---|---|
'doublelogit' | 1/( 1 + e-2x) |
'invlogit' | log (x/( 1 - x)) |
'ismax' | Устанавливает балл для класса с наибольшим баллом в 1 и устанавливает балл для всех остальных классов в 0 |
'logit' | 1/( 1 + e-x) |
'none' или 'identity' | x (без преобразования) |
'sign' | -1 для x < 0 0 для x = 0 1 для x > 0 |
'symmetric' | 2x – 1 |
'symmetricismax' | Устанавливает балл для класса с наибольшим баллом в 1 и устанавливает балл для всех остальных классов в -1 |
'symmetriclogit' | 2/( 1 + e-x) - 1 |
Для функции MATLAB или определяемой функции используйте ее дескриптор функции для преобразования оценки. Дескриптор функции должен принимать матрицу (исходные баллы) и возвращать матрицу того же размера (преобразованные баллы).
Пример: 'ScoreTransform','logit'
Типы данных: char | string | function_handle
'Weights' - Наблюдательные весаTblВеса наблюдения, указанные как неотрицательный числовой вектор или имя переменной в Tbl. Программное обеспечение взвешивает каждое наблюдение в X или Tbl с соответствующим значением в Weights. Длина Weights должно равняться количеству наблюдений в X или Tbl.
Если входные данные указаны как таблица Tbl, то Weights может быть именем переменной в Tbl содержит числовой вектор. В этом случае необходимо указать Weights в виде вектора символов или строкового скаляра. Например, если вектор весов W хранится как Tbl.W, затем укажите его как 'W'. В противном случае программа обрабатывает все столбцы Tbl, в том числе W, в качестве предикторов или переменной ответа при обучении модели.
По умолчанию Weights является ones(n,1), где n - количество наблюдений в X или Tbl.
Программное обеспечение нормализуется Weights для суммирования значения предшествующей вероятности в соответствующем классе.
Типы данных: single | double | char | string
'OptimizeHyperparameters' - Параметры для оптимизации'none' (по умолчанию) | 'auto' | 'all' | строковый массив или массив ячеек допустимых имен параметров | вектор optimizableVariable объектыПараметры для оптимизации, указанные как пара, разделенная запятыми, состоящая из 'OptimizeHyperparameters' и одно из этих значений:
'none' - Не оптимизировать.
'auto' - Использование {'KernelScale','Lambda'}.
'all' - Оптимизируйте все подходящие параметры.
Массив ячеек допустимых имен параметров.
Вектор optimizableVariable объекты, обычно выходные данные hyperparameters.
Оптимизация пытается минимизировать потери при перекрестной проверке (ошибка) для fitckernel путем изменения параметров. Для управления типом перекрестной проверки и другими аспектами оптимизации используйте HyperparameterOptimizationOptions аргумент пары имя-значение.
Примечание
'OptimizeHyperparameters' значения переопределяют любые значения, заданные с помощью других аргументов пары «имя-значение». Например, настройка 'OptimizeHyperparameters' кому 'auto' вызывает 'auto' значения для применения.
Подходящие параметры для fitckernel являются:
KernelScale — fitckernel поиск среди положительных значений, по умолчанию с логарифмическим масштабированием в диапазоне [1e-3,1e3].
Lambda — fitckernel поиск среди положительных значений, по умолчанию с логарифмическим масштабированием в диапазоне [1e-3,1e3]/n, где n - количество наблюдений.
Learner — fitckernel поиск среди 'svm' и 'logistic'.
NumExpansionDimensions — fitckernel поиск среди положительных целых чисел, по умолчанию log-scaled в диапазоне [100,10000].
Установка параметров, не используемых по умолчанию, путем передачи вектора optimizableVariable объекты, не имеющие значений по умолчанию. Например:
load fisheriris params = hyperparameters('fitckernel',meas,species); 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 - Обученная модель классификации ядраClassificationKernel объект модели | ClassificationPartitionedKernel объект модели с перекрестной проверкойОбученная модель классификации ядра, возвращенная как ClassificationKernel объект модели или ClassificationPartitionedKernel объект модели с перекрестной проверкой.
Если задать какой-либо из аргументов пары имя-значение CrossVal, CVPartition, Holdout, KFold, или Leaveout, то Mdl является ClassificationPartitionedKernel перекрестно проверенный классификатор. В противном случае Mdl является ClassificationKernel классификатор.
Для ссылки на свойства Mdl, используйте точечную нотацию. Например, введите Mdl.NumExpansionDimensions в окне команд для отображения количества размеров развернутого пространства.
Примечание
В отличие от других классификационных моделей и для экономичного использования памяти, ClassificationKernel в объекте модели не хранятся данные обучения или сведения о процессе обучения (например, история сходимости).
FitInfo - Сведения об оптимизацииСведения об оптимизации, возвращаемые в виде массива структуры, включающего поля, описанные в этой таблице. Поля содержат конечные значения или параметры пары «имя-значение».
| Область | Описание |
|---|---|
Solver | Метод минимизации целевой функции: |
LossFunction | Функция потери. Также 'hinge' или 'logit' в зависимости от типа модели линейной классификации. Посмотрите Learner. |
Lambda | Сила термина «регуляризация». Посмотрите Lambda. |
BetaTolerance | Относительный допуск по линейным коэффициентам и члену смещения. Посмотрите BetaTolerance. |
GradientTolerance | Абсолютный градиентный допуск. Посмотрите GradientTolerance. |
ObjectiveValue | Значение целевой функции при завершении оптимизации. Классификационные потери плюс термин регуляризации составляют целевую функцию. |
GradientMagnitude | Бесконечная норма градиентного вектора целевой функции при завершении оптимизации. Посмотрите GradientTolerance. |
RelativeChangeInBeta | Относительные изменения линейных коэффициентов и члена смещения при завершении оптимизации. Посмотрите BetaTolerance. |
FitTime | Прошедшее время (в секундах), необходимое для соответствия модели данным. |
History | История информации об оптимизации. Это поле пустое ([]) при указании 'Verbose',0. Для получения более подробной информации см. Verbose и Алгоритмы. |
Для доступа к полям используйте точечную нотацию. Например, чтобы получить доступ к вектору значений целевой функции для каждой итерации, введите FitInfo.ObjectiveValue в окне команд.
Передовой практикой является изучение FitInfo оценить, является ли сходимость удовлетворительной.
HyperparameterOptimizationResults - Оптимизация гиперпараметров при перекрестной проверкеBayesianOptimization object | таблица гиперпараметров и связанных значенийОптимизация гиперпараметров с перекрестной проверкой, возвращаемая как BayesianOptimization объект или таблица гиперпараметров и связанных значений. Выходные данные не являются пустыми, если значение 'OptimizeHyperparameters' не является 'none'. Выходное значение зависит от Optimizer значение поля 'HyperparameterOptimizationOptions' аргумент пары имя-значение:
Значение Optimizer Область | Значение HyperparameterOptimizationResults |
|---|---|
'bayesopt' (по умолчанию) | Объект класса BayesianOptimization |
'gridsearch' или 'randomsearch' | Таблица используемых гиперпараметров, наблюдаемые значения целевой функции (потеря перекрестной проверки) и ранг наблюдений от самого низкого (лучший) до самого высокого (худший) |
fitckernel не принимает исходные условия для вектора коэффициентов бета (β) и термина смещения (b), используемого для определения функции принятия решения, β + b.
fitckernel не поддерживает стандартизацию.
Расширение случайных характеристик, таких как Random Kitchen Sinks [1] и Fastfood [2], - это схема аппроксимации гауссовых ядер алгоритма классификации ядер для использования в больших данных вычислительно эффективным способом. Случайное расширение функций является более практичным для приложений больших данных, которые имеют большие обучающие наборы, но также может быть применено к меньшим наборам данных, которые подходят в памяти.
Алгоритм классификации ядра ищет оптимальную гиперплоскость, разделяющую данные на два класса после отображения признаков в высокомерное пространство. Нелинейные элементы, которые не являются линейно разделяемыми в низкоразмерном пространстве, могут быть разделяемыми в расширенном высокомерном пространстве. Во всех расчетах для классификации гиперплоскостей используются только точечные произведения. Получить нелинейную классификационную модель можно, заменив скалярное произведение x1x2 'на нелинейную функцию ядра x2) 〉, где xi - i-е наблюдение (вектор строки) и (xi) - преобразование, отображающее xi в высокомерное пространство (называемое «хитростью ядра»). Однако оценка G (x1, x2) (Gram-матрица) для каждой пары наблюдений является вычислительной дорогой для большого набора данных (большое n).
Схема случайного расширения признаков находит случайное преобразование так, что её скалярное произведение аппроксимирует гауссово ядро. То есть
x1) T (x2) ',
где T (x) отображает x в ℝp в высокомерное пространство ℝm). Схема Random Kitchen Sink использует случайное преобразование
iZx ')',
где - выборка, взятая из − 2), а start2 - шкала ядра. Эта схема требует O (mp) вычислений и хранения. Схема Фастфуда вводит другой случайный базис V вместо Z с использованием матриц Адамара, объединенных с гауссовыми матрицами масштабирования. Этот случайный базис уменьшает вычислительные затраты до O (mlogр) и уменьшает объем хранения до O (м ).
fitckernel функция использует схему Fastfood для случайного расширения признаков и использует линейную классификацию для обучения модели классификации ядра Гаусса. В отличие от решателей в fitcsvm функция, которая требует вычисления матрицы n-на-n Gram, решателя в fitckernel требуется только сформировать матрицу размера n-by-m, где m обычно намного меньше, чем n для больших данных.
Ограничение поля - это параметр, который управляет максимальным штрафом, наложенным на наблюдения, нарушающие маржу, и помогает предотвратить переоборудование (регуляризацию). Увеличение ограничения поля может привести к увеличению времени обучения.
Ограничение бокса (C) и сила члена регуляризации (λ) связаны C = 1/( λ n), где n - количество наблюдений.
fitckernel минимизирует регуляризованную целевую функцию, используя решатель с ограниченной памятью Бройдена-Флетчера-Гольдфарба-Шанно (LBFGS) с регуляризацией гребня (L2). Чтобы найти тип решателя LBFGS, используемого для обучения, введите FitInfo.Solver в окне команд.
'LBFGS-fast' - решатель LBFGS.
'LBFGS-blockwise' - решатель LBFGS с блочной стратегией. Если fitckernel требует больше памяти, чем значение BlockSize чтобы сохранить преобразованные данные предиктора, он использует блочную стратегию.
'LBFGS-tall' - решатель LBFGS с блочной стратегией для больших массивов.
Когда fitckernel использует поэтапную стратегию, fitckernel реализует LBFGS, распределяя вычисление потерь и градиента между различными частями данных на каждой итерации. Также, fitckernel уточняет начальные оценки линейных коэффициентов и члена смещения, подгоняя модель локально к частям данных и комбинируя коэффициенты путем усреднения. При указании 'Verbose',1, то fitckernel отображает диагностическую информацию для каждого прохода данных и сохраняет информацию в History поле FitInfo.
Когда fitckernel не использует блочную стратегию, начальные оценки равны нулю. При указании 'Verbose',1, то fitckernel отображает диагностическую информацию для каждой итерации и сохраняет информацию в 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.
Примечания и ограничения по использованию:
fitckernel не поддерживает высокий table данные.
Некоторые аргументы пары имя-значение имеют другие значения по умолчанию по сравнению со значениями по умолчанию для памяти fitckernel функция. Поддерживаемые аргументы пары имя-значение и любые различия:
'Learner'
'NumExpansionDimensions'
'KernelScale'
'BoxConstraint'
'Lambda'
'BetaTolerance' - Значение по умолчанию смягчено до 1e–3.
'GradientTolerance' - Значение по умолчанию смягчено до 1e–5.
'IterationLimit' - Значение по умолчанию смягчено до 20.
'BlockSize'
'RandomStream'
'HessianHistorySize'
'Verbose' - Значение по умолчанию: 1.
'ClassNames'
'Cost'
'Prior'
'ScoreTransform'
'Weights' - Значение должно быть высоким массивом.
'OptimizeHyperparameters'
'HyperparameterOptimizationOptions' - Для перекрестной проверки поддерживается только оптимизация по высоте 'Holdout' проверка. По умолчанию программа выбирает и резервирует 20% данных в качестве данных проверки отсутствия и обучает модель, используя остальные данные. С помощью этого аргумента можно указать другое значение для удерживаемой дроби. Например, укажите 'HyperparameterOptimizationOptions',struct('Holdout',0.3) зарезервировать 30% данных в качестве данных проверки.
Если 'KernelScale' является 'auto', то fitckernel использует случайный поток, управляемый tallrng для субдискретизации. Для воспроизводимости необходимо задать начальное число случайных чисел как для глобального потока, так и для случайного потока, управляемого tallrng.
Если 'Lambda' является 'auto', то fitckernel может потребоваться дополнительный проход через данные для вычисления количества наблюдений в X.
fitckernel использует блочную стратегию. Дополнительные сведения см. в разделе Алгоритмы.
Дополнительные сведения см. в разделе Массивы Tall.
Чтобы выполнить параллельную оптимизацию гиперпараметров, используйте 'HyperparameterOptimizationOptions', struct('UseParallel',true) аргумент name-value в вызове этой функции.
Дополнительные сведения об оптимизации параллельных гиперпараметров см. в разделе Параллельная байесовская оптимизация.
Общие сведения о параллельных вычислениях см. в разделе Запуск функций MATLAB с автоматической параллельной поддержкой (панель инструментов параллельных вычислений).
bayesopt | bestPoint | ClassificationKernel | ClassificationPartitionedKernel | fitclinear | fitcsvm | predict | resume | templateKernel
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.