Подгонка Гауссовой модели классификации ядра с использованием расширения случайных функций
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
Перекрестная проверка модели классификации двоичных ядер. По умолчанию программа использует 10-кратную перекрестную валидацию.
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 модели, которые программное обеспечение обучает по обучающим-складным (in-fold) наблюдениям.
Оцените перекрестную ошибку классификации.
kfoldLoss(CVMdl)
ans = 0.0940
Вероятность классификационных ошибок составляет приблизительно 9%.
Оптимизируйте гиперпараметры автоматически с помощью 'OptimizeHyperparameters' аргумент пары "имя-значение".
Загрузите ionosphere набор данных. Этот набор данных имеет 34 предиктора и 351 двоичный ответ для радиолокационных возвратов, либо плохо ('b') или хорошо ('g').
load ionosphereНайдите гиперпараметры, которые минимизируют пятикратные потери при перекрестной проверке с помощью автоматической оптимизации гипероптимизации параметров управления. Задайте 'OptimizeHyperparameters' как 'auto' так что fitckernel находит оптимальные значения 'KernelScale' и 'Lambda' Аргументы пары "имя-значение". Для воспроизводимости установите случайный seed и используйте '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 -by 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'.
В следующей таблице:
x является наблюдением ( вектором-строкой) от p предиктора переменных.
является преобразованием наблюдения ( вектора-строки) для функции расширения. T (x) карты x в в высокомерное пространство ().
β является вектором m коэффициентов.
b - скалярное смещение.
| Значение | Алгоритм | Область значений отклика | Функция потерь |
|---|---|---|---|
'svm' | Поддерживайте векторную машину | <reservedrangesplaceholder0> {-1,1}; 1 для положительного класса и -1 в противном случае | Шарнир: |
'logistic' | Логистическая регрессия | То же, что и 'svm' | Отклонение (логистическое): |
Пример: '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' поскольку прямоугольное ограничение (C) и коэффициент регуляризации (λ) связаны между собой C = 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.
Пример: Предположим, что вы создаете случайный разбиение для 5-кратной перекрестной валидации при 500 наблюдениях при помощи cvp = cvpartition(500,'KFold',5). Затем можно задать перекрестно проверенную модель при помощи 'CVPartition',cvp.
'Holdout' - Доля данных для валидации отключенияДоля данных, используемых для валидации удержания, заданная в виде скалярного значения в области значений (0,1). Если вы задаете 'Holdout',p, затем программное обеспечение завершает следующие шаги:
Случайный выбор и резервирование p*100% данных в качестве данных валидации и train модели с использованием остальных данных.
Сохраните компактную, обученную модель в 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-на-1 в Trained свойство перекрестно проверенной модели.
Чтобы создать перекрестно проверенную модель, можно использовать одно из следующих четырёх аргументов пары "имя-значение" только: CVPartition, Holdout, KFold, или Leaveout.
Пример: 'Leaveout','on'
'BetaTolerance' - Относительная погрешность на линейные коэффициенты и термин смещения1e–5 (по умолчанию) | неотрицательной скаляромОтносительная погрешность на линейные коэффициенты и термин смещения ( точка пересечения), заданный как разделенная разделенными запятой парами, состоящая из 'BetaTolerance' и неотрицательный скаляр.
Давайте , то есть вектор коэффициентов и член смещения при t итерации оптимизации. Если , затем оптимизация прекращается.
Если вы также задаете GradientToleranceзатем оптимизация прекращается, когда программное обеспечение удовлетворяет любому критерию остановки.
Пример: 'BetaTolerance',1e–6
Типы данных: single | double
'GradientTolerance' - Абсолютный допуск градиента1e–6 (по умолчанию) | неотрицательной скаляромАбсолютный допуск градиента, заданный как разделенная разделенными запятой парами, состоящая из 'GradientTolerance' и неотрицательный скаляр.
Давайте быть вектором градиента целевой функции относительно коэффициентов и члена смещения при t итерации оптимизации. Если , затем оптимизация прекращается.
Если вы также задаете 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 использует, чтобы преобразовать данные предиктора в высокомерное пространство. Для получения дополнительной информации смотрите Управление Global Stream с использованием RandStream и Создание и Управление потоком случайных чисел.
Пример: 'RandomStream',RandStream('mlfg6331_64')
'HessianHistorySize' - Размер буфера истории для гессианского приближения15 (по умолчанию) | положительное целое числоРазмер буфера истории для Hessian приближения, заданный как разделенная запятой пара, состоящий из '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 если его класс true i. То есть строки соответствуют истинному классу, а столбцы соответствуют предсказанному классу. Чтобы задать порядок классов для соответствующих строк и столбцов cost, используйте ClassNames аргумент пары "имя-значение".
Если вы задаете структуру S ('Cost',S), тогда оно должно иметь два поля:
S.ClassNames, который содержит имена классов как переменный совпадающий тип данных as Y
S.ClassificationCosts, которая содержит матрицу затрат со строками и столбцами, упорядоченными как в S.ClassNames
Значение по умолчанию для Cost это таковые , где (K) - глаз (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' | журнал (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' | 2 x – 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 поиск среди положительных целых чисел, по умолчанию логарифмический в области значений [100,10000].
Установите параметры nondefault путем передачи вектора optimizableVariable объекты, которые имеют значения nondefault. Для примера:
load fisheriris params = hyperparameters('fitckernel',meas,species); params(2).Range = [1e-4,1e6];
Передайте params как значение 'OptimizeHyperparameters'.
По умолчанию итеративное отображение появляется в командной строке, и графики появляются согласно количеству гиперпараметров в оптимизации. Для оптимизации и графиков целевой функцией является журнал ( 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 | Логическое значение, указывающее, запускать ли байесовскую оптимизацию параллельно, что требует Parallel Computing Toolbox™. Из-за непродуктивности параллельной синхронизации параллельная байесовская оптимизация не обязательно приводит к воспроизводимым результатам. Для получения дополнительной информации см. «Параллельная байесовская оптимизация». | false |
Repartition | Логическое значение, указывающее, следует ли повторять перекрестную валидацию при каждой итерации. Если
| false |
| Используйте не более одного из следующих трех имен полей. | ||
CVPartition | A cvpartition объект, созданный cvpartition. | 'Kfold',5 если вы не задаете какое-либо поле перекрестной проверки |
Holdout | Скаляр в области значений (0,1) представляющий фракцию удержания. | |
Kfold | Целое число, больше 1. | |
Пример: 'HyperparameterOptimizationOptions',struct('MaxObjectiveEvaluations',60)
Типы данных: struct
Mdl - Обученная модель классификации ядерClassificationKernel объект модели | ClassificationPartitionedKernel перекрестно проверенный объект моделиОбученная модель классификации ядер, возвращенная как ClassificationKernelобъект модели перекрестно проверенный объект модели.
Если вы задаете любой из аргументов пары "имя-значение" 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 объект | таблица гиперпараметров и связанных значенийОптимизация гиперпараметров с перекрестной валидацией, возвращенная как BayesianOptimization объект или таблица гиперпараметров и связанных значений. Выход непуст, когда значение 'OptimizeHyperparameters' не 'none'. Выходное значение зависит от Optimizer значение поля 'HyperparameterOptimizationOptions' аргумент пары "имя-значение":
Значение Optimizer Область | Значение HyperparameterOptimizationResults |
|---|---|
'bayesopt' (по умолчанию) | Объект BayesianOptimization классов |
'gridsearch' или 'randomsearch' | Таблица используемых гиперпараметров, наблюдаемых значений целевой функции (потери перекрестной валидации) и ранг наблюдений от самого низкого (лучшего) до самого высокого (худшего) |
fitckernel не принимает начальные условия для вектора бета-коэффициентов (β) и термина смещения (b), используемых для определения функции принятия решений,
fitckernel не поддерживает стандартизацию.
Расширение случайных функций, такое как Random Kitchen Sinks [1] и Fastfood [2], является схемой для аппроксимации Гауссовых ядер алгоритма классификации ядра, используемой для больших данных вычислительно эффективным способом. Расширение случайных функций более практично для приложений с большими наборами обучающих данных, но может также применяться к меньшим наборам данных, которые подгонка в памяти.
Алгоритм классификации ядра ищет оптимальную гиперплоскость, которая разделяет данные на два класса после отображения функций в высоко-размерное пространство. Нелинейные функции, которые не являются линейно разделяемыми в низкомерном пространстве, могут быть разделяемыми в расширенном высокомерном пространстве. Во всех вычислениях для классификации гиперплоскостей используются только точечные продукты. Можно получить нелинейную модель классификации путем замены точечного произведения x 1 x 2 'на нелинейную функцию ядра, где xi - i-е наблюдение (вектор-строка) и φ (xi) - преобразование, которое преобразует xi в высокомерное пространство (называемое «трюком ядра»). Однако оценка G (x 1, x 2) (матрица Грамма) для каждой пары наблюдений является вычислительно дорогой для большого набора данных (большого n).
Схема расширения случайных функций находит случайное преобразование, так что ее точечный продукт аппроксимирует Гауссово ядро. То есть,
где T (x) карты x в в высокомерное пространство (). Схема Случайной Кухонной Раковины использует случайное преобразование
где является выборкой, нарисованной из и σ2 является шкалой ядра. Эта схема требует O (m p) расчета и хранения. Схема Фастфуда вводит другой случайный базис V вместо того, чтобы Z использовать матрицы Адамара, объединенные с матрицами Гауссова масштабирования. Этот случайный базис снижает стоимость расчета до O (m logp) и сокращает объем памяти до O (m ).
fitckernel функция использует схему Fastfood для случайного расширения признаков и использует линейную классификацию, чтобы обучить Гауссову модель классификации ядра. В отличие от решателей в fitcsvm функция, которая требует расчета n -by n Gram матрицы, решателя вfitckernel нужно только сформировать матрицу размера n -by - m, причем m обычно намного меньше, чем n для больших данных.
Прямоугольное ограничение является параметром, который управляет максимальным штрафом, налагаемым на наблюдения, нарушающие маржу, и помогает предотвратить избыточную подгонку (регуляризацию). Увеличение ограничения коробки может привести к увеличению времени обучения.
Прямоугольное ограничение (C) и коэффициент регуляризации (λ) связаны C = 1/( λ n), где n - количество наблюдений.
fitckernel минимизирует регуляризованную целевую функцию с помощью решателя с ограниченной памятью Broyden-Fletcher-Goldfarb-Shanno (LBFGS) с регуляризацией гребня (L 2). Чтобы найти тип решателя 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] Le, Q., T. Sarlós, and A. Smola. Fastfood - аппроксимация расширений ядра в логинейном времени. Материалы 30-й Международной конференции по машинному обучению. Том 28, № 3, 2013, с. 244-252.
[3] Хуан, П. С., Х. Аврон, Т. Н. Сайнатх, В. Синдхвани и Б. Рамабхадран. «Методы ядра соответствуют глубоким нейронным сетям на TIMIT». 2014 IEEE International Conference on Acoustics, Speech and Signal Processing. 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' - Для перекрестной валидации tall optimization поддерживает только 'Holdout' валидация. По умолчанию программное обеспечение выбирает и резервирует 20% данных в качестве данных валидации удержания и обучает модель, используя остальную часть данных. Вы можете задать другое значение для задержанной дроби с помощью этого аргумента. Для примера задайте 'HyperparameterOptimizationOptions',struct('Holdout',0.3) зарезервировать 30% данных в качестве данных валидации.
Если 'KernelScale' является 'auto', затем fitckernel использует случайный поток, управляемый tallrng для субдискретизации. Для воспроизводимости необходимо задать начальное число случайных чисел как для глобального потока, так и для случайного потока, управляемого tallrng.
Если 'Lambda' является 'auto', затем fitckernel может пройти дополнительный проход через данные, чтобы вычислить количество наблюдений в X.
fitckernel использует блочную стратегию. Для получения дополнительной информации смотрите Алгоритмы.
Для получения дополнительной информации см. Раздел «Длинные массивы»
Чтобы выполнить параллельную оптимизацию гипероптимизации параметров управления, используйте 'HyperparameterOptimizationOptions', struct('UseParallel',true) аргумент имя-значение в вызове этой функции.
Для получения дополнительной информации об оптимизации параллельной гипероптимизации параметров управления смотрите Parallel Bayesian Optimization.
Общие сведения о параллельных вычислениях см. в разделе Запуск функций MATLAB с поддержкой автоматических параллелей (Parallel Computing Toolbox).
bayesopt | bestPoint | ClassificationKernel | ClassificationPartitionedKernel | fitclinear | fitcsvm | predict | resume | templateKernel
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.