Dil

FieldAwareFactorizationMachineTrainer Sınıf

Tanım

IEstimator<TTransformer> Stokastik gradyan yöntemi kullanılarak eğitilen, alan algılayan bir 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ş etiket sütunu verileri Booleanolmalıdır. Giriş özellikleri sütun verileri bilinen boyutlu bir vektör olmalıdır Single.

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

Çıkış Sütunu Adı Sütun Türü Description
Score Single Model tarafından hesaplanan ilişkisiz puan.
PredictedLabel Boolean Skorun işaretine dayanarak tahmin edilen etiket. Negatif bir skor false ile eşleşir ve pozitif bir skor trueile eşleşir.
Probability Single Etiket olarak true değerinin ayarlanmasıyla hesaplanan olasılık. Olasılık değeri [0, 1] aralığındadır.

Bu eğitmeni oluşturmak için FieldAwareFactorizationMachineFieldAwareFactorizationMachine veya FieldAwareFactorizationMachine(Seçenekler) 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ütunu kullanabilir. Her sütun bazı özelliklerin kapsayıcısı olarak görüntülenir ve bu tür bir kapsayıcıya alan adı verilir. 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? Evet
Önbelleğe alma gerekli mi? Hayır
Microsoft.ML'ye ek olarak gerekli NuGet Hiçbiri
ONNX'e aktarılabilir Hayır

Background

Factorization makine ailesi, denetimli öğrenme sorunları için güçlü bir model grubudur. İlk olarak 2010'da Steffen Rendle'ın Factorization Machines makalesinde tanıtıldı. Daha sonra, genelleştirilmiş sürümlerinden biri olan alan algılamalı 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's KDD-Cup 2012 (Track 1 ve Track 2), Criteo's, Avazu's ve Outbrain'in Kaggle'daki tıklama tahmini zorluklarındaki kazanan çözümler.

Özellik bağlantılarının tahmin etmek istediğiniz sinyalle son derece bağıntılı olması özellikle faktörizasyon makinelerinin güçlü olmasıdır. Önemli bağlantılar 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 özellikleri 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$ içinde $\textbf{x} \in uzun bir özellik vektörüyle birleştirildiğini ve ${\mathcal F}(j)$ $j$-th özelliğinin alan girintileyicisini ifade ettiğini varsayalım. 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)} \raçı 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 doğru tahminde bulunur. 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 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

Name Description
Fit(IDataView, IDataView, FieldAwareFactorizationMachineModelParameters)

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

Fit(IDataView)

Bir eğitip döndürür FieldAwareFactorizationMachinePredictionTransformer.

GetOutputSchema(SchemaShape)

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

Uzantı Metotları

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

Tahmin zincirine bir 'önbelleğe alma denetim noktası' ekler. Bu, aşağı akış tahmincilerinin önbelleğe alınmış verilere karşı eğitilmesini sağlar. Birden fazla veri alan eğitmenler geçişten önce bir önbelleğe alma kontrol noktasının 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üldüğü bir tahmin zinciri oluşturmamız gerekebilir. Bu senaryo için, bu yöntem aracılığıyla uygun çağrıldıktan sonra çağrılacak bir temsilci ekleyebiliriz.

Şunlara uygulanır

Ayrıca bkz.