SdcaLogisticRegressionBinaryTrainer Sınıf

Tanım

IEstimator<TTransformer> stochastic çift koordinatlı ascent yöntemini kullanarak ikili lojistik regresyon sınıflandırma modelini eğitmek için. Eğitilen model kalibre edilir ve doğrusal işlevin çıkış değerini öğesine PlattCalibratorbesleyerek olasılık üretebilir.

public sealed class SdcaLogisticRegressionBinaryTrainer : Microsoft.ML.Trainers.SdcaBinaryTrainerBase<Microsoft.ML.Calibrators.CalibratedModelParametersBase<Microsoft.ML.Trainers.LinearBinaryModelParameters,Microsoft.ML.Calibrators.PlattCalibrator>>
type SdcaLogisticRegressionBinaryTrainer = class
    inherit SdcaBinaryTrainerBase<CalibratedModelParametersBase<LinearBinaryModelParameters, PlattCalibrator>>
Public NotInheritable Class SdcaLogisticRegressionBinaryTrainer
Inherits SdcaBinaryTrainerBase(Of CalibratedModelParametersBase(Of LinearBinaryModelParameters, PlattCalibrator))
Devralma

Açıklamalar

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

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.

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 Evet

Eğitim Algoritması Ayrıntıları

Bu eğitmen, dışbükey nesnel fonksiyonlar için son model bir iyileştirme tekniği olan Stochastic Dual Coordinate Ascent (SDCA) yöntemini temel alır. Algoritma, KDD en iyi makalesinde açıklandığı gibi bir akış eğitim algoritması olduğundan ölçeklendirilebilir.

Yakınsama, ayrı bir iş parçacığında ilk ve çift değişkenler arasında eşitlemenin düzenli aralıklarla zorunlu kılınarak yazılmıştır. Menteşe kaybı ve lojistik kayıp gibi çeşitli kayıp işlevleri de sağlanır. Kullanılan kayıplara bağlı olarak, eğitilen model destek vektör makinesi veya lojistik regresyon olabilir. SDCA yöntemi, akış öğrenmesi yapma (veri kümesinin tamamını belleğinize sığdırmadan), tüm veri kümesinin birkaç taramasıyla makul bir sonuca ulaşma (örneğin , bu makaledeki denemelere bakın) ve seyrek veri kümelerindeki sıfırlara hesaplama harcamama gibi en iyi özelliklerden birkaçını birleştirir.

SDCA'nın stokastik ve akış iyileştirme algoritması olduğunu unutmayın. Durdurma toleransı yeterince sıkı olmadığından sonuç eğitim verilerinin sırasına bağlıdır. Güçlü dışbükey iyileştirmede, en uygun çözüm benzersizdir ve bu nedenle sonunda herkes aynı yere ulaşır. Güçlü olmayan dışbükey durumlarda bile, çalıştırmadan çalıştırmaya eşit derecede iyi çözümler elde edersiniz. Yeniden üretilebilir sonuçlar için birinin 'Shuffle' değerini False ve 'NumThreads' değerini 1 olarak belirlemesi önerilir.

Bu sınıf, toplanan veriler üzerine oluşturulan iyileştirme sorununu formüle etmek için ampirik risk minimizasyonu (ERM) kullanır. Ampirik riskin genellikle modelin toplanan veri noktalarındaki tahminlerine bir kayıp işlevi uygulanarak ölçüldüğünü unutmayın. Eğitim verileri yeterli veri noktası içermiyorsa (örneğin, $n$boyutlu alanda doğrusal modeli eğitmek için en az $n$ veri noktalarına ihtiyacımız var), ERM tarafından üretilen modelin eğitim verilerini açıklamada iyi olması ancak görünmeyen olaylarda doğru sonuçları tahmin etmede başarısız olması için fazla uygunluk gerçekleşebilir. Düzenlileştirme , model parametrelerinin büyüklüğünü (genellikle norm işleviyle ölçülür) cezalandırarak bu tür bir olayı hafifletmek için yaygın bir tekniktir. Bu eğitmen, L1-norm (LASSO), $|| doğrusal bir bileşimini cezalandıran esnek net düzenlileştirmeyi destekler \textbf{w}_c ||_1$ ve L2-norm (sırt), $|| \textbf{w}_c ||$c=1,\dots,m$ için _2^2$ normalleştirmeleri. L1-norm ve L2-norm düzenlileştirmelerinin farklı etkileri ve belirli açılardan tamamlayıcı kullanımları vardır.

