Подгонка модели линейной регрессии к высокоразмерным данным
fitrlinear эффективно тренирует модели линейной регрессии с помощью высокоразмерных, полных или разреженных данных предиктора. Доступные модели линейной регрессии включают регуляризованные векторные машины поддержки (SVM) и методы регрессии методом наименьших квадратов. fitrlinear минимизирует целевую функцию, используя методы, которые сокращают время вычисления (например, стохастический градиентный спуск).
Для сокращения времени вычислений для высокомерного набора данных, который включает в себя множество переменных предиктора, обучайте модель линейной регрессии с помощью fitrlinear. Наборы данных предикторов с низкой и средней размерностью см. в разделе Альтернативы для данных с низкой размерностью.
возвращает модель линейной регрессии с использованием переменных предиктора в таблице Mdl = fitrlinear(Tbl,ResponseVarName)Tbl и значения ответа в Tbl.ResponseVarName.
указывает параметры, использующие один или несколько аргументов пары имя-значение в дополнение к любой из комбинаций входных аргументов в предыдущих синтаксисах. Например, можно задать перекрестную проверку, реализовать регрессию наименьших квадратов или указать тип регуляризации. Хорошей практикой является перекрестная проверка с использованием Mdl = fitrlinear(X,Y,Name,Value)'Kfold' аргумент пары имя-значение. Результаты перекрестной проверки определяют, насколько хорошо обобщается модель.
[ также возвращает подробности оптимизации гиперпараметров при передаче Mdl,FitInfo,HyperparameterOptimizationResults] = fitrlinear(___)OptimizeHyperparameters пара имя-значение.
Обучайте модель линейной регрессии, используя SVM, двойную SGD и регуляризацию хребта.
Моделирование 10000 наблюдений из этой модели
2x200 + e.
является редкой матрицей 10000 на 1000 с 10%-ми отличными от нуля стандартными нормальными элементами.
e - случайная нормальная ошибка со средним значением 0 и стандартным отклонением 0,3.
rng(1) % For reproducibility
n = 1e4;
d = 1e3;
nz = 0.1;
X = sprandn(n,d,nz);
Y = X(:,100) + 2*X(:,200) + 0.3*randn(n,1);Тренировка модели линейной регрессии. По умолчанию fitrlinear использует вспомогательные векторные машины с штрафом гребня и оптимизирует использование двойного SGD для SVM. Определите, насколько хорошо алгоритм оптимизации соответствует модели данным, извлекая сводку аппроксимации.
[Mdl,FitInfo] = fitrlinear(X,Y)
Mdl =
RegressionLinear
ResponseName: 'Y'
ResponseTransform: 'none'
Beta: [1000x1 double]
Bias: -0.0056
Lambda: 1.0000e-04
Learner: 'svm'
Properties, Methods
FitInfo = struct with fields:
Lambda: 1.0000e-04
Objective: 0.2725
PassLimit: 10
NumPasses: 10
BatchLimit: []
NumIterations: 100000
GradientNorm: NaN
GradientTolerance: 0
RelativeChangeInBeta: 0.4907
BetaTolerance: 1.0000e-04
DeltaGradient: 1.5816
DeltaGradientTolerance: 0.1000
TerminationCode: 0
TerminationStatus: {'Iteration limit exceeded.'}
Alpha: [10000x1 double]
History: []
FitTime: 0.1253
Solver: {'dual'}
Mdl является RegressionLinear модель. Вы можете пройти Mdl и обучение или новые данные для loss для проверки среднеквадратичной ошибки в выборке. Или, вы можете пройти Mdl и новые данные предиктора для predict прогнозировать ответы на новые наблюдения.
FitInfo является массивом структуры, содержащим, среди прочего, состояние завершения (TerminationStatus) и сколько времени решатель занял, чтобы подогнать модель к данным (FitTime). Рекомендуется использовать FitInfo чтобы определить, являются ли измерения оптимизации-завершения удовлетворительными. В этом случае fitrlinear достигнуто максимальное число итераций. Поскольку время обучения быстрое, можно переучить модель, но увеличить количество проходов через данные. Или попробуйте другой решатель, например LBFGS.
Чтобы определить хорошую силу лассо-штрафа для модели линейной регрессии, использующей наименьшие квадраты, реализуйте пятикратную перекрестную проверку.
Моделирование 10000 наблюдений из этой модели
2x200 + e.
редкая матрица 10000 на 1000 с 10%-ми отличными от нуля стандартными нормальными элементами.
e - случайная нормальная ошибка со средним значением 0 и стандартным отклонением 0,3.
rng(1) % For reproducibility
n = 1e4;
d = 1e3;
nz = 0.1;
X = sprandn(n,d,nz);
Y = X(:,100) + 2*X(:,200) + 0.3*randn(n,1);Создайте набор из 15 логарифмически разнесенных уровней регуляции от до .
Lambda = logspace(-5,-1,15);
Выполните перекрестную проверку моделей. Чтобы увеличить скорость выполнения, транспонируйте данные предиктора и укажите, что наблюдения находятся в столбцах. Оптимизируйте целевую функцию с помощью SpaRSA.
X = X'; CVMdl = fitrlinear(X,Y,'ObservationsIn','columns','KFold',5,'Lambda',Lambda,... 'Learner','leastsquares','Solver','sparsa','Regularization','lasso'); numCLModels = numel(CVMdl.Trained)
numCLModels = 5
CVMdl является RegressionPartitionedLinear модель. Поскольку fitrlinear реализует пятикратную перекрестную проверку, CVMdl содержит 5 RegressionLinear модели, которые программное обеспечение обучает на каждой складке.
Отображение первой обученной модели линейной регрессии.
Mdl1 = CVMdl.Trained{1}Mdl1 =
RegressionLinear
ResponseName: 'Y'
ResponseTransform: 'none'
Beta: [1000x15 double]
Bias: [1x15 double]
Lambda: [1x15 double]
Learner: 'leastsquares'
Properties, Methods
Mdl1 является RegressionLinear объект модели. fitrlinear построенный Mdl1 путем обучения на первых четырех складках. Поскольку Lambda - это последовательность сильных сторон регуляризации, вы можете думать о Mdl1 как 15 моделей, по одной для каждой силы регуляризации в Lambda.
Оценка перекрестно проверенного MSE.
mse = kfoldLoss(CVMdl);
Более высокие значения Lambda привести к предикторной переменной разреженности, которая является хорошим качеством регрессионной модели. Для каждой силы регуляризации следует обучить модель линейной регрессии, используя весь набор данных и те же опции, что и при перекрестной проверке моделей. Определите количество ненулевых коэффициентов на модель.
Mdl = fitrlinear(X,Y,'ObservationsIn','columns','Lambda',Lambda,... 'Learner','leastsquares','Solver','sparsa','Regularization','lasso'); numNZCoeff = sum(Mdl.Beta~=0);
На том же рисунке постройте график перекрестно подтвержденного MSE и частоты ненулевых коэффициентов для каждой силы регуляции. Постройте график всех переменных на шкале журнала.
figure [h,hL1,hL2] = plotyy(log10(Lambda),log10(mse),... log10(Lambda),log10(numNZCoeff)); hL1.Marker = 'o'; hL2.Marker = 'o'; ylabel(h(1),'log_{10} MSE') ylabel(h(2),'log_{10} nonzero-coefficient frequency') xlabel('log_{10} Lambda') hold off

