Соответствие модели линейной классификации объемным данным
fitclinear обучает модели линейной классификации для двухклассного (двоичного) обучения с помощью высокомерных, полных или разреженных данных предиктора. Доступные модели линейной классификации включают регуляризованные векторные машины поддержки (SVM) и модели логистической регрессии. fitclinear минимизирует целевую функцию, используя методы, которые сокращают время вычисления (например, стохастический градиентный спуск).
Для сокращения времени вычислений на высокомерном наборе данных, включающем множество переменных предиктора, обучайте модель линейной классификации с помощью fitclinear. Наборы данных предикторов с низкой и средней размерностью см. в разделе Альтернативы для данных с низкой размерностью.
Чтобы обучить модель линейной классификации для многоклассового обучения путем объединения двоичных классификаторов SVM или логистической регрессии с использованием выходных кодов с исправлением ошибок, см. раздел fitcecoc.
возвращает модель линейной классификации с использованием переменных предиктора в таблице Mdl = fitclinear(Tbl,ResponseVarName)Tbl и метки классов в Tbl.ResponseVarName.
указывает параметры, использующие один или несколько аргументов пары имя-значение в дополнение к любой из комбинаций входных аргументов в предыдущих синтаксисах. Например, можно указать, что столбцы матрицы предиктора соответствуют наблюдениям, реализовать логистическую регрессию или указать перекрестную проверку. Хорошей практикой является перекрестная проверка с использованием Mdl = fitclinear(X,Y,Name,Value)'Kfold' аргумент пары имя-значение. Результаты перекрестной проверки определяют, насколько хорошо обобщается модель.
[ также возвращает подробности оптимизации гиперпараметров при передаче Mdl,FitInfo,HyperparameterOptimizationResults] = fitclinear(___)OptimizeHyperparameters пара имя-значение.
Тренировка бинарной линейной классификационной модели с использованием вспомогательных векторных машин, двойной SGD и регуляризации гребней.
Загрузите набор данных NLP.
load nlpdataX является разреженной матрицей данных предиктора, и Y является категориальным вектором меток класса. В данных имеется более двух классов.
Определите метки, соответствующие страницам документации Toolbox™ статистики и машинного обучения.
Ystats = Y == 'stats';Обучайте модель двоичной линейной классификации, которая может определить, находится ли подсчет слов на веб-странице документации из документации Toolbox™ статистики и машинного обучения. Обучение модели с использованием всего набора данных. Определите, насколько хорошо алгоритм оптимизации соответствует модели данным, извлекая сводку аппроксимации.
rng(1); % For reproducibility
[Mdl,FitInfo] = fitclinear(X,Ystats)Mdl =
ClassificationLinear
ResponseName: 'Y'
ClassNames: [0 1]
ScoreTransform: 'none'
Beta: [34023x1 double]
Bias: -1.0059
Lambda: 3.1674e-05
Learner: 'svm'
Properties, Methods
FitInfo = struct with fields:
Lambda: 3.1674e-05
Objective: 5.3783e-04
PassLimit: 10
NumPasses: 10
BatchLimit: []
NumIterations: 238561
GradientNorm: NaN
GradientTolerance: 0
RelativeChangeInBeta: 0.0562
BetaTolerance: 1.0000e-04
DeltaGradient: 1.4582
DeltaGradientTolerance: 1
TerminationCode: 0
TerminationStatus: {'Iteration limit exceeded.'}
Alpha: [31572x1 double]
History: []
FitTime: 0.1894
Solver: {'dual'}
Mdl является ClassificationLinear модель. Вы можете пройти Mdl и обучение или новые данные для loss для проверки ошибки классификации в образце. Или, вы можете пройти Mdl и новые данные предиктора для predict для прогнозирования меток классов для новых наблюдений.
FitInfo является массивом структуры, содержащим, среди прочего, состояние завершения (TerminationStatus) и сколько времени решатель занял, чтобы подогнать модель к данным (FitTime). Рекомендуется использовать FitInfo чтобы определить, являются ли измерения оптимизации-завершения удовлетворительными. Поскольку время обучения невелико, можно попробовать переучить модель, но увеличить количество проходов через данные. Это может улучшить такие меры, как DeltaGradient.
Чтобы определить хорошую силу лассо-штрафа для модели линейной классификации, которая использует учащегося логистической регрессии, реализуйте пятикратную перекрестную проверку.
Загрузите набор данных NLP.
load nlpdataX является разреженной матрицей данных предиктора, и Y является категориальным вектором меток класса. В данных имеется более двух классов.
Модели должны определять, содержится ли подсчет слов на веб-странице в документации Toolbox™ статистики и машинного обучения. Таким образом, определите метки, соответствующие страницам документации Toolbox™ статистики и машинного обучения.
Ystats = Y == 'stats';Создайте набор из 11 логарифмически разнесенных уровней регуляризации от до .
Lambda = logspace(-6,-0.5,11);
Выполните перекрестную проверку моделей. Чтобы увеличить скорость выполнения, транспонируйте данные предиктора и укажите, что наблюдения находятся в столбцах. Оцените коэффициенты с помощью SpaRSA. Понизить допуск на градиенте целевой функции до 1e-8.
X = X'; rng(10); % For reproducibility CVMdl = fitclinear(X,Ystats,'ObservationsIn','columns','KFold',5,... 'Learner','logistic','Solver','sparsa','Regularization','lasso',... 'Lambda',Lambda,'GradientTolerance',1e-8)
CVMdl =
ClassificationPartitionedLinear
CrossValidatedModel: 'Linear'
ResponseName: 'Y'
NumObservations: 31572
KFold: 5
Partition: [1x1 cvpartition]
ClassNames: [0 1]
ScoreTransform: 'none'
Properties, Methods
numCLModels = numel(CVMdl.Trained)
numCLModels = 5
CVMdl является ClassificationPartitionedLinear модель. Поскольку fitclinear реализует пятикратную перекрестную проверку, CVMdl содержит 5 ClassificationLinear модели, которые программное обеспечение обучает на каждой складке.
Отображение первой обученной модели линейной классификации.
Mdl1 = CVMdl.Trained{1}Mdl1 =
ClassificationLinear
ResponseName: 'Y'
ClassNames: [0 1]
ScoreTransform: 'logit'
Beta: [34023x11 double]
Bias: [1x11 double]
Lambda: [1x11 double]
Learner: 'logistic'
Properties, Methods
Mdl1 является ClassificationLinear объект модели. fitclinear построенный Mdl1 путем обучения на первых четырех складках. Поскольку Lambda - это последовательность сильных сторон регуляризации, вы можете думать о Mdl1 как 11 моделей, по одной для каждой силы регуляризации в Lambda.
Оценка кросс-проверенной ошибки классификации.
ce = kfoldLoss(CVMdl);
Потому что есть 11 сильных сторон регуляризации, ce является вектором 1 на 11 коэффициентов ошибок классификации.
Более высокие значения Lambda привести к предикторной переменной разреженности, которая является хорошим качеством классификатора. Для каждой силы регуляризации выполните обучение модели линейной классификации, используя весь набор данных и те же опции, что и при перекрестной проверке моделей. Определите количество ненулевых коэффициентов на модель.
Mdl = fitclinear(X,Ystats,'ObservationsIn','columns',... 'Learner','logistic','Solver','sparsa','Regularization','lasso',... 'Lambda',Lambda,'GradientTolerance',1e-8); numNZCoeff = sum(Mdl.Beta~=0);
На том же рисунке постройте график перекрестно подтвержденных коэффициентов ошибок классификации и частоты ненулевых коэффициентов для каждой силы регуляризации. Постройте график всех переменных на шкале журнала.
figure; [h,hL1,hL2] = plotyy(log10(Lambda),log10(ce),... log10(Lambda),log10(numNZCoeff)); hL1.Marker = 'o'; hL2.Marker = 'o'; ylabel(h(1),'log_{10} classification error') ylabel(h(2),'log_{10} nonzero-coefficient frequency') xlabel('log_{10} Lambda') title('Test-Sample Statistics') hold off

