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размера.
Этот тренер выводит следующие столбцы:
| Имя выходного столбца | Тип столбца | Description |
|---|---|---|
Score |
Single | Несвязанная оценка, прогнозируемая моделью. |
Характеристики тренера
| Задача машинного обучения | Regression |
| Требуется ли нормализация? | No |
| Требуется ли кэширование? | No |
| Обязательный NuGet в дополнение к Microsoft.ML | Microsoft.ML.FastTree |
| Экспортируемый в ONNX | Yes |
Сведения об алгоритме обучения
FastTree — это эффективная реализация алгоритма повышения градиента MART . Повышение градиента — это метод машинного обучения для проблем регрессии. Он создает каждое дерево регрессии в пошаговой манере, используя предопределенную функцию потери для измерения ошибки для каждого шага и исправляет его в следующем. Таким образом, эта модель прогнозирования на самом деле является ансамблем более слабых моделей прогнозирования. В проблемах регрессии повышение создает ряд таких деревьев в пошаговой манере, а затем выбирает оптимальное дерево с помощью произвольной функции потери.
MART узнает ансамбль деревьев регрессии, который является деревом принятия решений со скалярными значениями в его листьях. Дерево принятия решения (или регрессии) — это бинарная диаграмма потока, например блок-схема, где на каждом внутреннем узле один решает, какие из двух дочерних узлов будут продолжаться на основе одного из значений признаков из входных данных. На каждом конечном узле возвращается значение. В внутренних узлах решение основано на тесте x <= v, где x является значением функции во входном примере и v является одним из возможных значений этой функции. Функции, которые могут быть созданы деревом регрессии, являются всеми кусками константных функций.
Ансамбль деревьев производится вычислениями, на каждом шаге, дерево регрессии, которое приблизит градиент функции потери и добавляет его в предыдущее дерево с коэффициентами, которые свести к минимуму потерю нового дерева. Выходные данные ансамбля, созданного MART на данном экземпляре, — это сумма выходных данных дерева.
- В случае проблемы двоичной классификации выходные данные преобразуются в вероятность с помощью некоторой формы калибровки.
- В случае проблемы регрессии выходные данные — прогнозируемое значение функции.
- В случае проблемы ранжирования экземпляры упорядочивается выходным значением ансамбля.
Дополнительные сведения см. в следующих разделах:
- Википедия: повышение градиента (повышение дерева Градиента).
- Приближение жадной функции: градиентный автомат повышения.
Ознакомьтесь с разделом "См. также" ссылки на примеры использования.
Поля
| Имя | Описание |
|---|---|
| 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> того, где оценка, для которой мы хотим получить преобразователь, похоронен где-то в этой цепочке. В этом сценарии мы можем подключить делегат, который будет вызываться после вызова. |