Freigeben über


FieldAwareFactorizationMachineTrainer Klasse

Definition

Das IEstimator<TTransformer> Ziel mithilfe eines feldbasierten Faktorisierungsmaschinenmodells, das mithilfe einer stochastischen Farbverlaufsmethode trainiert wurde.

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)
Vererbung
FieldAwareFactorizationMachineTrainer
Implementiert

Hinweise

Eingabe- und Ausgabespalten

Die Daten in der Spalte für die Eingabezeichnung müssen Boolean sein. Die Eingabefeatures-Spaltendaten müssen ein bekannter Vektor von Single.

Der Trainer gibt folgende Spalten aus:

Name der Ausgabespalte Spaltentyp BESCHREIBUNG
Score Single Die von dem Modell berechnete ungebundene Bewertung.
PredictedLabel Boolean Der vorhergesagte Bezeichnung, basierend auf dem Abzeichnen der Bewertung. Eine negative Bewertung wird false und eine positive Bewertung wird true zugeordnet.
Probability Single Die Wahrscheinlichkeit, die durch die Kalibrierung der Bewertung des True-Werts als Bezeichnung berechnet wird. Der Wahrscheinlichkeitswert befindet sich im Bereich [0, 1].

Um diesen Trainer zu erstellen, verwenden Sie FieldAwareFactorizationMachine (FieldAwareFactorizationMachine) oder FieldAwareFactorizationMachine(Options).

Im Gegensatz zu anderen binären Klassifizierern, die nur eine Featurespalte unterstützen können, kann der Feldbewendungs-Faktorisierungscomputer mehrere Featurespalten nutzen. Jede Spalte wird als Container einiger Features angezeigt und ein solcher Container wird als Feld bezeichnet. Beachten Sie, dass alle Featurespalten float-Vektoren sein müssen, aber ihre Dimensionen können unterschiedlich sein. Die Motivation, Features in verschiedene Felder zu teilen, ist das Modellieren von Features aus unterschiedlichen Verteilungen unabhängig. Im Online-Spielspeicher können beispielsweise Features, die aus dem Benutzerprofil erstellt wurden, und die von Spielprofilen zwei verschiedenen Feldern zugewiesen werden.

Trainereigenschaften

ML-Aufgabe Binäre Klassifizierung
Ist die Normalisierung erforderlich? Yes
Ist zwischenspeichern erforderlich? No
Erforderliche NuGet zusätzlich zu Microsoft.ML Keine
Exportierbar in ONNX Nein

Hintergrund

Die Faktorisierungsmaschinefamilie ist eine leistungsstarke Modellgruppe für überwachte Lernprobleme. Es wurde 2010 im Papier der Factorization-Maschinen von Steffen Rendle eingeführt. Später wurde eine ihrer generalisierten Versionen, feldbasierten Faktorisierungsmaschine, ein wichtiges prädiktives Modul in den jüngsten Empfehlungssystemen und Klick-through-Rate-Vorhersagewettbewerben. Beispiele hierfür finden Sie in den KDD-Cup 2012 (Track 1 und Track 2), Criteo's, Avazus und Outbrains Klickvorhersagen auf Kaggle.

Faktorisierungsmaschinen sind besonders leistungsfähig, wenn Funktionskonjunkierungen extrem mit dem Signal korreliert sind, das Sie vorhersagieren möchten. Ein Beispiel für Featurepaare, die wichtige Verknüpfungen bilden können, ist die Benutzer-ID und die Musik-ID in der Musikempfehlung. Wenn ein Dataset nur aus dichten numerischen Features besteht, wird die Verwendung des Faktorisierungscomputers nicht empfohlen oder einige Featurisierungen sollten ausgeführt werden.

Bewertungsfunktion

Feldbasierte Faktorisierungsmaschine ist eine Bewertungsfunktion, die Featurevektoren von verschiedenen Feldern zu einer Skalarbewertung zugeordnet. Angenommen, dass alle $m$-Featurespalten in einen langen Featurevektor $\textbf{x} \in {\mathbb R}n$ und ${\mathcal F}(j)$ verkettet werden, gibt den $j$-th-Feature-Einzugsfizierer an. Die entsprechende Bewertung ist $\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'}$, wobei $\langle\cdot, \cdot \rangle$ ist der innere Produktoperator, $\textbf{w} \in {\mathbb R}^n$ speichert die linearen Koeffizienten, und $\textbf{v}_{j, f}\in {\mathbb R}^k$ ist die $j$-th-Featuredarstellung im $f$-th-Feld latenten Raum. Beachten Sie, dass $k$ die vom Benutzer angegebene latente Dimension ist.

Die vorhergesagte Bezeichnung ist das Zeichen von $\hat{y}$. Wenn $\hat{y} > 0$, wird dieses Modell wahr vorhergesagt. Andernfalls wird "false" vorhergesagt.

Eine systematische Einführung in den feldbasierten Faktorisierungscomputer finden Sie in diesem Dokument

Schulungsalgorithmusdetails

Der in implementierte FieldAwareFactorizationMachineTrainer Algorithmus basiert auf einer stochastischen Farbverlaufsmethode. Algorithmusdetails werden in Algorithmus 3 in diesem Onlinedokument beschrieben. Die minimierte Verlustfunktion ist logistischer Verlust, sodass das trainierte Modell als nicht lineare logistikische Regression betrachtet werden kann.

Überprüfen Sie den Abschnitt "Siehe auch", um Links zu Verwendungsbeispielen zu finden.

Methoden

Fit(IDataView)

Züge und zurückgeben eine FieldAwareFactorizationMachinePredictionTransformer.

Fit(IDataView, IDataView, FieldAwareFactorizationMachineModelParameters)

Setzt die Schulung einer FieldAwareFactorizationMachineTrainer bereits geschulten modelParameters und/oder Validierungsdaten fort, und gibt eine FieldAwareFactorizationMachinePredictionTransformer.

GetOutputSchema(SchemaShape)

Schemaverteilung für Transformatoren. Gibt das Ausgabeschema der Daten zurück, wenn das Eingabeschema wie die bereitgestellte ist.

Erweiterungsmethoden

AppendCacheCheckpoint<TTrans>(IEstimator<TTrans>, IHostEnvironment)

Fügen Sie einen "Zwischenspeicherpunkt" an die Stimatorkette an. Dadurch wird sichergestellt, dass die nachgelagerten Stimatoren gegen zwischengespeicherte Daten trainiert werden. Es ist hilfreich, einen Cache-Prüfpunkt zu haben, bevor Trainer, die mehrere Daten übergeben.

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

Geben Sie aufgrund einer Schätzung ein Umbruchobjekt zurück, das einen Stellvertretung aufruft, sobald Fit(IDataView) er aufgerufen wird. Es ist oft wichtig, dass eine Schätzung Informationen zu dem zurückgibt, was passt, weshalb die Fit(IDataView) Methode ein spezifisches typiertes Objekt zurückgibt, anstatt nur ein allgemeines ITransformer. Gleichzeitig IEstimator<TTransformer> werden jedoch oft Pipelines mit vielen Objekten gebildet, sodass wir möglicherweise eine Kette von EstimatorChain<TLastTransformer> Schätzern erstellen müssen, über die der Schätzer, für den wir den Transformator erhalten möchten, irgendwo in dieser Kette begraben wird. Für dieses Szenario können wir über diese Methode eine Stellvertretung anfügen, die einmal aufgerufen wird, wenn die Anpassung aufgerufen wird.

Gilt für:

Weitere Informationen