Uygulanan iyileştirme algoritmasıyla birlikte L1-norm normalleştirmesi, $\textbf{w}_1,\dots,\textbf{w}_m$ model ağırlıklarının sıklığını artırabilir. Yüksek boyutlu ve seyrek veri kümelerinde, kullanıcılar L1 norm katsayısını dikkatle seçerse, tahmin gücünü etkilemeden yalnızca birkaç sıfır olmayan ağırlığa (örneğin, 1% toplam model ağırlığı) sahip bir modelle iyi bir tahmin kalitesi elde etmek mümkündür. Buna karşılık, L2-norm eğitilen modelin sparsity'sini artıramaz, ancak yine de büyük parametre değerlerinden kaçınarak fazla uygunluğu önleyebilir. Bazen L2 normu kullanmak daha iyi bir tahmin kalitesine yol açar, bu nedenle kullanıcılar yine de bunu denemek ve L1-norm ve L2-norm katsayılarına ince ayar yapmak isteyebilir. Kavramsal olarak, L1-norm kullanmanın tüm model parametrelerinin dağılımının bir Laplace dağılımı olduğunu, L2-norm ise onlar için gauss dağılımı anlamına gelir.

Agresif bir düzenlileştirme (yani L1-norm veya L2-norm normalleştirme terimlerine büyük katsayılar atamak), önemli değişkenleri modelden dışlayarak tahmine dayalı kapasiteye zarar verebilir. Örneğin, çok büyük bir L1 norm katsayısı tüm parametreleri sıfır olmaya zorlayabilir ve önemsiz bir modele yol açabilir. Bu nedenle doğru normalleştirme katsayılarının seçilmesi pratikte önemlidir.

Daha fazla bilgi için bakınız:

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

Alanlar

Name Description
FeatureColumn

Eğitmenin beklediği özellik sütunu.

(Devralındığı yer: TrainerEstimatorBase<TTransformer,TModel>)
LabelColumn

Eğitmenin beklediği etiket sütunu. etiketin eğitim için kullanılmadığını gösteren olabilir null.

(Devralındığı yer: TrainerEstimatorBase<TTransformer,TModel>)
WeightColumn

Eğitmenin beklediği ağırlık sütunu. olabilir null, bu da ağırlığın eğitim için kullanılmadığını gösterir.

(Devralındığı yer: TrainerEstimatorBase<TTransformer,TModel>)

Özellikler

Name Description
Info

IEstimator<TTransformer> stochastic çift koordinatlı ascent yöntemini kullanarak ikili lojistik regresyon sınıflandırma modelini eğitmek için. Eğitilen model kalibre edilir ve doğrusal işlevin çıkış değerini öğesine PlattCalibratorbesleyerek olasılık üretebilir.

(Devralındığı yer: SdcaBinaryTrainerBase<TModelParameters>)

Yöntemler

Name Description
Fit(IDataView)

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

(Devralındığı yer: TrainerEstimatorBase<TTransformer,TModel>)
GetOutputSchema(SchemaShape)

IEstimator<TTransformer> stochastic çift koordinatlı ascent yöntemini kullanarak ikili lojistik regresyon sınıflandırma modelini eğitmek için. Eğitilen model kalibre edilir ve doğrusal işlevin çıkış değerini öğesine PlattCalibratorbesleyerek olasılık üretebilir.

(Devralındığı yer: TrainerEstimatorBase<TTransformer,TModel>)

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.