Ensembling model
Salah satu pendekatan untuk meningkatkan prediksi dari model machine learning adalah ensembling. Pendekatan dasar adalah merata-ratakan prediksi dari beberapa model. Pendekatan yang lebih kompleks adalah memasukkan prediksi dari berbagai model ke dalam model lain, yang menghasilkan prediksi akhir. Kedua pendekatan ini biasanya meningkatkan kinerja keseluruhan (selama model individual kita baik). Jika Anda ingat, random forest juga menggunakan ensembling dari banyak decision tree.
Untuk melakukan ensembling pada prediksi neural net kita, kita akan membuat prediksi dengan 3 model yang baru saja kita buat — model dasar, model dengan fungsi rugi kustom, dan model dengan dropout. Lalu kita gabungkan prediksi tersebut dengan fungsi .hstack() dari numpy, dan ambil rata-ratanya per baris dengan np.mean(predictions, axis=1).
Latihan ini merupakan bagian dari kursus
Machine Learning untuk Keuangan dengan Python
Instruksi latihan
- Buat prediksi pada
scaled_train_featuresdanscaled_test_featuresuntuk 3 model yang telah kita latih (model_1,model_2,model_3) menggunakan metode.predict(). - Susun secara horizontal (gunakan
np.hstack()) prediksi-prediksi tersebut menjadi sebuah matriks, lalu ambil rata-rata per baris untuk memperoleh prediksi rata-rata untuk himpunan train dan test.
Latihan interaktif langsung praktik
Cobalah latihan ini dengan melengkapi kode contoh ini.
# 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:])