Udostępnij za pośrednictwem


FastTreeRankingTrainer Klasa

Definicja

Element IEstimator<TTransformer> do trenowania modelu klasyfikacji drzewa decyzyjnego przy użyciu narzędzia FastTree.

public sealed class FastTreeRankingTrainer : Microsoft.ML.Trainers.FastTree.BoostingFastTreeTrainerBase<Microsoft.ML.Trainers.FastTree.FastTreeRankingTrainer.Options,Microsoft.ML.Data.RankingPredictionTransformer<Microsoft.ML.Trainers.FastTree.FastTreeRankingModelParameters>,Microsoft.ML.Trainers.FastTree.FastTreeRankingModelParameters>
type FastTreeRankingTrainer = class
    inherit BoostingFastTreeTrainerBase<FastTreeRankingTrainer.Options, RankingPredictionTransformer<FastTreeRankingModelParameters>, FastTreeRankingModelParameters>
Public NotInheritable Class FastTreeRankingTrainer
Inherits BoostingFastTreeTrainerBase(Of FastTreeRankingTrainer.Options, RankingPredictionTransformer(Of FastTreeRankingModelParameters), FastTreeRankingModelParameters)
Dziedziczenie

Uwagi

Aby utworzyć tego trenera, użyj opcji FastTree lub FastTree(Options).

Kolumny wejściowe i wyjściowe

Typ danych etykiety wejściowej musi być typem klucza lub Single. Wartość etykiety określa istotność, gdzie wyższe wartości wskazują na większe znaczenie. Jeśli etykieta jest typem klucza , indeks klucza jest wartością istotności, gdzie najmniejszy indeks jest najmniej istotny. Jeśli etykieta Singleto , większe wartości wskazują na większe znaczenie. Kolumna funkcji musi być znanym wektorem kolumny grupy wierszy wejściowych Single i musi być typem klucza .

Ten trener generuje następujące kolumny:

Nazwa kolumny wyjściowej Typ kolumny Opis
Score Single Niezwiązany wynik, który został obliczony przez model w celu określenia przewidywania.

Cechy trenera

Zadanie uczenia maszynowego Ranking
Czy normalizacja jest wymagana? Nie
Czy buforowanie jest wymagane? Nie
Wymagane narzędzie NuGet oprócz Microsoft.ML Microsoft.ML.FastTree
Eksportowanie do pliku ONNX Nie

Szczegóły algorytmu trenowania

FastTree to wydajna implementacja algorytmu zwiększania gradientu MART . Zwiększanie gradientu to technika uczenia maszynowego w przypadku problemów z regresją. Tworzy każde drzewo regresji w sposób krokowy, używając wstępnie zdefiniowanej funkcji utraty, aby zmierzyć błąd dla każdego kroku i poprawić go w następnym kroku. Dlatego ten model przewidywania jest w rzeczywistości zespołem słabszych modeli przewidywania. W przypadku problemów regresji zwiększenie tworzy serię takich drzew w sposób krok-mądry, a następnie wybiera optymalne drzewo przy użyciu dowolnej funkcji różnicowej utraty.

MART uczy się zespołu drzew regresji, który jest drzewem decyzyjnym z wartościami skalarnymi w liściach. Drzewo decyzyjne (lub regresja) jest binarnym wykresem przepływowym przypominającym drzewo, w którym w każdym węźle wewnętrznym decyduje się na to, które z dwóch węzłów podrzędnych będą nadal oparte na jednej z wartości funkcji z danych wejściowych. W każdym węźle liścia zwracana jest wartość. W węzłach wewnętrznych decyzja jest oparta na teście x <= v, gdzie x jest wartością funkcji w przykładzie wejściowym, a v jest jedną z możliwych wartości tej funkcji. Funkcje, które mogą być tworzone przez drzewo regresji, to wszystkie funkcje stałe mądre.

Zespół drzew jest generowany przez obliczenia, w każdym kroku, drzewo regresji, które przybliża gradient funkcji utraty, i dodając je do poprzedniego drzewa ze współczynnikami, które minimalizują utratę nowego drzewa. Dane wyjściowe zespołu utworzonego przez mart w danym wystąpieniu są sumą danych wyjściowych drzewa.

  • W przypadku problemu z klasyfikacją binarną dane wyjściowe są konwertowane na prawdopodobieństwo przy użyciu jakiejś formy kalibracji.
  • W przypadku problemu z regresją dane wyjściowe są przewidywaną wartością funkcji.
  • W przypadku problemu z klasyfikacją wystąpienia są uporządkowane według wartości wyjściowej zespołu.

Aby uzyskać więcej informacji, zobacz:

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>)
GroupIdColumn

Opcjonalna kolumna groupID oczekiwana przez trenerów klasyfikacji.

(Odziedziczone po TrainerEstimatorBaseWithGroupId<TTransformer,TModel>)
LabelColumn

Kolumna etykiety, którą oczekuje trener. Może to być nullwartość , która wskazuje, że etykieta nie jest używana do trenowania.

(Odziedziczone po TrainerEstimatorBase<TTransformer,TModel>)
WeightColumn

Kolumna wagi, którą oczekuje trener. Może to być null, co wskazuje, że waga nie jest używana do trenowania.

(Odziedziczone po TrainerEstimatorBase<TTransformer,TModel>)

Właściwości

Info

Element IEstimator<TTransformer> do trenowania modelu klasyfikacji drzewa decyzyjnego przy użyciu narzędzia FastTree.

(Odziedziczone po FastTreeTrainerBase<TOptions,TTransformer,TModel>)

Metody

Fit(IDataView, IDataView)

Trenuje FastTreeRankingTrainer przy użyciu zarówno danych treningowych, jak i weryfikacyjnych, zwraca wartość RankingPredictionTransformer<TModel>.

Fit(IDataView)

Trenuje i zwraca wartość ITransformer.

(Odziedziczone po TrainerEstimatorBase<TTransformer,TModel>)
GetOutputSchema(SchemaShape)

Element IEstimator<TTransformer> do trenowania modelu klasyfikacji drzewa decyzyjnego przy użyciu narzędzia FastTree.

(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 względem buforowanych danych. Warto mieć punkt kontrolny buforowania, zanim trenerzy przejmą wiele danych.

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

Biorąc pod uwagę narzędzie do szacowania, zwróć obiekt opakowujący, który wywoła 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ólną ITransformerwartość . Jednak w tym samym czasie IEstimator<TTransformer> często są tworzone w potoki z wieloma obiektami, więc może być konieczne utworzenie łańcucha narzędzi do szacowania za pośrednictwem EstimatorChain<TLastTransformer> miejsca, w którym 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ż