Nadmierne dopasowanie, regularyzacja i wczesne zatrzymanie

W przeciwieństwie do lasów losowych drzewa gradientowe mogą się nadstosowywać. Dlatego, podobnie jak w przypadku sieci neuronowych, możesz stosować regularyzację i wczesne zatrzymywanie, korzystając z danych testowych.

Na przykład na poniższych rysunkach pokazano krzywe strat i dokładności dla zbiorów danych treningowych i sprawdzających podczas trenowania modelu GBT. Zwróć uwagę, jak bardzo krzywe się rozchodzą, co sugeruje wysoki stopień dopasowania.

Wykresy straty trenowania i walidacji w zależności od liczby drzewek decyzyjnych Strata podczas trenowania stopniowo maleje wraz ze wzrostem liczby drzewek decyzyjnych. Jednak spadek strat na skutek weryfikacji występuje tylko do około 40 drzewek decyzyjnych. W przypadku ponad 40 drzew decyzji utrata danych na etapie weryfikacji może się zwiększyć. W przypadku 400 drzewek decyzyjnych różnica między stratą na etapie trenowania a stratą na etapie walidacji jest ogromna.

Rysunek 29. Straty w zależności od liczby drzew decyzyjnych.

 

Wykresy dokładności trenowania i walidacji w zależności od liczby drzew decyzyjnych. Dokładność trenowania stopniowo wzrasta wraz ze wzrostem liczby drzew decyzyjnych i osiąga maksimum w wysokości prawie 1, 0 przy 400 drzewach decyzyjnych. Dokładność weryfikacji wzrasta do około 0,86 dla 40 drzew decyzyjnych, a następnie stopniowo spada do około 0,83 dla 400 drzew decyzyjnych.

Rysunek 30. Dokładność w zależności od liczby drzew decyzyjnych.

 

Typowe parametry regularyzacji dla drzew z wzmocnieniem gradientowym:

  • Maksymalna głębokość drzewa.
  • Współczynnik skurczu.
  • Stosunek atrybutów testowanych w każdym węźle.
  • współczynnik L1 i L2 strat;

Pamiętaj, że drzewa decyzyjne są zwykle płytsze niż modele lasów losowych. Domyślnie drzewa gradientowe w TF-DF są rozwijane do głębokości 6. Ponieważ drzewa są płytkie, minimalna liczba przykładów na liść ma niewielki wpływ i zwykle nie jest dostosowywana.

Potrzebny jest zbiór danych walidacyjnych, gdy liczba przykładów treningowych jest niewielka. Dlatego często trenuje się drzewa gradientowe w pętli walidacji krzyżowej lub wyłącza wczesny stop, gdy wiadomo, że model nie jest nadmiernie dopasowywany.

Przykład użycia

W poprzednim rozdziale trenowaliśmy las losowy na małym zbiorze danych. W tym przykładzie po prostu zastąpimy model lasu losowego modelem drzew gradientowych:

model = tfdf.keras.GradientBoostedTreesModel()

# Part of the training dataset will be used as validation (and removed
# from training).
model.fit(tf_train_dataset)

# The user provides the validation dataset.
model.fit(tf_train_dataset, validation_data=tf_valid_dataset)

# Disable early stopping and the validation dataset. All the examples are
# used for training.
model.fit(
   tf_train_dataset,
   validation_ratio=0.0,
   early_stopping="NONE")
# Note: When "validation_ratio=0", early stopping is automatically disabled,
# so early_stopping="NONE" is redundant here.

Korzystanie i ograniczenia

Drzewa z wzmocnieniem gradientowym mają pewne zalety i wady.

Zalety

  • Podobnie jak drzewa decyzyjne, domyślnie obsługują one atrybuty numeryczne i kategorialne oraz często nie wymagają wstępnego przetwarzania atrybutów.
  • Drzewa gradientowe mają domyślne hiperparametry, które często dają świetne wyniki. Jednak dostosowanie tych hiperparametrów może znacznie poprawić model.
  • Modele drzewa z wzmocnieniem gradientowym są zazwyczaj małe (pod względem liczby węzłów i pamięci) oraz szybkie w wykonaniu (często tylko 1 lub kilka µs na przykład).

Wady

  • Drzewa decyzyjne muszą być trenowane sekwencyjnie, co może znacznie spowolnić proces trenowania. Spowolnienie treningu jest jednak w pewnym stopniu kompensowane przez mniejsze drzewa decyzji.
  • Podobnie jak lasy losowe, drzewa gradientowych drzew wzrostowych nie mogą uczyć się i wykorzystywać wewnętrznych reprezentacji. Każde drzewo decyzyjne (i każda gałąź każdego drzewa decyzyjnego) musi ponownie nauczyć się wzorca zbioru danych. W niektórych zbiorach danych, zwłaszcza w przypadku zbiorów danych z danymi nieustrukturyzowanymi (np. obrazami czy tekstem), drzewa gradient boostingu dają gorsze wyniki niż inne metody.