Выберите индекс силы регуляризации, который уравновешивает предикторную переменную разреженность и низкий MSE (например, Lambda(10)).
idxFinal = 10;
Извлеките модель с минимальным значением MSE.
MdlFinal = selectModels(Mdl,idxFinal)
MdlFinal =
RegressionLinear
ResponseName: 'Y'
ResponseTransform: 'none'
Beta: [1000x1 double]
Bias: -0.0050
Lambda: 0.0037
Learner: 'leastsquares'
Properties, Methods
idxNZCoeff = find(MdlFinal.Beta~=0)
idxNZCoeff = 2×1
100
200
EstCoeff = Mdl.Beta(idxNZCoeff)
EstCoeff = 2×1
1.0051
1.9965
MdlFinal является RegressionLinear модель с одной прочностью регуляризации. Ненулевые коэффициенты EstCoeff близки к коэффициентам, моделирующим данные.
В этом примере показано, как оптимизировать гиперпараметры автоматически с помощью fitrlinear. В примере используются искусственные (смоделированные) данные для модели.
2x200 + e.
редкая матрица 10000 на 1000 с 10%-ми отличными от нуля стандартными нормальными элементами.
e - случайная нормальная ошибка со средним значением 0 и стандартным отклонением 0,3.
rng(1) % For reproducibility
n = 1e4;
d = 1e3;
nz = 0.1;
X = sprandn(n,d,nz);
Y = X(:,100) + 2*X(:,200) + 0.3*randn(n,1);Найдите гиперпараметры, которые минимизируют пятикратные потери при перекрестной проверке, используя автоматическую оптимизацию гиперпараметров.
Для воспроизводимости используйте 'expected-improvement-plus' функция приобретения.
hyperopts = struct('AcquisitionFunctionName','expected-improvement-plus'); [Mdl,FitInfo,HyperparameterOptimizationResults] = fitrlinear(X,Y,... 'OptimizeHyperparameters','auto',... 'HyperparameterOptimizationOptions',hyperopts)
|=====================================================================================================| | Iter | Eval | Objective: | Objective | BestSoFar | BestSoFar | Lambda | Learner | | | result | log(1+loss) | runtime | (observed) | (estim.) | | | |=====================================================================================================| | 1 | Best | 0.16029 | 0.8393 | 0.16029 | 0.16029 | 2.4206e-09 | svm | | 2 | Best | 0.14496 | 0.55333 | 0.14496 | 0.14601 | 0.001807 | svm | | 3 | Best | 0.13879 | 0.42441 | 0.13879 | 0.14065 | 2.4681e-09 | leastsquares | | 4 | Best | 0.115 | 0.39828 | 0.115 | 0.11501 | 0.021027 | leastsquares | | 5 | Accept | 0.44352 | 0.41855 | 0.115 | 0.1159 | 4.6795 | leastsquares | | 6 | Best | 0.11025 | 0.46318 | 0.11025 | 0.11024 | 0.010671 | leastsquares | | 7 | Accept | 0.13222 | 0.41191 | 0.11025 | 0.11024 | 8.6067e-08 | leastsquares | | 8 | Accept | 0.13262 | 0.38611 | 0.11025 | 0.11023 | 8.5109e-05 | leastsquares | | 9 | Accept | 0.13543 | 0.38747 | 0.11025 | 0.11021 | 2.7562e-06 | leastsquares | | 10 | Accept | 0.15751 | 0.60115 | 0.11025 | 0.11022 | 5.0559e-06 | svm | | 11 | Accept | 0.40673 | 0.51909 | 0.11025 | 0.1102 | 0.52074 | svm | | 12 | Accept | 0.16057 | 0.62674 | 0.11025 | 0.1102 | 0.00014292 | svm | | 13 | Accept | 0.16105 | 0.54953 | 0.11025 | 0.11018 | 1.0079e-07 | svm | | 14 | Accept | 0.12763 | 0.42777 | 0.11025 | 0.11019 | 0.0012085 | leastsquares | | 15 | Accept | 0.13504 | 0.38913 | 0.11025 | 0.11019 | 1.3981e-08 | leastsquares | | 16 | Accept | 0.11041 | 0.4437 | 0.11025 | 0.11026 | 0.0093968 | leastsquares | | 17 | Best | 0.10954 | 0.40244 | 0.10954 | 0.11003 | 0.010393 | leastsquares | | 18 | Accept | 0.10998 | 0.42486 | 0.10954 | 0.11002 | 0.010254 | leastsquares | | 19 | Accept | 0.45314 | 0.53248 | 0.10954 | 0.11001 | 9.9966 | svm | | 20 | Best | 0.10753 | 0.6322 | 0.10753 | 0.10759 | 0.022576 | svm | |=====================================================================================================| | Iter | Eval | Objective: | Objective | BestSoFar | BestSoFar | Lambda | Learner | | | result | log(1+loss) | runtime | (observed) | (estim.) | | | |=====================================================================================================| | 21 | Best | 0.10737 | 0.64783 | 0.10737 | 0.10728 | 0.010171 | svm | | 22 | Accept | 0.13448 | 0.39942 | 0.10737 | 0.10727 | 1.5344e-05 | leastsquares | | 23 | Best | 0.10645 | 0.55045 | 0.10645 | 0.10565 | 0.015495 | svm | | 24 | Accept | 0.13598 | 0.39638 | 0.10645 | 0.10559 | 4.5984e-07 | leastsquares | | 25 | Accept | 0.15962 | 0.64705 | 0.10645 | 0.10556 | 1.4302e-08 | svm | | 26 | Accept | 0.10689 | 0.55033 | 0.10645 | 0.10616 | 0.015391 | svm | | 27 | Accept | 0.13748 | 0.39817 | 0.10645 | 0.10614 | 1.001e-09 | leastsquares | | 28 | Accept | 0.10692 | 0.5724 | 0.10645 | 0.10639 | 0.015761 | svm | | 29 | Accept | 0.10681 | 0.5118 | 0.10645 | 0.10649 | 0.015777 | svm | | 30 | Accept | 0.34314 | 0.39349 | 0.10645 | 0.10651 | 0.39671 | leastsquares |


