Apakah status acak parameter untuk disetel?

9

Masalah yang cukup sering terjadi dalam percobaan saya adalah model bervariasi dalam kinerja ketika keadaan acak untuk algoritma diubah. Jadi pertanyaannya sederhana, haruskah saya mengambil status acak sebagai hiperparameter? Mengapa demikian? Jika model saya mengungguli orang lain dengan keadaan acak berbeda, haruskah saya menganggap model itu lebih sesuai dengan keadaan acak tertentu?

log pohon keputusan di sklearn: (random_rate harus berupa keadaan acak) log pohon keputusan di sklearn

PeterLai
sumber
Dengan kekuatan komputasi modern, dimungkinkan untuk mengidentifikasi benih yang memberikan hasil kasus tepi. Katakanlah Anda adalah seorang peneliti dan Anda telah melakukan percobaan, tetapi hasil Anda tidak berjalan seperti yang Anda inginkan. Akan sangat mudah untuk menjalankan eksperimen Anda di jutaan benih untuk melihat mana yang menceritakan kisah yang Anda cari. Terbaik untuk memiliki benih tetap yang selalu Anda gunakan. Membuat Anda jujur!
Brandon Bertelsen

Jawaban:

5

Tidak, seharusnya tidak.

Hyperparameters adalah variabel yang mengontrol beberapa aspek tingkat tinggi dari perilaku algoritma. Berbeda dengan parameter reguler, hyperparameters tidak dapat secara otomatis dipelajari dari data pelatihan oleh algoritma itu sendiri. Untuk alasan ini, pengguna yang berpengalaman akan memilih nilai yang sesuai berdasarkan intuisinya, pengetahuan domain dan makna semantik dari hyperparameter (jika ada). Atau, seseorang dapat menggunakan set validasi untuk melakukan pemilihan hiperparameter. Di sini, kami mencoba untuk menemukan nilai hiperparameter optimal untuk seluruh populasi data dengan menguji nilai kandidat yang berbeda pada sampel populasi (set validasi).

Mengenai keadaan acak, ini digunakan dalam banyak algoritma acak di sklearn untuk menentukan seed acak yang diteruskan ke generator angka pseudo-acak. Oleh karena itu, ia tidak mengubah aspek dari perilaku algoritma. Sebagai consecuente, nilai keadaan acak yang berkinerja baik di set validasi tidak sesuai dengan yang akan berkinerja baik di set tes baru yang tidak terlihat. Memang, tergantung pada algoritme, Anda mungkin melihat hasil yang sangat berbeda dengan hanya mengubah urutan sampel pelatihan.

Saya sarankan Anda memilih nilai keadaan acak secara acak dan menggunakannya untuk semua percobaan Anda. Atau Anda dapat mengambil akurasi rata-rata model Anda lebih dari satu set keadaan acak acak.

Bagaimanapun, jangan mencoba untuk mengoptimalkan keadaan acak, ini pasti akan menghasilkan ukuran kinerja yang bias secara optimis.

Daniel López
sumber
0

Apa efek random_state? pelatihan dan validasi mengatur pemisahan, atau apa?

Jika ini adalah kasus pertama, saya pikir Anda dapat mencoba untuk menemukan perbedaan antara skema pemisahan di bawah dua keadaan acak, dan ini mungkin memberi Anda beberapa intuisi dalam model Anda (maksud saya, Anda dapat menjelajahi mengapa ia bekerja untuk melatih model pada beberapa data, dan gunakan model yang terlatih untuk memprediksi beberapa data validasi, tetapi tidak berfungsi untuk melatih model pada beberapa data lain, dan memprediksi beberapa data validasi lainnya. Apakah mereka terdistribusi secara berbeda?) Analisis tersebut dapat memberi Anda beberapa intuisi.

Dan omong-omong, saya mengalami masalah ini juga :), dan hanya tidak memahaminya. Mungkin kita bisa bekerja sama dalam menyelidikinya.

Bersulang.

Janzen LIU
sumber
1
Saya tidak mengerti pertanyaannya dan saya tidak mengerti jawaban ini.
Michael R. Chernick
Pertanyaannya, apa penggunaan random_state dalam kasus Anda? Apakah ini digunakan sebagai seed untuk menghasilkan angka acak?
Janzen LIU