Ketika saya pertama kali belajar tentang model ansambel, salah satu kelebihan utama yang disebutkan adalah bahwa model ini memanfaatkan “kebijaksanaan orang banyak”. Hal ini membuatnya relatif lebih kebal terhadap kesalahan generalisasi yang mengganggu model jika digunakan secara tunggal. Prosesnya melibatkan penggunaan beberapa model untuk memprediksi suatu hasil melalui sistem pemungutan suara. Prediksi dari masing-masing model dapat dianggap sebagai perolehan suara dan prediksi yang memperoleh suara terbanyak adalah pemenangnya. Terkadang suara bisa ditimbang. Ini adalah salah satu fitur pemodelan ansambel yang paling menarik menurut saya. Saya menemukan banyak cara yang bisa dimanfaatkan untuk melayani berbagai kebutuhan. Di sini, saya akan memanfaatkannya untuk mengatur kepentingan variabel dalam ansambel terakhir.

Catatan singkat; ide-ide yang diberikan di sini adalah milik saya, sebagian besar masih mentah dan pasti memerlukan penelitian lebih lanjut. Karena itu, mari kita lanjutkan

Ide

Bagaimana kita membuat model dimana urutan kepentingan variabel sesuai dengan harapan?

Ada situasi dimana diketahui bahwa suatu variabel, katakanlah A, adalah variabel terpenting dalam menentukan X, disusul variabel B, lalu C. Saat kita membuat model, terutama model kotak hitam, tidak ada jaminan kita akan memilikinya. memesan. Kita dapat, dan dalam banyak situasi, membuat model dengan kekuatan prediksi yang luar biasa, namun variabel-variabel yang tidak masuk akal memainkan peran yang sangat besar dalam prediksi tersebut. Bukan itu yang kami inginkan. Kami tidak ingin terulangnya model yang menggunakan kehadiran salju di latar belakang untuk membedakan antara serigala dan anjing dalam sebuah gambar. Kami ingin yang meneliti hewan sebenarnya, bukan latar belakangnya.

Pendekatan

Langkah 1: Buat Sejumlah Model Berbeda

Saya memanfaatkan fakta bahwa model yang berbeda berperilaku berbeda - model tersebut memiliki sensitivitas yang berbeda mengenai hubungan yang ditunjukkan variabel tertentu antara model tersebut dan variabel independen. Oleh karena itu, tingkat dan urutan kepentingan variabel hampir selalu tidak sama antar model. Kita dapat membuat beberapa model yang masing-masing idealnya memiliki tingkat kekuatan prediksi yang dapat diterima, namun tingkat kepentingan variabelnya berbeda-beda.

Ambil contoh di bawah ini dari proyek yang sedang saya kerjakan. Urutan kepentingan variabel tidak persis sama, namun kedua model memiliki kekuatan prediksi yang relatif sama (saya tahu, saya sudah mengujinya).

Hutan Acak

XGBoost

Langkah 2: Hitung faktor bobotnya

Hal ini akan didasarkan pada bagaimana model memenuhi harapan mengenai pentingnya variabel. Saya mengidentifikasi beberapa cara yang dapat digunakan untuk melakukan hal ini;

  1. Sistem persamaan linear
  2. Pemrograman Linier
  3. Jarak Euclidean berdasarkan peringkat antara model dan ekspektasi
  4. Sedikit modifikasi pada pendekatan 3 (misalnya menggunakan metode lain dalam menghitung jarak, atau menggunakan tingkat kepentingan aktual sebagai pengganti peringkat)

Gunakan sistem Persamaan Linier

Kita dapat membuat sistem persamaan linier dari model dengan menggunakan kepentingan variabel kemudian menyelesaikan bobot masing-masing model sebagai berikut;

Nilai-nilai yang ditunjukkan di atas telah dihasilkan secara acak, sambil memastikan bahwa untuk setiap kolom jumlahnya berjumlah 1. Anggap saja sebagai nilai penting variabel standar. Nilai sebenarnya (tidak terstandarisasi) bisa berupa RMSE atau metrik kinerja lainnya.

