Aracılığıyla paylaş


FieldAwareFactorizationMachineTrainer Sınıf

Tanım

IEstimator<TTransformer> Stokastik gradyan yöntemi kullanılarak eğitilen bir alan algılayan faktörizasyon makine modeli kullanarak hedefi tahmin etme.

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)
Devralma
FieldAwareFactorizationMachineTrainer
Uygulamalar

Açıklamalar

Giriş ve Çıkış Sütunları

Giriş etiketi sütun verileri olmalıdır Boolean. Giriş özellikleri sütun verileri bilinen boyutlu bir vektör Singleolmalıdır.

Bu eğitmen aşağıdaki sütunları oluşturur:

Çıkış Sütunu Adı Sütun Türü Description
Score Single Model tarafından hesaplanan ilişkisiz puan.
PredictedLabel Boolean Puanın işaretine göre tahmin edilen etiket. Negatif puan ile false , pozitif puan ise ile trueeşler.
Probability Single Etiket olarak true değerinin puanını ayarlayarak hesaplanan olasılık. Olasılık değeri [0, 1] aralığındadır.

Bu eğitmeni oluşturmak için FieldAwareFactorizationMachineFieldAwareFactorizationMachine veya FieldAwareFactorizationMachine(Options) kullanın.

Yalnızca bir özellik sütununu destekleyen diğer ikili sınıflandırıcıların aksine, alan algılayan faktörizasyon makinesi birden çok özellik sütununu kullanabilir. Her sütun bazı özelliklerin kapsayıcısı olarak görüntülenir ve böyle bir kapsayıcı alan olarak adlandırılır. Tüm özellik sütunlarının kayan vektörler olması gerektiğini, ancak boyutlarının farklı olabileceğini unutmayın. Özellikleri farklı alanlara bölmenin motivasyonu, farklı dağıtımlardaki özellikleri bağımsız olarak modellemektir. Örneğin, çevrimiçi oyun mağazasında kullanıcı profilinden ve oyun profilinden oluşturulan özellikler iki farklı alana atanabilir.

Eğitmen Özellikleri

Makine öğrenmesi görevi İkili sınıflandırma
Normalleştirme gerekli mi? Yes
Önbelleğe alma gerekli mi? No
Microsoft.ML ek olarak gerekli NuGet Hiçbiri
ONNX'e aktarılabilir No

Arka Plan

Factorization machine family, denetimli öğrenme sorunları için güçlü bir model grubudur. İlk olarak 2010 yılında Steffen Rendle'ın Factorization Machines kağıdında tanıtıldı. Daha sonra, genelleştirilmiş sürümlerinden biri olan alana duyarlı faktörizasyon makinesi, son önerilen sistemlerde ve tıklama oranı tahmin yarışmalarında önemli bir tahmine dayalı modül haline geldi. Örnekler için Bkz. Steffen Rendle'ın KDD-Cup 2012 (Parça 1 ve Parça 2), Criteo'lar, Avazu'lar ve Outbrain'in Kaggle'daki tıklama tahmini zorluklarındaki kazanan çözümler.

Özellik birleşimleri tahmin etmek istediğiniz sinyalle son derece bağıntılı olduğunda, faktörizasyon makineleri özellikle güçlüdür. Önemli bağlamalar oluşturabilen özellik çiftlerine örnek olarak, müzik önerisinde kullanıcı kimliği ve müzik kimliği yer alır. Bir veri kümesi yalnızca yoğun sayısal özelliklerden oluştuğunda, faktörizasyon makinesinin kullanılması önerilmez veya bazı özellik geliştirmeleri gerçekleştirilmelidir.

Puanlama İşlevi

Alan algılayan faktörizasyon makinesi, farklı alanlardaki özellik vektörlerini skaler puanla eşleyen bir puanlama işlevidir. Tüm $m$ özellik sütunlarının {\mathbb R}^n$ ve ${\mathcal F}(j)$ içinde $\textbf{x} \uzun bir özellik vektörüyle birleştirildiğini ve ${\mathcal F}(j)$ $j$-th özelliğinin alan girintileyicisini belirtir. Karşılık gelen puan $\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'}$, burada $\langle \cdot, \cdot \rangle$ iç ürün işleci, $\textbf{w} \in {\mathbb R}^n$ doğrusal katsayıları depolar, ve $\textbf{v}_{j, f}\in {\mathbb R}^k$ $j$-th özelliğinin $f$-th alanının gizli alanındaki gösterimidir. $k$ değerinin kullanıcı tarafından belirtilen gizli boyut olduğunu unutmayın.

Tahmin edilen etiket $\hat{y}$ işaretidir. $\hat{y} > 0$ ise, bu model true tahmin eder. Aksi takdirde false değerini tahmin eder.

Alan algılayan faktörizasyon makinesine sistematik bir giriş için lütfen bu makaleye bakın

Eğitim Algoritması Ayrıntıları

içinde FieldAwareFactorizationMachineTrainer uygulanan algoritma , stokastik gradyan yöntemini temel alır. Algoritma ayrıntıları bu çevrimiçi belgedeki Algoritma 3'te açıklanmıştır. En aza indirilmiş kayıp işlevi lojistik kayıptır, bu nedenle eğitilen model doğrusal olmayan bir lojistik regresyon olarak görüntülenebilir.

Kullanım örneklerinin bağlantıları için Ayrıca Bkz. bölümüne bakın.

Yöntemler

Fit(IDataView)

bir FieldAwareFactorizationMachinePredictionTransformereğitip döndürür.

Fit(IDataView, IDataView, FieldAwareFactorizationMachineModelParameters)

Önceden eğitilmiş modelParameters ve/veya doğrulama verilerini kullanarak bir FieldAwareFactorizationMachineTrainer öğesinin eğitimine devam eder ve döndürürFieldAwareFactorizationMachinePredictionTransformer.

GetOutputSchema(SchemaShape)

Transformatörler için şema yayma. Giriş şeması sağlanan şemaya benziyorsa, verilerin çıkış şemasını döndürür.

Uzantı Metotları

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

Tahmin zincirine 'önbelleğe alma denetim noktası' ekleme. Bu, aşağı akış tahmincilerinin önbelleğe alınan verilere karşı eğitilmesini sağlar. Birden çok veri geçiren eğitmenlerden önce bir önbelleğe alma kontrol noktası olması yararlıdır.

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

Tahmin aracı verildiğinde, bir temsilci çağrıldıktan sonra Fit(IDataView) çağıracak bir sarmalama nesnesi döndürün. Tahmin aracının neyin uygun olduğu hakkında bilgi döndürmesi genellikle önemlidir; bu nedenle Fit(IDataView) yöntem yalnızca genel ITransformerbir nesne yerine özel olarak yazılan bir nesne döndürür. Bununla birlikte, aynı zamanda, IEstimator<TTransformer> genellikle birçok nesne içeren işlem hatları halinde oluşturulur, bu nedenle transformatörü almak istediğimiz tahmin aracının EstimatorChain<TLastTransformer> bu zincirde bir yere gömülü olduğu bir tahmin aracı zinciri oluşturmamız gerekebilir. Bu senaryo için, bu yöntem aracılığıyla sığdır çağrıldıktan sonra çağrılacak bir temsilci ekleyebiliriz.

Şunlara uygulanır

Ayrıca bkz.