Шаблон обучающегося с линейной классификацией
templateLinear
создает шаблон, подходящий для подбора кривой линейной модели классификации к высоко-размерным данным для многоклассовых задач.
Шаблон задает двоичную модель учащегося, тип регуляризации и силу, и решатель, среди прочего. После создания шаблона обучите модель, передав шаблон и данные в fitcecoc
.
возвращает линейный шаблон учащегося классификации.t
= templateLinear()
Если вы задаете шаблон по умолчанию, то во время обучения программное обеспечение использует значения по умолчанию для всех входных параметров.
возвращает шаблон с дополнительными опциями, заданными одним или несколькими аргументами пары "имя-значение". Например, можно задать, чтобы реализовать логистическую регрессию, задать тип или силу регуляризации или задать решатель, который будет использоваться для минимизации целевой функции.t
= templateLinear(Name,Value
)
Если вы отображаете t
в Командном окне, затем все опции появляются пустыми ([]
) кроме опций, которые вы задаете используя аргументы пары "имя-значение". Во время обучения программное обеспечение использует значения по умолчанию для пустых опций.
Обучите модель ECOC, состоящую из нескольких двоичных, линейных классификационных моделей.
Загрузите набор данных NLP.
load nlpdata
X
является разреженной матрицей данных предиктора, и Y
является категориальным вектором меток классов. В данных более двух классов.
Создайте шаблон модели линейной классификации по умолчанию.
t = templateLinear();
Для корректировки значений по умолчанию смотрите Аргументы в виде пар имя-значение на templateLinear
страница.
Обучите модель ECOC, состоящую из нескольких двоичных, линейных классификационных моделей, которые могут идентифицировать продукт с учетом частотного распределения слов на веб-странице документации. Для более быстрого времени обучения транспонируйте данные предиктора и укажите, что наблюдения соответствуют столбцам.
X = X'; rng(1); % For reproducibility Mdl = fitcecoc(X,Y,'Learners',t,'ObservationsIn','columns')
Mdl = CompactClassificationECOC ResponseName: 'Y' ClassNames: [1x13 categorical] ScoreTransform: 'none' BinaryLearners: {78x1 cell} CodingMatrix: [13x78 double] Properties, Methods
Кроме того, можно обучить модель ECOC, состоящую из моделей линейной классификации по умолчанию, используя 'Learners','Linear'
.
Чтобы сохранить память, fitcecoc
возвращает обученные модели ECOC, состоящие из учащихся линейной классификации в CompactClassificationECOC
объекты модели.
Задайте необязательные разделенные разделенными запятой парами Name,Value
аргументы. Name
- имя аргумента и Value
- соответствующее значение. Name
должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN
.
'Learner','logistic','Regularization','lasso','CrossVal','on'
задает для реализации логистической регрессии с штрафом лассо и для реализации 10-кратной перекрестной валидации.'Lambda'
- Прочность термина регуляризации'auto'
(по умолчанию) | неотрицательный скаляр | вектор неотрицательных значенийСила термина регуляризации, заданная как разделенная разделенными запятой парами, состоящая из 'Lambda'
и 'auto'
, неотрицательный скаляр или вектор неотрицательных значений.
Для 'auto'
, Lambda
= 1 / n.
Если вы задаете перекрестную валидацию, аргумент пары "имя-значение" (например CrossVal
), тогда n количество кратных наблюдений.
В противном случае n размер обучающей выборки.
Для вектора неотрицательных значений, templateLinear
последовательно оптимизирует целевую функцию для каждого отдельного значения в Lambda
в порядке возрастания.
Если Solver
является 'sgd'
или 'asgd'
и Regularization
является 'lasso'
, templateLinear
не использует предыдущие оценки коэффициентов в качестве теплого начала для следующей итерации оптимизации. В противном случае, templateLinear
использует теплые старты.
Если Regularization
является 'lasso'
, тогда любая оценка коэффициента 0 сохраняет свое значение, когда templateLinear
оптимизирует использование последующих значений в Lambda
.
templateLinear
возвращает оценки коэффициентов для каждой заданной степени регуляризации.
Пример: 'Lambda',10.^(-(10:-2:2))
Типы данных: char
| string
| double
| single
'Learner'
- Тип линейной классификационной модели'svm'
(по умолчанию) | 'logistic'
Тип модели линейной классификации, заданный как разделенная разделенными запятой парами, состоящая из 'Learner'
и 'svm'
или 'logistic'
.
В этой таблице,
β является вектором p коэффициентов.
x является наблюдением от p переменных предиктора.
b - скалярное смещение.
Значение | Алгоритм | Область значений отклика | Функция потерь |
---|---|---|---|
'svm' | Поддерживайте векторную машину | <reservedrangesplaceholder0> {-1,1}; 1 для положительного класса и -1 в противном случае | Шарнир: |
'logistic' | Логистическая регрессия | То же, что и 'svm' | Отклонение (логистическое): |
Пример: 'Learner','logistic'
'Regularization'
- Тип штрафа сложности'lasso'
| 'ridge'
Тип штрафа сложности, заданный как разделенная разделенными запятой парами, состоящая из 'Regularization'
и 'lasso'
или 'ridge'
.
Программное обеспечение составляет целевую функцию для минимизации из суммы функции средних потерь (см Learner
) и термин регуляризации в этой таблице.
Значение | Описание |
---|---|
'lasso' | Лассо (L1) штраф: |
'ridge' | Хребет (L2) штраф: |
Чтобы задать силу термина регуляризации, которая λ в выражениях, используйте Lambda
.
Программа исключает термин смещения (β 0) из штрафа за регуляризацию.
Если Solver
является 'sparsa'
, затем значение по умолчанию Regularization
является 'lasso'
. В противном случае значение по умолчанию является 'ridge'
.
Совет
Для выбора переменной предиктора задайте 'lasso'
. Для получения дополнительной информации о выборе переменной смотрите Введение в выбор признаков.
Для точности оптимизации задайте 'ridge'
.
Пример: 'Regularization','lasso'
'Solver'
- Метод минимизации целевой функции'sgd'
| 'asgd'
| 'dual'
| 'bfgs'
| 'lbfgs'
| 'sparsa'
| строковые массивы | массив ячеек из векторов символовМетод минимизации целевой функции, заданный как разделенная разделенными запятой парами, состоящая из 'Solver'
и вектор символов или строковый скаляр, строковые массивы или массив ячеек из векторов символов со значениями из этой таблицы.
Значение | Описание | Ограничения |
---|---|---|
'sgd' | Стохастический градиентный спуск (SGD) [4][2] | |
'asgd' | Средний стохастический градиентный спуск (ASGD) [7] | |
'dual' | Двойной SGD для SVM- [1][6] | Regularization должен быть 'ridge' и Learner должен быть 'svm' . |
'bfgs' | Алгоритм Бройдена-Флетчера-Голдфарба-Шанно квази-Ньютона (BFGS) [3] | Неэффективный, если X очень высоко-размерный. |
'lbfgs' | BFGS (LBFGS) с ограниченной памятью [3] | Regularization должен быть 'ridge' . |
'sparsa' | Разреженная реконструкция с помощью разделяемого приближения (SpaRSA) [5] | Regularization должен быть 'lasso' . |
Если вы задаете:
Штраф за хребет (см. Regularization
) и набор данных предиктора содержит 100 или менее переменных предиктора, тогда решатель по умолчанию 'bfgs'
.
Модель SVM (см Learner
), штраф за хребет, и набор данных предиктора содержит более 100 переменных предиктора, тогда решатель по умолчанию 'dual'
.
Штраф лассо и набор данных предиктора содержат 100 или менее переменных предиктора, тогда решатель по умолчанию 'sparsa'
.
В противном случае решатель по умолчанию является 'sgd'
.
Для получения дополнительной информации о том, какой решатель выбрать, смотрите Советы.
Пример: '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
, программное обеспечение использует Beta
как начальное значение и, после сортировки (:, j
)Lambda
в порядке возрастания использует Lambda
как прочность на регуляризацию.(j
)
Если вы задаете 'Solver','dual'
, затем программное обеспечение игнорирует Beta
.
Типы данных: single
| double
'Bias'
- Первоначальная оценка точки пересеченияНачальная оценка точки пересечения (b), заданная как разделенная разделенными запятой парами, состоящая из 'Bias'
и числовой скаляр или L -мерный числовой вектор. L количество значений регуляризационной прочности (для получения дополнительной информации см. Lambda
).
Если вы задаете скаляр, то программное обеспечение оптимизирует целевую функцию L раз, используя этот процесс.
Программное обеспечение оптимизирует с помощью Bias
как начальное значение и минимальное значение Lambda
как прочность на регуляризацию.
Полученная оценка используется как теплое начало следующей итерации оптимизации и использует следующее наименьшее значение в Lambda
как прочность на регуляризацию.
Программа реализует шаг 2, пока не исчерпает все значения в Lambda
.
Если вы задаете L -мерный вектор, то программное обеспечение оптимизирует целевую функцию L раз. При итерации j
, программное обеспечение использует Bias
как начальное значение и, после сортировки (j
)Lambda
в порядке возрастания использует Lambda
как прочность на регуляризацию.(j
)
По умолчанию:
Если Learner
является 'logistic'
, тогда позвольте gj быть 1, если Y
является положительным классом и -1 в противном случае. (j
)Bias
- взвешенное среднее значение g для обучения или, для перекрестной валидации, в кратном выражении.
Если Learner
является 'svm'
, затем Bias
равен 0.
Типы данных: single
| double
'FitBias'
- флаг включения линейной модели точки пересеченияtrue
(по умолчанию) | false
Флаг включения линейной модели точки пересечения, заданный как разделенная разделенными запятой парами, состоящая из 'FitBias'
и true
или false
.
Значение | Описание |
---|---|
true | Программное обеспечение включает термин смещения, b в линейной модели, и затем оценивает его. |
false | Программное обеспечение устанавливает b = 0 во время оценки. |
Пример: 'FitBias',false
Типы данных: logical
'PostFitBias'
- Флаг для соответствия линейной точке пересечения модели после оптимизацииfalse
(по умолчанию) | true
Флаг для подгонки линейной точки пересечения модели после оптимизации, заданный как разделенная разделенными запятой парами, состоящая из 'PostFitBias'
и true
или false
.
Значение | Описание |
---|---|
false | Программа оценивает срок смещения b и коэффициенты, β во время оптимизации. |
true |
Чтобы оценить b, программное обеспечение:
|
Если вы задаете true
, затем FitBias
должно быть true.
Пример: 'PostFitBias',true
Типы данных: logical
'Verbose'
- Уровень подробностей0
(по умолчанию) | 1
Уровень подробностей, заданный как разделенная разделенными запятой парами, состоящая из 'Verbose'
и любой из них 0
или 1
. Verbose
управляет отображением диагностической информации в командной строке.
Значение | Описание |
---|---|
0 | templateLinear не отображает диагностическую информацию. |
1 | templateLinear периодически отображает значение целевой функции, градиентную величину и другую диагностическую информацию. |
Пример: 'Verbose',1
Типы данных: single
| double
'BatchSize'
- Размер мини-партииМини-пакет, заданный как разделенная разделенными запятой парами, состоящая из 'BatchSize'
и положительное целое число. При каждой итерации программное обеспечение оценивает градиент используя BatchSize
наблюдения из обучающих данных.
Если данные предиктора являются числовой матрицей, то значение по умолчанию 10
.
Если данные предиктора являются разреженной матрицей, то значение по умолчанию max([10,ceil(sqrt(ff))])
, где ff = numel(X)/nnz(X)
, то есть fullness factor X
.
Пример: 'BatchSize',100
Типы данных: single
| double
'LearnRate'
- Скорость обученияСкорость обучения, заданный как разделенная разделенными запятой парами, состоящая из 'LearnRate'
и положительная скалярная величина. LearnRate
управляет размером шага оптимизации путем масштабирования подградиента.
Если Regularization
является 'ridge'
, затем LearnRate
задает начальную скорость обучения γ 0 .templateLinear
определяет скорость обучения для 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
Типы данных: logical
'TruncationPeriod'
- Количество мини-пакетов между запусками усечения лассо10
(по умолчанию) | положительное целое числоКоличество мини-пакетов между запусками усечения lasso, заданное как разделенная разделенными запятой парами, состоящая из 'TruncationPeriod'
и положительное целое число.
После выполнения усечения программное обеспечение применяет мягкий порог к линейным коэффициентам. То есть после обработки k = TruncationPeriod
мини-пакеты, программное обеспечение обрезает оцененный коэффициент j используя
Для SGD, - оценка коэффициентного j после обработки k мини-пакетов. γt - скорость обучения в t итерации. λ - значение Lambda
.
Для ASGD, - усредненный оценочный коэффициент, j после обработки k мини-пакетов,
Если Regularization
является 'ridge'
, затем программное обеспечение игнорирует TruncationPeriod
.
Пример: 'TruncationPeriod',100
Типы данных: single
| double
'BatchLimit'
- Максимальное количество партийМаксимальное количество пакетов для обработки, заданное как разделенная разделенными запятой парами, состоящая из 'BatchLimit'
и положительное целое число. Когда программное обеспечение обрабатывает BatchLimit
пакеты, это прекращает оптимизацию.
По умолчанию:
Если вы задаете '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'
- Максимальное количество проходов1
(по умолчанию) | положительное целое числоМаксимальное количество проходов через данные, заданное как разделенная разделенными запятой парами, состоящая из 'PassLimit'
и положительное целое число.
Программное обеспечение обрабатывает все наблюдения, когда оно завершает один проход через данные.
Когда программное обеспечение проходит через данные PassLimit
раз, это прекращает оптимизацию.
Если вы задаете '
BatchLimit
'
и PassLimit
затем программное обеспечение выбирает аргумент, который приводит к обработке наименьшего количества наблюдений.
Пример: 'PassLimit',5
Типы данных: single
| double
'BetaTolerance'
- Относительная погрешность на линейные коэффициенты и термин смещения1e-4
(по умолчанию) | неотрицательной скаляромОтносительная погрешность на линейные коэффициенты и термин смещения ( точка пересечения), заданный как разделенная разделенными запятой парами, состоящая из 'BetaTolerance'
и неотрицательный скаляр.
Давайте , то есть вектор коэффициентов и член смещения при t итерации оптимизации. Если , затем оптимизация прекращается.
Если вы также задаете DeltaGradientTolerance
затем оптимизация прекращается, когда программное обеспечение удовлетворяет любому критерию остановки.
Если программное обеспечение сходится для последнего решателя, заданного в Solver
, затем оптимизация прекращается. В противном случае программное обеспечение использует следующий решатель, указанный в Solver
.
Пример: 'BetaTolerance',1e-6
Типы данных: single
| double
'DeltaGradientTolerance'
- Отклонение разности градиентов1
(по умолчанию) | неотрицательной скаляромДопуск градиента-разности между верхним и нижним бассейном Каруш-Кун-Такер (KKT) нарушители условий комплементарности, заданный как разделенная разделенными запятой парами, состоящая из 'DeltaGradientTolerance'
и неотрицательный скаляр.
Если величина нарушителей ККТ меньше DeltaGradientTolerance
затем программное обеспечение прекращает оптимизацию.
Если программное обеспечение сходится для последнего решателя, заданного в Solver
, затем оптимизация прекращается. В противном случае программное обеспечение использует следующий решатель, указанный в Solver
.
Пример: 'DeltaGapTolerance',1e-2
Типы данных: double
| single
'NumCheckConvergence'
- Количество проходов через весь набор данных для обработки перед следующей проверкой сходимости5
(по умолчанию) | положительное целое числоКоличество проходов через весь набор данных для обработки перед следующей проверкой сходимости, заданное как разделенная разделенными запятой парами, состоящая из 'NumCheckConvergence'
и положительное целое число.
Пример: 'NumCheckConvergence',100
Типы данных: single
| double
'PassLimit'
- Максимальное количество проходов10
(по умолчанию) | положительное целое числоМаксимальное количество проходов через данные, заданное как разделенная разделенными запятой парами, состоящая из 'PassLimit'
и положительное целое число.
Когда программа завершает один проход через данные, она обработала все наблюдения.
Когда программное обеспечение проходит через данные PassLimit
раз, это прекращает оптимизацию.
Пример: 'PassLimit',5
Типы данных: single
| double
'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'
- Размер буфера истории для гессианского приближения15
(по умолчанию) | положительное целое числоРазмер буфера истории для Hessian приближения, заданный как разделенная запятой пара, состоящий из 'HessianHistorySize'
и положительное целое число. То есть на каждой итерации программное обеспечение составляет Hessian, используя статистику последних HessianHistorySize
итераций.
Программное обеспечение не поддерживает 'HessianHistorySize'
для SpaRSA.
Пример: 'HessianHistorySize',10
Типы данных: single
| double
'IterationLimit'
- Максимальное количество итераций оптимизации1000
(по умолчанию) | положительное целое числоМаксимальное количество итераций оптимизации, заданное как разделенная разделенными запятой парами, состоящая из 'IterationLimit'
и положительное целое число. IterationLimit
применяется к этим значениям Solver
: 'bfgs'
, 'lbfgs'
, и 'sparsa'
.
Пример: 'IterationLimit',500
Типы данных: single
| double
t
- Шаблон обучающегося модели линейной классификацииШаблон обучающегося модели линейной классификации, возвращенный как объект шаблона. Чтобы обучить линейную модель классификации, используя высокомерные данные для многоклассовых задач, передайте t
кому fitcecoc
.
Если вы отображаете t
в Командное окно, затем все, не заданные опции появляются пустыми ([]
). Однако во время обучения программа заменяет пустые опции соответствующими значениями по умолчанию.
A warm start является начальной оценкой бета-коэффициентов и условия смещения, поданные в стандартную программу оптимизации для более быстрого сходимости.
Это - лучшая практика сориентировать матрицу предиктора так, чтобы наблюдения соответствовали столбцам, и задать '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
слишком маленькая, тогда программа достигает минимума во многих итерациях, но быстро вычисляет градиент на итерацию.
Если BatchSize
слишком велик, тогда программа достигает минимума в меньшем количестве итераций, но вычисляет градиент на итерацию медленно.
Большая скорость обучения (см LearnRate
) ускорить сходимость до минимума, но может привести к расхождению (то есть переступая минимум). Малые скорости обучения гарантируют сходимость к минимуму, но могут привести к медленному прекращению обучения.
Если Regularization
является 'lasso'
, затем экспериментируйте с различными значениями TruncationPeriod
. Для примера задайте TruncationPeriod
на 1
, 10
и затем 100
.
Для эффективности программное обеспечение не стандартизирует данные предиктора. Чтобы стандартизировать данные предиктора (X
), введите
X = bsxfun(@rdivide,bsxfun(@minus,X,mean(X,2)),std(X,0,2));
Код требует, чтобы вы ориентировали предикторы и наблюдения как строки и столбцы X
, соответственно. Кроме того, для экономии использования памяти код заменяет исходные данные предиктора стандартизированные данные.
[1] Hsieh, C. J., K. W. Chang, C. J. Лин, С. С. Кеерти и С. Сундарараджан. Метод двойного координатного спуска для крупномасштабного линейного SVM. Материалы 25-й Международной конференции по машинному обучению, ICML "08, 2001, стр. 408-415.
[2] Лэнгфорд, Дж., Л. Ли, и Т. Чжан. «Разреженное онлайн-обучение через усеченный градиент». Дж. Мач. Учись. Рес., том 10, 2009, стр. 777-801.
[3] Nocedal, J. and S. J. Wright. Численная оптимизация, 2-е изд., Нью-Йорк: Спрингер, 2006.
[4] Шалев-Шварц, С., Я. Сингер, и Н. Сребру. Pegasos: Primal Estimated Sub-Gradient Solver for SVM (неопр.) (недоступная ссылка). Материалы 24-й Международной конференции по машинному обучению, ICML "07, 2007, стр. 807-814.
[5] Райт, С. Дж., Р. Д. Новак, и М. А. Т. Фигейредо. «Разреженная реконструкция с помощью разделяемого приближения». Транс. Сиг. Proc., Том 57, № 7, 2009, стр. 2479-2493.
[6] Xiao, Lin. «Dual Aververaging Methods for Regularized Stochastic Learning and Online Optimization». Дж. Мач. Учись. Res., Vol. 11, 2010, pp. 2543-2596.
[7] Сюй, Вэй. «К оптимальной однопроходной большой Шкале обучению со средним стохастическим градиентным спуском». CoRR, abs/1107.2490, 2011.
Указания и ограничения по применению, когда вы обучаете модель, передавая линейный шаблон модели и длинных массивов к fitcecoc
:
Значения по умолчанию для этих аргументов пары "имя-значение" различаются, когда вы работаете с длинные массивы.
'Lambda'
- Можно 'auto'
(по умолчанию) или скаляр
'Regularization'
- Поддерживает только 'ridge'
'Solver'
- Поддерживает только 'lbfgs'
'FitBias'
- Поддерживает только true
'Verbose'
- Значение по умолчанию 1
'BetaTolerance'
- Значение по умолчанию ослаблено до 1e–3
'GradientTolerance'
- Значение по умолчанию ослаблено до 1e–3
'IterationLimit'
- Значение по умолчанию ослаблено до 20
Когда fitcecoc
использует templateLinear
объект с длинные массивы, единственным доступным решателем является LBFGS. Программа реализует LBFGS, распределяя вычисление потерь и градиента между различными частями длинный массив при каждой итерации. Если вы не задаете начальные значения для Beta
и Bias
программное обеспечение уточняет начальные оценки параметров путем подгонки модели локально к частям данных и объединения коэффициентов путем усреднения.
Для получения дополнительной информации см. Раздел «Длинные массивы»
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.