Dengan asumsi kita mengetahui dengan pasti seberapa penting setiap variabel ketika menentukan hasil, kita dapat memberikan bobot pada masing-masing model dalam ansambel untuk memastikan bahwa model ansambel akhir akan memiliki kepentingan variabel yang sesuai dengan harapan. Dalam kasus kita di atas, ini melibatkan penyelesaian sistem persamaan linear berikut;

Solusi dari permasalahan di atas adalah (bobot yang harus diberikan pada setiap model)

Jika kita hanya mengetahui bahwa variabel tertentu seharusnya menjadi yang paling penting namun tidak dapat mengukur tingkat kepentingannya, kita dapat memodifikasi persamaan linear di atas dengan mengganti salah satu atau kedua nilai di sisi kanan dan koefisien dengan nilai peringkat.

Kemungkinan kelemahan dari pendekatan di atas adalah;

  • Akan berhasil jika jumlah model sesuai dengan jumlah variabel. Oleh karena itu, pembuatannya membutuhkan banyak model dan biayanya mahal
  • Hal ini juga hanya akan berhasil jika terdapat perbedaan besar antara pentingnya variabel dari model ke model. Jika suatu variabel memiliki tingkat kepentingan tertentu di semua model (katakanlah 0,80), tidak ada cara untuk mengurangi atau meningkatkan nilai ini secara signifikan.

Gunakan Pemrograman Linier

Hal ini dapat digunakan untuk mengatasi beberapa tantangan yang disebutkan di atas. Jika kita hanya ingin membuat dua model, kita dapat memberikan bobot sedemikian rupa sehingga tingkat kepentingan variabel tertentu ditingkatkan atau dikurangi hingga maksimum/minimum, dengan adanya batasan tertentu. Misalnya, dengan asumsi bahwa dari model di atas, kita hanya membuat dua model pertama, sekarang kita memiliki tabel seperti yang ditunjukkan di bawah ini;

Kita dapat membuat masalah pemrograman linier yang memaksimalkan pentingnya variabel last_pymnt_year sebagai berikut;

Ekspresi di atas berarti kita mencoba memaksimalkan pentingnya variabel pertama last_pymnt_year, sambil memastikan bahwa urutan kepentingan variabel adalah seperti yang ditunjukkan di atas. Artinya, peringkat kepentingan variabel-variabel tersebut berada dalam urutan sebagai berikut; last_pymt_year › last_pymt_amnt › last_credit_pull_year › last_credit_pull_month › issue_year

Ada beberapa kekurangan dari pendekatan ini yang telah saya identifikasi sejauh ini;

  • Kami tidak menjamin menemukan solusi yang dapat memenuhi semua kendala. Memang model di atas tidak menyatu. Oleh karena itu, kita mungkin perlu menghilangkan beberapa kendala. Dalam kasus saya, saya menghilangkan batasan terakhir; 0.0597Model_1 + 0.0830Model_2 — (0.0776Model_1 + 0.1123Model_2) › = 0. Ini adalah batasan yang memastikan pentingnya variabel last_credit_pull_month lebih besar dari issue_year . Setelah menghilangkannya, berikut adalah solusi dari masalah di atas;

  • Kita tidak dapat menentukan tingkat kepentingan variabel yang kita inginkan. Yang bisa kita lakukan hanyalah memaksimalkan atau meminimalkan pentingnya hal tersebut dalam ansambel akhir
  • Hal ini juga bergantung pada koefisien yang menunjukkan pentingnya variabel dalam setiap model. Jika setiap variabel memiliki tingkat kepentingan yang sama dalam setiap model, pendekatan ini tidak akan berhasil

Gunakan Jarak Euclidean Berbasis Peringkat

Di sini, kita dapat menghitung jarak Euclidean (atau lainnya) antara peringkat aktual dan yang diharapkan untuk setiap model dan menggunakannya untuk membuat bobot. Mengenai model kita di atas, mungkin model tersebut diharapkan memiliki urutan kepentingan variabel sebagai berikut

