Zacznij terazZacznij za darmo

Ważność cech w gradient boostingu

Podobnie jak w przypadku lasów losowych, z modeli gradient boosting można wyodrębnić ważność cech, aby dowiedzieć się, które z nich najlepiej przewidują wynik. Warto czasem wypróbować różne modele drzewiaste i porównać ważności cech ze wszystkich z nich – pozwala to zniwelować ewentualne osobliwości wynikające z właściwości konkretnego modelu.

Ważności cech są przechowywane jako tablica numpy we właściwości .feature_importances_ modelu gradient boosting. Aby uzyskać ładny wykres, należy wyznaczić posortowane indeksy ważności cech za pomocą np.argsort(). Ponieważ chcemy uszeregować cechy od najważniejszej do najmniej ważnej, użyjemy indeksowania w Pythonie, aby odwrócić posortowane wartości: feat_importances[::-1].

To ćwiczenie jest częścią kursu

Uczenie maszynowe w finansach z Pythonem

Zobacz kurs

Instrukcje do ćwiczenia

  • Odwróć zmienną sorted_index, aby przeszła od największych do najmniejszych wartości, używając indeksowania w Pythonie.
  • Utwórz posortowaną listę etykiet cech jako labels, konwertując feature_names na tablicę numpy i indeksując ją zmienną sorted_index.
  • Utwórz wykres słupkowy z podziałką osi x, wartościami feature_importances zaindeksowanymi przez sorted_index oraz labels jako etykietami na osi x.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

# Extract feature importances from the fitted gradient boosting model
feature_importances = gbr.feature_importances_

# Get the indices of the largest to smallest feature importances
sorted_index = np.argsort(feature_importances)[::____]
x = range(features.shape[1])

# Create tick labels 
labels = np.array(feature_names)[____]

plt.bar(____, feature_importances[____], tick_label=____)

# Set the tick lables to be the feature names, according to the sorted feature_idx
plt.xticks(rotation=90)
plt.show()
Edytuj i uruchom kod