FastTreeRegressionTrainer Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Обучение IEstimator<TTransformer> модели регрессии дерева принятия решений с помощью FastTree.
public sealed class FastTreeRegressionTrainer : Microsoft.ML.Trainers.FastTree.BoostingFastTreeTrainerBase<Microsoft.ML.Trainers.FastTree.FastTreeRegressionTrainer.Options,Microsoft.ML.Data.RegressionPredictionTransformer<Microsoft.ML.Trainers.FastTree.FastTreeRegressionModelParameters>,Microsoft.ML.Trainers.FastTree.FastTreeRegressionModelParameters>
type FastTreeRegressionTrainer = class
inherit BoostingFastTreeTrainerBase<FastTreeRegressionTrainer.Options, RegressionPredictionTransformer<FastTreeRegressionModelParameters>, FastTreeRegressionModelParameters>
Public NotInheritable Class FastTreeRegressionTrainer
Inherits BoostingFastTreeTrainerBase(Of FastTreeRegressionTrainer.Options, RegressionPredictionTransformer(Of FastTreeRegressionModelParameters), FastTreeRegressionModelParameters)
- Наследование
Комментарии
Чтобы создать этот обучатель, используйте FastTree или FastTree(Options).
Входные и выходные столбцы
Входные данные столбца меток должны иметь тип Single. Входные признаки данных столбцов должны быть вектором известного Singleразмера .
Этот алгоритм обучения выводит следующие столбцы:
Имя выходного столбца | Тип столбца | Описание |
---|---|---|
Score |
Single | Несвязанная оценка, прогнозируемая моделью. |
Характеристики тренера
Задача машинного обучения | Регрессия |
Требуется ли нормализация? | Нет |
Требуется ли кэширование? | Нет |
Требуется NuGet в дополнение к Microsoft.ML | Microsoft.ML.FastTree |
Экспортируемый в ONNX | Да |
Сведения об алгоритме обучения
FastTree — это эффективная реализация алгоритма повышения градиента MART . Градиентный бустинг — это метод машинного обучения для проблем регрессии. Он пошагово создает каждое дерево регрессии, используя стандартную функцию потерь для измерения ошибок в каждом шаге и их исправления в следующем. Поэтому такая модель прогнозирования фактически является набором более слабых моделей прогнозирования. В задачах регрессии при усилении пошагово создается серия деревьев, а затем с помощью произвольной дифференцируемой функции потерь выбирается оптимальное дерево.
MART изучает набор деревьев регрессии, который является деревом принятия решений со скалярными значениями в листовых узлах. Дерево принятия решений (регрессии) — это древовидная блок-схема, в которой на каждом внутреннем узле принимается решение, какой из двух дочерних узлов использовать дальше, на основе одного из значений функции из входных данных. Значение возвращается в каждом листовом узле. В внутренних узлах решение основано на тесте x <= v, где x — это значение функции во входном примере, а v — одно из возможных значений этой функции. Функции, которые могут создаваться с помощью дерева регрессии, представляют собой кусочные функции-константы.
Набор деревьев создается путем вычисления (на каждом этапе) дерева регрессии, которое получает приближение градиента функции потерь и добавляет его в предыдущее дерево с коэффициентами, которые минимизируют потери нового дерева. Выходные данные набора, произведенного MART на базе данного экземпляра, составляют сумму трех вариантов выходных данных.
- Для проблемы бинарной классификации выходные данные преобразуются в вероятность с использованием того или иного варианта калибровки.
- Для проблем регрессии выходные данные представляют собой спрогнозированное значение функции.
- Для проблемы ранжирования экземпляры упорядочиваются по выходному значению набора.
Дополнительные сведения см. в разделах:
- Википедия: повышение градиента (повышение дерева градиента).
- Greedy function approximation: A gradient boosting machine. (Жадное приближение функции — устройство градиентного усиления.)
Ссылки на примеры использования см. в разделе "См. также".
Поля
FeatureColumn |
Столбец признаков, который ожидает тренер. (Унаследовано от TrainerEstimatorBase<TTransformer,TModel>) |
GroupIdColumn |
Необязательный столбец groupID, который ожидает тренеры ранжирования. (Унаследовано от TrainerEstimatorBaseWithGroupId<TTransformer,TModel>) |
LabelColumn |
Столбец метки, который ожидает тренер. Может иметь значение |
WeightColumn |
Столбец веса, который ожидает тренер. Может быть |
Свойства
Info |
Обучение IEstimator<TTransformer> модели регрессии дерева принятия решений с помощью FastTree. (Унаследовано от FastTreeTrainerBase<TOptions,TTransformer,TModel>) |
Методы
Fit(IDataView, IDataView) |
Обучает FastTreeRegressionTrainer использование обучающих и проверочных данных, возвращает значение RegressionPredictionTransformer<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> оценщик, для которого мы хотим получить преобразователь, похоронен где-то в этой цепочке. В этом сценарии мы можем подключить делегат, который будет вызываться после вызова соответствия. |