Algorytm uczenia maszynowego do rankingu

10

Mam zestaw elementów które mogę opisać według cech. A zatem:Xn

xja:{doja1,doja2),,dojan}xjaX

gdzie to (numeryczna) ocena dla elementu zgodnie z cechami . Moje elementy można więc oglądać jako punkty w przestrzeni n- wymiarowej.dojajotjajotn

Zgodnie z moimi odczytami istnieją algorytmy, takie jak „klasyfikator Bayesa”, które mogą zapewnić odpowiedź typu „tak” lub „nie” na dowolnym elemencie mojego zestawu, pod warunkiem, że użyłem „zestawu szkoleniowego” składającego się z elementy mojego zestawu i oczekiwany wynik algorytmu. Na podstawie tych danych algorytm powinien być w stanie przyjąć dowolny inny element, nie będący częścią zestawu treningowego, i zapewnić odpowiedź „tak” lub „nie” w oparciu o to, czego się nauczył dzięki zestawowi treningowemu. Jest to świetne, jeśli masz jakieś wyobrażenie o tym, czego się spodziewasz (zestaw treningowy), ale nie masz pewności co do konkretnych zasad, które dają taki wynik.

To, co chciałbym zrobić z moimi danymi, nie polega na odpowiedzi typu „tak” lub „nie”, ale chciałbym wprowadzić ranking w ramach elementów. Niektóre z nich są „lepsze” niż inne. Podobnie jak w przypadku filtra Bayesa, mam ogólny pogląd na to, czego oczekuję. Mógłbym zatem wygenerować „ranking treningowy” zaczerpnięty z podzbioru moich elementów, który zasiliłbym MLA. Na podstawie tego szkolenia byłby w stanie ocenić cały mój zestaw.

W tym celu widzę dwa podejścia:

  1. Każdy element otrzyma ocenę MLA, a następnie uszereguje elementy zgodnie z wynikiem.
  2. MLA byłby w stanie wziąć dwa elementy xja i xjot i ustalić, który z nich jest lepszy (porównania parami). Użyj quicksort, używając tej operacji porównania.

Uwaga: na podstawie wyniku funkcja parowania jest łatwa do zaimplementowania, a na podstawie funkcji parowania generowanie wyniku jest trywialne, więc są to tylko dwa sposoby uzyskania takich samych wyników.

Czy istnieją przykłady MLA, które mogą zapewnić funkcję oceniania lub funkcję porównania parami?

EDYCJA: Aby dodać więcej kontekstu: obecnie moje elementy są uszeregowane według algorytmu, który generuje wynik (liczbę rzeczywistą) dla każdego elementu, wykonując obliczenia na . Chociaż generowany ranking jest całkiem poprawny, często muszę zmodyfikować algorytm, aby go w jakiś sposób ulepszyć, ponieważ wyraźnie widzę niektóre elementy, które nie są uszeregowane zgodnie z oczekiwaniami.dojajot

Obecnie mój proces projektowania to:

  1. Dowiedz się, jaki byłby idealny ranking
  2. Spróbuj (ręcznie) uzyskać algorytm, który uszereguje takie pozycje
  3. Obserwuj wyniki
  4. Dostosuj algorytm

Pomyślałem więc o MLA, ponieważ punktem wyjścia mojego procesu jest to, co można wykorzystać jako dane szkoleniowe. Prawdopodobnie zacznę od zajęcia obecnej rangi, zamiany przedmiotów zgodnie z moimi potrzebami i nakarmienia tego.

chl
źródło

Odpowiedzi:

3

Wiele algorytmów klasyfikacji już robi dokładnie to, czego szukasz, ale często przedstawia swoje odpowiedzi użytkownikom w formie binarnej (lub n-kierunkowej) oceny. Na przykład SVMLight jest implementacją algorytmu klasyfikacji maszyny wektora pomocniczego; ludzie często używają tego do dokonywania binarnych ocen niektórych zestawów danych. Jednak pod maską algorytmu przypisuje się podpisane oceny zaufania do danych. Są one powiązane między -1,0 a 1,0 i są tym, czego powinieneś użyć do uszeregowania swoich danych!

Kyle.
źródło
2

Wydaje się, że można użyć analizy regresji . Prawdopodobnie musisz przypisać wyniki (liczby rzeczywiste) do elementów zestawu treningowego, jeśli ich nie masz. Chociaż możesz po prostu użyć rangi jako wartości docelowej, sprawi, że otrzymasz zły model, jeśli masz tylko mały zestaw próbek treningowych.

Peter H.
źródło
0

Myślę, że zbyt wiele oczekujesz od algorytmów uczenia maszynowego. Komputer sam nie może zdecydować, czy pozycja 1 jest lepsza niż pozycja 2. Algorytm uczenia maszynowego może zrobić, jeśli podasz kilka przykładów, w których oceniłeś, że jakiś przedmiot 1 jest lepszy od przedmiotu 2, to może nauczyć się klasyfikować przedmioty [1]. Ale nadal potrzebujesz danych treningowych, w których podajesz przykłady przedmiotów oraz informacje, czy pozycja 1 jest większa niż pozycja 2 dla wszystkich pozycji w danych treningowych.

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

TenaliRaman
źródło
Dziękuję bardzo za link. I całkowicie rozumiem, że będę musiał dostarczyć zestaw algorytmów do szkolenia, aby mógł klasyfikować kolejne elementy.