Modelleri bir araya getirme (Ensembling)
Machine Learning modellerinden gelen tahminleri iyileştirmenin bir yolu ensembling yapmaktır. Basit bir yaklaşım, birden fazla modelin tahminlerinin ortalamasını almaktır. Daha karmaşık bir yaklaşım ise modellerin tahminlerini başka bir modele besleyip nihai tahminleri bu modelin yapmasını sağlamaktır. Her iki yaklaşım da genellikle toplam performansımızı artırır (bireysel modellerimiz yeterince iyiyse). Hatırlarsan, random forest'lar da birçok karar ağacını bir araya getirerek ensembling yapar.
Sinir ağı tahminlerimizi bir araya getirmek için az önce oluşturduğumuz 3 modelle — temel model, özel kayıp fonksiyonlu model ve dropout'lu model — tahmin yapacağız. Sonra tahminleri numpy'un .hstack() fonksiyonuyla yatayda birleştirip, satır bazında np.mean(predictions, axis=1) ile ortalamasını alacağız.
Bu egzersiz, kursun bir parçasıdır
Python ile Finans için Machine Learning
Egzersiz talimatları
.predict()metodunu kullanarak, 3 modelin (model_1,model_2,model_3)scaled_train_featuresvescaled_test_featuresüzerindeki tahminlerini oluştur.- Tahminleri yatayda bir matris halinde birleştir (
np.hstack()), ardından satır bazında ortalama alarak eğitim ve test kümeleri için ortalama tahminleri elde et.
Uygulamalı etkileşimli egzersiz
Bu egzersizi bu örnek kodu tamamlayarak deneyin.
# 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:])