Ważność cech w lasach losowych
Jedną z przydatnych właściwości metod drzewiastych jest możliwość wyznaczenia ważności cech. To ilościowy sposób oceny, jak bardzo każda cecha wpływa na przewidywania modelu. Dzięki temu możesz skupić się na najistotniejszych cechach – ewentualnie je ulepszać lub dostrajać – a także pozbyć się cech bezużytecznych, które niepotrzebnie zaśmiecają model.
Modele drzewiaste w sklearn udostępniają właściwość .feature_importances_, dostępną po dopasowaniu modelu. Przechowuje ona wyniki ważności cech. Aby stworzyć czytelny wykres słupkowy ważności cech (posortowanych od największej do najmniejszej), należy pobrać indeksy posortowanych wartości za pomocą np.argsort().
To ćwiczenie jest częścią kursu
Uczenie maszynowe w finansach z Pythonem
Instrukcje do ćwiczenia
- Użyj właściwości
feature_importances_modelu lasu losowego (rfr), aby wyodrębnić ważności cech i zapisać je w zmiennejimportances. - Za pomocą funkcji
argsortz biblioteki numpy pobierz indeksy ważności cech posortowane od największej do najmniejszej i zapisz je w zmiennejsorted_index. - Ustaw etykiety osi X jako nazwy cech w zmiennej
labels, korzystając z listysorted_index. Zmiennafeature_namesmusi zostać przekonwertowana na tablicę numpy, aby można było jej indeksować za pomocą listysorted_index.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# Get feature importances from our random forest model
importances = rfr.____
# Get the index of importances from greatest importance to least
sorted_index = ____(importances)[::-1]
x = range(len(importances))
# Create tick labels
labels = np.array(____)[____]
plt.bar(x, importances[sorted_index], tick_label=labels)
# Rotate tick labels to vertical
plt.xticks(rotation=90)
plt.show()