Выберите индекс силы регуляризации, который уравновешивает предикторную переменную разреженность и низкую ошибку классификации. В этом случае должно быть достаточно значения от 10-4 до 10-1.
idxFinal = 7;
Выберите модель из Mdl с выбранной силой регуляризации.
MdlFinal = selectModels(Mdl,idxFinal);
MdlFinal является ClassificationLinear модель, содержащая одну силу регуляризации. Чтобы оценить метки для новых наблюдений, передайте MdlFinal и новые данные для predict.
В этом примере показано, как минимизировать ошибку перекрестной проверки в линейном классификаторе с помощью fitclinear. В примере используется набор данных NLP.
Загрузите набор данных NLP.
load nlpdataX является разреженной матрицей данных предиктора, и Y является категориальным вектором меток класса. В данных имеется более двух классов.
Модели должны определять, содержится ли подсчет слов на веб-странице в документации Toolbox™ статистики и машинного обучения. Определите соответствующие метки.
X = X';
Ystats = Y == 'stats';Оптимизировать классификацию с помощью 'auto' параметры.
Для воспроизводимости задайте случайное начальное число и используйте 'expected-improvement-plus' функция приобретения.
rng default Mdl = fitclinear(X,Ystats,'ObservationsIn','columns','Solver','sparsa',... 'OptimizeHyperparameters','auto','HyperparameterOptimizationOptions',... struct('AcquisitionFunctionName','expected-improvement-plus'))
|=====================================================================================================| | Iter | Eval | Objective | Objective | BestSoFar | BestSoFar | Lambda | Learner | | | result | | runtime | (observed) | (estim.) | | | |=====================================================================================================| | 1 | Best | 0.041619 | 7.9361 | 0.041619 | 0.041619 | 0.077903 | logistic | | 2 | Best | 0.00076017 | 7.9167 | 0.00076017 | 0.0029067 | 2.1405e-09 | logistic | | 3 | Accept | 0.049221 | 8.6984 | 0.00076017 | 0.00078902 | 0.72101 | svm | | 4 | Accept | 0.00079184 | 9.4976 | 0.00076017 | 0.00078154 | 3.4734e-07 | svm | | 5 | Best | 0.00072849 | 8.9874 | 0.00072849 | 0.00073116 | 1.1738e-08 | logistic | | 6 | Accept | 0.00085519 | 8.9501 | 0.00072849 | 0.00073307 | 2.5065e-09 | svm | | 7 | Accept | 0.00079184 | 10.705 | 0.00072849 | 0.00073512 | 3.212e-08 | svm | | 8 | Accept | 0.00088686 | 10.281 | 0.00072849 | 0.00073791 | 3.1717e-10 | svm | | 9 | Accept | 0.00076017 | 8.9367 | 0.00072849 | 0.00070971 | 3.1837e-10 | logistic | | 10 | Accept | 0.00079184 | 15.805 | 0.00072849 | 0.0006934 | 2.2804e-07 | logistic | | 11 | Accept | 0.00072849 | 7.5213 | 0.00072849 | 0.00067177 | 5.8465e-08 | logistic | | 12 | Accept | 0.00079184 | 7.7882 | 0.00072849 | 0.00067223 | 1.1295e-07 | svm | | 13 | Best | 0.00069682 | 8.2314 | 0.00069682 | 0.00068288 | 6.1059e-08 | logistic | | 14 | Accept | 0.00069682 | 10.229 | 0.00069682 | 0.00068745 | 6.322e-08 | logistic | | 15 | Accept | 0.00072849 | 12.064 | 0.00069682 | 0.00068818 | 9.2613e-10 | logistic | | 16 | Accept | 0.00069682 | 11.695 | 0.00069682 | 0.00069047 | 6.6793e-08 | logistic | | 17 | Accept | 0.00072849 | 7.655 | 0.00069682 | 0.00069075 | 3.21e-10 | logistic | | 18 | Accept | 0.0012353 | 11.986 | 0.00069682 | 0.00069811 | 0.00083275 | svm | | 19 | Accept | 0.00076017 | 11.395 | 0.00069682 | 0.00069953 | 5.0781e-05 | svm | | 20 | Accept | 0.00085519 | 8.1292 | 0.00069682 | 0.00070008 | 0.00022104 | svm | |=====================================================================================================| | Iter | Eval | Objective | Objective | BestSoFar | BestSoFar | Lambda | Learner | | | result | | runtime | (observed) | (estim.) | | | |=====================================================================================================| | 21 | Accept | 0.00082351 | 13.535 | 0.00069682 | 0.00069992 | 4.5396e-06 | svm | | 22 | Accept | 0.0010769 | 27.561 | 0.00069682 | 0.00070804 | 4.9241e-06 | logistic | | 23 | Accept | 0.0010136 | 33.915 | 0.00069682 | 0.00070353 | 1.2534e-06 | logistic | | 24 | Accept | 0.00072849 | 7.8882 | 0.00069682 | 0.00070517 | 2.4564e-08 | logistic | | 25 | Accept | 0.00088686 | 10.864 | 0.00069682 | 0.00070528 | 1.6498e-05 | svm | | 26 | Accept | 0.00085519 | 8.7177 | 0.00069682 | 0.00070534 | 1.1571e-06 | svm | | 27 | Accept | 0.00079184 | 6.7623 | 0.00069682 | 0.00070543 | 1.021e-08 | svm | | 28 | Accept | 0.00076017 | 7.0401 | 0.00069682 | 0.00070556 | 6.9444e-10 | logistic | | 29 | Accept | 0.00076017 | 8.3586 | 0.00069682 | 0.00070535 | 5.7627e-09 | logistic | | 30 | Accept | 0.00076017 | 8.1972 | 0.00069682 | 0.00071141 | 3.123e-08 | logistic |


