Сконфигурируйте модель пошагового обучения

Объект модели пошагового обучения полностью задает, как функции реализуют инкрементный подбор кривой и оценку производительности модели. Чтобы сконфигурировать (или подготовиться) модель пошагового обучения, создайте один путем вызова объекта непосредственно, или путем преобразования традиционно обученной модели в один из объектов. В следующей таблице перечислены доступные объекты, функции преобразования и поддерживаемых учеников для соответствующей цели машинного обучения.

ЦельПодход созданияФункцияПоддерживаемые ученики
Бинарная классификацияОбъект CallincrementalClassificationLinear

Линейный SVM

Логистическая регрессия

Модель Convert

incrementalLearner преобразует линейную модель SVM (ClassificationSVM или CompactClassificationSVM)

incrementalLearner преобразует линейную модель классификации (ClassificationLinear)

Классификация MutliclassОбъект CallincrementalClassificationNaiveBayes

Наивная Байесова классификация с нормально распределенными переменными предикторами, обусловленными на классе

Модель Convert

incrementalLearner преобразует полную наивную модель классификации Бейеса (ClassificationNaiveBayes)

РегрессияОбъект CallincrementalRegressionLinear

Линейная регрессия SVM

Метод наименьших квадратов

Модель Convert

incrementalLearner преобразует линейную модель регрессии SVM (RegressionSVM или CompactRegressionSVM)

incrementalLearner преобразует модель линейной регрессии (RegressionLinear)

Подход создания, который вы выбираете, зависит от информации, которую вы имеете и ваши настройки.

  • Объект 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, завершить эти шаги:

    1. Получите маркированные данные.

    2. Традиционно обучите линейную классификацию или модель регрессии путем вызова fitclinear или fitrlinear, соответственно. Задайте решатель SGD, который вы планируете использовать для пошагового обучения, перекрестный подтвердить, чтобы определить соответствующий набор гиперпараметров и стандартизировать данные о предикторе.

    3. Обучите модель на целой выборке с помощью заданного гипернабора параметров.

    4. Преобразуйте получившуюся модель в инкрементного ученика при помощи 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, чтобы вычислить следующие вероятности класса, ScoreTransform (содержание оценки к функции апостериорной вероятности, усвоенной из данных), передается.

РегрессияEpsilonДля ученика SVM, половина ширины нечувствительной к эпсилону полосы
ResponseTransformФункция, чтобы примениться к предсказанным ответам
Линейная классификация или регрессияBetaЛинейные коэффициенты модели
BiasТочка пересечения модели
LearnerЛинейный тип модели
MuДля объекта модели SVM, средних значений переменного предиктора
SigmaДля объекта модели SVM, стандартных отклонений переменного предиктора
Наивная Байесова классификацияDistributionNamesNumPredictors вектор ячейки длины с '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

Ссылки

[1] Bifet, Альберт, Ricard Gavaldá, Джеффри Холмс и Бернхард Пфарингер. Machine Learning for Data Streams with Practical Example in MOA. Кембридж, MA: нажатие MIT, 2007.

[2] Kempka, Michał, Войцех Kotłowski и Манфред К. Вармут. "Адаптивные Инвариантные к масштабу Онлайновые Алгоритмы для Изучения Линейных Моделей". CoRR (февраль 2019). https://arxiv.org/abs/1902.07528.

Смотрите также

Объекты

Похожие темы