OneVersusAllTrainer Класс

Определение

Для IEstimator<TTransformer> обучения одноклассового классификатора с несколькими классами, использующего указанный двоичный классификатор.

public sealed class OneVersusAllTrainer : Microsoft.ML.Trainers.MetaMulticlassTrainer<Microsoft.ML.Data.MulticlassPredictionTransformer<Microsoft.ML.Trainers.OneVersusAllModelParameters>,Microsoft.ML.Trainers.OneVersusAllModelParameters>
type OneVersusAllTrainer = class
    inherit MetaMulticlassTrainer<MulticlassPredictionTransformer<OneVersusAllModelParameters>, OneVersusAllModelParameters>
Public NotInheritable Class OneVersusAllTrainer
Inherits MetaMulticlassTrainer(Of MulticlassPredictionTransformer(Of OneVersusAllModelParameters), OneVersusAllModelParameters)
Наследование

Комментарии

Чтобы создать этот обучатель, используйте OneVersusAll.

Входные и выходные столбцы

Входные данные столбца меток должны быть ключевым типом , а столбец признаков должен быть вектором известного Singleразмера.

Этот алгоритм обучения выводит следующие столбцы:

Имя выходного столбца Тип столбца Описание
Score Вектор Single Оценки всех классов. Более высокое значение означает большую вероятность попадания в связанный класс. Если i-й элемент имеет самое большое значение, индекс прогнозируемой метки будет равен i. Обратите внимание, что индекс i отсчитывается от нуля.
PredictedLabel Тип key Индекс прогнозируемой метки. Если его значение равно i, фактическая метка будет i-й категорией во входном типе метки с ключевым значением.

Характеристики тренера

Задача машинного обучения Многоклассовая классификация
Требуется ли нормализация? Зависит от базового двоичного классификатора
Требуется ли кэширование? Да
Требуется NuGet в дополнение к Microsoft.ML Нет
Экспортируемый в ONNX Да

Сведения об алгоритме обучения

В стратегии OVA используется алгоритм двоичной классификации для обучения одного классификатора для каждого класса, который отличает этот класс от всех остальных классов. Затем прогноз выполняется путем выполнения этих двоичных классификаторов и выбора прогноза с наибольшей оценкой достоверности. Этот алгоритм можно использовать с любым из двоичных классификаторов в ML.NET. Некоторые двоичные классификаторы уже имеют реализацию для многоклассовых проблем, поэтому пользователи могут выбрать один из них в зависимости от контекста. Версия OVA двоичного классификатора, например оболочка a LightGbmBinaryTrainer, может отличаться от LightGbmMulticlassTrainerверсии OVA, которая напрямую разрабатывает классификатор с несколькими классами. Обратите внимание, что даже если классификатор указывает, что кэширование не требуется, OneVersusAll всегда запрашивает кэширование, так как оно будет выполнять несколько проходов по набору данных. Этот обучающее средство запрашивает нормализацию из конвейера данных, если классификатор указывает, что он будет выгоднее.

Это позволяет использовать обучающие средства, которые, естественно, не имеют многоклассового варианта, например, с помощью FastTreeBinaryTrainer решения многоклассовой проблемы. Кроме того, он может позволить ML.NET решить "простую" проблему даже в тех случаях, когда тренер имеет многоклассовый вариант, но его использование напрямую не является практическим из-за, как правило, ограничений памяти. Например, хотя мультиклассовая логистическая регрессия является более принципным способом решения многоклассовой проблемы, требуется, чтобы обучающий хранил гораздо более промежуточное состояние в виде журнала L-BFGS для всех классов одновременно, а не только один за одним, как это было бы необходимо для модели классификации "один против всех".

Ссылки на примеры использования см. в разделе "См. также".

Свойства

Info

Для IEstimator<TTransformer> обучения одноклассового классификатора с несколькими классами, использующего указанный двоичный классификатор.

(Унаследовано от MetaMulticlassTrainer<TTransformer,TModel>)

Методы

Fit(IDataView)

MulticlassPredictionTransformer<TModel> Обучение модели.

GetOutputSchema(SchemaShape)

Возвращает выходные столбцы.

(Унаследовано от MetaMulticlassTrainer<TTransformer,TModel>)

Методы расширения

AppendCacheCheckpoint<TTrans>(IEstimator<TTrans>, IHostEnvironment)

Добавьте "контрольную точку кэширования" в цепочку оценщика. Это гарантирует, что подчиненные оценщики будут обучены на основе кэшированных данных. Рекомендуется использовать контрольную точку кэширования перед обучением, которые принимают несколько данных.

WithOnFitDelegate<TTransformer>(IEstimator<TTransformer>, Action<TTransformer>)

Учитывая оценщик, верните объект-оболочку, который будет вызывать делегат один раз Fit(IDataView) . Часто важно, чтобы оценщик возвращал сведения о том, что было положено, поэтому Fit(IDataView) метод возвращает специально типизированный объект, а не просто общий ITransformer. Однако в то же время часто IEstimator<TTransformer> формируются в конвейеры со многими объектами, поэтому нам может потребоваться создать цепочку оценщиков, где EstimatorChain<TLastTransformer> оценщик, для которого мы хотим получить преобразователь, похоронен где-то в этой цепочке. В этом сценарии мы можем подключить делегат, который будет вызываться после вызова соответствия.

Применяется к

См. также раздел