Алгоритм машинного навчання для ранжирування


10

У мене набір елементів X яку я можу описати згідно nхарактеристики. Таким чином:

xi:{ci1,ci2,,cin}xiX

де cij є (числовою) оцінкою для елемента i за характеристиками j. Тому мої елементи можна розглядати як точки в аn розмірний простір.

Згідно з моїми показаннями, існують такі алгоритми, як "Класифікатор Байєса", який може надати мені відповідь типу "так" або "ні" на будь-який елемент мого набору, за умови, що я використовував "навчальний набір", що складається з деяких елементи мого набору та очікуваний результат алгоритму. Виходячи з цих даних, алгоритм повинен мати можливість приймати будь-який інший елемент, який не є частиною навчального набору, і надати відповідь "так" або "ні", виходячи з того, що він дізнався завдяки навчальному набору. Це чудово, якщо ви маєте якесь уявлення про те, чого очікуєте (тренувальний набір), але ви не впевнені в конкретних правилах, які дають результат.

Що я хотів би зробити зі своїми даними - це не отримати відповіді "так" чи "ні", але я хотів би ввести рейтинг у межах елементів. Деякі з них «кращі», ніж інші. Як і для фільтра Байєса, у мене є загальне уявлення про те, що я очікую. Таким чином, я міг би створити "тренувальний рейтинг", узятий з підмножини моїх елементів, що я б вдавався в MLA. На основі цього тренінгу можна було б скласти рейтинг всього мого набору.

Для цього я бачу два підходи:

  1. Кожен елемент отримав бал MLA, а потім класифікував елементи відповідно до балу.
  2. MLA зможе взяти два елементи xi і xjі визначте, який з них кращий (парне порівняння). Використовуйте quicksort, використовуючи цю операцію порівняння.

Примітка: на основі оцінки парна функція є тривіальною для реалізації, а на основі парної функції тривіально генерувати бал, тож це лише два підходи для отримання однакових результатів.

Чи є приклади MLA, які можуть забезпечити функцію оцінювання або функцію попарного порівняння?

EDIT: Для того, щоб додати більше контексту: в даний час мої елементи класифікуються за алгоритмом, який генерує бал (реальне число) для кожного предмета, роблячи обчислення на cij. Хоча згенерований рейтинг є цілком правильним, мені часто доводиться змінювати алгоритм, щоб певним чином його змінити, оскільки я чітко бачу деякі елементи, які не класифіковані відповідно до того, що я б очікував.

Тож зараз мій процес проектування:

  1. Отримайте уявлення про те, яким би був ідеальний рейтинг
  2. Спробуйте (вручну) отримати алгоритм, який би класифікував такі елементи
  3. Поспостерігайте за результатами
  4. Адаптувати алгоритм

Тож я подумав про те, з чого починався процес моменту навчання - це те, що можна використовувати в якості навчальних даних. Я б, мабуть, почав із прийняття поточного рейтингу, міняв елементи відповідно до моїх потреб і цим годував.

Відповіді:


3

Багато алгоритмів класифікації вже роблять саме те, що ви шукаєте, але часто представляють свої відповіді користувачам у вигляді двійкового (або n-способу) судження. Наприклад, SVMLight - це реалізація алгоритму класифікації машинного вектора підтримки; люди зазвичай використовують це для винесення двійкових суджень про деякий набір даних. Однак, що відбувається під кришкою, це алгоритм присвоєння даних підписаних достовірностей. Вони обмежені між -1,0 та 1,0, і це те, що ви повинні використовувати для ранжування своїх даних!


2

Здається, що ви можете використовувати регресійний аналіз . Також, напевно, вам потрібно призначити бали (реальні числа) елементам вашого навчального набору, якщо у вас їх немає. Хоча ви можете просто використовувати ранг як цільове значення, це змусить вас отримати погану модель, якщо у вас є лише невеликий набір навчальних зразків.


0

Я думаю, що ви занадто багато очікуєте від алгоритмів машинного навчання. Комп'ютер не може вирішити, чи кращий предмет 1, ніж пункт 2 самостійно. Алгоритм машинного навчання може зробити, якщо ви наведете кілька прикладів, коли ви оцінили якийсь предмет 1 кращим, ніж предмет 2, то він може навчитися ранжувати елементи [1]. Але вам все одно потрібні дані про навчання, де ви надаєте приклади предметів та інформацію про те, чи пункт 1 більший за пункт 2 для всіх елементів навчальних даних.

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


Дуже дякую за посилання. І я повністю розумію, що мені потрібно буде надати навчальний набір алгоритму, щоб він міг ранжувати наступні елементи.
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.