__________________________________________________________
Optimization completed.
MaxObjectiveEvaluations of 30 reached.
Total function evaluations: 30
Total elapsed time: 369.5861 seconds
Total objective function evaluation time: 327.2462
Best observed feasible point:
Lambda Learner
__________ ________
6.1059e-08 logistic
Observed objective function value = 0.00069682
Estimated objective function value = 0.00071146
Function evaluation time = 8.2314
Best estimated feasible point (according to models):
Lambda Learner
__________ ________
5.8465e-08 logistic
Estimated objective function value = 0.00071141
Estimated function evaluation time = 9.4912
Mdl =
ClassificationLinear
ResponseName: 'Y'
ClassNames: [0 1]
ScoreTransform: 'logit'
Beta: [34023x1 double]
Bias: -9.8590
Lambda: 5.8465e-08
Learner: 'logistic'
Properties, Methods
X - Данные предиктораДанные предиктора, заданные как полная или разреженная матрица n-by-p.
Длина Y и число замечаний в X должно быть равным.
Примечание
Если вы ориентируете матрицу предиктора так, чтобы наблюдения соответствовали столбцам, и укажите 'ObservationsIn','columns', то вы можете испытать значительное сокращение времени выполнения оптимизации.
Типы данных: single | double
Y - Этикетки классовМетки классов, с которыми обучается классификационная модель, задаются как категориальный, символьный или строковый массив, логический или числовой вектор или массив ячеек символьных векторов.
fitclinear поддерживает только двоичную классификацию. Также Y должны содержать ровно два отдельных класса, либо необходимо указать два класса для обучения с помощью 'ClassNames' аргумент пары имя-значение. Сведения о многоклассовом обучении см. в разделе fitcecoc.
Если Y является символьным массивом, то каждый элемент должен соответствовать одной строке массива.
Длина Y должно быть равно количеству наблюдений в X или Tbl.
Рекомендуется указывать порядок классов с помощью ClassNames аргумент пары имя-значение.
Типы данных: char | string | cell | categorical | logical | single | double
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> элементы как отсутствующие значения и удаляет наблюдения с любой из следующих характеристик:
Отсутствует значение в переменной ответа (например, Y или ValidationData{2})
По крайней мере одно отсутствующее значение в наблюдении предиктора (например, строка в X или ValidationData{1})
NaN значение или 0 вес (например, значение в Weights или ValidationData{3})
Для экономии использования памяти рекомендуется перед обучением вручную удалять наблюдения, содержащие отсутствующие значения.
Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.
'ObservationsIn','columns','Learner','logistic','CrossVal','on' указывает, что столбцы матрицы предиктора соответствуют наблюдениям, для реализации логистической регрессии, для реализации 10-кратной перекрестной проверки.Примечание
Нельзя использовать любой аргумент пары имя-значение перекрестной проверки вместе с 'OptimizeHyperparameters' аргумент пары имя-значение. Можно изменить перекрестную проверку для 'OptimizeHyperparameters' только с помощью 'HyperparameterOptimizationOptions' аргумент пары имя-значение.
'Lambda' - Сила термина «регуляризация»'auto' (по умолчанию) | неотрицательный скаляр | вектор неотрицательных значенийСила термина регуляризации, определяемая как разделенная запятыми пара, состоящая из 'Lambda' и 'auto', неотрицательный скаляр или вектор неотрицательных значений.
Для 'auto', Lambda = 1/n.
Если указана перекрестная проверка, аргумент пары имя-значение (например, CrossVal), то n - количество кратных наблюдений.
В противном случае n - размер обучающей выборки.
Для вектора неотрицательных значений: fitclinear последовательно оптимизирует целевую функцию для каждого отдельного значения в Lambda в порядке возрастания.
Если Solver является 'sgd' или 'asgd' и Regularization является 'lasso', fitclinear не использует предыдущие оценки коэффициентов в качестве теплого начала для следующей итерации оптимизации. В противном случае fitclinear использует теплые старты.
Если Regularization является 'lasso', то любая оценка коэффициента 0 сохраняет свое значение, когда fitclinear оптимизирует с использованием последующих значений в Lambda.
fitclinear возвращает оценки коэффициентов для каждой заданной силы регуляризации.
Пример: 'Lambda',10.^(-(10:-2:2))
Типы данных: char | string | double | single
'Learner' - Тип модели линейной классификации'svm' (по умолчанию) | 'logistic'Тип модели линейной классификации, указанный как разделенная запятыми пара, состоящая из 'Learner' и 'svm' или 'logistic'.
В этой таблице + b.
β - вектор p-коэффициентов.
x - это наблюдение из переменных p-предиктора.
b - скалярное смещение.
| Стоимость | Алгоритм | Диапазон ответа | Функция потерь |
|---|---|---|---|
'svm' | Опорная векторная машина | y ∊ {-1,1}; 1 для положительного класса и -1 в противном случае | Шарнир: yf (x)] |
'logistic' | Логистическая регрессия | То же, что и 'svm' | Отклонение (логистическое): yf (x)]} |
Пример: 'Learner','logistic'
'ObservationsIn' - Измерение наблюдения данных предиктора'rows' (по умолчанию) | 'columns'Измерение наблюдения данных предиктора, указанное как 'rows' или 'columns'.
Примечание
Если вы ориентируете матрицу предиктора так, чтобы наблюдения соответствовали столбцам, и укажите 'ObservationsIn','columns', то вы можете испытать значительное сокращение времени вычислений. Невозможно указать 'ObservationsIn','columns' для данных предиктора в таблице.
Пример: 'ObservationsIn','columns'
Типы данных: char | string
'Regularization' - Тип штрафа по сложности'lasso' | 'ridge'Тип штрафа сложности, указанный как разделенная запятыми пара, состоящая из 'Regularization' и 'lasso' или 'ridge'.
Программное обеспечение составляет целевую функцию для минимизации из суммы функции средних потерь (см. Learner) и термин регуляризации в этой таблице.
| Стоимость | Описание |
|---|---|
'lasso' | Лассо (L1) пенальти: |
'ridge' | Штраф по Риджу (L2): |
Чтобы указать силу термина регуляризации, которая является λ в выражениях, используйте Lambda.
Программное обеспечение исключает термин смещения (β0) из штрафа за регуляризацию.
Если Solver является 'sparsa', то значение по умолчанию Regularization является 'lasso'. В противном случае значение по умолчанию - 'ridge'.
Совет
Для выбора переменной предиктора укажите 'lasso'. Дополнительные сведения о выборе переменных см. в разделе Введение в выбор элементов.
Для точности оптимизации укажите 'ridge'.
Пример: 'Regularization','lasso'
'Solver' - Метод минимизации целевой функции'sgd' | 'asgd' | 'dual' | 'bfgs' | 'lbfgs' | 'sparsa' | строковый массив | массив ячеек символьных векторовМетод минимизации целевой функции, указанный как пара, разделенная запятыми, состоящая из 'Solver' и символьный вектор или строковый скаляр, строковый массив или массив ячеек символьных векторов со значениями из этой таблицы.
| Стоимость | Описание | Ограничения |
|---|---|---|
'sgd' | Стохастический градиентный спуск (SGD) [4][2] | |
'asgd' | Средний стохастический градиентный спуск (ASGD) [7] | |
'dual' | Двойной SGD для SVM [1][6] | Regularization должно быть 'ridge' и Learner должно быть 'svm'. |
'bfgs' | Алгоритм Бройдена-Флетчера-Гольдфарба-Шанно квази-Ньютона (BFGS) [3] | Неэффективно, если X является очень высокоразмерным. |
'lbfgs' | Ограниченная память BFGS (LBFGS) [3] | Regularization должно быть 'ridge'. |
'sparsa' | Разреженная реконструкция по разделяемому приближению (SpaRSA) [5] | Regularization должно быть 'lasso'. |
При указании:
Штраф по гребню (см. Regularization) и X содержит 100 или менее переменных предиктора, тогда решателем по умолчанию является 'bfgs'.
Модель SVM (см. Learner), штраф по гребню и X содержит более 100 переменных предиктора, тогда решателем по умолчанию является 'dual'.
Лассо пенальти и X содержит 100 или менее переменных предиктора, тогда решателем по умолчанию является 'sparsa'.
В противном случае решателем по умолчанию является 'sgd'.
Если указан строковый массив или массив ячеек имен решателей, программа использует все решатели в указанном порядке для каждого из них Lambda.
Дополнительные сведения о том, какой решатель выбрать, см. в разделе Советы.
Пример: 'Solver',{'sgd','lbfgs'}
'Beta' - Начальные оценки линейных коэффициентовzeros(p,1) (по умолчанию) | числовой вектор | числовая матрицаНачальные оценки линейных коэффициентов (β), определенные как разделенная запятыми пара, состоящая из 'Beta' и p-мерный числовой вектор или p-на-L-числовую матрицу. p - количество переменных предиктора в X и L - количество значений прочности на регуляризацию (подробнее см. Lambda).
Если задать p-мерный вектор, то программное обеспечение оптимизирует целевую функцию L раз, используя этот процесс.
Программное обеспечение оптимизирует использование Beta в качестве начального значения и минимального значения Lambda в качестве силы регуляризации.
Программное обеспечение снова оптимизирует, используя оценку, полученную в результате предыдущей оптимизации, как теплое начало, и следующее наименьшее значение в Lambda в качестве силы регуляризации.
Программное обеспечение реализует шаг 2, пока не исчерпает все значения в Lambda.
Если задать матрицу p-by-L, то программное обеспечение оптимизирует целевую функцию L раз. При итерации j, программное обеспечение использует Beta(:, как начальное значение и, после его сортировки j)Lambda по возрастанию, использует Lambda( в качестве силы регуляризации.j)
Если установить 'Solver','dual', то программное обеспечение игнорирует Beta.
Типы данных: single | double
'Bias' - Первоначальная оценка перехватаНачальная оценка перехвата (b), указанная как пара, разделенная запятыми, состоящая из 'Bias' и числовой скаляр или L-мерный числовой вектор. L - количество значений прочности на регуляризацию (подробнее см. Lambda).
Если указать скаляр, то программное обеспечение оптимизирует целевую функцию L раз, используя этот процесс.
Программное обеспечение оптимизирует использование Bias в качестве начального значения и минимального значения Lambda в качестве силы регуляризации.
Использует результирующую оценку в качестве теплого начала следующей итерации оптимизации и использует следующее наименьшее значение в Lambda в качестве силы регуляризации.
Программное обеспечение реализует шаг 2, пока не исчерпает все значения в Lambda.
Если задать L-мерный вектор, то программа оптимизирует целевую функцию L раз. При итерации j, программное обеспечение использует Bias( как начальное значение и, после его сортировки j)Lambda по возрастанию, использует Lambda( в качестве силы регуляризации.j)
По умолчанию:
Если Learner является 'logistic', то пусть gj будет 1, если Y( является положительным классом, а в противном случае -1. j)Bias - средневзвешенное значение g для обучения или, для перекрестной проверки, для кратных наблюдений.
Если Learner является 'svm', то Bias равно 0.
Типы данных: single | double
'FitBias' - Флаг включения пересечения линейной моделиtrue (по умолчанию) | falseФлаг включения пересечения линейной модели, заданный как разделенная запятыми пара, состоящая из 'FitBias' и true или false.
| Стоимость | Описание |
|---|---|
true | Программное обеспечение включает член смещения b в линейную модель, а затем оценивает его. |
false | Программное обеспечение устанавливает b = 0 во время оценки. |
Пример: 'FitBias',false
Типы данных: logical
'PostFitBias' - Флаг, соответствующий пересечению линейной модели после оптимизацииfalse (по умолчанию) | trueФлаг, соответствующий пересечению линейной модели после оптимизации, указанный как разделенная запятыми пара, состоящая из 'PostFitBias' и true или false.
| Стоимость | Описание |
|---|---|
false | Программное обеспечение оценивает член смещения b и коэффициенты β во время оптимизации. |
true |
Для оценки b программное обеспечение:
|
При указании true, то FitBias должно быть истинно.
Пример: 'PostFitBias',true
Типы данных: logical
'Verbose' - Уровень детализации0 (по умолчанию) | неотрицательное целое числоУровень детализации, указанный как разделенная запятыми пара, состоящая из 'Verbose' и неотрицательное целое число. Verbose управляет объемом диагностической информации fitclinear отображается в командной строке.
| Стоимость | Описание |
|---|---|
0 | fitclinear не отображает диагностическую информацию. |
1 | fitclinear периодически отображает и сохраняет значение целевой функции, величину градиента и другую диагностическую информацию. FitInfo.History содержит диагностическую информацию. |
| Любое другое положительное целое число | fitclinear отображает и сохраняет диагностическую информацию в каждой итерации оптимизации. FitInfo.History содержит диагностическую информацию. |
Пример: 'Verbose',1
Типы данных: double | single
'BatchSize' - Размер мини-партииРазмер мини-партии, указанный как разделенная запятыми пара, состоящая из 'BatchSize' и положительное целое число. При каждой итерации программное обеспечение оценивает субградент с помощью BatchSize наблюдения из данных обучения.
Если X является числовой матрицей, тогда значением по умолчанию является 10.
Если X является разреженной матрицей, тогда значением по умолчанию является max([10,ceil(sqrt(ff))]), где ff = numel(X)/nnz(X) (коэффициент полноты X).
Пример: 'BatchSize',100
Типы данных: single | double
'LearnRate' - Коэффициент обученияСкорость обучения, указанная как разделенная запятыми пара, состоящая из 'LearnRate' и положительный скаляр. LearnRate управляет размером шага оптимизации путем масштабирования подукладчика.
Если Regularization является 'ridge', то LearnRate определяет начальную скорость обучения γ 0. fitclinear определяет скорость обучения для итерации t, γ t, используя
λ γ 0t) c.
Если Regularization является 'lasso', то для всех итераций, LearnRate является постоянной.
По умолчанию LearnRate является 1/sqrt(1+max((sum(X.^2,obsDim)))), где obsDim является 1 если наблюдения составляют столбцы данных предиктора X, и 2 в противном случае.
Пример: 'LearnRate',0.01
Типы данных: single | double
'OptimizeLearnRate' - Флаг для снижения уровня обученияtrue (по умолчанию) | falseФлаг для уменьшения скорости обучения, когда программное обеспечение обнаруживает дивергенцию (то есть превышение минимального шага), заданную как пара, разделенная запятыми, состоящая из 'OptimizeLearnRate' и true или false.
Если OptimizeLearnRate является 'true', затем:
Для нескольких итераций оптимизации программа начинает оптимизацию с помощью LearnRate как скорость обучения.
Если значение целевой функции увеличивается, то программное обеспечение перезапускается и использует половину текущего значения скорости обучения.
Программное обеспечение выполняет этап 2 до тех пор, пока целевая функция не будет уменьшена.
Пример: 'OptimizeLearnRate',true
Типы данных: logical
'TruncationPeriod' - Количество мини-партий между прогонами усечения лассо10 (по умолчанию) | положительное целое числоКоличество мини-пакетов между прогонами усечения лассо, указанное как пара, разделенная запятыми, состоящая из 'TruncationPeriod' и положительное целое число.
После выполнения усечения программное обеспечение применяет мягкий порог к линейным коэффициентам. То есть после обработки k = TruncationPeriod мини-партии, программное обеспечение усекает оценочный коэффициент j, используя
ut.
Для SGD j - оценка коэффициента j после обработки k мини-партийkγ tλ. γ t - скорость обучения при итерации t.λ - значениеLambda.
Для ASGD j - усредненный оценочный коэффициент j после обработки k мини-партийkλ.
Если Regularization является 'ridge', то программное обеспечение игнорирует TruncationPeriod.
Пример: 'TruncationPeriod',100
Типы данных: single | double
'CategoricalPredictors' - Список категориальных предикторов'all'Список категориальных предикторов, указанный как одно из значений в этой таблице. В описаниях предполагается, что данные предиктора имеют наблюдения в строках и предикторы в столбцах.
| Стоимость | Описание |
|---|---|
| Вектор положительных целых чисел |
Каждая запись в векторе представляет собой значение индекса, соответствующее столбцу данных предиктора, который содержит категориальную переменную. Значения индекса находятся в диапазоне от 1 до Если |
| Логический вектор |
A |
| Символьная матрица | Каждая строка матрицы является именем предикторной переменной. Имена должны соответствовать записям в PredictorNames. Поместите имена с дополнительными пробелами, чтобы каждая строка символьной матрицы имела одинаковую длину. |
| Строковый массив или массив ячеек символьных векторов | Каждый элемент массива является именем переменной предиктора. Имена должны соответствовать записям в PredictorNames. |
'all' | Все предикторы категоричны. |
По умолчанию, если данные предиктора находятся в таблице (Tbl), fitclinear предполагает, что переменная категорична, если она является логическим вектором, категориальным вектором, символьным массивом, строковым массивом или массивом ячеек символьных векторов. Если данные предиктора являются матрицей (X), fitclinear предполагает, что все предикторы непрерывны. Чтобы определить любые другие предикторы как категориальные предикторы, укажите их с помощью 'CategoricalPredictors' аргумент «имя-значение».
Для выявленных категориальных предикторов fitclinear создает фиктивные переменные, используя две различные схемы, в зависимости от того, неупорядочена или упорядочена категориальная переменная. Для неупорядоченной категориальной переменной fitclinear создает одну фиктивную переменную для каждого уровня категориальной переменной. Для упорядоченной категориальной переменной fitclinear создает на одну фиктивную переменную меньше числа категорий. Дополнительные сведения см. в разделе Автоматическое создание фиктивных переменных.
Пример: 'CategoricalPredictors','all'
Типы данных: single | double | logical | char | string | cell
'ClassNames' - Названия классов, используемых для обученияИмена классов, используемых для обучения, указанные как категориальный, символьный или строковый массив; логический или числовой вектор; или массив ячеек символьных векторов. ClassNames должен иметь тот же тип данных, что и переменная ответа в Tbl или Y.
Если ClassNames является символьным массивом, то каждый элемент должен соответствовать одной строке массива.
Использовать ClassNames кому:
Укажите порядок занятий во время обучения.
Укажите порядок любого измерения входного или выходного аргумента, соответствующего порядку класса. Например, использовать ClassNames для указания порядка размеров Cost или порядок столбцов классификационных баллов, возвращенных predict.
Выберите подмножество классов для обучения. Например, предположим, что набор всех различных имен классов в Y является {'a','b','c'}. Обучение модели с использованием наблюдений из классов 'a' и 'c' только, укажите 'ClassNames',{'a','c'}.
Значение по умолчанию для ClassNames - набор всех различающихся имен классов в переменной ответа в Tbl или Y.
Пример: 'ClassNames',{'b','g'}
Типы данных: categorical | char | string | logical | single | double | cell
'Cost' - Расходы на неправильную классификациюСтоимость неправильной классификации, указанная как разделенная запятыми пара, состоящая из 'Cost' и квадратную матрицу или структуру.
При указании квадратной матрицы cost ('Cost',cost), то cost(i,j) - стоимость классификации точки по классу j если его истинный класс i. То есть строки соответствуют истинному классу, а столбцы - прогнозируемому классу. Определение порядка классов для соответствующих строк и столбцов cost, используйте ClassNames аргумент пары имя-значение.
При указании структуры S ('Cost',S), то он должен иметь два поля:
S.ClassNames, который содержит имена классов в качестве переменной того же типа данных, что и Y
S.ClassificationCosts, которая содержит матрицу затрат со строками и столбцами, упорядоченными как в S.ClassNames
Значение по умолчанию для Cost является ones(, где K) – eye(K)K - количество различных классов.
fitclinear использование Cost для корректировки вероятностей предыдущего класса, указанных в Prior. Затем, fitclinear использует скорректированные предыдущие вероятности для обучения и сбрасывает матрицу затрат до значения по умолчанию.
Пример: 'Cost',[0 2; 1 0]
Типы данных: single | double | struct
'PredictorNames' - Имена переменных предиктораИмена переменных предиктора, заданные как строковый массив уникальных имен или массив ячеек уникальных векторов символов. Функциональные возможности 'PredictorNames' зависит от способа ввода данных обучения.
Если вы поставляете X и Y, то вы можете использовать 'PredictorNames' назначение имен переменным предиктора в X.
Порядок имен в PredictorNames должен соответствовать порядку предиктора в X. Предполагая, что X имеет ориентацию по умолчанию с наблюдениями в строках и предикторами в столбцах, PredictorNames{1} является именем X(:,1), PredictorNames{2} является именем X(:,2)и так далее. Также, size(X,2) и numel(PredictorNames) должно быть равным.
По умолчанию PredictorNames является {'x1','x2',...}.
Если вы поставляете Tbl, то вы можете использовать 'PredictorNames' чтобы выбрать, какие переменные предиктора использовать в обучении. То есть fitclinear использует только переменные предиктора в 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' аргумент пары имя-значение, затем упорядочить элементы соответствующим образом. |
| структурный массив |
Структура
|
fitclinear нормализует предыдущие вероятности в Prior для суммирования в 1.
Пример: 'Prior',struct('ClassNames',{{'setosa','versicolor'}},'ClassProbs',1:2)
Типы данных: char | string | double | single | struct
'ResponseName' - Имя переменной ответа'Y' (по умолчанию) | символьный вектор | строковый скалярИмя переменной ответа, указанное как вектор символа или скаляр строки.
Если вы поставляете Y, то вы можете использовать 'ResponseName' для указания имени переменной ответа.
Если вы поставляете ResponseVarName или formula, то вы не можете использовать 'ResponseName'.
Пример: 'ResponseName','response'
Типы данных: char | string
'ScoreTransform' - Преобразование баллов'none' (по умолчанию) | 'doublelogit' | 'invlogit' | 'ismax' | 'logit' | дескриптор функции |...Преобразование оценки, указанное как вектор символа, скаляр строки или дескриптор функции.
В этой таблице представлены доступные векторы символов и строковые скаляры.
| Стоимость | Описание |
|---|---|
'doublelogit' | 1/( 1 + e-2x) |
'invlogit' | log (x/( 1 - x)) |
'ismax' | Устанавливает балл для класса с наибольшим баллом в 1 и устанавливает балл для всех остальных классов в 0 |
'logit' | 1/( 1 + e-x) |
'none' или 'identity' | x (без преобразования) |
'sign' | -1 для x < 0 0 для x = 0 1 для x > 0 |
'symmetric' | 2x – 1 |
'symmetricismax' | Устанавливает балл для класса с наибольшим баллом в 1 и устанавливает балл для всех остальных классов в -1 |
'symmetriclogit' | 2/( 1 + e-x) - 1 |
Для функции MATLAB или определяемой функции используйте ее дескриптор функции для преобразования оценки. Дескриптор функции должен принимать матрицу (исходные баллы) и возвращать матрицу того же размера (преобразованные баллы).
Пример: 'ScoreTransform','logit'
Типы данных: char | string | function_handle
'Weights' - Наблюдательные весаTblВеса наблюдения, указанные как неотрицательный числовой вектор или имя переменной в Tbl. Программное обеспечение взвешивает каждое наблюдение в X или Tbl с соответствующим значением в Weights. Длина Weights должно равняться количеству наблюдений в X или Tbl.
Если входные данные указаны как таблица Tbl, то Weights может быть именем переменной в Tbl содержит числовой вектор. В этом случае необходимо указать Weights в виде вектора символов или строкового скаляра. Например, если вектор весов W хранится как Tbl.W, затем укажите его как 'W'. В противном случае программа обрабатывает все столбцы Tbl, в том числе W, в качестве предикторов или переменной ответа при обучении модели.
По умолчанию Weights является ones(n,1), где n - количество наблюдений в X или Tbl.
Программное обеспечение нормализуется Weights для суммирования значения предшествующей вероятности в соответствующем классе.
Типы данных: single | double | char | string
'CrossVal' - Флаг перекрестной проверки'off' (по умолчанию) | 'on' Флаг перекрестной проверки, заданный как пара, разделенная запятыми, состоящая из 'Crossval' и 'on' или 'off'.
При указании 'on', то программное обеспечение реализует 10-кратную перекрестную проверку.
Чтобы переопределить этот параметр перекрестной проверки, используйте один из следующих аргументов пары имя-значение: CVPartition, Holdout, или KFold. Чтобы создать модель с перекрестной проверкой, можно использовать только один аргумент пары имя-значение перекрестной проверки одновременно.
Пример: 'Crossval','on'
'CVPartition' - Раздел перекрестной проверки[] (по умолчанию) | cvpartition объект секционированияРаздел перекрестной проверки, указанный как разделенная запятыми пара, состоящая из 'CVPartition' и cvpartition объект секционирования, созданный cvpartition. Объект секционирования определяет тип перекрестной проверки, а также индексирование для наборов обучения и проверки.
Для создания перекрестно проверенной модели можно использовать только одну из следующих четырех опций: 'CVPartition', 'Holdout', или 'KFold'.
'Holdout' - Доля данных для проверки отсутствияДоля данных, используемых для проверки удержания, указанная как пара, разделенная запятыми, состоящая из 'Holdout' и скалярное значение в диапазоне (0,1). При указании 'Holdout',, затем программное обеспечение: p
Случайные резервы % данных в качестве данных проверки и обучение модели с использованием остальных данныхp*100
Хранит компактную обучаемую модель в Trained свойства перекрестной проверенной модели.
Для создания перекрестно проверенной модели можно использовать только одну из следующих четырех опций: 'CVPartition', 'Holdout', или 'KFold'.
Пример: 'Holdout',0.1
Типы данных: double | single
'KFold' - Количество складок10 (по умолчанию) | положительное целое значение больше 1Количество складок для использования в классификаторе с перекрестной проверкой, указанном как пара, разделенная запятыми, состоящая из 'KFold' и положительное целое значение больше 1. При указании, например, 'KFold',k, затем программное обеспечение:
Случайное разбиение данных на k наборов
Для каждого набора резервирует набор в качестве данных проверки и обучает модель, используя другие k-1 наборов
Сохраняет k компактные, обученные модели в ячейках k-by-1 клеточный вектор в Trained свойства перекрестной проверенной модели.
Для создания перекрестно проверенной модели можно использовать только одну из следующих четырех опций: 'CVPartition', 'Holdout', или 'KFold'.
Пример: 'KFold',8
Типы данных: single | double
'BatchLimit' - Максимальное количество партийМаксимальное количество обрабатываемых пакетов, указанное как пара, разделенная запятыми, состоящая из 'BatchLimit' и положительное целое число. При обработке программного обеспечения BatchLimit пакеты, он завершает оптимизацию.
По умолчанию:
При указании 'BatchLimit' и 'PassLimit', то программное обеспечение выбирает аргумент, который приводит к обработке наименьшего количества наблюдений.
При указании 'BatchLimit' но не 'PassLimit', затем программное обеспечение обрабатывает достаточное количество пакетов, чтобы завершить до одного полного прохода через данные.
Пример: 'BatchLimit',100
Типы данных: single | double
'BetaTolerance' - Относительный допуск по линейным коэффициентам и термину смещения1e-4 (по умолчанию) | неотрицательный скалярОтносительный допуск на линейные коэффициенты и член смещения (пересечение), указанный как разделенная запятыми пара, состоящая из 'BetaTolerance' и неотрицательный скаляр.
Пусть bt], то есть вектор коэффициентов и член смещения при итерации оптимизации т. Bt−Bt−1Bt‖2<BetaTolerance, то оптимизация заканчивается.
Если программное обеспечение сходится для последнего решателя, указанного в Solver, то оптимизация заканчивается. В противном случае программа использует следующий решатель, указанный в Solver.
Пример: 'BetaTolerance',1e-6
Типы данных: single | double
'NumCheckConvergence' - Количество пакетов для обработки перед следующей проверкой сходимостиКоличество пакетов для обработки перед следующей проверкой сходимости, указанное как разделенная запятыми пара, состоящая из 'NumCheckConvergence' и положительное целое число.
Чтобы указать размер партии, см. раздел BatchSize.
По умолчанию программа проверяет сходимость примерно в 10 раз за один проход по всему набору данных.
Пример: 'NumCheckConvergence',100
Типы данных: single | double
'PassLimit' - Максимальное количество проходов1 (по умолчанию) | положительное целое числоМаксимальное количество проходов через данные, указанное как разделенная запятыми пара, состоящая из 'PassLimit' и положительное целое число.
fitclinear обрабатывает все наблюдения по завершении одного прохода через данные.
Когда fitclinear проходит через данные PassLimit раз, он прекращает оптимизацию.
При указании 'BatchLimit' и 'PassLimit', то fitclinear выбирает аргумент, который приводит к обработке наименьшего количества наблюдений.
Пример: 'PassLimit',5
Типы данных: single | double
'ValidationData' - Данные проверки для обнаружения сходимости оптимизацииДанные проверки для обнаружения сходимости оптимизации, указанные как пара, разделенная запятыми, состоящая из 'ValidationData' и массив ячеек или таблицу.
Во время оптимизации программное обеспечение периодически оценивает потерю ValidationData. При увеличении потери данных проверки программное обеспечение завершает оптимизацию. Дополнительные сведения см. в разделе Алгоритмы. Чтобы оптимизировать гиперпараметры с помощью перекрестной проверки, см. параметры перекрестной проверки, такие как CrossVal.
Можно указать ValidationData как таблица, если используется таблица Tbl данных предиктора, который содержит переменную ответа. В этом случае ValidationData должны содержать те же предикторы и ответ, что и в Tbl. Программа не применяет веса к наблюдениям, даже если Tbl содержит вектор весов. Для указания весов необходимо указать ValidationData в виде массива ячеек.
При указании ValidationData в качестве массива ячеек он должен иметь следующий формат:
ValidationData{1} должен иметь тот же тип данных и ориентацию, что и данные предиктора. То есть, если вы используете матрицу предиктора X, то ValidationData{1} должна быть полной или разреженной матрицей m-by-p или p-by-m данных предиктора, которая имеет ту же ориентацию, что и X. Переменные предиктора в данных обучения X и ValidationData{1} должны соответствовать. Аналогично, если используется таблица предикторов Tbl данных предиктора, то ValidationData{1} должна быть таблицей, содержащей те же предикторные переменные, что и в Tbl. Количество наблюдений в ValidationData{1} и данные предиктора могут изменяться.
ValidationData{2} должны соответствовать типу данных и формату переменной ответа, либо Y или ResponseVarName. Если ValidationData{2} является массивом меток класса, то он должен иметь то же количество элементов, что и количество наблюдений в ValidationData{1}. Набор всех отдельных меток ValidationData{2} должен быть подмножеством всех отдельных меток Y. Если ValidationData{1} является таблицей, то ValidationData{2} может быть именем переменной ответа в таблице. Если вы хотите использовать то же самое ResponseVarName или formula, можно указать ValidationData{2} как [].
При необходимости можно указать ValidationData{3} в виде m-мерного числового вектора весов наблюдения или имени переменной в таблице ValidationData{1} содержит веса наблюдения. Программа нормализует весовые коэффициенты с данными проверки таким образом, чтобы они равнялись 1.
При указании ValidationData и хотите отобразить потерю проверки в командной строке, укажите значение больше 0 для Verbose.
Если программное обеспечение сходится для последнего решателя, указанного в Solver, то оптимизация заканчивается. В противном случае программа использует следующий решатель, указанный в Solver.
По умолчанию программа не обнаруживает сходимость путем мониторинга потери данных проверки.
'BetaTolerance' - Относительный допуск по линейным коэффициентам и термину смещения1e-4 (по умолчанию) | неотрицательный скалярОтносительный допуск на линейные коэффициенты и член смещения (пересечение), указанный как разделенная запятыми пара, состоящая из 'BetaTolerance' и неотрицательный скаляр.
Пусть bt], то есть вектор коэффициентов и член смещения при итерации оптимизации т. Bt−Bt−1Bt‖2<BetaTolerance, то оптимизация заканчивается.
Если также указать DeltaGradientTolerance, то оптимизация завершается, когда программное обеспечение удовлетворяет любому критерию остановки.
Если программное обеспечение сходится для последнего решателя, указанного в Solver, то оптимизация заканчивается. В противном случае программа использует следующий решатель, указанный в Solver.
Пример: 'BetaTolerance',1e-6
Типы данных: single | double
'DeltaGradientTolerance' - Допуск разности градиентов1 (по умолчанию) | неотрицательный скалярГрадиентно-разностный допуск между нарушителями условий комплементарности верхнего и нижнего пулов Karush-Kuhn-Tucker (KKT), определяемый как разделенная запятыми пара, состоящая из 'DeltaGradientTolerance' и неотрицательный скаляр.
Если магнитуда нарушителей ККТ меньше DeltaGradientTolerance, то программное обеспечение завершает оптимизацию.
Если программное обеспечение сходится для последнего решателя, указанного в Solver, то оптимизация заканчивается. В противном случае программа использует следующий решатель, указанный в Solver.
Пример: 'DeltaGapTolerance',1e-2
Типы данных: double | single
'NumCheckConvergence' - Количество проходов через весь набор данных для обработки перед следующей проверкой сходимости5 (по умолчанию) | положительное целое числоКоличество проходов через весь набор данных для обработки перед следующей проверкой сходимости, указанной как пара, разделенная запятыми, состоящая из 'NumCheckConvergence' и положительное целое число.
Пример: 'NumCheckConvergence',100
Типы данных: single | double
'PassLimit' - Максимальное количество проходов10 (по умолчанию) | положительное целое числоМаксимальное количество проходов через данные, указанное как разделенная запятыми пара, состоящая из 'PassLimit' и положительное целое число.
Когда программное обеспечение завершает один проход через данные, оно обрабатывает все наблюдения.
Когда программное обеспечение проходит через данные PassLimit раз, он прекращает оптимизацию.
Пример: 'PassLimit',5
Типы данных: single | double
'ValidationData' - Данные проверки для обнаружения сходимости оптимизацииДанные проверки для обнаружения сходимости оптимизации, указанные как пара, разделенная запятыми, состоящая из 'ValidationData' и массив ячеек или таблицу.
Во время оптимизации программное обеспечение периодически оценивает потерю ValidationData. При увеличении потери данных проверки программное обеспечение завершает оптимизацию. Дополнительные сведения см. в разделе Алгоритмы. Чтобы оптимизировать гиперпараметры с помощью перекрестной проверки, см. параметры перекрестной проверки, такие как CrossVal.
Можно указать ValidationData как таблица, если используется таблица Tbl данных предиктора, который содержит переменную ответа. В этом случае ValidationData должны содержать те же предикторы и ответ, что и в Tbl. Программа не применяет веса к наблюдениям, даже если Tbl содержит вектор весов. Для указания весов необходимо указать ValidationData в виде массива ячеек.
При указании ValidationData в качестве массива ячеек он должен иметь следующий формат:
ValidationData{1} должен иметь тот же тип данных и ориентацию, что и данные предиктора. То есть, если вы используете матрицу предиктора X, то ValidationData{1} должна быть полной или разреженной матрицей m-by-p или p-by-m данных предиктора, которая имеет ту же ориентацию, что и X. Переменные предиктора в данных обучения X и ValidationData{1} должны соответствовать. Аналогично, если используется таблица предикторов Tbl данных предиктора, то ValidationData{1} должна быть таблицей, содержащей те же предикторные переменные, что и в Tbl. Количество наблюдений в ValidationData{1} и данные предиктора могут изменяться.
ValidationData{2} должны соответствовать типу данных и формату переменной ответа, либо Y или ResponseVarName. Если ValidationData{2} является массивом меток класса, то он должен иметь то же количество элементов, что и количество наблюдений в ValidationData{1}. Набор всех отдельных меток ValidationData{2} должен быть подмножеством всех отдельных меток Y. Если ValidationData{1} является таблицей, то ValidationData{2} может быть именем переменной ответа в таблице. Если вы хотите использовать то же самое ResponseVarName или formula, можно указать ValidationData{2} как [].
При необходимости можно указать ValidationData{3} в виде m-мерного числового вектора весов наблюдения или имени переменной в таблице ValidationData{1} содержит веса наблюдения. Программа нормализует весовые коэффициенты с данными проверки таким образом, чтобы они равнялись 1.
При указании ValidationData и хотите отобразить потерю проверки в командной строке, укажите значение больше 0 для Verbose.
Если программное обеспечение сходится для последнего решателя, указанного в Solver, то оптимизация заканчивается. В противном случае программа использует следующий решатель, указанный в Solver.
По умолчанию программа не обнаруживает сходимость путем мониторинга потери данных проверки.
'BetaTolerance' - Относительный допуск по линейным коэффициентам и термину смещения1e-4 (по умолчанию) | неотрицательный скалярОтносительный допуск на линейные коэффициенты и член смещения (пересечение), указанный как разделенная запятыми пара, состоящая из 'BetaTolerance' и неотрицательный скаляр.
Пусть bt], то есть вектор коэффициентов и член смещения при итерации оптимизации т. Bt−Bt−1Bt‖2<BetaTolerance, то оптимизация заканчивается.
Если также указать GradientTolerance, то оптимизация завершается, когда программное обеспечение удовлетворяет любому критерию остановки.
Если программное обеспечение сходится для последнего решателя, указанного в Solver, то оптимизация заканчивается. В противном случае программа использует следующий решатель, указанный в Solver.
Пример: 'BetaTolerance',1e-6
Типы данных: single | double
'GradientTolerance' - Абсолютный градиентный допуск1e-6 (по умолчанию) | неотрицательный скалярАбсолютный градиентный допуск, заданный как разделенная запятыми пара, состоящая из 'GradientTolerance' и неотрицательный скаляр.
Пусть является градиентным вектором целевой функции относительно коэффициентов и члена смещения при итерации оптимизации T. Если ∇ℒt‖∞=max|∇ℒt|<GradientTolerance, то оптимизация заканчивается.
Если также указать BetaTolerance, то оптимизация завершается, когда программное обеспечение удовлетворяет любому критерию остановки.
Если программное обеспечение сходится для последнего решателя, указанного в программном обеспечении, оптимизация завершается. В противном случае программа использует следующий решатель, указанный в Solver.
Пример: 'GradientTolerance',1e-5
Типы данных: single | double
'HessianHistorySize' - Размер буфера истории для гессенского приближения15 (по умолчанию) | положительное целое числоРазмер буфера истории для гессенского приближения, определяемого как разделенная запятыми пара, состоящая из 'HessianHistorySize' и положительное целое число. То есть на каждой итерации программное обеспечение составляет гессен, используя статистику из последних HessianHistorySize итерации.
Программное обеспечение не поддерживает 'HessianHistorySize' для SpaRSA.
Пример: 'HessianHistorySize',10
Типы данных: single | double
'IterationLimit' - максимальное число итераций оптимизации;1000 (по умолчанию) | положительное целое числоМаксимальное число итераций оптимизации, указанное как пара, разделенная запятыми, состоящая из 'IterationLimit' и положительное целое число. IterationLimit применяется к этим значениям Solver: 'bfgs', 'lbfgs', и 'sparsa'.
Пример: 'IterationLimit',500
Типы данных: single | double
'ValidationData' - Данные проверки для обнаружения сходимости оптимизацииДанные проверки для обнаружения сходимости оптимизации, указанные как пара, разделенная запятыми, состоящая из 'ValidationData' и массив ячеек или таблицу.
Во время оптимизации программное обеспечение периодически оценивает потерю ValidationData. При увеличении потери данных проверки программное обеспечение завершает оптимизацию. Дополнительные сведения см. в разделе Алгоритмы. Чтобы оптимизировать гиперпараметры с помощью перекрестной проверки, см. параметры перекрестной проверки, такие как CrossVal.
Можно указать ValidationData как таблица, если используется таблица Tbl данных предиктора, который содержит переменную ответа. В этом случае ValidationData должны содержать те же предикторы и ответ, что и в Tbl. Программа не применяет веса к наблюдениям, даже если Tbl содержит вектор весов. Для указания весов необходимо указать ValidationData в виде массива ячеек.
При указании ValidationData в качестве массива ячеек он должен иметь следующий формат:
ValidationData{1} должен иметь тот же тип данных и ориентацию, что и данные предиктора. То есть, если вы используете матрицу предиктора X, то ValidationData{1} должна быть полной или разреженной матрицей m-by-p или p-by-m данных предиктора, которая имеет ту же ориентацию, что и X. Переменные предиктора в данных обучения X и ValidationData{1} должны соответствовать. Аналогично, если используется таблица предикторов Tbl данных предиктора, то ValidationData{1} должна быть таблицей, содержащей те же предикторные переменные, что и в Tbl. Количество наблюдений в ValidationData{1} и данные предиктора могут изменяться.
ValidationData{2} должны соответствовать типу данных и формату переменной ответа, либо Y или ResponseVarName. Если ValidationData{2} является массивом меток класса, то он должен иметь то же количество элементов, что и количество наблюдений в ValidationData{1}. Набор всех отдельных меток ValidationData{2} должен быть подмножеством всех отдельных меток Y. Если ValidationData{1} является таблицей, то ValidationData{2} может быть именем переменной ответа в таблице. Если вы хотите использовать то же самое ResponseVarName или formula, можно указать ValidationData{2} как [].
При необходимости можно указать ValidationData{3} в виде m-мерного числового вектора весов наблюдения или имени переменной в таблице ValidationData{1} содержит веса наблюдения. Программа нормализует весовые коэффициенты с данными проверки таким образом, чтобы они равнялись 1.
При указании ValidationData и хотите отобразить потерю проверки в командной строке, укажите значение больше 0 для Verbose.
Если программное обеспечение сходится для последнего решателя, указанного в Solver, то оптимизация заканчивается. В противном случае программа использует следующий решатель, указанный в Solver.
По умолчанию программа не обнаруживает сходимость путем мониторинга потери данных проверки.
'OptimizeHyperparameters' - Параметры для оптимизации'none' (по умолчанию) | 'auto' | 'all' | строковый массив или массив ячеек допустимых имен параметров | вектор optimizableVariable объектыПараметры для оптимизации, указанные как пара, разделенная запятыми, состоящая из 'OptimizeHyperparameters' и одно из следующих:
'none' - Не оптимизировать.
'auto' - Использование {'Lambda','Learner'}.
'all' - Оптимизируйте все подходящие параметры.
Строковый массив или массив ячеек допустимых имен параметров.
Вектор optimizableVariable объекты, обычно выходные данные hyperparameters.
Оптимизация пытается минимизировать потери при перекрестной проверке (ошибка) для fitclinear путем изменения параметров. Сведения о потере при перекрестной проверке (хотя и в другом контексте) см. в разделе Потеря классификации. Для управления типом перекрестной проверки и другими аспектами оптимизации используйте HyperparameterOptimizationOptions пара имя-значение.
Примечание
'OptimizeHyperparameters' значения переопределяют любые значения, заданные с помощью других аргументов пары «имя-значение». Например, настройка 'OptimizeHyperparameters' кому 'auto' вызывает 'auto' значения для применения.
Подходящие параметры для fitclinear являются:
Lambda — fitclinear поиск среди положительных значений, по умолчанию с логарифмическим масштабированием в диапазоне [1e-5/NumObservations,1e5/NumObservations].
Learner — fitclinear поиск среди 'svm' и 'logistic'.
Regularization — fitclinear поиск среди 'ridge' и 'lasso'.
Установка параметров, не используемых по умолчанию, путем передачи вектора optimizableVariable объекты, не имеющие значений по умолчанию. Например,
load fisheriris params = hyperparameters('fitclinear',meas,species); params(1).Range = [1e-4,1e6];
Проход params как значение OptimizeHyperparameters.
По умолчанию итеративное отображение отображается в командной строке, а графики отображаются в соответствии с количеством гиперпараметров в оптимизации. Для оптимизации и графиков целевой функцией является log ( 1 + потери при перекрестной проверке) для регрессии и коэффициент неправильной классификации для классификации. Для управления итеративным отображением установите Verbose области 'HyperparameterOptimizationOptions' аргумент пары имя-значение. Для управления графиками установите ShowPlots области 'HyperparameterOptimizationOptions' аргумент пары имя-значение.
Пример см. в разделе Оптимизация линейного классификатора.
Пример: 'OptimizeHyperparameters','auto'
'HyperparameterOptimizationOptions' - Варианты оптимизацииОпции оптимизации, указанные как разделенная запятыми пара, состоящая из 'HyperparameterOptimizationOptions' и структура. Этот аргумент изменяет эффект OptimizeHyperparameters аргумент пары имя-значение. Все поля в структуре являются необязательными.
| Имя поля | Ценности | Дефолт |
|---|---|---|
Optimizer |
| 'bayesopt' |
AcquisitionFunctionName |
Функции приобретения, имена которых включают | 'expected-improvement-per-second-plus' |
MaxObjectiveEvaluations | Максимальное количество оценок целевой функции. | 30 для 'bayesopt' или 'randomsearch'и вся сетка для 'gridsearch' |
MaxTime | Ограничение по времени, указанное как положительный реал. Ограничение по времени в секундах, измеренное | Inf |
NumGridDivisions | Для 'gridsearch', количество значений в каждом измерении. Значение может быть вектором положительных целых чисел, дающим количество значений для каждого измерения, или скаляром, который применяется ко всем измерениям. Это поле игнорируется для категориальных переменных. | 10 |
ShowPlots | Логическое значение, указывающее, показывать ли графики. Если trueв этом поле отображается наилучшее значение целевой функции относительно номера итерации. Если имеется один или два параметра оптимизации, и если Optimizer является 'bayesopt', то ShowPlots также строит график модели целевой функции по параметрам. | true |
SaveIntermediateResults | Логическое значение, указывающее, сохранять ли результаты при Optimizer является 'bayesopt'. Если true, это поле перезаписывает переменную рабочей области с именем 'BayesoptResults' на каждой итерации. Переменная является BayesianOptimization объект. | false |
Verbose | Отображение в командной строке.
Для получения более подробной информации см. | 1 |
UseParallel | Логическое значение, указывающее, выполнять ли байесовскую оптимизацию параллельно, что требует Toolbox™ параллельных вычислений. Из-за непродуктивности параллельной синхронизации параллельная байесовская оптимизация не обязательно дает воспроизводимые результаты. Дополнительные сведения см. в разделе Параллельная байесовская оптимизация. | false |
Repartition | Логическое значение, указывающее, следует ли перераспределять перекрестную проверку при каждой итерации. Если
| false |
| Используйте не более одного из следующих трех имен полей. | ||
CVPartition | A cvpartition объект, созданный cvpartition. | 'Kfold',5 если не указано какое-либо поле перекрестной проверки |
Holdout | Скаляр в диапазоне (0,1) представляет собой удерживающую фракцию. | |
Kfold | Целое число больше 1. | |
Пример: 'HyperparameterOptimizationOptions',struct('MaxObjectiveEvaluations',60)
Типы данных: struct
Mdl - Обученная модель линейной классификацииClassificationLinear объект модели | ClassificationPartitionedLinear объект модели с перекрестной проверкойОбученная модель линейной классификации, возвращенная как ClassificationLinear объект модели или ClassificationPartitionedLinear объект модели с перекрестной проверкой.
Если задать какой-либо из аргументов пары имя-значение KFold, Holdout, CrossVal, или CVPartition, то Mdl является ClassificationPartitionedLinear объект модели с перекрестной проверкой. В противном случае Mdl является ClassificationLinear объект модели.
Для ссылки на свойства Mdl, используйте точечную нотацию. Например, введите Mdl.Beta в окне команд для отображения вектора или матрицы оцененных коэффициентов.
Примечание
В отличие от других классификационных моделей, и для экономичного использования памяти, ClassificationLinear и ClassificationPartitionedLinear объекты модели не хранят данные обучения или сведения о процессе обучения (например, историю сходимости).
FitInfo - Сведения об оптимизацииСведения об оптимизации, возвращаемые в виде массива структуры.
Поля определяют конечные значения или параметры пары «имя-значение», например: Objective - значение целевой функции при завершении оптимизации. Строки многомерных полей соответствуют значениям Lambda и столбцы соответствуют значениям Solver.
В этой таблице описаны некоторые важные поля.
| Область | Описание | ||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
TerminationStatus |
| ||||||||||||||
FitTime | Истекло, время настенных часов в секундах | ||||||||||||||
History | Структурный массив информации об оптимизации для каждой итерации. Область
|
Для доступа к полям используйте точечную нотацию. Например, чтобы получить доступ к вектору значений целевой функции для каждой итерации, введите FitInfo.History.Objective.
Это хорошая практика для изучения FitInfo оценить, является ли сходимость удовлетворительной.
HyperparameterOptimizationResults - Оптимизация гиперпараметров при перекрестной проверкеBayesianOptimization object | таблица гиперпараметров и связанных значенийОптимизация гиперпараметров с перекрестной проверкой, возвращаемая как BayesianOptimization объект или таблица гиперпараметров и связанных значений. Выходные данные не являются пустыми, если значение 'OptimizeHyperparameters' не является 'none'. Выходное значение зависит от Optimizer значение поля 'HyperparameterOptimizationOptions' аргумент пары имя-значение:
Значение Optimizer Область | Значение HyperparameterOptimizationResults |
|---|---|
'bayesopt' (по умолчанию) | Объект класса BayesianOptimization |
'gridsearch' или 'randomsearch' | Таблица используемых гиперпараметров, наблюдаемые значения целевой функции (потеря перекрестной проверки) и ранг наблюдений от самого низкого (лучший) до самого высокого (худший) |
Теплое начало - это начальные оценки бета-коэффициентов и члена смещения, подаваемые в подпрограмму оптимизации для более быстрой сходимости.
Высокомерные модели линейной классификации и регрессии минимизируют объективные функции относительно быстро, но за счет некоторой точности ограничения переменных предиктора только числа, и модель должна быть линейной по отношению к параметрам. Если набор данных предиктора является низко- или средномерным или содержит разнородные переменные, то следует использовать соответствующую функцию классификации или регрессионной подгонки. С помощью этой таблицы можно определить, какая функция фитинга подходит для низкоразмерного набора данных.
| Модель по размеру | Функция | Заметные алгоритмические различия |
|---|---|---|
| SVM |
| |
| Линейная регрессия |
| |
| Логистическая регрессия |
|
Рекомендуется ориентировать матрицу предиктора таким образом, чтобы наблюдения соответствовали столбцам и указывали 'ObservationsIn','columns'. В результате можно значительно сократить время оптимизации-выполнения.
Для лучшей точности оптимизации при наличии высокоразмерных данных предиктора и Regularization значение равно 'ridge', задайте любую из этих опций для Solver:
'sgd'
'asgd'
'dual' если Learner является 'svm'
{'sgd','lbfgs'}
{'asgd','lbfgs'}
{'dual','lbfgs'} если Learner является 'svm'
Другие варианты могут привести к низкой точности оптимизации.
Для лучшей точности оптимизации при наличии данных от умеренного до низкоразмерного предиктора и Regularization значение равно 'ridge', комплект Solver кому 'bfgs'.
Если Regularization является 'lasso', задайте любую из этих опций для Solver:
'sgd'
'asgd'
'sparsa'
{'sgd','sparsa'}
{'asgd','sparsa'}
При выборе между SGD и ASGD необходимо учитывать следующее:
SGD занимает меньше времени на одну итерацию, но для сходимости требуется больше итераций.
Для сходимости ASGD требуется меньше итераций, но на одну итерацию уходит больше времени.
Если ваши данные предиктора имеют мало наблюдений, но много переменных предиктора, то:
Определить 'PostFitBias',true.
Для решателей SGD или ASGD, установка PassLimit к положительному целому числу, которое больше 1, например, 5 или 10. Эта настройка часто приводит к лучшей точности.
Для решателей SGD и ASGD, BatchSize влияет на скорость сходимости.
Если BatchSize слишком мал, то fitclinear достигает минимума во многих итерациях, но быстро вычисляет градиент для каждой итерации.
Если BatchSize слишком большой, то fitclinear достигает минимума в меньшем количестве итераций, но вычисляет градиент на одну итерацию медленно.
Большие показатели обучения (см. LearnRate) ускорить сходимость до минимума, но может привести к расходимости (то есть переступить минимум). Небольшие показатели обучения обеспечивают сведение к минимуму, но могут привести к медленному прекращению обучения.
При использовании штрафов лассо экспериментируйте с различными значениями TruncationPeriod. Например, установить TruncationPeriod кому 1, 10, а затем 100.
Для эффективности, fitclinear не стандартизирует данные предиктора. Стандартизировать X, введите
X = bsxfun(@rdivide,bsxfun(@minus,X,mean(X,2)),std(X,0,2));
Код требует, чтобы предикторы и наблюдения были ориентированы как строки и столбцы Xсоответственно. Кроме того, для экономии использования памяти код заменяет исходные данные предиктора стандартизированными данными.
После обучения модели можно создать код C/C + +, который предсказывает метки для новых данных. Для создания кода C/C + + требуется Coder™ MATLAB. Дополнительные сведения см. в разделе Введение в создание кода.
При указании ValidationDataзатем во время оптимизации целевой функции:
fitclinear оценивает потерю проверки ValidationData периодически используя текущую модель, отслеживает минимальную оценку.
Когда fitclinear оценивает потерю проверки, он сравнивает оценку с минимальной оценкой.
Когда последующие оценки потерь проверки превышают минимальную оценку в пять раз, fitclinear завершает оптимизацию.
При указании ValidationData и для реализации процедуры перекрестной проверки (CrossVal, CVPartition, Holdout, или KFold), то:
fitclinear случайные разделы X и Y (или Tbl) в соответствии с выбранной процедурой перекрестной проверки.
fitclinear обучает модель с помощью раздела training-data. Во время оптимизации целевой функции, fitclinear использование ValidationData как еще один возможный способ завершения оптимизации (подробности см. в предыдущем маркере).
Однажды fitclinear удовлетворяет критерию остановки, строит обученную модель на основе оптимизированных линейных коэффициентов и перехвата.
Если реализована k-кратная перекрестная проверка, и fitclinear не исчерпал все складки тренировочного набора, то fitclinear возвращается к шагу 2 для обучения с использованием следующей складки набора тренировок.
В противном случае fitclinear завершает обучение, а затем возвращает перекрестную проверенную модель.
Можно определить качество перекрестно проверенной модели. Например:
Чтобы определить потерю проверки с помощью данных о задержке или отклонении от шага 1, передайте перекрестную проверенную модель в kfoldLoss.
Чтобы спрогнозировать наблюдения за удержанными или устаревшими данными с шага 1, передайте перекрестно проверенную модель в kfoldPredict.
[1] Hsieh, C. J., K. W. Chang, C. J. Лин, С. С. Кеэрти и С. Сундарараджан. «Метод двухкоординатного спуска для крупномасштабного линейного SVM». Материалы 25-й Международной конференции по машинному обучению, ICML "08, 2001, pp. 408-415.
[2] Лэнгфорд, Дж., Л. Ли и Т. Чжан. «Разреженное онлайн-обучение через усеченный градиент». Дж. Мач. Рес., т. 10, 2009, стр. 777-801.
[3] Nocedal, J. и С. Дж. Райт. Численная оптимизация, 2-е изд., Нью-Йорк: Спрингер, 2006.
[4] Шалев-Шварц, С., Я. Сингер и Н. Сребро. «Pegasos: Основной оценочный вычислитель субпогренов для SVM». Материалы 24-й Международной конференции по машинному обучению, ICML "07, 2007, стр. 807-814.
[5] Мастер, S. J., Р. Д. Ноуок и М. А. Т. Фигередо. «Разреженная реконструкция по разделяемому приближению». Транс. Сиг. Proc., том 57, № 7, 2009, стр. 2479-2493.
[6] Сяо, Линь. «Двойные методы усреднения для регуляризованного стохастического обучения и онлайн-оптимизации». Дж. Мач. Рес., т. 11, 2010, стр. 2543-2596.
[7] Сюй, Вэй. «К оптимальному однопроходному крупномасштабному обучению со усредненным стохастическим градиентным спуском». CoRR, abs/1107.2490, 2011.
Примечания и ограничения по использованию:
fitclinear не поддерживает высокий table данные.
Некоторые аргументы пары имя-значение имеют другие значения по умолчанию по сравнению со значениями по умолчанию для памяти fitclinear функция. Поддерживаемые аргументы пары имя-значение и любые различия:
'ObservationsIn' - Только поддержка 'rows'.
'Lambda' - Может быть 'auto' (по умолчанию) или скаляром.
'Learner'
'Regularization' - Только поддержка 'ridge'.
'Solver' - Только поддержка 'lbfgs'.
'FitBias' - Только поддержка true.
'Verbose' - Значение по умолчанию: 1.
'Beta'
'Bias'
'ClassNames'
'Cost'
'Prior'
'Weights' - Значение должно быть высоким массивом.
'HessianHistorySize'
'BetaTolerance' - Значение по умолчанию смягчено до 1e–3.
'GradientTolerance' - Значение по умолчанию смягчено до 1e–3.
'IterationLimit' - Значение по умолчанию смягчено до 20.
'OptimizeHyperparameters' - Значение 'Regularization' параметр должен быть 'ridge'.
'HyperparameterOptimizationOptions' - Для перекрестной проверки поддерживается только оптимизация по высоте 'Holdout' проверка. По умолчанию программа выбирает и резервирует 20% данных в качестве данных проверки отсутствия и обучает модель, используя остальные данные. С помощью этого аргумента можно указать другое значение для удерживаемой дроби. Например, укажите 'HyperparameterOptimizationOptions',struct('Holdout',0.3) зарезервировать 30% данных в качестве данных проверки.
Для больших массивов: fitclinear реализует LBFGS, распределяя вычисление потерь и градиента между различными частями массива высокого уровня в каждой итерации. Другие решатели недоступны для массивов tall.
При начальных значениях для Beta и Bias не даны, fitclinear корректирует начальные оценки параметров, подгоняя модель локально к частям данных и комбинируя коэффициенты путем усреднения.
Дополнительные сведения см. в разделе Массивы Tall.
Чтобы выполнить параллельную оптимизацию гиперпараметров, используйте 'HyperparameterOptimizationOptions', struct('UseParallel',true) аргумент name-value в вызове этой функции.
Дополнительные сведения об оптимизации параллельных гиперпараметров см. в разделе Параллельная байесовская оптимизация.
Общие сведения о параллельных вычислениях см. в разделе Запуск функций MATLAB с автоматической параллельной поддержкой (панель инструментов параллельных вычислений).
ClassificationLinear | ClassificationPartitionedLinear | fitcecoc | fitckernel | fitcsvm | fitglm | fitrlinear | kfoldLoss | kfoldPredict | lassoglm | predict | templateLinear | testcholdout
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.