Importâncias de features e gradient boosting

Machine Learning para Finanças em Python

Nathan George

Data Science Professor

divisão por dia da semana

Machine Learning para Finanças em Python

divisão por SMA de 200 dias

Machine Learning para Finanças em Python

Extraindo importâncias de features

from sklearn.ensemble import RandomForestRegressor

random_forest = RandomForestRegressor()
random_forest.fit(train_features, train_targets)

feature_importances = random_forest.feature_importances_

print(feature_importances)
[0.07586547 0.10697602 0.12215955 0.23969227 0.29010304 0.0314028
 0.11977058 0.00276721 0.00246329 0.0026431  0.00615667]
Machine Learning para Finanças em Python

Ordenando e plotando

# feature importances from random forest model
importances = random_forest.feature_importances_

# index of greatest to least feature importances
sorted_index = np.argsort(importances)[::-1]

x = range(len(importances)) # create tick labels labels = np.array(feature_names)[sorted_index] plt.bar(x, importances[sorted_index], tick_label=labels) # rotate tick labels to vertical plt.xticks(rotation=90) plt.show()
Machine Learning para Finanças em Python

gráfico de importância de features

Machine Learning para Finanças em Python

Modelos lineares vs gradient boosting

Machine Learning para Finanças em Python

diagrama de boosting

Machine Learning para Finanças em Python

Modelos boosted

Modelos boosted disponíveis:

  • Gradient boosting
  • Adaboost
Machine Learning para Finanças em Python

Ajustando um modelo de gradient boosting

from sklearn.ensemble import GradientBoostingRegressor

gbr = GradientBoostingRegressor(max_features=4,
                                learning_rate=0.01,
                                n_estimators=200,
                                subsample=0.6,
                                random_state=42)

gbr.fit(train_features, train_targets)
Machine Learning para Finanças em Python

Hora do boost!

Machine Learning para Finanças em Python

Preparing Video For Download...