Объект модели пошагового обучения полностью задает, как функции реализуют инкрементный подбор кривой и оценку производительности модели. Чтобы сконфигурировать (или подготовиться) модель пошагового обучения, создайте один путем вызова объекта непосредственно, или путем преобразования традиционно обученной модели в один из объектов. В следующей таблице перечислены доступные объекты, функции преобразования и поддерживаемых учеников для соответствующей цели машинного обучения.
Цель | Подход создания | Функция | Поддерживаемые ученики |
---|---|---|---|
Бинарная классификация | Объект Call | incrementalClassificationLinear | Линейный SVM Логистическая регрессия |
Модель Convert |
| ||
Классификация Mutliclass | Объект Call | incrementalClassificationNaiveBayes | Наивная Байесова классификация с нормально распределенными переменными предикторами, обусловленными на классе |
Модель Convert |
| ||
Регрессия | Объект Call | incrementalRegressionLinear | Линейная регрессия SVM Метод наименьших квадратов |
Модель Convert |
|
Подход создания, который вы выбираете, зависит от информации, которую вы имеете и ваши настройки.
Объект Call: Создайте инкрементную модель к своим техническим требованиям путем вызова объекта непосредственно. Этот подход гибок, позволяя вам задать большинство опций, чтобы удовлетворить вашим настройкам, и получившаяся модель обеспечивает разумные значения по умолчанию. Однако:
Для линейной классификации или моделей регрессии, период оценки может требоваться для ваших технических требований.
Для наивных моделей классификации Бейеса необходимо задать максимальное количество классов или всех имен классов, ожидаемых в данных во время пошагового обучения.
Для получения дополнительной информации смотрите Объект Вызова Непосредственно.
Модель Convert: Преобразуйте традиционно обученную модель в инкрементного ученика, чтобы инициализировать модель для пошагового обучения. incrementalLearner
информация о передачах, что традиционно обученная модель, усвоенная из данных. Для линейных моделей переданная информация включает включая оптимизированные содействующие оценки, характеристики данных и применимые гиперзначения параметров. Для наивных моделей классификации Бейеса переданная информация включает характеристики данных, такие как все ожидаемые имена классов и адаптированные моменты условных распределений предиктора. Однако, чтобы преобразовать традиционно обученную модель, у вас должен быть набор маркированных данных, к которым можно подобрать модель.
Когда вы используете incrementalLearner
, можно задать все опции оценки результатов деятельности и только обучение, модель и опции данных, которые неизвестны во время преобразования. Для получения дополнительной информации смотрите, Преобразуют Традиционно Обученную Модель.
Независимо от инкрементного создания модели приближаются к вам использование, рассматривают эти настройки:
Настройки оценки производительности модели, такие как показатели производительности, чтобы измериться
Для линейных моделей:
Тип модели, такой как SVM
Содействующие начальные значения
Решатель целевой функции, такой как стандартный стохастический градиентный спуск (SGD)
Гиперзначения параметров решателя, такие как скорость обучения решателей SGD
В отличие от этого, при работе с другими объектами модели машинного обучения, можно создать модель пошагового обучения путем вызова соответствующего объекта непосредственно без любого ведома о данных. Для линейных моделей единственной информацией, запрошенной, чтобы создать модель непосредственно, является проблема машинного обучения, или классификация или регрессия, тогда как наивные модели классификации Бейеса требуют максимального количества классов, ожидаемых в данных или всех именах классов. Например, следующий код создает инкрементную модель по умолчанию для линейной регрессии и наивную модель классификации Бейеса для потока данных, содержащего 5 классов.
MdlLR = incrementalRegressionLinear();
MdlNB = incrementalClassificationNaiveBayes('MaxNumClasses',5)
Если у вас есть информация о данных, чтобы задать, или вы хотите сконфигурировать опции модели или настройки оценки результатов деятельности, использовать аргументы значения имени, когда вы вызываете объект. (Все свойства модели только для чтения; вы не можете настроить их использующий запись через точку.), Например, следующий псевдокод создает инкрементную модель логистической регрессии для бинарной классификации, инициализирует линейные коэффициенты модели Beta
и сместите Bias
(полученный из предварительных знаний проблемы), и наборы период прогрева показателей производительности к 500
наблюдения.
Mdl = incrementalClassificationLinear('Learner','logistic',... 'Beta',Beta,'Bias',Bias,'MetricsWarmupPeriod',500);
Следующие таблицы кратко описывают известные опции для главных аспектов пошагового обучения. Для получения дополнительной информации обо всех опциях смотрите incrementalRegressionLinear
, incrementalClassificationLinear
, или incrementalClassificationNaiveBayes
.
Эта таблица содержит известные опции модели и характеристики данных.
Тип модели | Опции модели и свойства данных | Описание |
---|---|---|
Линейная классификация или регрессия | 'Beta' | Линейные коэффициенты, которые также служат начальными значениями для инкрементного подбора кривой |
'Bias' | Точка пересечения модели, которые также служат начальным значением для инкрементного подбора кривой | |
'Learner' | Тип модели, такой как линейный SVM или наименьшие квадраты | |
Наивная Байесова классификация | 'Cost' | Misclassification стоят матрицы |
Классификация | 'ClassNames' | Для классификации, ожидаемых имен классов в метках наблюдения |
Эта таблица содержит известное обучение и опции решателя и свойства.
Тип модели | Обучение и опции решателя и свойства | Описание |
---|---|---|
Линейная классификация или регрессия | 'EstimationPeriod' | Предучебный период оценки |
'Solver' | Алгоритм оптимизации целевой функции | |
'Standardize' | Отметьте, чтобы стандартизировать данные о предикторе | |
'Lambda' | Гребенчатый штраф, гиперпараметр модели, который требует настройки для оптимизации SGD | |
'BatchSize' | Мини-пакетный размер, гиперпараметр SGD | |
'LearnRate' | Скорость обучения, гиперпараметр SGD | |
'Mu' | Свойство только для чтения, содержащее средние значения переменного предиктора | |
'Sigma' | Свойство только для чтения, содержащее стандартные отклонения переменного предиктора | |
Наивная Байесова классификация | 'DistributionParameters' | Подходящие моменты каждого условного распределения предиктора, учитывая каждый класс |
Для линейной классификации и моделей регрессии:
Период оценки, заданный количеством наблюдений в EstimationPeriod
, происходит, прежде чем обучение начинается (см. Периоды Пошагового обучения). В период оценки, инкрементную подходящую функцию fit
или updateMetricsAndFit
вычисляет количества, требуемые для обучения, когда они неизвестны. Например, если вы устанавливаете 'Standardize',true
, функции пошагового обучения требуют, чтобы средние значения предиктора и стандартные отклонения стандартизировали данные о предикторе. Следовательно, инкрементная модель требует положительного периода оценки (значением по умолчанию является 1000
).
Решатель по умолчанию является адаптивным инвариантным к масштабу решателем 'scale-invariant'
[2], который является гиперпараметром, свободным и нечувствительным к шкалам переменного предиктора; поэтому, стандартизация данных о предикторе не требуется. Можно задать стандартный или средний SGD вместо этого, 'sgd'
или 'asgd'
. Однако SGD чувствителен к переменному предиктору, масштабирует и требует настройки гиперпараметра, которая может затруднить или быть невозможна сделать во время пошагового обучения. Если вы планируете использовать решатель SGD, завершить эти шаги:
Получите маркированные данные.
Традиционно обучите линейную классификацию или модель регрессии путем вызова fitclinear
или fitrlinear
, соответственно. Задайте решатель SGD, который вы планируете использовать для пошагового обучения, перекрестный подтвердить, чтобы определить соответствующий набор гиперпараметров и стандартизировать данные о предикторе.
Обучите модель на целой выборке с помощью заданного гипернабора параметров.
Преобразуйте получившуюся модель в инкрементного ученика при помощи incrementalLearner
.
Свойства оценки результатов деятельности и опции позволяют вам сконфигурировать, как и когда производительность модели измеряется функцией пошагового обучения updateMetrics
или updateMetricsAndFit
. Независимо от опций вы выбираете, сначала ознакомляете себя с периодами пошагового обучения.
Эта таблица содержит все опции оценки результатов деятельности и свойства.
Опции оценки результатов деятельности и свойства | Описание |
---|---|
'Metrics' | Список показателей производительности или функций потерь, чтобы измериться инкрементно |
'MetricsWarmupPeiod' | Количество наблюдений, к которым инкрементная модель должна быть подходящей, прежде чем это отследит показатели производительности |
'MetricsWindowSize' | Количество наблюдений, чтобы использоваться для расчета показателей производительности окна |
'IsWarm' | Свойство только для чтения, указывающее, является ли модель теплой (измеряет показатели производительности), |
'Metrics' | Свойство только для чтения, содержащее таблицу совокупных отслеженных и метрики окна |
Метрики заданы 'Metrics'
форма значения имени таблица, хранимая в Metrics
свойство модели. Например, если вы задаете 'Metrics',["Metric1" "Metric2"]
когда вы создаете инкрементную модель Mdl
, Metrics
свойство
>> Mdl.Metrics ans = 2×2 table Cumulative Window __________ ______ Metric1 NaN NaN Metric2 NaN NaN
Задайте положительный метрический период прогрева, когда вы полагаете, что модель имеет низкое качество и должна быть обучена перед функцией updateMetrics
или updateMetricsAndFit
показатели производительности дорожек в Metrics
свойство. В этом случае, IsWarm
свойством является false
, и необходимо передать входящие данные и модель к инкрементной подходящей функции fit
или updateMetricsAndFit
.
Когда инкрементная подходящая функция обрабатывает достаточно данных, чтобы удовлетворить оценке (для линейных моделей) и метрические периоды прогрева, IsWarm
свойство становится true
, и можно измерить производительность модели на входящих данных и опционально обучить модель. Для наивных моделей классификации Бейеса инкрементные подходящие функции должны дополнительно подбирать модель ко всем ожидаемым классам, чтобы стать теплыми.
Когда модель является теплой, updateMetrics
или updateMetricsAndFit
дорожки все заданные метрики кумулятивно (от запуска оценки) и в окне наблюдений заданы MetricsWindowSize
свойство. Совокупные метрики отражают производительность модели по целой истории пошагового обучения; после того, как Период Оценки результатов деятельности 1 запускается, совокупные метрики независимы от испытательного срока. Метрики окна отражают производительность модели только свыше заданного размера окна в течение каждого периода оценки результатов деятельности.
incrementalLearner
позволяет вам инициализировать инкрементную модель с помощью информации, усвоенной из традиционно обученной модели. Конвертированная модель может сгенерировать предсказания, и тепло, что означает, что функции пошагового обучения могут измерить метрики производительности модели от запуска потока данных. Другими словами, оценка и периоды прогрева показателей производительности не требуются для пошагового обучения.
Чтобы преобразовать традиционно обученную модель в инкрементного ученика, передайте модель и любые опции, заданные аргументами значения имени к incrementalLearner
. Например, следующий псевдокод инициализирует инкрементную модель классификации при помощи всей информации, которую линейная модель SVM для бинарной классификации узнала из пакета данных.
Mdl = fitcsvm(X,Y); IncrementalMdl = incrementalLearner(Mdl,Name,Value);
IncrementalMdl
инкрементный объект ученика, сопоставленный с целью машинного обучения.
Простота инкрементного создания модели и инициализации возмещена уменьшенной гибкостью. Программное обеспечение принимает, что адаптированные параметры, гиперзначения параметров и характеристики данных, изученные во время традиционного обучения, подходят для пошагового обучения. Поэтому вы не можете установить соответствующие изученные или настроенные опции, когда вы вызываете incrementalLearner
. Эта таблица приводит известные свойства только для чтения IncrementalMdl
это incrementalLearner
передачи от Mdl
, или что функция выводит из других значений.
Тип модели | Свойство | Описание |
---|---|---|
Все | NumPredictors | Количество переменных предикторов. Для моделей, что фиктивный код категориальные переменные предикторы, NumPredictors numel(Mdl.ExpandedPredictorNames) , и переменные предикторы, ожидаемые во время пошагового обучения, соответствуют именам. Для получения дополнительной информации смотрите Фиктивные Переменные. |
Классификация | ClassNames | Все метки класса ожидаются во время пошагового обучения |
Prior | Предшествующее распределение класса | |
ScoreTransform | Функция, чтобы примениться к классификационным оценкам. Например, если вы конфигурируете модель SVM, чтобы вычислить следующие вероятности класса, | |
Регрессия | Epsilon | Для ученика SVM, половина ширины нечувствительной к эпсилону полосы |
ResponseTransform | Функция, чтобы примениться к предсказанным ответам | |
Линейная классификация или регрессия | Beta | Линейные коэффициенты модели |
Bias | Точка пересечения модели | |
Learner | Линейный тип модели | |
Mu | Для объекта модели SVM, средних значений переменного предиктора | |
Sigma | Для объекта модели SVM, стандартных отклонений переменного предиктора | |
Наивная Байесова классификация | DistributionNames | NumPredictors вектор ячейки длины с 'normal' в каждой ячейке. Если вы преобразуете наивную модель классификации Бейеса, содержащую по крайней мере один ненормальный предиктор, incrementalLearner выдает ошибку. |
DistributionParameters | Подходящие моменты каждого условного распределения предиктора, учитывая каждый класс |
Примечание
NumTrainingObservations
свойство IncrementalMdl
не включает наблюдения, используемые, чтобы обучить Mdl
.
Если вы задаете 'Standardize',true
когда вы обучаете Mdl
, IncrementalMdl
сконфигурирован, чтобы стандартизировать предикторы во время пошагового обучения по умолчанию.
Следующие условия применяются, когда вы преобразуете линейную классификацию или модель регрессии (ClassificationLinear
и RegressionLinear
, соответственно):
Инкрементные подходящие функции поддерживают гребень (L2) регуляризация только.
Инкрементные подходящие функции поддерживают спецификацию только одного значения регуляризации. Поэтому, если вы задаете путь к регуляризации (вектор из значений регуляризации), когда вы вызываете fitclinear
или fitrlinear
, выберите модель, сопоставленную с одним штрафом путем передачи его selectModels
.
Если вы решаете целевую функцию при помощи стандартного или среднего SGD ('sgd'
или 'asgd'
для 'Solver'
аргумент значения имени), эти условия применяются, когда вы вызываете incrementalLearner
:
incrementalLearner
передает решатель, используемый, чтобы оптимизировать Mdl
к IncrementalMdl
.
Можно задать адаптивный инвариантный к масштабу решатель 'scale-invariant'
вместо этого, но вы не можете задать различный решатель SGD.
Если вы не задаете адаптивный инвариантный к масштабу решатель, incrementalLearner
модель передач и гиперзначения параметров решателя к инкрементному объекту модели, такие как скорость обучения LearnRate
, мини-пакетный размер BatchSize
, и гребенчатый штраф Lambda
. Вы не можете изменить переданные свойства.
Если вы требуете большей гибкости, когда вы создаете инкрементную модель, можно вызвать объект непосредственно и инициализировать модель путем отдельной установки изученной информации с помощью аргументов значения имени. Следующий псевдокод показывает два примера:
Инициализируйте инкрементную модель классификации от коэффициентов и имен классов, изученных, подбирая линейную модель SVM для бинарной классификации к пакету данных Xc
и Yc
.
Инициализируйте инкрементную модель регрессии от коэффициентов, изученных, подбирая линейную модель к пакету данных Xr
и Yr
.
% Linear Classification Mdl = fitcsvm(Xc,Yc); IncrementalMdl = incrementalClassificationLinear('Beta',Mdl.Beta,... 'Bias',Mdl.Bias,'ClassNames',Mdl.ClassNames); % Linear Regression Mdl = fitlm(Xr,Yr); Bias = Mdl.Coefficients.Estimate(1); Beta = Mdl.Coefficients.Estimate(2:end); IncrementalMdl = incrementalRegressionLinear('Learner','leastsquares',... 'Bias',Bias,'Beta',Beta);
Для наивных моделей классификации Бейеса вы не можете задать моменты распределения условной вероятности каждого переменного предиктора DistributionParameters
; они должны быть адаптированы к данным, fit
или fitcnb