Mam następujący problem:
- Mamy zestaw N osób
- Mamy zestaw zdjęć K
- Każda osoba ocenia pewną liczbę zdjęć. Osoba może polubić lub nie obraz (są to jedyne dwie możliwości). - Problem polega na tym, jak obliczyć prawdopodobieństwo, że dana osoba lubi określony obraz.
Podam przykład przedstawiający moją intuicję.
N = 4
K = 5
+ oznacza, że dana osoba lubi obraz
- oznacza, że dana osoba nie lubi obrazu
0 oznacza, że dana osoba nie została zapytana o obraz, a tę wartość należy przewidzieć
x 1 2 3 4 5
1 + - 0 0 +
2 + - + 0 +
3 - - + + 0
4 - 0 - - -
Osoba 1 prawdopodobnie polubi obraz 3, ponieważ osoba 2 ma podobne preferencje, a osoba 2 lubi obraz 3.
Osoba 4 prawdopodobnie nie polubi obrazu 2, ponieważ nikt inny jej nie lubi, a ponadto osoba 4 nie lubi większości obrazów.
Czy jest jakaś dobrze znana metoda, którą można zastosować do obliczenia takiego prawdopodobieństwa?
źródło
Odpowiedzi:
Uważam, że jest to standardowy problem filtrowania grupowego . Wyszukiwarka Google daje tysiące wyników.
źródło
To wygląda na dobry problem w uczeniu maszynowym, więc skoncentruję się na tej grupie metod.
Pierwszym i najbardziej oczywistym pomysłem jest algorytm kNN. Tam najpierw obliczyć podobieństwo między widzami, a następnie przewidzieć brakujące głosy ze średnim głosowaniem na to zdjęcie oddanym przez podobnych użytkowników. Aby uzyskać szczegółowe informacje, patrz Wikipedia .
Innym pomysłem jest hodowanie losowych lasów bez nadzoru na tych danych (tak czy inaczej, z atrybutami na obrazach lub ludziach, cokolwiek jest lepsze) i przypisywanie brakujących danych na podstawie struktury lasu; cała metoda jest zaimplementowana i opisana w
randomForest
pakiecie R. PoszukajrfImpute
funkcji.Na koniec możesz przekształcić problem w proste zadanie klasyfikacji, powiedzmy zrobić obiekt każdego zera w macierzy i spróbować wymyślić jakieś rozsądne deskryptory (takie jak średni głos widza, średni głos obrazu, głosowanie najbardziej, drugie miejsce,… , podobna przeglądarka, to samo z obrazem, być może niektóre dane zewnętrzne (średni odcień obrazu, wiek wyborcy itp.). Następnie wypróbuj różne klasyfikatory tych danych (SVM, RF, NB, ...).
Istnieją również bardziej złożone możliwości; w celu omówienia możesz poszukać rozwiązania nagrody Netflix (które było podobnym problemem).
źródło