Udostępnij za pośrednictwem


OneVersusAllTrainer Klasa

Definicja

Element IEstimator<TTransformer> do trenowania klasyfikatora jedno-a wszystkie klasyfikatora wieloklasowego, który używa określonego klasyfikatora binarnego.

public sealed class OneVersusAllTrainer : Microsoft.ML.Trainers.MetaMulticlassTrainer<Microsoft.ML.Data.MulticlassPredictionTransformer<Microsoft.ML.Trainers.OneVersusAllModelParameters>,Microsoft.ML.Trainers.OneVersusAllModelParameters>
type OneVersusAllTrainer = class
    inherit MetaMulticlassTrainer<MulticlassPredictionTransformer<OneVersusAllModelParameters>, OneVersusAllModelParameters>
Public NotInheritable Class OneVersusAllTrainer
Inherits MetaMulticlassTrainer(Of MulticlassPredictionTransformer(Of OneVersusAllModelParameters), OneVersusAllModelParameters)
Dziedziczenie

Uwagi

Aby utworzyć ten trener, użyj elementu OneVersusAll.

Kolumny wejściowe i wyjściowe

Dane kolumny etykiety wejściowej muszą być typem klucza , a kolumna funkcji musi być znanym wektorem Single.

Ten trener wyprowadza następujące kolumny:

Nazwa kolumny wyjściowej Typ kolumny Opis
Score Wektor Single Wyniki wszystkich klas. Wyższa wartość oznacza większe prawdopodobieństwo, że należy do skojarzonej klasy. Jeśli element i-th ma największą wartość, przewidywany indeks etykiety będzie i. Należy pamiętać, że i jest indeksem opartym na zera.
PredictedLabel typ klucza Indeks przewidywanej etykiety. Jeśli jej wartość to i, rzeczywista etykieta będzie kategorią i-th w typie etykiety wejściowej z wartością klucza.

Cechy trenera

Zadanie uczenia maszynowego Klasyfikacja wieloklasowa
Czy normalizacja jest wymagana? Zależy od bazowego klasyfikatora binarnego
Czy buforowanie jest wymagane? Tak
Wymagane narzędzie NuGet oprócz Microsoft.ML Brak
Możliwość eksportowania do ONNX Tak

Szczegóły algorytmu trenowania

W strategii "jeden w porównaniu do wszystkich" (OVA) algorytm klasyfikacji binarnej służy do trenowania jednego klasyfikatora dla każdej klasy, który odróżnia ten klasę od wszystkich innych klas. Następnie jest wykonywane przewidywanie przez uruchomienie tych klasyfikatorów binarnych i wybranie przewidywania z najwyższym współczynnikiem ufności. Ten algorytm może być używany z dowolnymi klasyfikatorami binarnymi w ML.NET. Kilka klasyfikatorów binarnych ma już implementację dla problemów wieloklasowych, dlatego użytkownicy mogą wybrać jedną z nich w zależności od kontekstu. Wersja OVA klasyfikatora binarnego, taka jak zawijanie LightGbmBinaryTrainerklasyfikatora , może różnić się od LightGbmMulticlassTrainerklasyfikatora klasyfikatora wieloklasowego bezpośrednio. Należy pamiętać, że nawet jeśli klasyfikator wskazuje, że nie wymaga buforowania, funkcja OneVersusAll zawsze będzie żądać buforowania, ponieważ będzie wykonywać wiele przejść przez zestaw danych. Ten trener zażąda normalizacji z potoku danych, jeśli klasyfikator wskaże, że skorzysta z niego.

Może to umożliwić wykorzystanie trenerów, które nie mają naturalnie opcji wieloklasowej, na przykład przy użyciu polecenia FastTreeBinaryTrainer , aby rozwiązać problem wieloklasowy. Alternatywnie, może pozwolić ML.NET rozwiązać "prostszy" problem nawet w przypadkach, gdy trener ma opcję wieloklasową, ale używanie jej bezpośrednio nie jest praktyczne ze względu na ograniczenia pamięci, zwykle. Na przykład, podczas gdy regresja logistyczna wieloklasowa jest bardziej pryncyjnym sposobem rozwiązania problemu wieloklasowego, wymaga, aby trener przechowywał o wiele więcej stanu pośredniego w postaci historii L-BFGS dla wszystkich klas jednocześnie, a nie tylko jeden po jednym, co byłoby potrzebne dla modelu klasyfikacji jeden w porównaniu do wszystkich.

Zapoznaj się z sekcją Zobacz również, aby uzyskać linki do przykładów użycia.

Właściwości

Info

Element IEstimator<TTransformer> do trenowania klasyfikatora jedno-a wszystkie klasyfikatora wieloklasowego, który używa określonego klasyfikatora binarnego.

(Odziedziczone po MetaMulticlassTrainer<TTransformer,TModel>)

Metody

Fit(IDataView)

Trenuje MulticlassPredictionTransformer<TModel> model.

GetOutputSchema(SchemaShape)

Pobiera kolumny wyjściowe.

(Odziedziczone po MetaMulticlassTrainer<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ż