FieldAwareFactorizationMachineTrainer Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
para IEstimator<TTransformer> predecir un destino mediante un modelo de máquina de factorización con reconocimiento de campos entrenado mediante un método de degradado estocástico.
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)
- Herencia
-
FieldAwareFactorizationMachineTrainer
- Implementaciones
Comentarios
Columnas de entrada y salida
Los datos de la columna de etiqueta de entrada deben ser Boolean. Los datos de columna de características de entrada deben ser un vector conocido de Single.
Este instructor genera las columnas siguientes:
| Nombre de columna de salida | Tipo de columna | Description | |
|---|---|---|---|
Score |
Single | Puntuación sin enlazar calculada por el modelo. | |
PredictedLabel |
Boolean | Etiqueta de predicción, según el signo de la puntuación. Una puntuación negativa se asigna a false y una puntuación positiva se asigna a true. |
|
Probability |
Single | Probabilidad calculada mediante la calibración de la puntuación de tener true como etiqueta. El valor de probabilidad está en el intervalo [0, 1]. |
Para crear este instructor, use FieldAwareFactorizationMachineFieldAwareFactorizationMachine o FieldAwareFactorizationMachine(Options).
A diferencia de otros clasificadores binarios, que solo pueden admitir una columna de características, la máquina de factorización con reconocimiento de campos puede consumir varias columnas de características. Cada columna se ve como un contenedor de algunas características y este contenedor se denomina campo. Tenga en cuenta que todas las columnas de características deben ser vectores flotantes, pero sus dimensiones pueden ser diferentes. La motivación de dividir las características en distintos campos es modelar las características de diferentes distribuciones de forma independiente. Por ejemplo, en la tienda de juegos en línea, las características creadas a partir del perfil de usuario y las del perfil de juego se pueden asignar a dos campos diferentes.
Características del entrenador
| Tarea de aprendizaje automático | Clasificación binaria |
| ¿Se requiere normalización? | Yes |
| ¿Se requiere el almacenamiento en caché? | No |
| NuGet necesario además de Microsoft.ML | Ninguno |
| Exportable a ONNX | No |
Background
La familia de máquinas de factorización es un grupo de modelos eficaz para problemas de aprendizaje supervisados. Se introdujo por primera vez en el documento Factorization Machines de Steffen Rendle en 2010. Más adelante, una de sus versiones generalizadas, máquina de factorización con reconocimiento de campos, se convirtió en un módulo predictivo importante en los sistemas recomendadores recientes y concursos de predicción de velocidad de clics. Para obtener ejemplos, vea soluciones ganadoras en la KDD-Cup 2012 de Steffen Rendle (pista 1 y pista 2), Criteo, Avazu y desafíos de predicción de clic de Outbrain en Kaggle.
Las máquinas de factorización son especialmente eficaces cuando las conjunciones de características están extremadamente correlacionadas con la señal que desea predecir. Un ejemplo de pares de características que pueden formar conjunciones importantes es el identificador de usuario y el identificador de música en la recomendación de música. Cuando un conjunto de datos consta de solo características numéricas densas, no se recomienda el uso de la máquina de factorización o se deben realizar algunas caracterizaciones.
Función de puntuación
La máquina de factorización con reconocimiento de campos es una función de puntuación que asigna vectores de características de distintos campos a una puntuación escalar. Supongamos que todas las columnas de características de $m$ se concatenan en un vector de característica largo $\textbf{x} \in {\mathbb R}^n$ y ${\mathcal F}(j)$ denotan el $j$-th feature's field indentifier. La puntuación correspondiente es $\hat{y}(\textbf{x}) = \langle \textbf{w}, \textbf{x} \rangle + \sum_{j = 1}^n \sum_{j' = j + 1}^n \langle \textbf{v}_{j, {\mathcal F}(j')}, \textbf{v}_{j', {\mathcal F}(j)} \rangle x_j x_{j'}$, donde $\langle \cdot, \cdot \rangle$ es el operador de producto interno, $\textbf{w} \in {\mathbb R}^n$ almacena los coeficientes lineales, y $\textbf{v}_{j, f}\in {\mathbb R}^k$ es la representación de la característica $j$-th en el espacio latente del campo $f$-th. Tenga en cuenta que $k$ es la dimensión latente especificada por el usuario.
La etiqueta predicha es el signo de $\hat{y}$. Si $\hat{y} > 0$, este modelo predice true. De lo contrario, predice false.
Para obtener una introducción sistemática a la máquina de factorización con reconocimiento de campos, consulte este documento.
Detalles del algoritmo de entrenamiento
El algoritmo implementado en se basa en FieldAwareFactorizationMachineTrainerun método de degradado estocástico. Los detalles del algoritmo se describen en el algoritmo 3 de este documento en línea. La función de pérdida minimizada es la pérdida logística, por lo que el modelo entrenado se puede ver como una regresión logística no lineal.
Consulte la sección Ver también para obtener vínculos a ejemplos de uso.
Métodos
| Nombre | Description |
|---|---|
| Fit(IDataView, IDataView, FieldAwareFactorizationMachineModelParameters) |
Continúa el entrenamiento de un FieldAwareFactorizationMachineTrainer con datos ya entrenados |
| Fit(IDataView) |
Entrena y devuelve un FieldAwareFactorizationMachinePredictionTransformer. |
| GetOutputSchema(SchemaShape) |
Propagación de esquemas para transformadores. Devuelve el esquema de salida de los datos, si el esquema de entrada es similar al proporcionado. |
Métodos de extensión
| Nombre | Description |
|---|---|
| AppendCacheCheckpoint<TTrans>(IEstimator<TTrans>, IHostEnvironment) |
Anexe un "punto de control de almacenamiento en caché" a la cadena del estimador. Esto garantizará que los estimadores de nivel inferior se entrenarán con los datos almacenados en caché. Resulta útil tener un punto de control de almacenamiento en caché antes de que los instructores tomen varios pases de datos. |
| WithOnFitDelegate<TTransformer>(IEstimator<TTransformer>, Action<TTransformer>) |
Dado un estimador, devuelva un objeto de ajuste que llamará a un delegado una vez Fit(IDataView) que se llame. A menudo, es importante que un estimador devuelva información sobre lo que se ha ajustado, por lo que el Fit(IDataView) método devuelve un objeto específicamente tipado, en lugar de simplemente un general ITransformer. Sin embargo, al mismo tiempo, IEstimator<TTransformer> a menudo se forman en canalizaciones con muchos objetos, por lo que es posible que tengamos que crear una cadena de estimadores a través EstimatorChain<TLastTransformer> de donde el estimador para el que queremos obtener el transformador está enterrado en algún lugar de esta cadena. En ese escenario, podemos a través de este método adjuntar un delegado al que se llamará una vez que se llame a fit. |
Se aplica a
Consulte también
- FieldAwareFactorizationMachine(BinaryClassificationCatalog+BinaryClassificationTrainers, String, String, String)
- FieldAwareFactorizationMachine(BinaryClassificationCatalog+BinaryClassificationTrainers, String[], String, String)
- FieldAwareFactorizationMachine(BinaryClassificationCatalog+BinaryClassificationTrainers, FieldAwareFactorizationMachineTrainer+Options)
- FieldAwareFactorizationMachineTrainer.Options