Mulai sekarangMulai gratis

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

Lihat Kursus

Instruksi latihan

  • Buat prediksi pada scaled_train_features dan scaled_test_features untuk 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:])
Edit dan Jalankan Kode