Подбирайте модель линейной регрессии к высоко-размерным данным
fitrlinear
эффективно обучает модели линейной регрессии с высоко-размерными, полными или разреженными данными о предикторе. Доступные модели линейной регрессии включают упорядоченные машины опорных векторов (SVM) и методы регрессии наименьших квадратов. fitrlinear
минимизирует целевую функцию с помощью методов, которые уменьшают вычислительное время (e.g., стохастический градиентный спуск).
Для сокращения времени вычисления на высоко-размерном наборе данных, который включает много переменных предикторов, обучите модель линейной регрессии при помощи fitrlinear
. Для низкого - через средние размерные наборы данных предиктора, смотрите Альтернативы для Более низко-размерных Данных.
возвращает модель линейной регрессии использование переменных предикторов в таблице Mdl
= fitrlinear(Tbl
,ResponseVarName
)Tbl
и значения отклика в Tbl.ResponseVarName
.
задает опции с помощью одного или нескольких аргументов пары "имя-значение" в дополнение к любой из комбинаций входных аргументов в предыдущих синтаксисах. Например, можно задать, чтобы перекрестный подтвердить, реализовать регрессию наименьших квадратов или задать тип регуляризации. Хорошая практика должна перекрестный подтвердить использование Mdl
= fitrlinear(X
,Y
,Name,Value
)'Kfold'
аргумент пары "имя-значение". Результаты перекрестной проверки определяют, как хорошо модель делает вывод.
[
также возвращает детали гипероптимизации параметров управления, когда вы передаете Mdl
,FitInfo
,HyperparameterOptimizationResults
]
= fitrlinear(___)OptimizeHyperparameters
пара "имя-значение".
Обучите модель линейной регрессии, использующую SVM, двойной SGD и гребенчатую регуляризацию.
Симулируйте 10 000 наблюдений из этой модели
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.
Чтобы определить хорошую силу штрафа лассо для модели линейной регрессии, которая использует наименьшие квадраты, реализуйте 5-кратную перекрестную проверку.
Симулируйте 10 000 наблюдений из этой модели
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
реализует 5-кратную перекрестную проверку, 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
. Пример использует искусственные (симулированные) данные для модели
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'
.
В этой таблице,
β является вектором из коэффициентов p.
x является наблюдением от переменных предикторов p.
b является скалярным смещением.
Значение | Алгоритм | Область значений ответа | Функция потерь |
---|---|---|---|
'leastsquares' | Линейная регрессия через обычные наименьшие квадраты | y ∊ (-∞, ∞) | Среднеквадратическая ошибка (MSE): |
'svm' | Регрессия машины опорных векторов | То же самое как 'leastsquares' | Нечувствительный к эпсилону: |
Пример: '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' | Stochastic gradient descent (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'
— Начальные линейные содействующие оценкинули (p
,1)
(значение по умолчанию) | числовой вектор | числовая матрицаНачальный линейный коэффициент оценивает (β) в виде разделенной запятой пары, состоящей из 'Beta'
и p - размерный числовой вектор или p-by-L числовая матрица. p является количеством переменных предикторов в X
и L является количеством значений силы регуляризации (для получения дополнительной информации, смотрите Lambda
).
Если вы задаете p - размерный вектор, то программное обеспечение оптимизирует целевую функцию времена L с помощью этого процесса.
Программное обеспечение оптимизирует использование Beta
как начальное значение и минимальное значение Lambda
как сила регуляризации.
Программное обеспечение оптимизирует снова использование получившейся оценки от предыдущей оптимизации как горячий запуск и следующее наименьшее значение в Lambda
как сила регуляризации.
Программное обеспечение реализует шаг 2, пока это не исчерпывает все значения в Lambda
.
Если вы задаете p-by-L матрица, то программное обеспечение оптимизирует целевую функцию времена L. В итерации j
, программное обеспечение использует Бету (:
как начальное значение и, после того, как это сортирует J
)Lambda
в порядке возрастания, Lambda
использования (
как сила регуляризации.j
)
Если вы устанавливаете 'Solver','dual'
, затем программное обеспечение игнорирует Beta
.
Типы данных: single
| double
'Bias'
— Начальная оценка точки пересеченияНачальная оценка точки пересечения (b) в виде разделенной запятой пары, состоящей из 'Bias'
и числовой скаляр или L - размерный числовой вектор. L является количеством значений силы регуляризации (для получения дополнительной информации, смотрите Lambda
).
Если вы задаете скаляр, то программное обеспечение оптимизирует целевую функцию времена L с помощью этого процесса.
Программное обеспечение оптимизирует использование Bias
как начальное значение и минимальное значение Lambda
как сила регуляризации.
Использование получившаяся оценка как горячий запуск к следующей итерации оптимизации и использование следующее наименьшее значение в Lambda
как сила регуляризации.
Программное обеспечение реализует шаг 2, пока это не исчерпывает все значения в Lambda
.
Если вы задаете L - размерный вектор, то программное обеспечение оптимизирует целевую функцию времена L. В итерации j
, программное обеспечение использует Смещение (
как начальное значение и, после того, как это сортирует j
)Lambda
в порядке возрастания, Lambda
использования (
как сила регуляризации.j
)
По умолчанию:
Типы данных: single
| double
'FitBias'
— Линейный флаг включения точки пересечения моделиtrue
(значение по умолчанию) | false
Линейное включение точки пересечения модели отмечает в виде разделенной запятой пары, состоящей из 'FitBias'
и true
или false
.
Значение | Описание |
---|---|
true | Программное обеспечение включает срок смещения b в линейную модель, и затем оценивает его. |
false | Программное обеспечение устанавливает b = 0 во время оценки. |
Пример: 'FitBias',false
Типы данных: логический
'PostFitBias'
— Отметьте, чтобы соответствовать линейной точке пересечения модели после оптимизацииfalse
(значение по умолчанию) | true
Отметьте, чтобы соответствовать линейной точке пересечения модели после оптимизации в виде разделенной запятой пары, состоящей из 'PostFitBias'
и true
или false
.
Значение | Описание |
---|---|
false | Программное обеспечение оценивает, что смещение называет b и коэффициенты β во время оптимизации. |
true | Оценить b, программное обеспечение:
|
Если вы задаете true
, затем FitBias
должно быть верным.
Пример: 'PostFitBias',true
Типы данных: логический
'Verbose'
— Уровень многословия
(значение по умолчанию) | неотрицательное целое числоУровень многословия в виде разделенной запятой пары, состоящей из '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)
(fullness factor X
).
Пример: 'BatchSize',100
Типы данных: single
| double
'LearnRate'
— Скорость обученияСкорость обучения в виде разделенной запятой пары, состоящей из 'LearnRate'
и положительная скалярная величина. LearnRate
задает сколько шагов, чтобы взять на итерацию. В каждой итерации градиент задает направление и величину каждого шага.
Если Regularization
'ridge'
, затем LearnRate
задает начальную скорость обучения γ 0. Программное обеспечение определяет скорость обучения для итерации t, γt, с помощью
Если 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
Типы данных: логический
'TruncationPeriod'
— Количество мини-пакетов между запусками усечения лассо
(значение по умолчанию) | положительное целое числоКоличество мини-пакетов между усечением лассо запускается в виде разделенной запятой пары, состоящей из 'TruncationPeriod'
и положительное целое число.
После запущенного усечения программное обеспечение применяет мягкий порог к линейным коэффициентам. Таким образом, после обработки k = TruncationPeriod
мини-пакеты, программное обеспечение обрезает предполагаемый коэффициент использование j
Для SGD, оценка коэффициента j после обработки мини-пакетов k. γt является скоростью обучения в итерации t. λ является значением Lambda
.
Для ASGD, усредненный оценочный коэффициент j после обработки мини-пакетов k,
Если Regularization
'ridge'
, затем программное обеспечение игнорирует TruncationPeriod
.
Пример: 'TruncationPeriod',100
Типы данных: single
| double
'CategoricalPredictors'
— Категориальный список предикторов'all'
Категориальные предикторы перечисляют в виде одного из значений в этой таблице. Описания принимают, что данные о предикторе имеют наблюдения в строках и предикторы в столбцах.
Значение | Описание |
---|---|
Вектор из положительных целых чисел |
Каждая запись в векторе является значением индекса, соответствующим столбцу данных о предикторе, которые содержат категориальную переменную. Значения индекса между 1 и Если |
Логический вектор |
|
Символьная матрица | Каждая строка матрицы является именем переменного предиктора. Имена должны совпадать с записями в 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). Если вы задаете 'Затяжку',
, затем программное обеспечение: p
Случайным образом резервы
% из данных как данные о валидации, и обучает модель с помощью остальной части данныхp
*100
Хранит компактную, обученную модель в Trained
свойство перекрестной подтвержденной модели.
Чтобы создать перекрестную подтвержденную модель, можно использовать одну из этих четырех опций только: '
CVPartition
'
, '
Holdout
'
, или '
KFold
'
.
Пример: 'Holdout',0.1
Типы данных: double |
single
'KFold'
— Количество сгибов
(значение по умолчанию) | положительное целочисленное значение, больше, чем 1Количество сгибов, чтобы использовать в перекрестном подтвержденном классификаторе в виде разделенной запятой пары, состоящей из 'KFold'
и положительное целочисленное значение, больше, чем 1. Если вы задаете, например, 'KFold',k
, затем программное обеспечение:
Случайным образом делит данные в наборы k
Для каждого набора, резервирует набор как данные о валидации и обучает модель с помощью другого k – 1 набор
Хранит k
компактные, обученные модели в ячейках k
- 1 вектор ячейки в Trained
свойство перекрестной подтвержденной модели.
Чтобы создать перекрестную подтвержденную модель, можно использовать одну из этих четырех опций только: '
CVPartition
'
, '
Holdout
'
, или '
KFold
'
.
Пример: 'KFold',8
Типы данных: single
| double
'BatchLimit'
— Максимальное количество пакетовМаксимальное количество пакетов к процессу в виде разделенной запятой пары, состоящей из 'BatchLimit'
и положительное целое число. Когда программные процессы BatchLimit
пакеты, это отключает оптимизацию.
По умолчанию:
Проходы через данные программного обеспечения PassLimit
\times.
Если вы задаете несколько решателей и используете (A) SGD, чтобы получить начальное приближение для следующего решателя, то значением по умолчанию является ceil(1e6/BatchSize)
. BatchSize
значение '
BatchSize
'
аргумент пары "имя-значение".
Если вы задаете 'BatchLimit'
и '
PassLimit
'
, затем программное обеспечение выбирает аргумент, который приводит к обработке наименьшего количества наблюдений.
Если вы задаете 'BatchLimit'
но не 'PassLimit'
, затем программные процессы достаточно пакетов, чтобы завершиться до одного целого прохода через данные.
Пример: 'BatchLimit',100
Типы данных: single
| double
'BetaTolerance'
— Относительная погрешность на линейных коэффициентах и сроке смещения1e-4
(значение по умолчанию) | неотрицательный скалярОтносительная погрешность на линейных коэффициентах и сроке смещения (точка пересечения) в виде разделенной запятой пары, состоящей из 'BetaTolerance'
и неотрицательный скаляр.
Пусть , то есть, вектор из коэффициентов и смещения называет в итерации оптимизации t. Если , затем оптимизация завершает работу.
Если программное обеспечение сходится для последнего решателя, заданного в Solver
, затем оптимизация завершает работу. В противном случае программное обеспечение использует следующий решатель, заданный в Solver
.
Пример: 'BetaTolerance',1e-6
Типы данных: single
| double
'NumCheckConvergence'
— Количество пакетов к процессу перед следующей проверкой сходимостиКоличество пакетов к процессу перед следующей проверкой сходимости в виде разделенной запятой пары, состоящей из 'NumCheckConvergence'
и положительное целое число.
Чтобы задать пакетный размер, смотрите BatchSize
.
Проверки программного обеспечения на сходимость приблизительно 10 раз на проходят через целый набор данных по умолчанию.
Пример: 'NumCheckConvergence',100
Типы данных: single
| double
'PassLimit'
— Максимальное количество передач
(значение по умолчанию) | положительное целое числоМаксимальное количество проходов через данные в виде разделенной запятой пары, состоящей из '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. Если , затем оптимизация завершает работу.
Если вы также задаете BetaTolerance
, затем оптимизация завершает работу когда fitrlinear
удовлетворяет любому критерию остановки.
Если fitrlinear
сходится для последнего решателя, заданного в Solver
, затем оптимизация завершает работу. В противном случае, fitrlinear
использует следующий решатель, заданный в Solver
.
Пример: 'GradientTolerance',eps
Типы данных: single
| double
'IterationLimit'
— Максимальное количество итераций оптимизации
(значение по умолчанию) | положительное целое числоМаксимальное количество итераций оптимизации в виде разделенной запятой пары, состоящей из 'IterationLimit'
и положительное целое число. IterationLimit
применяется к этим значениям Solver
: 'bfgs'
, 'lbfgs'
, и 'sparsa'
.
Пример: 'IterationLimit',1e7
Типы данных: single
| double
'BetaTolerance'
— Относительная погрешность на линейных коэффициентах и сроке смещения1e-4
(значение по умолчанию) | неотрицательный скалярОтносительная погрешность на линейных коэффициентах и сроке смещения (точка пересечения) в виде разделенной запятой пары, состоящей из 'BetaTolerance'
и неотрицательный скаляр.
Пусть , то есть, вектор из коэффициентов и смещения называет в итерации оптимизации t. Если , затем оптимизация завершает работу.
Если вы также задаете DeltaGradientTolerance
, затем оптимизация завершает работу, когда программное обеспечение удовлетворяет любому критерию остановки.
Если программное обеспечение сходится для последнего решателя, заданного в Solver
, затем оптимизация завершает работу. В противном случае программное обеспечение использует следующий решатель, заданный в Solver
.
Пример: 'BetaTolerance',1e-6
Типы данных: single
| double
'DeltaGradientTolerance'
— Допуск различия градиента
(значение по умолчанию) | неотрицательный скалярДопуск различия градиента между верхними и более низкими нарушителями условий взаимозависимости Karush-Kuhn-Tucker (KKT) пула в виде разделенной запятой пары, состоящей из 'DeltaGradientTolerance'
и неотрицательный скаляр. DeltaGradientTolerance
применяется к 'dual'
значение Solver
только.
Если величина нарушителей KKT меньше DeltaGradientTolerance
то fitrlinear
отключает оптимизацию.
Если fitrlinear
сходится для последнего решателя, заданного в Solver
, затем оптимизация завершает работу. В противном случае, fitrlinear
использует следующий решатель, заданный в Solver
.
Пример: 'DeltaGapTolerance',1e-2
Типы данных: double |
single
'NumCheckConvergence'
— Количество проходит через целый набор данных к процессу перед следующей проверкой сходимости
(значение по умолчанию) | положительное целое числоКоличество проходит через целый набор данных к процессу перед следующей проверкой сходимости в виде разделенной запятой пары, состоящей из 'NumCheckConvergence'
и положительное целое число.
Пример: 'NumCheckConvergence',100
Типы данных: single
| double
'PassLimit'
— Максимальное количество передач
(значение по умолчанию) | положительное целое числоМаксимальное количество проходов через данные в виде разделенной запятой пары, состоящей из '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'
и неотрицательный скаляр.
Пусть , то есть, вектор из коэффициентов и смещения называет в итерации оптимизации t. Если , затем оптимизация завершает работу.
Если вы также задаете GradientTolerance
, затем оптимизация завершает работу, когда программное обеспечение удовлетворяет любому критерию остановки.
Если программное обеспечение сходится для последнего решателя, заданного в Solver
, затем оптимизация завершает работу. В противном случае программное обеспечение использует следующий решатель, заданный в Solver
.
Пример: 'BetaTolerance',1e-6
Типы данных: single
| double
'GradientTolerance'
— Абсолютный допуск градиента1e-6
(значение по умолчанию) | неотрицательный скалярАбсолютный допуск градиента в виде разделенной запятой пары, состоящей из 'GradientTolerance'
и неотрицательный скаляр.
Пусть будьте вектором градиента из целевой функции относительно коэффициентов, и смещение называют в итерации оптимизации t. Если , затем оптимизация завершает работу.
Если вы также задаете BetaTolerance
, затем оптимизация завершает работу, когда программное обеспечение удовлетворяет любому критерию остановки.
Если программное обеспечение сходится для последнего решателя, заданного в программном обеспечении, то оптимизация завершает работу. В противном случае программное обеспечение использует следующий решатель, заданный в Solver
.
Пример: 'GradientTolerance',1e-5
Типы данных: single
| double
'HessianHistorySize'
— Размер буфера истории для приближения Гессиана
(значение по умолчанию) | положительное целое числоРазмер буфера истории для приближения Гессиана в виде разделенной запятой пары, состоящей из 'HessianHistorySize'
и положительное целое число. Таким образом, в каждой итерации программное обеспечение составляет Гессиан с помощью статистики от последнего HessianHistorySize
итерации.
Программное обеспечение не поддерживает 'HessianHistorySize'
для SpaRSA.
Пример: 'HessianHistorySize',10
Типы данных: single
| double
'IterationLimit'
— Максимальное количество итераций оптимизации
(значение по умолчанию) | положительное целое числоМаксимальное количество итераций оптимизации в виде разделенной запятой пары, состоящей из '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
.
По умолчанию итеративное отображение появляется в командной строке, и графики появляются согласно количеству гиперпараметров в оптимизации. Для оптимизации и графиков, целевая функция является журналом (1 + потеря перекрестной проверки) для регрессии и misclassification уровня для классификации. Чтобы управлять итеративным отображением, установите Verbose
поле 'HyperparameterOptimizationOptions'
аргумент пары "имя-значение". Чтобы управлять графиками, установите ShowPlots
поле 'HyperparameterOptimizationOptions'
аргумент пары "имя-значение".
Для примера смотрите, Оптимизируют Линейную регрессию.
Пример: 'OptimizeHyperparameters','auto'
'HyperparameterOptimizationOptions'
— Опции для оптимизацииОпции для оптимизации в виде разделенной запятой пары, состоящей из 'HyperparameterOptimizationOptions'
и структура. Этот аргумент изменяет эффект OptimizeHyperparameters
аргумент пары "имя-значение". Все поля в структуре являются дополнительными.
Имя поля | Значения | Значение по умолчанию |
---|---|---|
Optimizer |
| 'bayesopt' |
AcquisitionFunctionName |
Приобретение функционирует, чьи имена включают | 'expected-improvement-per-second-plus' |
MaxObjectiveEvaluations | Максимальное количество оценок целевой функции. | 30 для 'bayesopt' или 'randomsearch' , и целая сетка для 'gridsearch' |
MaxTime | Ограничение по времени в виде положительного действительного. Ограничение по времени находится в секундах, как измерено | Inf |
NumGridDivisions | Для 'gridsearch' , количество значений в каждой размерности. Значение может быть вектором из положительных целых чисел, дающих количество значений для каждой размерности или скаляр, который применяется ко всем размерностям. Это поле проигнорировано для категориальных переменных. | 10
|
ShowPlots | Логическое значение, указывающее, показать ли графики. Если true , это поле строит лучшее значение целевой функции против номера итерации. Если существуют один или два параметра оптимизации, и если Optimizer 'bayesopt' , затем ShowPlots также строит модель целевой функции против параметров. | true |
SaveIntermediateResults | Логическое значение, указывающее, сохранить ли результаты когда Optimizer 'bayesopt' . Если true , это поле перезаписывает переменную рабочей области под названием 'BayesoptResults' в каждой итерации. Переменной является BayesianOptimization объект. | false |
Verbose | Отобразитесь к командной строке.
Для получения дополнительной информации смотрите | 1
|
UseParallel | Логическое значение, указывающее, запустить ли Байесовую оптимизацию параллельно, которая требует Parallel Computing Toolbox™. Из-за невоспроизводимости синхронизации параллели, параллельная Байесова оптимизация не обязательно приводит к восстанавливаемым результатам. Для получения дополнительной информации смотрите Параллельную Байесовую Оптимизацию. | false |
Repartition | Логическое значение, указывающее, повторно разделить ли перекрестную проверку в каждой итерации. Если
| false |
Используйте не больше, чем одни из следующих трех имен полей. | ||
CVPartition | 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
возразите | таблица гиперпараметров и присваиваемых значенийОптимизация перекрестной проверки гиперпараметров, возвращенных как BayesianOptimization
возразите или таблица гиперпараметров и присваиваемых значений. Выход непуст когда значение 'OptimizeHyperparameters'
не 'none'
. Выходное значение зависит от Optimizer
значение поля 'HyperparameterOptimizationOptions'
аргумент пары "имя-значение":
Значение Optimizer Поле | Значение HyperparameterOptimizationResults |
---|---|
'bayesopt' (значение по умолчанию) | Объект класса BayesianOptimization |
'gridsearch' или 'randomsearch' | Таблица гиперпараметров используемые, наблюдаемые значения целевой функции (потеря перекрестной проверки), и ранг наблюдений от самого низкого (лучше всего) к (худшему) самому высокому |
Примечание
Если Learner
'leastsquares'
, затем термин потерь в целевой функции является половиной MSE. loss
возвращает MSE по умолчанию. Поэтому, если вы используете loss
чтобы проверять перезамену или обучение, ошибка затем существует несоответствие между MSE, возвращенным loss
и результаты оптимизации в FitInfo
или возвратился к командной строке путем установки положительного уровня многословия с помощью Verbose
.
warm start является первоначальными оценками бета коэффициентов и срока смещения, предоставленного стандартной программе оптимизации для более быстрой сходимости.
Высоко-размерная линейная классификация и модели регрессии минимизируют целевые функции относительно быстро, но за счет некоторой точности, числовое единственное ограничение переменных предикторов и модель должны быть линейными относительно параметров. Если ваш набор данных предиктора является низким - через средний размерный, или содержит неоднородные переменные, то необходимо использовать соответствующую классификацию или функцию подбора кривой регрессии. Чтобы помочь вам решить, какой подбор кривой функции подходит для вашего низко-размерного набора данных, используйте эту таблицу.
Модель, чтобы соответствовать | Функция | Известные алгоритмические различия |
---|---|---|
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++ требует MATLAB Coder™. Для получения дополнительной информации смотрите Введение в Генерацию кода.
Если вы задаете ValidationData
, затем, во время оптимизации целевой функции:
fitrlinear
оценивает потерю валидации ValidationData
периодически с помощью текущей модели и дорожек минимальная оценка.
Когда fitrlinear
оценивает потерю валидации, она сравнивает оценку с минимальной оценкой.
Когда последующий, оценки потерь валидации превышают минимальную оценку пять раз, fitrlinear
отключает оптимизацию.
Если вы задаете ValidationData
и реализовывать стандартную программу перекрестной проверки (CrossVal
, CVPartition
, Holdout
, или KFold
то:
fitrlinear
случайным образом разделы X
и Y
(или Tbl
) согласно стандартной программе перекрестной проверки, которую вы выбираете.
fitrlinear
обучает модель с помощью раздела обучающих данных. Во время оптимизации целевой функции, fitrlinear
использование ValidationData
как другой возможный способ отключить оптимизацию (для получения дополнительной информации смотрите предыдущий маркер).
Однажды fitrlinear
удовлетворяет останавливающемуся критерию, он создает обученное основанное на модели на оптимизированных линейных коэффициентах и точке пересечения.
Если вы реализуете k - сворачивают перекрестную проверку, и fitrlinear
не исчерпал все сгибы набора обучающих данных, затем fitrlinear
возвращается к Шагу 2, чтобы обучить использование следующего сгиба набора обучающих данных.
В противном случае, fitrlinear
отключает обучение, и затем возвращает перекрестную подтвержденную модель.
Можно определить качество перекрестной подтвержденной модели. Например:
Чтобы определить потерю валидации с помощью затяжки или данных из сгиба из шага 1, передайте перекрестную подтвержденную модель kfoldLoss
.
Чтобы предсказать наблюдения относительно затяжки или данных из сгиба из шага 1, передайте перекрестную подтвержденную модель kfoldPredict
.
[1] Хо, C. H. и К. Дж. Лин. “Крупномасштабная Линейная Регрессия Вектора Поддержки”. Журнал Исследования Машинного обучения, Издания 13, 2012, стр 3323–3348.
[2] Се, C. J. К. В. Чанг, К. Дж. Лин, С. С. Кирти и С. Сандарарэджэн. “Двойной Координатный Метод Спуска для Крупномасштабного Линейного SVM”. Продолжения 25-й Международной конференции по вопросам Машинного обучения, ICML ’08, 2001, стр 408–415.
[3] Лэнгфорд, J., Л. Ли и Т. Чжан. “Разреженное Дистанционное обучение Через Усеченный Градиент”. Дж. Мах. Учиться. Res., Издание 10, 2009, стр 777–801.
[4] Nocedal, J. и С. Дж. Райт. Числовая Оптимизация, 2-й редактор, Нью-Йорк: Спрингер, 2006.
[5] Шалев-Шварц, S., И. Зингер и Н. Сребро. “Pegasos: Основной Предполагаемый Решатель Подградиента для SVM”. Продолжения 24-й Международной конференции по вопросам Машинного обучения, ICML ’07, 2007, стр 807–814.
[6] Мастер, S. J. Р. Д. Ноуок и М. А. Т. Фигередо. “Разреженная Реконструкция Отделимым Приближением”. Сигнал сделки Proc., Издание 57, № 7, 2009, стр 2479–2493.
[7] Сяо, Лин. “Двойные Методы усреднения для Упорядоченного Стохастического Изучения и Онлайновой Оптимизации”. Дж. Мах. Учиться. Res., Издание 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 путем распределения вычисления потери и градиента среди различных частей длинного массива в каждой итерации. Другие решатели не доступны для длинных массивов.
Когда начальные значения для Beta
и Bias
не даны, fitrlinear
сначала совершенствовал первоначальные оценки параметров, подбирая модель локально к частям данных и комбинируя коэффициенты путем усреднения.
Для получения дополнительной информации см. Раздел "Высокие массивы".
Чтобы выполнить параллельную гипероптимизацию параметров управления, используйте 'HyperparameterOptimizationOptions', struct('UseParallel',true)
аргумент значения имени в вызове этой функции.
Для получения дополнительной информации о параллельной гипероптимизации параметров управления смотрите Параллельную Байесовую Оптимизацию.
Для получения общей информации о параллельных вычислениях, смотрите функции MATLAB Запуска с Автоматической Параллельной Поддержкой (Parallel Computing Toolbox).
fitclinear
| fitlm
| fitrsvm
| kfoldLoss
| kfoldPredict
| lasso
| predict
| RegressionLinear
| RegressionPartitionedLinear
| ridge
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.