Важность признаков и градиентный бустинг

Машинное обучение для финансов на Python

Nathan George

Data Science Professor

разбиение по дню недели

Машинное обучение для финансов на Python

разбиение по 200-дневной SMA

Машинное обучение для финансов на Python

Извлечение важности признаков

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]
Машинное обучение для финансов на Python

Сортировка и визуализация

# 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()
Машинное обучение для финансов на Python

график важности признаков

Машинное обучение для финансов на Python

Линейные модели vs градиентный бустинг

Машинное обучение для финансов на Python

схема бустинга

Машинное обучение для финансов на Python

Бустинговые модели

Доступные бустинговые модели:

  • Градиентный бустинг
  • AdaBoost
Машинное обучение для финансов на Python

Обучение модели градиентного бустинга

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)
Машинное обучение для финансов на Python

Давайте потренируемся!

Машинное обучение для финансов на Python

Preparing Video For Download...