Bobot dapat diperoleh dari jarak melalui rumus;

Jadi, dalam hal ini, kita cukup menggunakan model 2, karena model tersebut sangat sesuai dengan harapan kita

Pendekatan ini, seperti pendekatan lainnya, memiliki beberapa kekurangan yang saya identifikasi;

  • Jika kita memiliki beberapa model dengan jarak Euclidean bukan nol, model tersebut tidak akan memilih model dengan jarak yang paling disukai. Sebaliknya, model tersebut hanya akan diberi bobot lebih tinggi saat membuat ansambel. Ini mungkin sesuatu yang kami inginkan - kami ingin mengeksploitasi kebijaksanaan orang banyak dengan menciptakan sebuah ansambel. Terkadang, kita mungkin lebih memilih untuk langsung memilih variabel yang kepentingan variabelnya lebih dekat dengan ekspektasi.

Gunakan Versi Pendekatan 3 yang berbeda (Jarak Euclidean Berbasis Peringkat)

Kita dapat mencapainya dengan

  1. Sebagai pengganti peringkat, kita dapat menggunakan nilai aktual yang menunjukkan pentingnya variabel dan menggunakannya untuk menghitung bobot
  2. Kita dapat menggunakan metode lain untuk menghitung jarak seperti jarak Manhattan

Pertimbangan penting

  1. Apa validitas sebenarnya dari gagasan yang diberikan di sini? Apakah kita mempunyai cukup alasan untuk percaya bahwa pentingnya variabel telah dimodifikasi sedemikian rupa sehingga sesuai dengan harapan
  2. Sepanjang pekerjaan ini, saya telah membuat asumsi bahwa model-model tersebut memiliki tingkat kekuatan prediksi yang relatif sama dan kita tidak perlu khawatir tentang hal itu. Saya melakukan itu hanya untuk menghilangkan lapisan kerumitan dalam perhitungan dan analisis saya. Pada praktiknya, hal ini hampir selalu tidak pernah terjadi. Banyak perhitungan di atas yang perlu dimodifikasi sedikit (atau banyak) untuk memperhitungkan perbedaan kinerja masing-masing model.
  3. Sebagian besar pendekatan di atas merupakan bentuk rata-rata. Oleh karena itu, untuk mendapatkan tingkat kepentingan variabel pada tingkat tertentu, kita memerlukan model yang memiliki tingkat kepentingan lebih tinggi dan model lain dengan tingkat kepentingan lebih rendah. Memiliki semua model dengan level yang lebih tinggi atau lebih rendah dari level target berarti pencapaian target mungkin tidak dapat dicapai. Satu ide yang saya munculkan untuk mengatasi hal ini adalah dengan membuat dua model tambahan. Suatu model hanya akan memiliki variabel tersebut sebagai variabel dependen, sehingga variabel tersebut dijamin memiliki tingkat kepentingan yang lebih tinggi dari targetnya. Model lainnya akan memiliki semua variabel lain kecuali satu variabel tersebut. Kami juga dapat menghapus semua variabel yang memiliki korelasi absolut tinggi dengan variabel yang diteliti karena variabel tersebut dapat digunakan oleh model sebagai proksi untuk variabel tersebut. Pikirkan tentang menghapus variabel gender tetapi tetap mempertahankan variabel tersebut untuk sekolah tempat mereka bersekolah. Jika seseorang bersekolah di sekolah yang seluruhnya perempuan, kemungkinan besar dia adalah perempuan. Oleh karena itu, jika kita menghilangkan variabel gender, masuk akal untuk menghapus variabel tersebut juga. Dalam model kedua ini, pentingnya variabel target akan menjadi nol. Kita dapat menambahkan kedua model ini ke daftar model lain yang coba kita beri bobot untuk membuat ansambel

Kesimpulan

Saya akan mencari lebih banyak ide yang muncul di sini dan akan memposting lebih banyak tentangnya. Jadi jika menurut Anda menarik, pastikan untuk memeriksanya kembali