Importanța caracteristicilor în gradient boosting
La fel ca în cazul pădurilor aleatoare, putem extrage importanța caracteristicilor din modelele de gradient boosting pentru a înțelege care sunt cei mai buni predictori. Uneori este util să compari mai multe modele bazate pe arbori și să analizezi importanța caracteristicilor din fiecare. Astfel poți atenua particularitățile care pot apărea dintr-un singur model.
Importanța caracteristicilor este stocată ca un array numpy în proprietatea .feature_importances_ a modelului de gradient boosting. Va trebui să obținem indicii sortați ai importanțelor caracteristicilor folosind np.argsort(), pentru a putea genera un grafic clar. Deoarece vrem caracteristicile ordonate de la cea mai importantă la cea mai puțin importantă, vom folosi indexarea din Python pentru a inversa importanțele sortate, astfel: feat_importances[::-1].
Acest exercițiu face parte din cursul
Machine Learning pentru finanțe în Python
Instrucțiuni pentru exercițiu
- Inversează variabila
sorted_indexpentru a o ordona de la cea mai mare la cea mai mică valoare, folosind indexarea Python. - Creează lista sortată de etichete ale caracteristicilor,
labels, convertindfeature_namesîntr-un array numpy și indexând cusorted_index. - Creează un grafic de tip bară cu marcajele de pe axa x,
feature_importancesindexat cu variabilasorted_index, șilabelsca etichete pentru marcajele de pe axa x.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# 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()