__________________________________________________________
Optimization completed.
MaxObjectiveEvaluations of 30 reached.
Total function evaluations: 30
Total elapsed time: 55.5211 seconds
Total objective function evaluation time: 14.899
Best observed feasible point:
Lambda Learner
________ _______
0.015495 svm
Observed objective function value = 0.10645
Estimated objective function value = 0.10651
Function evaluation time = 0.55045
Best estimated feasible point (according to models):
Lambda Learner
________ _______
0.015777 svm
Estimated objective function value = 0.10651
Estimated function evaluation time = 0.56915
Mdl =
RegressionLinear
ResponseName: 'Y'
ResponseTransform: 'none'
Beta: [1000x1 double]
Bias: -0.0018
Lambda: 0.0158
Learner: 'svm'
Properties, Methods
FitInfo = struct with fields:
Lambda: 0.0158
Objective: 0.2309
PassLimit: 10
NumPasses: 10
BatchLimit: []
NumIterations: 99989
GradientNorm: NaN
GradientTolerance: 0
RelativeChangeInBeta: 0.0641
BetaTolerance: 1.0000e-04
DeltaGradient: 1.1697
DeltaGradientTolerance: 0.1000
TerminationCode: 0
TerminationStatus: {'Iteration limit exceeded.'}
Alpha: [10000x1 double]
History: []
FitTime: 0.1001
Solver: {'dual'}
HyperparameterOptimizationResults =
BayesianOptimization with properties:
ObjectiveFcn: @createObjFcn/inMemoryObjFcn
VariableDescriptions: [3x1 optimizableVariable]
Options: [1x1 struct]
MinObjective: 0.1065
XAtMinObjective: [1x2 table]
MinEstimatedObjective: 0.1065
XAtMinEstimatedObjective: [1x2 table]
NumObjectiveEvaluations: 30
TotalElapsedTime: 55.5211
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]
Этот метод оптимизации проще, чем метод, показанный в разделе Найти хороший штраф Лассо с помощью перекрестной проверки, но не позволяет компенсировать сложность модели и потери при перекрестной проверке.
X - Данные предиктораДанные предиктора, заданные как полная или разреженная матрица n-by-p.
Длина Y и число замечаний в X должно быть равным.
Примечание
Если вы ориентируете матрицу предиктора так, чтобы наблюдения соответствовали столбцам, и укажите 'ObservationsIn','columns', то вы можете испытать значительное сокращение времени выполнения оптимизации.
Типы данных: single | double
Tbl - Образцы данныхОбразец данных, используемых для обучения модели, указанный как таблица. Каждая строка Tbl соответствует одному наблюдению, и каждый столбец соответствует одной прогнозирующей переменной. Дополнительно, Tbl может содержать один дополнительный столбец для переменной ответа. Многозначные переменные и массивы ячеек, отличные от массивов ячеек символьных векторов, не допускаются.
Если Tbl содержит переменную ответа, и вы хотите использовать все оставшиеся переменные в Tbl в качестве предикторов, затем укажите переменную ответа, используя ResponseVarName.
Если Tbl содержит переменную ответа, и требуется использовать только подмножество остальных переменных в Tbl в качестве предикторов, затем укажите формулу с помощью formula.
Если Tbl не содержит переменную ответа, затем укажите переменную ответа с помощью Y. Длина переменной ответа и количество строк в Tbl должно быть равным.
Типы данных: table
ResponseVarName - Имя переменной ответаTblИмя переменной ответа, указанное как имя переменной в Tbl. Переменная ответа должна быть числовым вектором.
Необходимо указать ResponseVarName в виде вектора символов или строкового скаляра. Например, если Tbl сохраняет переменную ответа Y как Tbl.Y, затем укажите его как 'Y'. В противном случае программа обрабатывает все столбцы Tbl, в том числе Y, в качестве предикторов при обучении модели.
Типы данных: char | string
formula - Пояснительная модель переменной ответа и подмножество переменных предиктораПояснительная модель переменной ответа и подмножество переменных предиктора, указанное как вектор символов или строковый скаляр в форме 'Y~x1+x2+x3'. В этой форме Y представляет переменную ответа, и x1, x2, и x3 представляют переменные предиктора.
Задание подмножества переменных в Tbl в качестве предикторов для обучения модели используйте формулу. Если задать формулу, программа не будет использовать переменные в Tbl которые не отображаются в formula.
Имена переменных в формуле должны быть обоими именами переменных в Tbl (Tbl.Properties.VariableNames) и допустимые идентификаторы MATLAB ®. Имена переменных можно проверить вTbl с помощью isvarname функция. Если имена переменных недопустимы, их можно преобразовать с помощью matlab.lang.makeValidName функция.
Типы данных: char | string
Примечание
Программное обеспечение обрабатывает NaN, пустой символьный вектор (''), пустая строка (""), <missing>, и <undefined> элементы как отсутствующие значения и удаляет наблюдения с любой из следующих характеристик:
Отсутствует значение в ответе (например, Y или ValidationData{2})
По крайней мере одно отсутствующее значение в наблюдении предиктора (например, строка в X или ValidationData{1})
NaN значение или 0 вес (например, значение в Weights или ValidationData{3})
Для экономии использования памяти рекомендуется перед обучением вручную удалять наблюдения, содержащие отсутствующие значения.
Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.
Mdl = fitrlinear(X,Y,'Learner','leastsquares','CrossVal','on','Regularization','lasso') указывает для реализации регрессии методом наименьших квадратов, реализует 10-кратную перекрестную проверку и указывает на включение термина регуляризации лассо.Примечание
Нельзя использовать любой аргумент пары имя-значение перекрестной проверки вместе с 'OptimizeHyperparameters' аргумент пары имя-значение. Можно изменить перекрестную проверку для 'OptimizeHyperparameters' только с помощью 'HyperparameterOptimizationOptions' аргумент пары имя-значение.
'Epsilon' - Половина ширины эпсилон-нечувствительной полосыiqr(Y)/13.49 (по умолчанию) | неотрицательное скалярное значениеПоловина ширины полосы, нечувствительной к эпсилону, указанной как пара, разделенная запятыми, состоящая из 'Epsilon' и неотрицательное скалярное значение. 'Epsilon' применяется только к учащимся SVM.
Дефолт Epsilon значение равно iqr(Y)/13.49, которая представляет собой оценку стандартного отклонения с использованием межквартильного диапазона переменной отклика Y. Если iqr(Y) равно нулю, тогда значение по умолчанию Epsilon значение равно 0,1.
Пример: 'Epsilon',0.3
Типы данных: single | double
'Lambda' - Сила термина «регуляризация»'auto' (по умолчанию) | неотрицательный скаляр | вектор неотрицательных значенийСила термина регуляризации, определяемая как разделенная запятыми пара, состоящая из 'Lambda' и 'auto', неотрицательный скаляр или вектор неотрицательных значений.
Для 'auto', Lambda = 1/n.
Если указана перекрестная проверка, аргумент пары имя-значение (например, CrossVal), то n - количество кратных наблюдений.
В противном случае n - размер обучающей выборки.
Для вектора неотрицательных значений: fitrlinear последовательно оптимизирует целевую функцию для каждого отдельного значения в Lambda в порядке возрастания.
Если Solver является 'sgd' или 'asgd' и Regularization является 'lasso', fitrlinear не использует предыдущие оценки коэффициентов в качестве теплого начала для следующей итерации оптимизации. В противном случае fitrlinear использует теплые старты.
Если Regularization является 'lasso', то любая оценка коэффициента 0 сохраняет свое значение, когда fitrlinear оптимизирует с использованием последующих значений в Lambda.
fitrlinear возвращает оценки коэффициентов для каждой заданной силы регуляризации.
Пример: 'Lambda',10.^(-(10:-2:2))
Типы данных: char | string | double | single
'Learner' - Тип модели линейной регрессии'svm' (по умолчанию) | 'leastsquares'Тип модели линейной регрессии, указанный как разделенная запятыми пара, состоящая из 'Learner' и 'svm' или 'leastsquares'.
В этой таблице + b.
β - вектор p-коэффициентов.
x - это наблюдение из переменных p-предиктора.
b - скалярное смещение.
| Стоимость | Алгоритм | Диапазон ответа | Функция потерь |
|---|---|---|---|
'leastsquares' | Линейная регрессия через обычные наименьшие квадраты | y ∊ (- ∞,∞) | Среднеквадратичная ошибка (MSE): f (x)] 2 |
'svm' | Поддержка векторной машинной регрессии | То же, что и 'leastsquares' | Эпсилон-нечувствительный: f (x) | − |
Пример: 'Learner','leastsquares'
'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) [5][3] | |
'asgd' | Средний стохастический градиентный спуск (ASGD) [8] | |
'dual' | Двойной SGD для SVM [2][7] | Regularization должно быть 'ridge' и Learner должно быть 'svm'. |
'bfgs' | Алгоритм Бройдена-Флетчера-Гольдфарба-Шанно квази-Ньютона (BFGS) [4] | Неэффективно, если X является очень высокоразмерным. |
'lbfgs' | Ограниченная память BFGS (LBFGS) [4] | Regularization должно быть 'ridge'. |
'sparsa' | Разреженная реконструкция по разделяемому приближению (SpaRSA) [6] | Regularization должно быть 'lasso'. |
При указании:
Штраф по гребню (см. Regularization) и size(X,1) <= 100 (100 или менее переменных предиктора), тогда решателем по умолчанию является 'bfgs'.
Регрессионная модель SVM (см. Learner), штраф по гребню и size(X,1) > 100 (более 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)
По умолчанию:
Типы данных: 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 управляет объемом диагностической информации fitrlinear отображается в командной строке.
| Стоимость | Описание |
|---|---|
0 | fitrlinear не отображает диагностическую информацию. |
1 | fitrlinear периодически отображает и сохраняет значение целевой функции, величину градиента и другую диагностическую информацию. FitInfo.History содержит диагностическую информацию. |
| Любое другое положительное целое число | fitrlinear отображает и сохраняет диагностическую информацию в каждой итерации оптимизации. 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. Программа определяет скорость обучения для итерации 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), fitrlinear предполагает, что переменная категорична, если она является логическим вектором, категориальным вектором, символьным массивом, строковым массивом или массивом ячеек символьных векторов. Если данные предиктора являются матрицей (X), fitrlinear предполагает, что все предикторы непрерывны. Чтобы определить любые другие предикторы как категориальные предикторы, укажите их с помощью 'CategoricalPredictors' аргумент «имя-значение».
Для выявленных категориальных предикторов fitrlinear создает фиктивные переменные, используя две различные схемы, в зависимости от того, неупорядочена или упорядочена категориальная переменная. Для неупорядоченной категориальной переменной fitrlinear создает одну фиктивную переменную для каждого уровня категориальной переменной. Для упорядоченной категориальной переменной fitrlinear создает на одну фиктивную переменную меньше числа категорий. Дополнительные сведения см. в разделе Автоматическое создание фиктивных переменных.
Пример: 'CategoricalPredictors','all'
Типы данных: single | double | logical | char | string | cell
'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' чтобы выбрать, какие переменные предиктора использовать в обучении. То есть fitrlinear использует только переменные предиктора в PredictorNames и переменную ответа во время обучения.
PredictorNames должен быть подмножеством Tbl.Properties.VariableNames и не может включать имя переменной ответа.
По умолчанию PredictorNames содержит имена всех переменных предиктора.
Хорошей практикой является определение предикторов для обучения с использованием 'PredictorNames' или formulaно не оба.
Пример: 'PredictorNames',{'SepalLength','SepalWidth','PetalLength','PetalWidth'}
Типы данных: string | cell
'ResponseName' - Имя переменной ответа'Y' (по умолчанию) | символьный вектор | строковый скалярИмя переменной ответа, указанное как вектор символа или скаляр строки.
Если вы поставляете Y, то вы можете использовать 'ResponseName' для указания имени переменной ответа.
Если вы поставляете ResponseVarName или formula, то вы не можете использовать 'ResponseName'.
Пример: 'ResponseName','response'
Типы данных: char | string
'ResponseTransform' - Преобразование ответа'none' (по умолчанию) | дескриптор функцииПреобразование ответа, указанное как 'none' или дескриптор функции. Значение по умолчанию: 'none', что означает @(y)y, или нет трансформации. Для функции MATLAB или определяемой функции используйте ее дескриптор функции для преобразования ответа. Дескриптор функции должен принимать вектор (исходные значения ответа) и возвращать вектор того же размера (преобразованные значения ответа).
Пример: Предположим, что вы создаете дескриптор функции, который применяет экспоненциальное преобразование к входному вектору с помощью myfunction = @(y)exp(y). Затем можно указать преобразование ответа как 'ResponseTransform',myfunction.
Типы данных: char | string | function_handle
'Weights' - Наблюдательные весаTblВеса наблюдения, указанные как разделенная запятыми пара, состоящая из 'Weights' и положительный числовой вектор или имя переменной в Tbl. Программное обеспечение взвешивает каждое наблюдение в X или Tbl с соответствующим значением в Weights. Длина Weights должно равняться количеству наблюдений в X или Tbl.
Если входные данные указаны как таблица Tbl, то Weights может быть именем переменной в Tbl содержит числовой вектор. В этом случае необходимо указать Weights в виде вектора символов или строкового скаляра. Например, если весовые коэффициенты вектора W хранится как Tbl.W, затем укажите его как 'W'. В противном случае программа обрабатывает все столбцы Tbl, в том числе W, в качестве предикторов при обучении модели.
По умолчанию Weights является ones(n,1), где n - количество наблюдений в X или Tbl.
fitrlinear нормализует веса для суммирования в 1.
Типы данных: 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' и положительное целое число.
fitrlinear обрабатывает все наблюдения по завершении одного прохода через данные.
Когда fitrlinear проходит через данные PassLimit раз, он прекращает оптимизацию.
При указании 'BatchLimit' и PassLimit, то fitrlinear выбирает аргумент, который приводит к обработке наименьшего количества наблюдений. Дополнительные сведения см. в разделе Алгоритмы.
Пример: '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{1} является таблицей, то ValidationData{2} может быть именем переменной ответа в таблице. Если вы хотите использовать то же самое ResponseVarName или formula, можно указать ValidationData{2} как [].
При необходимости можно указать ValidationData{3} в виде m-мерного числового вектора весов наблюдения или имени переменной в таблице ValidationData{1} содержит веса наблюдения. Программа нормализует весовые коэффициенты с данными проверки таким образом, чтобы они равнялись 1.
При указании ValidationData и хотите отобразить потерю проверки в командной строке, укажите значение больше 0 для Verbose.
Если программное обеспечение сходится для последнего решателя, указанного в Solver, то оптимизация заканчивается. В противном случае программа использует следующий решатель, указанный в Solver.
По умолчанию программа не обнаруживает сходимость путем мониторинга потери данных проверки.
'GradientTolerance' - Абсолютный градиентный допуск1e-6 (по умолчанию) | неотрицательный скалярАбсолютный градиентный допуск, заданный как разделенная запятыми пара, состоящая из 'GradientTolerance' и неотрицательный скаляр. GradientTolerance применяется к этим значениям Solver: 'bfgs', 'lbfgs', и 'sparsa'.
Пусть является градиентным вектором целевой функции относительно коэффициентов и члена смещения при итерации оптимизации T. Если ∇ℒt‖∞=max|∇ℒt|<GradientTolerance, то оптимизация заканчивается.
Если также указать BetaTolerance, то оптимизация заканчивается, когда fitrlinear удовлетворяет любому критерию остановки.
Если fitrlinear сходится для последнего решателя, указанного в Solver, то оптимизация заканчивается. В противном случае fitrlinear использует следующий решатель, указанный в Solver.
Пример: 'GradientTolerance',eps
Типы данных: single | double
'IterationLimit' - максимальное число итераций оптимизации;1000 (по умолчанию) | положительное целое числоМаксимальное число итераций оптимизации, указанное как пара, разделенная запятыми, состоящая из 'IterationLimit' и положительное целое число. IterationLimit применяется к этим значениям Solver: 'bfgs', 'lbfgs', и 'sparsa'.
Пример: 'IterationLimit',1e7
Типы данных: single | double
'BetaTolerance' - Относительный допуск по линейным коэффициентам и термину смещения1e-4 (по умолчанию) | неотрицательный скалярОтносительный допуск на линейные коэффициенты и член смещения (пересечение), указанный как разделенная запятыми пара, состоящая из 'BetaTolerance' и неотрицательный скаляр.
Пусть bt], то есть вектор коэффициентов и член смещения при итерации оптимизации т. Bt−Bt−1Bt‖2<BetaTolerance, то оптимизация заканчивается.
Если также указать DeltaGradientTolerance, то оптимизация завершается, когда программное обеспечение удовлетворяет любому критерию остановки.
Если программное обеспечение сходится для последнего решателя, указанного в Solver, то оптимизация заканчивается. В противном случае программа использует следующий решатель, указанный в Solver.
Пример: 'BetaTolerance',1e-6
Типы данных: single | double
'DeltaGradientTolerance' - Допуск разности градиентов0.1 (по умолчанию) | неотрицательный скалярГрадиентно-разностный допуск между нарушителями условий комплементарности верхнего и нижнего пулов Karush-Kuhn-Tucker (KKT), определяемый как разделенная запятыми пара, состоящая из 'DeltaGradientTolerance' и неотрицательный скаляр. DeltaGradientTolerance относится к 'dual' значение Solver только.
Если магнитуда нарушителей ККТ меньше DeltaGradientTolerance, то fitrlinear завершает оптимизацию.
Если fitrlinear сходится для последнего решателя, указанного в Solver, то оптимизация заканчивается. В противном случае fitrlinear использует следующий решатель, указанный в 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{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{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.
Оптимизация пытается минимизировать потери при перекрестной проверке (ошибка) для fitrlinear путем изменения параметров. Для управления типом перекрестной проверки и другими аспектами оптимизации используйте HyperparameterOptimizationOptions пара имя-значение.
Примечание
'OptimizeHyperparameters' значения переопределяют любые значения, заданные с помощью других аргументов пары «имя-значение». Например, настройка 'OptimizeHyperparameters' кому 'auto' вызывает 'auto' значения для применения.
Подходящие параметры для fitrlinear являются:
Lambda — fitrlinear поиск среди положительных значений, по умолчанию с логарифмическим масштабированием в диапазоне [1e-5/NumObservations,1e5/NumObservations].
Learner — fitrlinear поиск среди 'svm' и 'leastsquares'.
Regularization — fitrlinear поиск среди 'ridge' и 'lasso'.
Установка параметров, не используемых по умолчанию, путем передачи вектора optimizableVariable объекты, не имеющие значений по умолчанию. Например,
load carsmall params = hyperparameters('fitrlinear',[Horsepower,Weight],MPG); params(1).Range = [1e-3,2e4];
Проход 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 - Обученная модель линейной регрессииRegressionLinear объект модели | RegressionPartitionedLinear объект модели с перекрестной проверкойОбученная модель линейной регрессии, возвращенная как RegressionLinear объект модели или RegressionPartitionedLinear объект модели с перекрестной проверкой.
Если задать какой-либо из аргументов пары имя-значение KFold, Holdout, CrossVal, или CVPartition, то Mdl является RegressionPartitionedLinear объект модели с перекрестной проверкой. В противном случае Mdl является RegressionLinear объект модели.
Для ссылки на свойства Mdl, используйте точечную нотацию. Например, введите Mdl.Beta в окне команд для отображения вектора или матрицы оцененных коэффициентов.
Примечание
В отличие от других регрессионных моделей, и для экономичного использования памяти, RegressionLinear и RegressionPartitionedLinear объекты модели не хранят учебные данные или сведения об оптимизации (например, историю сходимости).
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' | Таблица используемых гиперпараметров, наблюдаемые значения целевой функции (потеря перекрестной проверки) и ранг наблюдений от самого низкого (лучший) до самого высокого (худший) |
Примечание
Если Learner является 'leastsquares', то член потери в целевой функции составляет половину MSE. loss возвращает MSE по умолчанию. Поэтому, если вы используете loss для проверки повторного предоставления, или обучения, ошибка, то есть несоответствие между MSE, возвращенным loss и результаты оптимизации в FitInfo или возвращено в командную строку путем установки положительного уровня детализации с помощью Verbose.
Теплое начало - это начальные оценки бета-коэффициентов и члена смещения, подаваемые в подпрограмму оптимизации для более быстрой сходимости.
Высокомерные модели линейной классификации и регрессии минимизируют объективные функции относительно быстро, но за счет некоторой точности ограничения переменных предиктора только числа, и модель должна быть линейной по отношению к параметрам. Если набор данных предиктора является низко- или средномерным или содержит разнородные переменные, то следует использовать соответствующую функцию классификации или регрессионной подгонки. С помощью этой таблицы можно определить, какая функция фитинга подходит для низкоразмерного набора данных.
| Модель по размеру | Функция | Заметные алгоритмические различия |
|---|---|---|
| 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 слишком мал, то fitrlinear достигает минимума во многих итерациях, но быстро вычисляет градиент для каждой итерации.
Если BatchSize слишком большой, то fitrlinear достигает минимума в меньшем количестве итераций, но вычисляет градиент на одну итерацию медленно.
Большие показатели обучения (см. LearnRate) ускорить сходимость до минимума, но может привести к расходимости (то есть переступить минимум). Небольшие показатели обучения обеспечивают сведение к минимуму, но могут привести к медленному прекращению обучения.
При использовании штрафов лассо экспериментируйте с различными значениями TruncationPeriod. Например, установить TruncationPeriod кому 1, 10, а затем 100.
Для эффективности, fitrlinear не стандартизирует данные предиктора. Стандартизировать X, введите
X = bsxfun(@rdivide,bsxfun(@minus,X,mean(X,2)),std(X,0,2));
Код требует, чтобы предикторы и наблюдения были ориентированы как строки и столбцы Xсоответственно. Кроме того, для экономии использования памяти код заменяет исходные данные предиктора стандартизированными данными.
После обучения модели можно создать код C/C + +, который предсказывает ответы на новые данные. Для создания кода C/C + + требуется Coder™ MATLAB. Дополнительные сведения см. в разделе Введение в создание кода.
При указании ValidationDataзатем во время оптимизации целевой функции:
fitrlinear оценивает потерю проверки ValidationData периодически используя текущую модель, отслеживает минимальную оценку.
Когда fitrlinear оценивает потерю проверки, он сравнивает оценку с минимальной оценкой.
Когда последующие оценки потерь проверки превышают минимальную оценку в пять раз, fitrlinear завершает оптимизацию.
При указании ValidationData и для реализации процедуры перекрестной проверки (CrossVal, CVPartition, Holdout, или KFold), то:
fitrlinear случайные разделы X и Y (или Tbl) в соответствии с выбранной процедурой перекрестной проверки.
fitrlinear обучает модель с помощью раздела training-data. Во время оптимизации целевой функции, fitrlinear использование ValidationData как еще один возможный способ завершения оптимизации (подробности см. в предыдущем маркере).
Однажды fitrlinear удовлетворяет критерию остановки, строит обученную модель на основе оптимизированных линейных коэффициентов и перехвата.
Если реализована k-кратная перекрестная проверка, и fitrlinear не исчерпал все складки тренировочного набора, то fitrlinear возвращается к шагу 2 для обучения с использованием следующей складки набора тренировок.
В противном случае fitrlinear завершает обучение, а затем возвращает перекрестную проверенную модель.
Можно определить качество перекрестно проверенной модели. Например:
Чтобы определить потерю проверки с помощью данных о задержке или отклонении от шага 1, передайте перекрестную проверенную модель в kfoldLoss.
Чтобы спрогнозировать наблюдения за удержанными или устаревшими данными с шага 1, передайте перекрестно проверенную модель в kfoldPredict.
[1] Ho, C. H. и C. J. Lin. «Регрессия вектора крупномасштабной линейной поддержки». Журнал исследований машинного обучения, том 13, 2012, стр. 3323-3348.
[2] Hsieh, C. J., K. W. Chang, C. J. Лин, С. С. Кеэрти и С. Сундарараджан. «Метод двухкоординатного спуска для крупномасштабного линейного SVM». Материалы 25-й Международной конференции по машинному обучению, ICML "08, 2001, pp. 408-415.
[3] Лэнгфорд, Дж., Л. Ли и Т. Чжан. «Разреженное онлайн-обучение через усеченный градиент». Дж. Мач. Рес., т. 10, 2009, стр. 777-801.
[4] Nocedal, J. и С. Дж. Райт. Численная оптимизация, 2-е изд., Нью-Йорк: Спрингер, 2006.
[5] Шалев-Шварц, С., Я. Сингер и Н. Сребро. «Pegasos: Основной оценочный вычислитель субпогренов для SVM». Материалы 24-й Международной конференции по машинному обучению, ICML "07, 2007, стр. 807-814.
[6] Мастер, S. J., Р. Д. Ноуок и М. А. Т. Фигередо. «Разреженная реконструкция по разделяемому приближению». Транс. Сиг. Proc., том 57, № 7, 2009, стр. 2479-2493.
[7] Сяо, Линь. «Двойные методы усреднения для регуляризованного стохастического обучения и онлайн-оптимизации». Дж. Мач. Рес., т. 11, 2010, стр. 2543-2596.
[8] Сюй, Вэй. «К оптимальному однопроходному крупномасштабному обучению со усредненным стохастическим градиентным спуском». CoRR, abs/1107.2490, 2011.
Примечания и ограничения по использованию:
fitrlinear не поддерживает высокий table данные.
Некоторые аргументы пары имя-значение имеют разные значения по умолчанию и значения по сравнению с имеющимися в памяти fitrlinear функция. Поддерживаемые аргументы пары имя-значение и любые различия:
'Epsilon'
'ObservationsIn' - Только поддержка 'rows'.
'Lambda' - Может быть 'auto' (по умолчанию) или скаляр.
'Learner'
'Regularization' - Только поддержка 'ridge'.
'Solver' - Только поддержка 'lbfgs'.
'Verbose' - Значение по умолчанию: 1
'Beta'
'Bias'
'FitBias' - Только поддержка true.
'Weights' - Значение должно быть высоким массивом.
'HessianHistorySize'
'BetaTolerance' - Значение по умолчанию смягчено до 1e-3.
'GradientTolerance' - Значение по умолчанию смягчено до 1e-3.
'IterationLimit' - Значение по умолчанию смягчено до 20.
'OptimizeHyperparameters' - Значение 'Regularization' параметр должен быть 'ridge'.
'HyperparameterOptimizationOptions' - Для перекрестной проверки поддерживается только оптимизация по высоте 'Holdout' проверка. По умолчанию программа выбирает и резервирует 20% данных в качестве данных проверки отсутствия и обучает модель, используя остальные данные. С помощью этого аргумента можно указать другое значение для удерживаемой дроби. Например, укажите 'HyperparameterOptimizationOptions',struct('Holdout',0.3) зарезервировать 30% данных в качестве данных проверки.
Для больших массивов fitrlinear реализует LBFGS, распределяя вычисление потерь и градиента между различными частями массива высокого уровня в каждой итерации. Другие решатели недоступны для массивов tall.
При начальных значениях для Beta и Bias не даны, fitrlinear сначала уточняют первоначальные оценки параметров, подгоняя модель локально к частям данных и комбинируя коэффициенты путем усреднения.
Дополнительные сведения см. в разделе Массивы Tall.
Чтобы выполнить параллельную оптимизацию гиперпараметров, используйте 'HyperparameterOptimizationOptions', struct('UseParallel',true) аргумент name-value в вызове этой функции.
Дополнительные сведения об оптимизации параллельных гиперпараметров см. в разделе Параллельная байесовская оптимизация.
Общие сведения о параллельных вычислениях см. в разделе Запуск функций MATLAB с автоматической параллельной поддержкой (панель инструментов параллельных вычислений).
fitclinear | fitlm | fitrsvm | kfoldLoss | kfoldPredict | lasso | predict | RegressionLinear | RegressionPartitionedLinear | ridge
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.