SdcaLogisticRegressionBinaryTrainer Klasa
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Element IEstimator<TTransformer> do trenowania binarnego modelu klasyfikacji regresji logistycznej przy użyciu metody stochastycznej podwójnej współrzędnej ascent. Wytrenowany model jest skalibrowany i może wygenerować prawdopodobieństwo, przekazując wartość wyjściową funkcji liniowej do klasy PlattCalibrator.
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))
- Dziedziczenie
-
SdcaTrainerBase<SdcaBinaryTrainerBase<TModelParameters>.BinaryOptionsBase,BinaryPredictionTransformer<TModelParameters>,TModelParameters>SdcaLogisticRegressionBinaryTrainer
Uwagi
Aby utworzyć ten trener, użyj sdcaLogisticRegression lub SdcaLogisticRegression(Options).
Kolumny wejściowe i wyjściowe
Dane kolumny etykiety wejściowej muszą mieć wartość Boolean. Dane kolumn danych wejściowych muszą być znanym wektorem o rozmiarze Single.
Ten trener wyprowadza następujące kolumny:
Nazwa kolumny wyjściowej | Typ kolumny | Opis | |
---|---|---|---|
Score |
Single | Niezwiązany wynik obliczony przez model. | |
PredictedLabel |
Boolean | Przewidywana etykieta na podstawie znaku wyniku. Wynik ujemny mapuje na false wartości i wynik dodatni jest mapowy na true wartość . |
|
Probability |
Single | Prawdopodobieństwo obliczone przez kalibrowanie wyniku wartości true jako etykiety. Wartość prawdopodobieństwa jest w zakresie [0, 1]. |
Cechy trenera
Zadanie uczenia maszynowego | Klasyfikacja binarna |
Czy normalizacja jest wymagana? | Tak |
Czy buforowanie jest wymagane? | Nie |
Wymagane narzędzie NuGet oprócz Microsoft.ML | Brak |
Możliwość eksportowania do ONNX | Tak |
Szczegóły algorytmu trenowania
Ten trener opiera się na metodzie Stochastic Dual Coordinate Ascent (SDCA), najnowocześniejszej techniki optymalizacji dla funkcji celu wypukłych. Algorytm można skalować, ponieważ jest to algorytm trenowania przesyłania strumieniowego, zgodnie z opisem w najlepszym dokumencie KDD.
Zbieżność jest zastępowana przez okresowe wymuszanie synchronizacji między zmiennymi pierwotnymi i podwójnymi w osobnym wątku. Dostępnych jest również kilka opcji funkcji utraty, takich jak utrata zawiasów i utrata logistyczna. W zależności od użytej utraty wytrenowany model może być na przykład maszyną wektorów nośnych lub regresją logistyczną. Metoda SDCA łączy kilka najlepszych właściwości, takich jak możliwość uczenia strumieniowego (bez dopasowywania całego zestawu danych do pamięci), osiągając rozsądny wynik z kilkoma skanowaniami całego zestawu danych (na przykład zobacz eksperymenty w tym dokumencie) i nie wydając obliczeń na zera w rozrzedzonych zestawach danych.
Należy pamiętać, że SDCA jest stochastycznym i strumieniowym algorytmem optymalizacji. Wynik zależy od kolejności danych treningowych, ponieważ tolerancja zatrzymywania nie jest wystarczająco napięta. W optymalizacji silnie wypukłych optymalne rozwiązanie jest unikatowe i dlatego każdy ostatecznie osiągnie to samo miejsce. Nawet w przypadkach nieuwzwiązanych otrzymasz równie dobre rozwiązania od uruchomienia do uruchomienia. W przypadku powtarzalnych wyników zaleca się ustawienie wartości "Shuffle" na wartość False i "NumThreads" na 1.
Ta klasa używa empirycznej minimalizacji ryzyka (tj. ERM) do sformułowania problemu optymalizacji opartego na zebranych danych. Należy pamiętać, że ryzyko empiryczne jest zwykle mierzone przez zastosowanie funkcji straty w przewidywaniach modelu dotyczących zebranych punktów danych. Jeśli dane szkoleniowe nie zawierają wystarczającej liczby punktów danych (na przykład do wytrenowania modelu liniowego w przestrzeni $n$-wymiarowej, potrzebujemy co najmniej $n$ punktów danych), nadmierne dopasowanie może się zdarzyć, aby model utworzony przez ERM był dobry w opisywaniu danych treningowych, ale może nie przewidzieć prawidłowych wyników w niewidocznych zdarzeniach. Regularyzacja jest powszechną techniką łagodzenia takiego zjawiska poprzez karanie wielkości (zwykle mierzonej przez funkcję norm) parametrów modelu. Ten trener obsługuje regularyzację elastycznej sieci, która kara liniową kombinację L1-norm (LASSO), $|| \textbf{w}_c || _1$, i L2-norm (grzbiet), $|| \textbf{w}_c || _2^2$ uregulowania dla $c=1,\kropki,m$. Uregulowania L1-norm i L2 mają różne skutki i zastosowania, które uzupełniają się pod pewnymi względami.
Wraz z zaimplementowanym algorytmem optymalizacji regularyzacja L1-norm może zwiększyć rozrzedwienie wag modelu, $\textbf{w}_1,\kropki,\textbf{w}_m$. W przypadku zestawów danych o wysokiej wymiarowości i rozrzedzeni, jeśli użytkownicy starannie wybierają współczynnik normy L1, można osiągnąć dobrą jakość przewidywania przy użyciu modelu, który ma tylko kilka wag niezerowych (np. 1% całkowitych wag modelu) bez wpływu na moc przewidywania. Natomiast norma L2 nie może zwiększyć rozrzedzeniu wytrenowanego modelu, ale nadal może zapobiec nadmiernemu dopasowaniu, unikając dużych wartości parametrów. Czasami użycie L2-norm prowadzi do lepszej jakości przewidywania, więc użytkownicy mogą nadal chcieć spróbować i dostroić współczynniki L1-norm i L2-norm. Należy pamiętać, że użycie L1-norm oznacza, że rozkład wszystkich parametrów modelu jest rozkładem Laplace , podczas gdy L2-norm oznacza rozkład Gaussian dla nich.
Agresywna regularyzacja (czyli przypisywanie dużych współczynników do terminów regularyzacji L1 lub L2 norm) może zaszkodzić zdolności predykcyjnej, wykluczając ważne zmienne z modelu. Na przykład bardzo duży współczynnik normy L1 może zmusić wszystkie parametry do zera i prowadzić do prostego modelu. Dlatego wybór odpowiednich współczynników uregulowania jest ważny w praktyce.
Aby uzyskać więcej informacji, zobacz:
- Skalowanie w górę Stochastic Podwójne współrzędne wznoszenia.
- Stochastic Metody ascent podwójnej współrzędnych dla regularyzowanej minimalizacji strat.
Zapoznaj się z sekcją Zobacz również, aby uzyskać linki do przykładów użycia.
Pola
FeatureColumn |
Kolumna funkcji, której oczekuje trener. (Odziedziczone po TrainerEstimatorBase<TTransformer,TModel>) |
LabelColumn |
Kolumna etykiety oczekiwana przez trenera. Może to być |
WeightColumn |
Kolumna wagi oczekiwana przez trenera. Może to być |
Właściwości
Info |
Element IEstimator<TTransformer> do trenowania binarnego modelu klasyfikacji regresji logistycznej przy użyciu metody stochastycznej podwójnej współrzędnej ascent. Wytrenowany model jest skalibrowany i może wygenerować prawdopodobieństwo, przekazując wartość wyjściową funkcji liniowej do klasy PlattCalibrator. (Odziedziczone po SdcaBinaryTrainerBase<TModelParameters>) |
Metody
Fit(IDataView) |
Trenuje i zwraca wartość ITransformer. (Odziedziczone po TrainerEstimatorBase<TTransformer,TModel>) |
GetOutputSchema(SchemaShape) |
Element IEstimator<TTransformer> do trenowania binarnego modelu klasyfikacji regresji logistycznej przy użyciu metody stochastycznej podwójnej współrzędnej ascent. Wytrenowany model jest skalibrowany i może wygenerować prawdopodobieństwo, przekazując wartość wyjściową funkcji liniowej do klasy PlattCalibrator. (Odziedziczone po TrainerEstimatorBase<TTransformer,TModel>) |
Metody rozszerzania
AppendCacheCheckpoint<TTrans>(IEstimator<TTrans>, IHostEnvironment) |
Dołącz "punkt kontrolny buforowania" do łańcucha narzędzia do szacowania. Zapewni to, że narzędzia do szacowania podrzędnego zostaną wytrenowane pod kątem buforowanych danych. Warto mieć punkt kontrolny buforowania, zanim trenerzy przejdą wiele danych. |
WithOnFitDelegate<TTransformer>(IEstimator<TTransformer>, Action<TTransformer>) |
Biorąc pod uwagę narzędzie do szacowania, zwróć obiekt opakowujący, który będzie wywoływać delegata po Fit(IDataView) wywołaniu. Często ważne jest, aby narzędzie do szacowania zwracało informacje o tym, co było odpowiednie, dlatego Fit(IDataView) metoda zwraca specjalnie wpisany obiekt, a nie tylko ogólny ITransformerelement . Jednak w tym samym czasie IEstimator<TTransformer> są często tworzone w potoki z wieloma obiektami, więc może być konieczne utworzenie łańcucha narzędzi do szacowania, za pośrednictwem EstimatorChain<TLastTransformer> którego narzędzie do szacowania, dla którego chcemy uzyskać transformator jest pochowany gdzieś w tym łańcuchu. W tym scenariuszu możemy za pomocą tej metody dołączyć delegata, który zostanie wywołany po wywołaniu dopasowania. |
Dotyczy
Zobacz też
- SdcaLogisticRegression(BinaryClassificationCatalog+BinaryClassificationTrainers, String, String, String, Nullable<Single>, Nullable<Single>, Nullable<Int32>)
- SdcaLogisticRegression(BinaryClassificationCatalog+BinaryClassificationTrainers, SdcaLogisticRegressionBinaryTrainer+Options)
- SdcaLogisticRegressionBinaryTrainer.Options