Probabilidade de alguém gostar da imagem

11

Eu tenho o seguinte problema:
- Temos um conjunto de N pessoas
- Temos um conjunto de imagens K
- Cada pessoa classifica um certo número de imagens. Uma pessoa pode gostar ou não de uma imagem (essas são as duas únicas possibilidades). - O problema é como calcular a probabilidade de uma pessoa gostar de uma imagem específica.

Vou dar um exemplo apresentando minha intuição.
N = 4
K = 5
+ significa que a pessoa gosta de imagem
- significa que a pessoa não gosta da imagem
0 significa que a pessoa não foi questionada sobre a imagem e esse valor deve ser previsto

x 1 2 3 4 5    
1 + - 0 0 +   
2 + - + 0 +  
3 - - + + 0  
4 - 0 - - -

A pessoa 1 provavelmente gostará da imagem 3 porque, a pessoa 2 tem preferências semelhantes e a pessoa 2 gosta da imagem 3. A
pessoa 4 provavelmente não gosta da imagem 2 porque ninguém mais gosta e, além disso, a pessoa 4 não gosta da maioria das imagens.

Existe algum método bem conhecido que possa ser usado para calcular essa probabilidade?

Tomek Tarczynski
fonte
Dada minha experiência limitada, não posso dar uma resposta exata. No entanto, acredito que você pode usar uma abordagem de dados em painel (porque você considera em seu exemplo variações entre indivíduos e entre indivíduos) com o logit. Talvez outros possam elaborar sobre isso ...
Teucer
Seu pequeno exemplo é muito útil, mas presumo que seu conjunto de dados real seja maior. Quanto maior, ou seja, (aproximadamente) qual o tamanho real do seu N e k ?
onestop 20/10/10
N e k podem ser enormes, mas o poder computacional não é um problema.
Tomek Tarczynski

Respostas:

6

Acredito que este seja um problema padrão da Filtragem Colaborativa . Uma pesquisa no google fornece milhares de resultados.

shabbychef
fonte
1
ou bicluster (+1).
chl
6

Isso parece ser um bom problema para o aprendizado de máquina, então vou me concentrar nesse grupo de métodos.

A primeira e a idéia mais óbvia é o algoritmo kNN. Lá, você primeiro calcula a semelhança entre os espectadores e, em seguida, prevê os votos ausentes com a média de votos nesta imagem feita por usuários semelhantes. Para detalhes, consulte a Wikipedia .

Outra idéia é cultivar floresta aleatória não supervisionada nesses dados (de qualquer maneira, com atributos em imagens ou pessoas, o que for melhor) e imputar dados ausentes com base na estrutura da floresta; todo o método é implementado e descrito no randomForestpacote R , procure por rfImputefunção.

Finalmente, você pode reestruturar o problema para uma tarefa simples de classificação, digamos, faça um objeto de cada zero na matriz e tente pensar em alguns descritores razoáveis ​​(como voto médio do espectador, voto médio da imagem, voto do maior número, segundo maior, .. visualizador semelhante, igual à imagem, possivelmente alguns dados externos (matiz média da imagem, idade do eleitor, etc.) E tente vários classificadores nesses dados (SVM, RF, NB, ...).

Existem também algumas possibilidades mais complexas; Para obter uma visão geral, você pode procurar soluções para o desafio do prêmio Netflix (que era um problema semelhante).


fonte