Prawdopodobieństwo, że ktoś polubi obraz

11

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?

Tomek Tarczyński
źródło
Biorąc pod uwagę moje ograniczone doświadczenie, nie mogę udzielić dokładnej odpowiedzi. Uważam jednak, że możesz używać danych panelowych (ponieważ w twoim przykładzie rozważasz różnice między osobami i między osobami) z logit. Może inni mogą rozwinąć tę
kwestię
Twój mały przykład jest bardzo przydatny, ale zakładam, że twój prawdziwy zestaw danych jest większy. O ile większe, tj. (Z grubsza) jak duże są twoje prawdziwe N i k ?
onestop
N i k mogą być ogromne, ale moc obliczeniowa nie stanowi problemu.
Tomek Tarczynski

Odpowiedzi:

6

Uważam, że jest to standardowy problem filtrowania grupowego . Wyszukiwarka Google daje tysiące wyników.

shabbychef
źródło
1
lub biclustering (+1).
chl
6

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 randomForestpakiecie R. Poszukaj rfImputefunkcji.

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