Saya memiliki jaringan saraf yang diatur untuk memprediksi sesuatu di mana variabel output adalah ordinal. Saya akan jelaskan di bawah ini dengan menggunakan tiga kemungkinan keluaran A <B <C.
Cukup jelas bagaimana menggunakan jaringan saraf untuk menampilkan data kategori: output hanyalah sebuah softmax dari lapisan terakhir (biasanya sepenuhnya terhubung), satu per kategori, dan kategori yang diprediksi adalah yang dengan nilai output terbesar (ini adalah default di banyak model populer). Saya telah menggunakan pengaturan yang sama untuk nilai ordinal. Namun, dalam hal ini output sering tidak masuk akal, misalnya output jaringan untuk A dan C tinggi tetapi B rendah: ini tidak masuk akal untuk nilai-nilai ordinal.
Saya punya satu ide untuk ini, yaitu menghitung kerugian berdasarkan membandingkan output dengan 1 0 0 untuk A, 1 1 0 untuk B, dan 1 1 1 untuk C. Ambang batas yang tepat dapat disetel nanti menggunakan pengelompokan lain (misalnya Bayesian ) tetapi ini tampaknya menangkap ide penting dari pemesanan input, tanpa menentukan skala interval tertentu.
Apa cara standar untuk memecahkan masalah ini? Apakah ada penelitian atau referensi yang menggambarkan pro dan kontra dari pendekatan yang berbeda?
sumber
Jawaban:
Tetapi beberapa orang telah berhasil menciptakan encoding yang cerdas untuk kelas ordinal Anda (lihat jawaban stackoverflow ini ). Ini semacam pengkodean satu-panas,
kelas 1 direpresentasikan sebagai [0 0 0 0 ...]
kelas 2 direpresentasikan sebagai [1 0 0 0 ...]
kelas 3 direpresentasikan sebagai [1 1 0 0 ...]
np.sum
Strategi ini menyerupai ansambel dari Frank dan Hall , dan saya pikir ini adalah publikasi pertama .
sumber