Začněte nyníZačněte zdarma

Ensembling modelů

Jedním ze způsobů, jak zlepšit předpovědi modelů strojového učení, je ensembling. Základní přístup spočívá v průměrování předpovědí z více modelů. Složitější přístup předpovědi jednotlivých modelů předává dalšímu modelu, který vytvoří finální předpovědi. Oba přístupy obvykle celkový výkon zlepší (za předpokladu, že jednotlivé modely jsou dostatečně kvalitní). Jak si možná pamatuješ, i náhodné lesy využívají ensembling mnoha rozhodovacích stromů.

Pro ensembling předpovědí naší neuronové sítě vytvoříme předpovědi pomocí 3 modelů, které jsme právě natrénovali – základního modelu, modelu s vlastní ztrátovou funkcí a modelu s dropoutem. Předpovědi pak zkombinujeme pomocí funkce .hstack() z knihovny numpy a zprůměrujeme je přes řádky pomocí np.mean(predictions, axis=1).

Toto cvičení je součástí kurzu

Machine Learning for Finance in Python

Zobrazit kurz

Pokyny k cvičení

  • Vytvoř předpovědi na scaled_train_features a scaled_test_features pro všechny 3 natrénované modely (model_1, model_2, model_3) pomocí metody .predict().
  • Horizontálně slož (np.hstack()) předpovědi do matice a vypočítej průměry přes řádky, abys získal/a průměrné předpovědi pro trénovací a testovací sady.

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

# Make predictions from the 3 neural net models
train_pred1 = model_1.predict(____)
test_pred1 = model_1.predict(____)

train_pred2 = ____
test_pred2 = ____

train_pred3 = model_3.predict(scaled_train_features)
test_pred3 = model_3.predict(scaled_test_features)

# Horizontally stack predictions and take the average across rows
train_preds = np.mean(np.hstack((train_pred1, train_pred2, train_pred3)), axis=1)
test_preds = np.mean(____, ____)
print(test_preds[-5:])
Upravit a spustit kód