FieldAwareFactorizationMachineTrainer Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Прогнозирование IEstimator<TTransformer> целевого объекта с помощью модели машинной факторизации с учетом полей, обученной с помощью метода стохастического градиента.
public sealed class FieldAwareFactorizationMachineTrainer : Microsoft.ML.IEstimator<Microsoft.ML.Trainers.FieldAwareFactorizationMachinePredictionTransformer>
type FieldAwareFactorizationMachineTrainer = class
interface IEstimator<FieldAwareFactorizationMachinePredictionTransformer>
Public NotInheritable Class FieldAwareFactorizationMachineTrainer
Implements IEstimator(Of FieldAwareFactorizationMachinePredictionTransformer)
- Наследование
-
FieldAwareFactorizationMachineTrainer
- Реализации
Комментарии
Входные и выходные столбцы
Данные столбца входной метки должны быть Boolean. Входные данные столбцов функций должны быть известными векторами Singleразмера.
Этот тренер выводит следующие столбцы:
| Имя выходного столбца | Тип столбца | Description | |
|---|---|---|---|
Score |
Single | Несвязанная оценка, вычисляемая моделью. | |
PredictedLabel |
Boolean | Прогнозируемая метка, определяемая по знаку оценки. Отрицательный показатель сопоставляется с false, а положительный показатель сопоставляется с true. |
|
Probability |
Single | Вероятность, вычисляемая путем калибровки оценки значения true в качестве метки. Значение вероятности находится в диапазоне [0, 1]. |
Чтобы создать этот тренер, используйте FieldAwareFactorizationMachineFieldAwareFactorizationMachine или FieldAwareFactorizationMachine(Options).
В отличие от других двоичных классификаторов, которые могут поддерживать только один столбец признаков, компьютер с учетом полей может использовать несколько столбцов признаков. Каждый столбец рассматривается как контейнер некоторых функций, и такой контейнер называется полем. Обратите внимание, что все столбцы компонентов должны быть векторами с плавающей запятой, но их размеры могут отличаться. Мотивация разделения функций на разные поля заключается в том, чтобы моделировать функции из разных дистрибутивов независимо. Например, в интернет-магазине игр функции, созданные из профиля пользователя, и те из профиля игры могут быть назначены двум разным полям.
Характеристики тренера
| Задача машинного обучения | Двоичная классификация |
| Требуется ли нормализация? | Yes |
| Требуется ли кэширование? | No |
| Обязательный NuGet в дополнение к Microsoft.ML | Нет |
| Экспортируемый в ONNX | No |
Предыстория
Семейство машин факторизации — это мощная группа моделей для проблем с защищенным обучением. Впервые он появился в документе Steffen Rendle "Машины факторизации" в 2010 году. Позже одна из ее обобщенных версий, машинная факторизация с учетом полей, стала важным прогнозным модулем в последних системах рекомендаций и конкурсах прогнозирования скорости. Примеры см. в KDD-Cup 2012 KDD-Cup Steffen Rendle (Track 1 и Track 2), Criteo's, Avazu и Outbrain в вызовах прогнозирования на Kaggle.
Компьютеры факторизации особенно мощны, если сочетания функций очень коррелируются с сигналом, который вы хотите прогнозировать. Пример пар функций, которые могут формировать важные сочетания, — идентификатор пользователя и идентификатор музыки в рекомендации по музыке. Если набор данных состоит только из плотных числовых признаков, использование машины факторизации не рекомендуется или некоторые признаки должны выполняться.
Функция оценки
Компьютер факторизации с учетом полей — это функция оценки, которая сопоставляет векторы функций из разных полей с скалярной оценкой. Предположим, что все столбцы признаков $m$ объединяются в длинный вектор признаков $\textbf{x} \in {\mathbb R}^n$ и ${\mathcal F}(j)$ обозначает поле $j$-th функции индентификатор. Соответствующая оценка — $\hat{y}(\textbf{x}) = \langle \textbf{w}, \textbf{x} \rугол + \sum_{j = 1}^n \sum_{j' = j + 1}^n \langle \textbf{v}_{j, {\mathcal F}(j')}, \textbf{v}_{j', {\mathcal F}(j)} \rугловой x_j x_{j'}$, где $\langle \cdot, \cdot \rугловой$ является внутренним оператором продукта, $\textbf{w} \in {\mathbb R}^n$ сохраняет линейные коэффициенты, и $\textbf{v}_{j, f}\in {\mathbb R}^k$ — это представление функции $j$-th в скрытом пространстве поля $f$-th. Обратите внимание, что $k$ — это скрытое измерение, указанное пользователем.
Прогнозируемая метка является признаком $\hat{y}$. Если $\hat{y} > 0$, эта модель прогнозирует значение true. В противном случае он прогнозирует значение false.
Системное введение в машинную факторизацию с учетом полей см. в этом документе.
Сведения об алгоритме обучения
Алгоритм, реализованный в FieldAwareFactorizationMachineTrainer , основан на методе стохастического градиента. Сведения об алгоритме описаны в алгоритме 3 в этом интерактивном документе. Функция минимизации потери является логистической потерей, поэтому обученная модель может рассматриваться как нелинейная логистическая регрессия.
Ознакомьтесь с разделом "См. также" ссылки на примеры использования.
Методы
| Имя | Описание |
|---|---|
| Fit(IDataView, IDataView, FieldAwareFactorizationMachineModelParameters) |
Продолжает обучение FieldAwareFactorizationMachineTrainer с помощью уже обученных |
| Fit(IDataView) |
Поезда и возвращается FieldAwareFactorizationMachinePredictionTransformer. |
| GetOutputSchema(SchemaShape) |
Распространение схемы для преобразователей. Возвращает выходную схему данных, если входная схема похожа на указанную. |
Методы расширения
| Имя | Описание |
|---|---|
| AppendCacheCheckpoint<TTrans>(IEstimator<TTrans>, IHostEnvironment) |
Добавьте "контрольную точку кэширования" в цепочку оценщика. Это гарантирует, что нижестоящий оценщик будет обучен по кэшированным данным. Рекомендуется использовать контрольную точку кэширования перед обучением, которые принимают несколько передач данных. |
| WithOnFitDelegate<TTransformer>(IEstimator<TTransformer>, Action<TTransformer>) |
При оценке возвращает объект оболочки, который вызовет делегат после Fit(IDataView) вызова. Часто важно для оценки возвращать сведения о том, что было подходяще, поэтому Fit(IDataView) метод возвращает специально типизированный объект, а не просто общий ITransformer. Однако, в то же время, IEstimator<TTransformer> часто формируются в конвейеры с множеством объектов, поэтому нам может потребоваться построить цепочку оценщиков с помощью EstimatorChain<TLastTransformer> того, где оценка, для которой мы хотим получить преобразователь, похоронен где-то в этой цепочке. В этом сценарии мы можем подключить делегат, который будет вызываться после вызова. |
Применяется к
См. также раздел
- FieldAwareFactorizationMachine(BinaryClassificationCatalog+BinaryClassificationTrainers, String, String, String)
- FieldAwareFactorizationMachine(BinaryClassificationCatalog+BinaryClassificationTrainers, String[], String, String)
- FieldAwareFactorizationMachine(BinaryClassificationCatalog+BinaryClassificationTrainers, FieldAwareFactorizationMachineTrainer+Options)
- FieldAwareFactorizationMachineTrainer.Options