Соответствуйте бинарному Гауссову классификатору ядра с помощью случайного расширения функции
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: 0.1542
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
модели, которые программное обеспечение обучает на учебном сгибе (окутывают) наблюдения.
Оцените перекрестную подтвержденную ошибку классификации.
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.83494 | 0.35897 | 0.35897 | 64.836 | 4.4811e-06 | | 2 | Accept | 0.35897 | 3.5025 | 0.35897 | 0.35897 | 0.036335 | 0.015885 | | 3 | Accept | 0.39601 | 3.8723 | 0.35897 | 0.36053 | 0.0022147 | 6.8254e-06 | | 4 | Accept | 0.35897 | 1.2717 | 0.35897 | 0.35898 | 5.1259 | 0.28097 | | 5 | Accept | 0.35897 | 2.1877 | 0.35897 | 0.35897 | 0.24853 | 0.10828 | | 6 | Accept | 0.35897 | 0.73376 | 0.35897 | 0.35897 | 885.09 | 0.00057316 | | 7 | Best | 0.10826 | 2.5196 | 0.10826 | 0.10833 | 8.0346 | 0.0048286 | | 8 | Best | 0.076923 | 3.0406 | 0.076923 | 0.076999 | 7.0902 | 0.0034068 | | 9 | Accept | 0.091168 | 3.136 | 0.076923 | 0.077059 | 9.1504 | 0.0020604 | | 10 | Best | 0.062678 | 3.1048 | 0.062678 | 0.062723 | 3.5487 | 0.0025912 | | 11 | Accept | 0.062678 | 2.8318 | 0.062678 | 0.062741 | 2.3869 | 0.003321 | | 12 | Accept | 0.41026 | 3.8055 | 0.062678 | 0.062536 | 0.14075 | 0.0022499 | | 13 | Accept | 0.062678 | 2.6841 | 0.062678 | 0.062532 | 3.4215 | 0.0036803 | | 14 | Accept | 0.062678 | 1.7945 | 0.062678 | 0.061956 | 3.2928 | 0.0030533 | | 15 | Best | 0.05698 | 1.6631 | 0.05698 | 0.057204 | 5.0598 | 0.0025499 | | 16 | Accept | 0.062678 | 4.2584 | 0.05698 | 0.057186 | 5.3401 | 0.0015096 | | 17 | Accept | 0.05698 | 3.7419 | 0.05698 | 0.057118 | 1.813 | 0.0069209 | | 18 | Accept | 0.059829 | 2.3814 | 0.05698 | 0.057092 | 1.5122 | 0.0046637 | | 19 | Accept | 0.059829 | 2.5681 | 0.05698 | 0.05718 | 1.9277 | 0.0056364 | | 20 | Accept | 0.065527 | 2.1382 | 0.05698 | 0.057189 | 1.4064 | 0.0094306 | |=====================================================================================================| | Iter | Eval | Objective | Objective | BestSoFar | BestSoFar | KernelScale | Lambda | | | result | | runtime | (observed) | (estim.) | | | |=====================================================================================================| | 21 | Accept | 0.05698 | 1.9177 | 0.05698 | 0.057033 | 5.1719 | 0.0023614 | | 22 | Best | 0.054131 | 6.5414 | 0.054131 | 0.054176 | 1.9618 | 6.5704e-05 | | 23 | Best | 0.042735 | 2.5576 | 0.042735 | 0.042763 | 1.9463 | 1.0169e-05 | | 24 | Accept | 0.082621 | 2.3384 | 0.042735 | 0.042775 | 1.0661 | 1.3245e-05 | | 25 | Accept | 0.054131 | 4.375 | 0.042735 | 0.042789 | 3.288 | 2.0035e-05 | | 26 | Accept | 0.062678 | 2.6664 | 0.042735 | 0.042769 | 2.657 | 3.0334e-06 | | 27 | Accept | 0.059829 | 2.347 | 0.042735 | 0.043054 | 2.0381 | 1.9791e-05 | | 28 | Accept | 0.042735 | 3.0139 | 0.042735 | 0.042764 | 3.5043 | 0.0001237 | | 29 | Accept | 0.054131 | 1.1313 | 0.042735 | 0.042764 | 1.3897 | 3.2288e-06 | | 30 | Accept | 0.062678 | 2.0799 | 0.042735 | 0.042792 | 2.2414 | 0.0002259 |
__________________________________________________________ Optimization completed. MaxObjectiveEvaluations of 30 reached. Total function evaluations: 30 Total elapsed time: 104.2372 seconds Total objective function evaluation time: 81.0398 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 = 2.5576 Best estimated feasible point (according to models): KernelScale Lambda ___________ _________ 3.5043 0.0001237 Estimated objective function value = 0.042792 Estimated function evaluation time = 2.9043
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: 0.3593
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: 104.2372 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
аргумент пары "имя-значение". Для изучения мультикласса смотрите fitcecoc
.
Длина Y
должно быть равно количеству наблюдений в X
или Tbl
.
Если Y
символьный массив, затем каждая метка должна соответствовать одной строке массива.
Хорошая практика должна задать порядок класса при помощи ClassNames
аргумент пары "имя-значение".
Типы данных: categorical
| char
| string
| logical
| single
| double
| cell
Tbl
— Выборочные данныеВыборочные данные раньше обучали модель в виде таблицы. Каждая строка Tbl
соответствует одному наблюдению, и каждый столбец соответствует одному переменному предиктору. Многостолбцовые переменные и массивы ячеек кроме массивов ячеек из символьных векторов не позволены.
Опционально, Tbl
может содержать столбец для переменной отклика и столбец для весов наблюдения.
Переменная отклика должна быть категориальным, символом, или массивом строк, логическим или числовым вектором или массивом ячеек из символьных векторов.
fitckernel
поддержки только бинарная классификация. Или переменная отклика должна содержать точно два отличных класса, или необходимо задать два класса для обучения при помощи ClassNames
аргумент значения имени. Для изучения мультикласса смотрите fitcecoc
.
Хорошая практика должна задать порядок классов в переменной отклика при помощи ClassNames
аргумент значения имени.
Столбец для весов должен быть числовым вектором.
Необходимо задать переменную отклика в Tbl
при помощи ResponseVarName
или formula
и задайте веса наблюдения в Tbl
при помощи Weights
.
Задайте переменную отклика при помощи ResponseVarName
— fitckernel
использует остающиеся переменные в качестве предикторов. Использовать подмножество остающихся переменных в Tbl
как предикторы, задайте переменные предикторы при помощи PredictorNames
.
Задайте спецификацию модели при помощи formula
— fitckernel
использует подмножество переменных в Tbl
как переменные предикторы и переменная отклика, как задано в formula
.
Если Tbl
не содержит переменную отклика, затем задает переменную отклика при помощи Y
. Длина переменной отклика Y
и количество строк в Tbl
должно быть равным. Использовать подмножество переменных в Tbl
как предикторы, задайте переменные предикторы при помощи PredictorNames
.
Типы данных: 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' | Машина опорных векторов | y ∊ {-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
— Масштабный коэффициент ядра
(значение по умолчанию) | 'auto'
| положительная скалярная величинаМасштабный коэффициент ядра в виде разделенной запятой пары, состоящей из 'KernelScale'
и 'auto'
или положительная скалярная величина. Программное обеспечение получает случайный базис для случайного расширения функции при помощи масштабного коэффициента ядра. Для получения дополнительной информации смотрите Случайное Расширение Функции.
Если вы задаете 'auto'
, затем программное обеспечение выбирает соответствующий масштабный коэффициент ядра с помощью эвристической процедуры. Эта эвристическая процедура использует подвыборку, таким образом, оценки могут варьироваться от одного вызова до другого. Поэтому, чтобы воспроизвести результаты, установите seed случайных чисел при помощи 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
. Объект раздела задает тип перекрестной проверки и индексации для наборов обучения и валидации.
Чтобы создать перекрестную подтвержденную модель, можно задать только одни из этих четырех аргументов name-value: CVPartition
, Holdout
, KFold
, или Leaveout
.
Пример: Предположим, что вы создаете случайный раздел для 5-кратной перекрестной проверки на 500 наблюдениях при помощи cvp = cvpartition(500,'KFold',5)
. Затем можно задать перекрестную подтвержденную модель при помощи 'CVPartition',cvp
.
Holdout
— Часть данных для валидации затяжкиЧасть данных, используемых для валидации затяжки в виде скалярного значения в области значений (0,1). Если вы задаете 'Holdout',p
, затем программное обеспечение завершает эти шаги:
Случайным образом выберите и зарезервируйте p*100
% из данных как данные о валидации, и обучают модель с помощью остальной части данных.
Сохраните компактную, обученную модель в Trained
свойство перекрестной подтвержденной модели.
Чтобы создать перекрестную подтвержденную модель, можно задать только одни из этих четырех аргументов name-value: CVPartition
, Holdout
, KFold
, или Leaveout
.
Пример: 'Holdout',0.1
Типы данных: double |
single
KFold
— Количество сгибов
(значение по умолчанию) | положительное целочисленное значение, больше, чем 1Количество сгибов, чтобы использовать в перекрестной подтвержденной модели в виде положительного целочисленного значения, больше, чем 1. Если вы задаете 'KFold',k
, затем программное обеспечение завершает эти шаги:
Случайным образом разделите данные в k
наборы.
Для каждого набора зарезервируйте набор как данные о валидации и обучите модель с помощью другого k
– 1 набор.
Сохраните k
компактные, обученные модели в k
- 1 вектор ячейки в Trained
свойство перекрестной подтвержденной модели.
Чтобы создать перекрестную подтвержденную модель, можно задать только одни из этих четырех аргументов name-value: 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'
и неотрицательный скаляр.
Пусть , то есть, вектор из коэффициентов и смещения называет в итерации оптимизации 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
(4 ГБ) (значение по умолчанию) | положительная скалярная величинаМаксимальная сумма выделенной памяти (в мегабайтах) в виде разделенной запятой пары, состоящей из 'BlockSize'
и положительная скалярная величина.
Если fitckernel
требует большей памяти, чем значение 'BlockSize'
чтобы содержать преобразованные данные о предикторе, затем программное обеспечение использует мудрую блоком стратегию. Для получения дополнительной информации о мудрой блоком стратегии, см. Алгоритмы.
Пример: 'BlockSize',1e4
Типы данных: single
| double
RandomStream
— Поток случайных чиселПоток случайных чисел для воспроизводимости преобразования данных в виде разделенной запятой пары, состоящей из 'RandomStream'
и случайный потоковый объект. Для получения дополнительной информации смотрите Случайное Расширение Функции.
Используйте 'RandomStream'
воспроизвести случайные основные функции это fitckernel
использование, чтобы преобразовать данные о предикторе к высокому мерному пространству. Для получения дополнительной информации смотрите Управление Global Stream Используя RandStream и Создание и Управление Потоком Случайных чисел.
Пример: 'RandomStream',RandStream('mlfg6331_64')
HessianHistorySize
— Размер буфера истории для приближения Гессиана
(значение по умолчанию) | положительное целое числоРазмер буфера истории для приближения Гессиана в виде разделенной запятой пары, состоящей из 'HessianHistorySize'
и положительное целое число. В каждой итерации, fitckernel
составляет приближение Гессиана при помощи статистики от последнего HessianHistorySize
итерации.
Пример: 'HessianHistorySize',10
Типы данных: single
| double
Verbose
— Уровень многословия
(значение по умолчанию) | 1
Уровень многословия в виде разделенной запятой пары, состоящей из 'Verbose'
и любой 0
или 1
. Verbose
управляет отображением диагностической информации в командной строке.
Значение | Описание |
---|---|
0
| fitckernel не отображает диагностическую информацию. |
1
| fitckernel отображения и хранилища значение целевой функции, величины градиента и другой диагностической информации. FitInfo.History содержит диагностическую информацию. |
Пример: 'Verbose',1
Типы данных: single
| double
CategoricalPredictors
— Категориальный список предикторов'all'
Категориальные предикторы перечисляют в виде одного из значений в этой таблице.
Значение | Описание |
---|---|
Вектор из положительных целых чисел |
Каждая запись в векторе является значением индекса, указывающим, что соответствующий предиктор является категориальным. Значения индекса между 1 и Если |
Логический вектор |
|
Символьная матрица | Каждая строка матрицы является именем переменного предиктора. Имена должны совпадать с записями в 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
— Misclassification стоитсяСтоимость Misclassification в виде разделенной запятой пары, состоящей из 'Cost'
и квадратная матрица или структура.
Если вы задаете квадратную матрицу cost
('Cost',cost
), затем cost(i,j)
стоимость классификации точки в класс j
если его истинным классом является i
. Таким образом, строки соответствуют истинному классу, и столбцы соответствуют предсказанному классу. Чтобы задать класс заказывают для соответствующих строк и столбцов cost
, используйте ClassNames
аргумент пары "имя-значение".
Если вы задаете структуру S
('Cost',S
), затем это должно иметь два поля:
S.ClassNames
, который содержит имена классов как переменную совпадающего типа данных как 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" | 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'
замените любые значения, вы задаете использование других аргументов name-value. Например, установка 'OptimizeHyperparameters'
к 'auto'
причины fitckernel
оптимизировать гиперпараметры, соответствующие 'auto'
опция и проигнорировать любые заданные значения для гиперпараметров.
Имеющие право параметры для fitckernel
:
KernelScale
— fitckernel
поисковые запросы среди положительных значений, по умолчанию масштабируемых журналом в области значений [1e-3,1e3]
.
Lambda
— fitckernel
поисковые запросы среди положительных значений, по умолчанию масштабируемых журналом в области значений [1e-3,1e3]/n
, где n
количество наблюдений.
Learner
— fitckernel
поисковые запросы среди 'svm'
и 'logistic'
.
NumExpansionDimensions
— fitckernel
поисковые запросы среди положительных целых чисел, по умолчанию масштабируемых журналом в области значений [100,10000]
.
Установите параметры не по умолчанию путем передачи вектора из optimizableVariable
объекты, которые имеют значения не по умолчанию. Например:
load fisheriris params = hyperparameters('fitckernel',meas,species); params(2).Range = [1e-4,1e6];
Передайте params
как значение 'OptimizeHyperparameters'
.
По умолчанию итеративное отображение появляется в командной строке, и графики появляются согласно количеству гиперпараметров в оптимизации. Для оптимизации и графиков, целевая функция является misclassification уровнем. Чтобы управлять итеративным отображением, установите Verbose
поле 'HyperparameterOptimizationOptions'
аргумент значения имени. Чтобы управлять графиками, установите ShowPlots
поле 'HyperparameterOptimizationOptions'
аргумент значения имени.
Для примера смотрите, Оптимизируют Классификатор Ядра.
Пример: 'OptimizeHyperparameters','auto'
HyperparameterOptimizationOptions
— Опции для оптимизацииОпции для оптимизации в виде структуры. Этот аргумент изменяет эффект OptimizeHyperparameters
аргумент значения имени. Все поля в структуре являются дополнительными.
Имя поля | Значения | Значение по умолчанию |
---|---|---|
Optimizer |
| 'bayesopt' |
AcquisitionFunctionName |
Захват функционирует, чьи имена включают | 'expected-improvement-per-second-plus' |
MaxObjectiveEvaluations | Максимальное количество оценок целевой функции. | 30 для 'bayesopt' и 'randomsearch' , и целая сетка для 'gridsearch' |
MaxTime | Ограничение по времени в виде положительного действительного скаляра. Ограничение по времени находится в секундах, как измерено | Inf |
NumGridDivisions | Для 'gridsearch' , количество значений в каждой размерности. Значение может быть вектором из положительных целых чисел, дающих количество значений для каждой размерности или скаляр, который применяется ко всем размерностям. Это поле проигнорировано для категориальных переменных. | 10
|
ShowPlots | Логическое значение, указывающее, показать ли графики. Если true , это поле строит лучшее наблюдаемое значение целевой функции против номера итерации. Если вы используете Байесовую оптимизацию (Optimizer 'bayesopt' ), затем это поле также строит лучшее предполагаемое значение целевой функции. Лучшие наблюдаемые значения целевой функции и лучше всего оцененные значения целевой функции соответствуют значениям в BestSoFar (observed) и BestSoFar (estim.) столбцы итеративного отображения, соответственно. Можно найти эти значения в свойствах ObjectiveMinimumTrace и EstimatedObjectiveMinimumTrace из Mdl.HyperparameterOptimizationResults . Если проблема включает один или два параметра оптимизации для Байесовой оптимизации, то ShowPlots также строит модель целевой функции против параметров. | true |
SaveIntermediateResults | Логическое значение, указывающее, сохранить ли результаты когда Optimizer 'bayesopt' . Если true , это поле перезаписывает переменную рабочей области под названием 'BayesoptResults' в каждой итерации. Переменной является BayesianOptimization объект. | false |
Verbose | Отображение в командной строке:
Для получения дополнительной информации смотрите | 1
|
UseParallel | Логическое значение, указывающее, запустить ли Байесовую оптимизацию параллельно, которая требует Parallel Computing Toolbox™. Из-за невоспроизводимости синхронизации параллели, параллельная Байесова оптимизация не обязательно приводит к восстанавливаемым результатам. Для получения дополнительной информации смотрите Параллельную Байесовую Оптимизацию. | false |
Repartition | Логическое значение, указывающее, повторно разделить ли перекрестную проверку в каждой итерации. Если этим полем является Установка | false |
Используйте не больше, чем одну из следующих трех опций. | ||
CVPartition | 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
возразите | таблица гиперпараметров и присваиваемых значенийОптимизация перекрестной проверки гиперпараметров, возвращенных как BayesianOptimization
возразите или таблица гиперпараметров и присваиваемых значений. Выход непуст когда значение 'OptimizeHyperparameters'
не 'none'
. Выходное значение зависит от Optimizer
значение поля 'HyperparameterOptimizationOptions'
аргумент пары "имя-значение":
Значение Optimizer Поле | Значение HyperparameterOptimizationResults |
---|---|
'bayesopt' (значение по умолчанию) | Объект класса BayesianOptimization |
'gridsearch' или 'randomsearch' | Таблица гиперпараметров используемые, наблюдаемые значения целевой функции (потеря перекрестной проверки), и ранг наблюдений от самого низкого (лучше всего) к (худшему) самому высокому |
fitckernel
не принимает начальные условия для вектора из содействующей беты (β) и смещает термин (b), используемый, чтобы определить решающую функцию,
fitckernel
не поддерживает стандартизацию.
Случайное расширение функции, такое как Случайные Раковины [1] и Быстрое питание [2], является схемой аппроксимировать Гауссовы ядра алгоритма классификации ядер, чтобы использовать для больших данных в вычислительном отношении эффективным способом. Случайное расширение функции более практично для больших применений данных, которые имеют большие наборы обучающих данных, но могут также быть применены к меньшим наборам данных, которые умещаются в памяти.
Алгоритм классификации ядер ищет оптимальную гиперплоскость, которая разделяет данные на два класса после отображения функций в высокое мерное пространство. Нелинейные функции, которые не линейно отделимы в низком мерном пространстве, могут быть отделимыми в расширенном высоком мерном пространстве. Все вычисления для классификации гиперплоскостей используют только скалярные произведения. Можно получить нелинейную модель классификации, заменив скалярное произведение x 1x2' с нелинейной функцией ядра , где xi является i th наблюдение (вектор-строка), и φ (xi) является преобразованием, которое сопоставляет xi с высоким мерным пространством (названный “приемом ядра”). Однако оценивание G (x 1, x 2) (Матрица грамма) для каждой пары наблюдений является в вычислительном отношении дорогим для большого набора данных (большой n).
Случайная схема расширения функции находит случайное преобразование так, чтобы его скалярное произведение аппроксимировало Гауссово ядро. Таким образом,
где T (x) сопоставляет x в к высокому мерному пространству (). Схема Random Kitchen Sink использует случайное преобразование
где выборка, чертившая от и σ2 шкала ядра. Эта схема требует O (m p) расчет и устройство хранения данных. Схема Fastfood вводит другой случайный базис V вместо Z с помощью матриц Адамара, объединенных с Гауссовыми матрицами масштабирования. Этот случайный базис уменьшает стоимость расчета для O (m log
p), и уменьшает устройство хранения данных до O (m).
fitckernel
функционируйте использует схему Fastfood случайного расширения функции и использует линейную классификацию, чтобы обучить Гауссову модель классификации ядер. В отличие от решателей в fitcsvm
функция, которые требуют расчета n-by-n матрица Грамма, решатель в fitckernel
только потребности сформировать матрицу размера n-by-m, с m обычно намного меньше, чем n для больших данных.
Ограничение поля является параметром, который управляет максимальным наказанием, наложенным на нарушающие поле наблюдения, и помогает в предотвращении сверхподходящего (регуляризация). Увеличение ограничения поля может привести к более длительным учебным временам.
Ограничение поля (C) и сила термина регуляризации (λ) связано C = 1 / (λ n), где n является количеством наблюдений.
fitckernel
минимизирует упорядоченную целевую функцию с помощью решателя Лимитед-мемори Бройдена Флетчера Голдфарба Шэнно (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] Rahimi, A. и Б. Речт. “Случайные Функции Крупномасштабных Машин Ядра”. Усовершенствования в Нейронных Системах обработки информации. Издание 20, 2008, стр 1177–1184.
[2] Le, Q., Т. Сарлос и А. Смола. “Быстрое питание — Аппроксимация Расширений Ядра в Логлинейное Время”. Продолжения 30-й Международной конференции по вопросам Машинного обучения. Издание 28, № 3, 2013, стр 244–252.
[3] Хуан, P. S. Х. Аврон, Т. Н. Сэйнэт, В. Синдхвани и Б. Рамабхэдрэн. “Методы ядра совпадают с Глубокими нейронными сетями на TIMIT”. 2 014 Международных конференций IEEE по вопросам Акустики, Речи и Обработки сигналов. 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
для подвыборки. Для воспроизводимости необходимо установить seed случайных чисел и для глобального потока и для случайного потока, которым управляют tallrng
.
Если 'Lambda'
'auto'
то fitckernel
может взять дополнительный проход через данные, чтобы вычислить количество наблюдений в X
.
fitckernel
использует мудрую блоком стратегию. Для получения дополнительной информации см. Алгоритмы.
Для получения дополнительной информации см. Раздел "Высокие массивы".
Чтобы выполнить параллельную оптимизацию гиперпараметра, используйте 'HyperparameterOptimizationOptions', struct('UseParallel',true)
аргумент значения имени в вызове fitckernel
функция.
Для получения дополнительной информации о параллельной гипероптимизации параметров управления смотрите Параллельную Байесовую Оптимизацию.
Для получения общей информации о параллельных вычислениях, смотрите функции MATLAB Запуска с Автоматической Параллельной Поддержкой (Parallel Computing Toolbox).
bayesopt
| bestPoint
| ClassificationKernel
| ClassificationPartitionedKernel
| fitclinear
| fitcsvm
| predict
| resume
| templateKernel
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.