Pergunta

Estou pensando em escrever um aplicativo para filmes classifico em um HTPC com base no que os membros da família como.

Eu não sei estatísticas ou AI, mas o material aqui aparência muito suculenta. Eu não saberia por onde começar fazer.

Aqui está o que eu quero realizar:

  1. Compor um conjunto de amostras de cada usuário gosta, classificando cada atributo amostra separadamente. Por exemplo, talvez um usuário gosta de filmes ocidentais muito, então o gênero western iria levar um pouco mais de peso para esse usuário (e assim por diante para outros atributos, como atores, diretor, etc).

  2. Um usuário pode obter sugestões com base nos gostos de outros usuários. Por exemplo, se tanto o usuário A e B como Spielberg (conexão entre os usuários), eo usuário B ama Batman Begins, mas o usuário A detesta Katie Holmes, pesar o filme para o usuário A conformidade (de novo, cada atributo separadamente, por exemplo, talvez um usuário não gosta de filmes de ação tanto, para trazer a classificação para baixo um pouco, e desde que Katie Holmes não é a principal estrela, não levar isso em conta, tanto quanto os outros atributos).

Basicamente, comparando conjuntos de utilizador Um semelhante a conjuntos de usuário B, e chegar a uma classificação para o usuário A.

Eu tenho uma idéia bruto sobre como implementar isso, mas tenho certeza de algumas mentes brilhantes já pensou em uma solução muito melhor, e por isso ... alguma sugestão?

Na verdade, depois de uma pesquisa rápida, parece um filtro Bayesian iria funcionar. Se assim for, isso seria a melhor abordagem? Seria tão simples como apenas dados do filme "normalizando", a formação de um classificador para cada usuário, e depois é só classificar cada filme?

Se a sua sugestão inclui alguns conceitos de fusão cérebro (eu não sou experiente nestes assuntos, especialmente no AI), eu apreciaria se você também incluiu uma lista de algumas noções básicas para mim para pesquisar antes de mergulhar o material de carne .

Obrigado!

Foi útil?

Solução

Existem alguns algoritmos que são bons para isso:

ARTMAP: grupos via probabilidade contra o outro (isto não é rápido, mas a sua a melhor coisa para o seu problema IMO)

ARTMAP detém um grupo de atributos comuns e determina probabilidade de simliarity através de um percentagens. ARTMAP

kmeans: Este separa fora os vetores pela distância que eles são uns dos outros kmeans: Wikipedia

PCA: vai separar a média de todos os valores dos bits varing. Isto é o que você usaria para fazer a detecção de rosto, e subtração de fundo em Visão Computacional. PCA

Outras dicas

Este é semelhante ao esta questão onde o OP queria construir um sistema de recomendação. Em suma, estamos dado um conjunto de treinamento dados que consistem em usuários classificações de filmes (classificação 1-5 estrela por exemplo) e um conjunto de atributos para cada filme (ano, gênero, atores, ..). Queremos construir um recommender para que ele irá imprimir para filmes invisíveis uma possível classificação. Então os olhares de dados INPT como:

user movie   year   genre   ...    | rating
---------------------------------------------
  1    1     2006   action         |    5
  3    2     2008   drama          |    3.5
  ...

e por um sem classificação filme X:

10    20     2009   drama   ?

queremos prever uma classificação. Fazer isso para todos os filmes invisíveis, em seguida, classificar por classificação filme previsto e emitir o top 10 dá-lhe um sistema de recomendação.

A abordagem mais simples é usar um k-mais próximo algoritmo vizinho . Entre os filmes classificados, procurar os "mais próximos" para filme X, e combinar suas classificações para produzir uma previsão. Esta abordagem tem a vantagem de ser muito simples de implementar fácil a partir do zero.

Existem outras abordagens mais sofisticadas. Por exemplo, você pode construir um decisão árvore , instale um conjunto de regras sobre os dados de treinamento. Você também pode usar redes Bayesian , noreferrer redes neurais artificiais máquinas de vetores de suporte , entre muitos outros ... Passando por cada um deles não vai ser fácil para alguém sem o fundo adequado. Ainda eu espero que você estaria usando uma ferramenta / biblioteca externa. Agora você parece estar familiarizado com Bayesian Networks, então um simples bayes ingênuos líquidos, poderia na verdade ser muito poderosa. Uma vantagem é que permitem previsão em dados em falta.

A idéia principal seria um pouco o mesmo; ter os dados de entrada que você tem, treinar um modelo, em seguida, usá-lo para prever a classe de novos casos.

Se você quiser brincar com diferentes algoritmos no pacote simples e intuitiva que não requer programação, eu sugiro que você dê uma olhada em Weka (minha primeira escolha), Laranja ou RapidMiner . A parte mais difícil seria para preparar o conjunto de dados para o formato exigido. O resto é tão fácil como escolher o algoritmo e aplicá-lo (tudo em poucos cliques!)

Eu acho que para alguém que não olhando para entrar em muitos detalhes, eu recomendo ir com o método do vizinho mais próximo, pois é intuitivo e fácil de implementar .. Ainda a opção de usar Weka (ou uma das outras ferramentas) vale a pena olhar em.

A-mais próximo K algoritmo vizinho pode ser o seu direito beco.

Confira alguns dos trabalhos do equipas de topo para o Netflix prêmio

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top