Algoritma pembelajaran mesin untuk peringkat

10

Aku punya satu set unsur yang saya bisa menggambarkan sesuai dengan karakteristik. Jadi:nXn

xi:{ci1,ci2,,cin}xiX

di mana adalah evaluasi (numerik) untuk elemen sesuai dengan karakteristik . Jadi elemen saya dapat dilihat sebagai titik dalam ruang dimensi. i j ncijijn

Menurut bacaan saya, ada algoritma seperti "Bayes Classifier" yang dapat memberi saya jenis jawaban "ya" atau "tidak" pada elemen set apa pun, asalkan saya memang menggunakan "set pelatihan" yang terdiri dari beberapa elemen set saya, dan hasil yang diharapkan dari algoritma. Berdasarkan data itu, algoritma harus dapat mengambil elemen lain, bukan bagian dari set pelatihan, dan memberikan jawaban "ya" atau "tidak" berdasarkan apa yang dipelajarinya berkat set pelatihan. Ini bagus jika Anda memiliki semacam gagasan tentang apa yang Anda harapkan (set pelatihan) tetapi Anda tidak yakin dengan aturan khusus yang menghasilkan hasil itu.

Apa yang ingin saya lakukan dengan data saya bukanlah mendapatkan jawaban "ya" atau "tidak", tetapi saya ingin memperkenalkan peringkat dalam elemen-elemen tersebut. Beberapa dari mereka "lebih baik" dari yang lain. Sama seperti untuk filter Bayes, saya telah mendapat ide umum tentang apa yang saya harapkan. Dengan demikian saya bisa menghasilkan "peringkat pelatihan" yang diambil dari subset elemen saya, yang akan saya masukkan ke dalam MLA. Berdasarkan pelatihan itu akan bisa peringkat seluruh set saya.

Untuk melakukan itu saya melihat dua pendekatan:

  1. Setiap elemen akan diberi skor oleh MLA, lalu memberi peringkat elemen sesuai dengan skor.
  2. MLA akan dapat mengambil dua elemen dan dan menentukan mana yang lebih baik (perbandingan berpasangan). Gunakan quicksort menggunakan operasi perbandingan itu.x jxixj

Catatan: berdasarkan skor, fungsi berpasangan adalah sepele untuk diterapkan, dan berdasarkan pada fungsi berpasangan, sepele untuk menghasilkan skor, jadi ini hanya dua pendekatan untuk menghasilkan hasil yang sama.

Apakah ada contoh MLA di luar sana yang dapat menyediakan fungsi penilaian, atau fungsi perbandingan berpasangan?

EDIT: Untuk menambahkan lebih banyak konteks: saat ini item saya diurutkan berdasarkan algoritma yang menghasilkan skor (angka real) setiap item dengan membuat perhitungan pada . Meskipun peringkat yang dihasilkan cukup benar, saya sering harus memodifikasi algoritme untuk menyesuaikannya dengan beberapa cara karena saya dapat dengan jelas melihat beberapa item yang tidak diperingkat menurut apa yang saya harapkan.cij

Jadi saat ini proses desain saya adalah:

  1. Dapatkan ide tentang peringkat yang sempurna
  2. Cobalah untuk (secara manual) mendapatkan algoritma yang akan memberi peringkat item seperti itu
  3. Amati hasilnya
  4. Sesuaikan algoritma

Jadi saya berpikir tentang MLA karena titik awal proses saya adalah apa yang bisa digunakan sebagai data pelatihan. Saya mungkin akan mulai dengan mengambil peringkat saat ini, menukar item sesuai dengan kebutuhan saya dan memberi makan itu.

chl
sumber

Jawaban:

3

Banyak algoritma klasifikasi sudah melakukan persis apa yang Anda cari, tetapi sering menyajikan jawaban mereka kepada pengguna dalam bentuk penilaian biner (atau n-arah). Sebagai contoh, SVMLight adalah implementasi dari algoritma klasifikasi mesin vektor dukungan; orang biasanya menggunakan ini untuk membuat penilaian biner pada beberapa kumpulan data. Apa yang terjadi di bawah tenda, bagaimanapun, adalah algoritma ini memberikan penilaian kepercayaan yang ditandatangani untuk data. Ini terikat antara -1.0 dan 1.0 dan apa yang harus Anda gunakan untuk memberi peringkat data Anda!

Kyle.
sumber
2

Tampaknya Anda dapat menggunakan analisis regresi . Juga, mungkin Anda perlu menetapkan skor (bilangan real) ke elemen-elemen dalam set pelatihan Anda, jika Anda tidak memilikinya. Meskipun Anda hanya bisa menggunakan peringkat sebagai nilai target Anda, itu akan membuat Anda mendapatkan model yang buruk jika Anda hanya memiliki satu set sampel pelatihan kecil.

Peter H
sumber
0

Saya pikir Anda mengharapkan terlalu banyak dari algoritma pembelajaran mesin. Komputer tidak dapat memutuskan apakah item 1 lebih baik daripada item 2 sendiri. Algoritma Pembelajaran Mesin dapat lakukan adalah jika Anda memberikan beberapa contoh di mana Anda menilai beberapa item 1 lebih baik dari item 2, maka ia dapat belajar untuk memberi peringkat pada item-item [1]. Tetapi Anda masih membutuhkan data pelatihan di mana Anda memberikan contoh item dan dengan informasi apakah item 1 lebih besar dari item 2 untuk semua item dalam data pelatihan.

[1] http://www.cs.cornell.edu/people/tj/svm_light/svm_rank.html

TenaliRaman
sumber
Terima kasih banyak untuk tautannya. Dan saya benar-benar mengerti bahwa saya perlu menyediakan satu set pelatihan untuk algoritme sehingga akan dapat membuat peringkat item berikutnya.