FieldAwareFactorizationMachineTrainer Třída
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Predikce IEstimator<TTransformer> cíle pomocí strojového modelu faktorizace pracujícího s polem natrénovaného pomocí stochastické metody přechodu
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)
- Dědičnost
-
FieldAwareFactorizationMachineTrainer
- Implementuje
Poznámky
Vstupní a výstupní sloupce
Vstupní data sloupce štítku musí být Boolean. Vstupními funkcemi musí být data sloupců známým vektorem Singlevelikosti .
Tento trenér vypíše následující sloupce:
| Název výstupního sloupce | Typ sloupce | Description | |
|---|---|---|---|
Score |
Single | Nevázané skóre, které model vypočítal. | |
PredictedLabel |
Boolean | Předpovězený popisek, který je založen na znaménku skóre. Záporné skóre se mapuje na false a pozitivní skóre se mapuje na true. |
|
Probability |
Single | Pravděpodobnost vypočítaná kalibrací skóre hodnoty true jako popisku. Hodnota pravděpodobnosti je v rozsahu [0, 1]. |
K vytvoření tohoto trenéra použijte FieldAwareFactorizationMachineFieldAwareFactorizationMachine Nebo FieldAwareFactorizationMachine(Options).
Na rozdíl od jiných binárních klasifikátorů, které mohou podporovat pouze jeden sloupec funkcí, může stroj faktorizace pracující s poli využívat více sloupců funkcí. Každý sloupec se zobrazuje jako kontejner některých funkcí a takový kontejner se nazývá pole. Všimněte si, že všechny sloupce funkcí musí být plovoucí vektory, ale jejich rozměry se můžou lišit. Motivací rozdělení funkcí do různých polí je nezávisle modelovat funkce z různých distribucí. Například v online obchodě her je možné přiřadit funkce vytvořené z profilu uživatele a funkce z profilu hry se dají přiřadit ke dvěma různým polím.
Charakteristiky trenéra
| Úloha strojového učení | Binární klasifikace |
| Vyžaduje se normalizace? | Ano |
| Vyžaduje se ukládání do mezipaměti? | No |
| Požadovaný NuGet kromě Microsoft.ML | None |
| Exportovatelné do ONNX | No |
Background
Řada modelů factorization machine family je výkonná skupina modelů pro problémy učení pod dohledem. V roce 2010 byla poprvé představena v dokumentu Steffen Rendle Factorization Machines . Později se jeden z jeho generalizovaných verzí, stroj faktorizace pracující s poli, stal důležitým prediktivním modulem v nedávných doporučovacích systémech a soutěžemi o predikci rychlosti proklikáním. Příklady najdete v vítězných řešeních v KDD-Cup 2012 Steffen Rendle (Track 1 a Track 2), Criteo, Avazu a Outbrain's click prediction challenges on Kaggle.
Faktorizační počítače jsou zvláště výkonné, pokud jsou spojení funkcí extrémně korelovaná s signálem, který chcete předpovědět. Příkladem párů funkcí, které můžou tvořit důležité spojení, je ID uživatele a ID hudby v doporučení k hudbě. Pokud se datová sada skládá pouze z hustých číselných funkcí, použití faktorizačního stroje se nedoporučuje nebo by se měly provádět některé featurizace.
Bodovací funkce
Faktorizační stroj pracující s poli je bodovací funkce, která mapuje vektory funkcí z různých polí na skalární skóre. Předpokládejme, že všechny sloupce funkcí $m$ jsou zřetězeny do dlouhého vektoru funkce $\textbf{x} \in {\mathbb R}^n$ a ${\mathcal F}(j)$ označuje odsazení pole $j$-th. Odpovídající skóre je $\hat{y}(\textbf{x}) = \langle \textbf{w}, \textbf{x} \rúhel + \sum_{j = 1}^n \sum_{j' = j + 1}^n \langle \textbf{v}_{j, {\mathcal F}(j')}, \textbf{v}_{j', {\mathcal F}(j)} \rúhlu x_j x_{j'}$, kde $\langle \cdot, \cdot \rangle$ je vnitřní operátor produktu, $\textbf{w} \in {\mathbb R}^n$ ukládá lineární koeficienty. a $\textbf{v}_{j, f}\in {\mathbb R}^k$ je reprezentace $j$-th v latentním prostoru pole $f$-th. Všimněte si, že $k$ je latentní dimenze určená uživatelem.
Predikovaný popisek je znaménkem $\hat{y}$. Pokud $\hat{y} > 0$, tento model predikuje hodnotu true. V opačném případě predikuje hodnotu false.
Systematický úvod do stroje pro faktorizaci pracujícího s poli najdete v tomto dokumentu.
Podrobnosti trénovacího algoritmu
Algoritmus implementovaný je FieldAwareFactorizationMachineTrainer založen na stochastické metodě přechodu. Podrobnosti o algoritmu jsou popsány v algoritmu 3 v tomto online dokumentu. Minimalizovaná funkce ztráty je logistická ztráta, takže natrénovaný model lze zobrazit jako nelineární logistickou regresi.
Odkazy na příklady použití najdete v části Viz také.
Metody
| Name | Description |
|---|---|
| Fit(IDataView, IDataView, FieldAwareFactorizationMachineModelParameters) |
Pokračuje v trénování FieldAwareFactorizationMachineTrainer pomocí již natrénovaných |
| Fit(IDataView) |
Vlaky a vrací .FieldAwareFactorizationMachinePredictionTransformer |
| GetOutputSchema(SchemaShape) |
Šíření schématu pro transformátory Vrátí výstupní schéma dat, pokud je vstupní schéma podobné zadanému schématu. |
Metody rozšíření
| Name | Description |
|---|---|
| AppendCacheCheckpoint<TTrans>(IEstimator<TTrans>, IHostEnvironment) |
Připojte kontrolní bod ukládání do mezipaměti do řetězu odhadce. Tím zajistíte, aby podřízené estimátory byly natrénovány proti datům uloženým v mezipaměti. Před průchodem více dat je užitečné mít kontrolní bod ukládání do mezipaměti. |
| WithOnFitDelegate<TTransformer>(IEstimator<TTransformer>, Action<TTransformer>) |
Vzhledem k estimátoru vraťte objekt obtékání, který jednou zavolá delegáta Fit(IDataView) . Často je důležité, aby estimátor vrátil informace o tom, co bylo vhodné, což je důvod, proč Fit(IDataView) metoda vrací konkrétní typ objekt, spíše než jen obecný ITransformer. Ve stejnou dobu se však často vytvářejí do kanálů s mnoha objekty, takže možná budeme muset vytvořit řetěz odhadců prostřednictvím IEstimator<TTransformer> místa, kde odhadovač, EstimatorChain<TLastTransformer> pro který chceme získat transformátor, je někde v tomto řetězu. Pro tento scénář můžeme prostřednictvím této metody připojit delegáta, který bude volána po zavolání fit. |
Platí pro
Viz také
- FieldAwareFactorizationMachine(BinaryClassificationCatalog+BinaryClassificationTrainers, String, String, String)
- FieldAwareFactorizationMachine(BinaryClassificationCatalog+BinaryClassificationTrainers, String[], String, String)
- FieldAwareFactorizationMachine(BinaryClassificationCatalog+BinaryClassificationTrainers, FieldAwareFactorizationMachineTrainer+Options)
- FieldAwareFactorizationMachineTrainer.Options