FastTreeRankingTrainer Класс

Определение

Для IEstimator<TTransformer> обучения модели ранжирования дерева принятия решений с помощью FastTree.

public sealed class FastTreeRankingTrainer : Microsoft.ML.Trainers.FastTree.BoostingFastTreeTrainerBase<Microsoft.ML.Trainers.FastTree.FastTreeRankingTrainer.Options,Microsoft.ML.Data.RankingPredictionTransformer<Microsoft.ML.Trainers.FastTree.FastTreeRankingModelParameters>,Microsoft.ML.Trainers.FastTree.FastTreeRankingModelParameters>
type FastTreeRankingTrainer = class
    inherit BoostingFastTreeTrainerBase<FastTreeRankingTrainer.Options, RankingPredictionTransformer<FastTreeRankingModelParameters>, FastTreeRankingModelParameters>
Public NotInheritable Class FastTreeRankingTrainer
Inherits BoostingFastTreeTrainerBase(Of FastTreeRankingTrainer.Options, RankingPredictionTransformer(Of FastTreeRankingModelParameters), FastTreeRankingModelParameters)
Наследование

Комментарии

Чтобы создать этот тренер, используйте FastTree или FastTree(Options).

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

Тип данных входной метки должен быть ключевым типом или Single. Значение метки определяет релевантность, где более высокие значения указывают на более высокую релевантность. Если метка является типом ключа, то ключевой индекс соответствует значению релевантности, где наименьший индекс обозначает наименьшую релевантность. Если метка имеет значение Single, большее значение указывает на более высокую релевантность. Столбец признаков должен быть известным вектором Single и столбцом входной группы строк должен быть типом ключа .

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

Имя выходного столбца Тип столбца Description
Score Single Несвязанная оценка, вычисляемая моделью для определения прогноза.

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

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

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

FastTree — это эффективная реализация алгоритма повышения градиента MART . Повышение градиента — это метод машинного обучения для проблем регрессии. Он создает каждое дерево регрессии в пошаговой манере, используя предопределенную функцию потери для измерения ошибки для каждого шага и исправляет его в следующем. Таким образом, эта модель прогнозирования на самом деле является ансамблем более слабых моделей прогнозирования. В проблемах регрессии повышение создает ряд таких деревьев в пошаговой манере, а затем выбирает оптимальное дерево с помощью произвольной функции потери.

MART узнает ансамбль деревьев регрессии, который является деревом принятия решений со скалярными значениями в его листьях. Дерево принятия решения (или регрессии) — это бинарная диаграмма потока, например блок-схема, где на каждом внутреннем узле один решает, какие из двух дочерних узлов будут продолжаться на основе одного из значений признаков из входных данных. На каждом конечном узле возвращается значение. В внутренних узлах решение основано на тесте x <= v, где x является значением функции во входном примере и v является одним из возможных значений этой функции. Функции, которые могут быть созданы деревом регрессии, являются всеми кусками константных функций.

Ансамбль деревьев производится вычислениями, на каждом шаге, дерево регрессии, которое приблизит градиент функции потери и добавляет его в предыдущее дерево с коэффициентами, которые свести к минимуму потерю нового дерева. Выходные данные ансамбля, созданного MART на данном экземпляре, — это сумма выходных данных дерева.

  • В случае проблемы двоичной классификации выходные данные преобразуются в вероятность с помощью некоторой формы калибровки.
  • В случае проблемы регрессии выходные данные — прогнозируемое значение функции.
  • В случае проблемы ранжирования экземпляры упорядочивается выходным значением ансамбля.

Дополнительные сведения см. в следующих разделах:

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

Поля

Имя Описание
FeatureColumn

Столбец признаков, который ожидает тренер.

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

Необязательный столбец groupID, который ожидает тренеры ранжирования.

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

Столбец метки, который ожидает тренер. Может быть null, что указывает, что метка не используется для обучения.

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

Столбец веса, который ожидает тренер. Может быть null, что означает, что вес не используется для обучения.

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

Свойства

Имя Описание
Info

Для IEstimator<TTransformer> обучения модели ранжирования дерева принятия решений с помощью FastTree.

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

Методы

Имя Описание
Fit(IDataView, IDataView)

Обучает как обучающие FastTreeRankingTrainer , так и проверяющие данные, возвращает значение RankingPredictionTransformer<TModel>.

Fit(IDataView)

Поезда и возвращается ITransformer.

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

Для IEstimator<TTransformer> обучения модели ранжирования дерева принятия решений с помощью FastTree.

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

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

Имя Описание
AppendCacheCheckpoint<TTrans>(IEstimator<TTrans>, IHostEnvironment)

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

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

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

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

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