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размера.

Этот тренер выводит следующие столбцы:

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

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

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

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

В стратегии однократной и все (OVA) алгоритм двоичной классификации используется для обучения одного классификатора для каждого класса, который отличает этот класс от всех остальных классов. Затем прогнозирование выполняется путем выполнения этих двоичных классификаторов и выбора прогноза с наивысшей оценкой достоверности. Этот алгоритм можно использовать с любым из двоичных классификаторов в ML.NET. Несколько двоичных классификаторов уже имеют реализацию для проблем с несколькими классами, поэтому пользователи могут выбрать один из них в зависимости от контекста. Версия OVA двоичного классификатора, например оболочка, 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> того, где оценка, для которой мы хотим получить преобразователь, похоронен где-то в этой цепочке. В этом сценарии мы можем подключить делегат, который будет вызываться после вызова.

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

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