Modelo de classificação para previsão de classificação de filme

11

Sou um pouco novo na mineração de dados e estou trabalhando em um modelo de classificação para previsão de classificação de filmes.

Eu coletei conjuntos de dados do IMDB e planejo usar árvores de decisão e abordagens de vizinhos mais próximos para o meu modelo. Gostaria de saber qual ferramenta de mineração de dados disponível gratuitamente poderia fornecer a funcionalidade necessária.

K Hein
fonte

Respostas:

5

Hein,

existem muitas ferramentas e bibliotecas com a funcionalidade disponível.

Qual escolher depende se você deseja usar uma GUI para o seu trabalho ou se deseja incorporá-la em algum outro programa.

Ferramentas independentes de mineração de dados (existem outros itens como o WEKA com interface Java):

  • Rapid Miner
  • laranja
  • GUI de chocalho para R
  • KNIME

Baseado em texto:

  • GNU R

Libs:

  • Scikit para Python
  • Mahout no Hadoop

Se você conhece uma linguagem de programação o suficiente, eu usaria uma lib para essa linguagem ou tentaria R. Caso contrário, você pode tentar uma das ferramentas com GUI.

Um exemplo de árvore em R:

# we are using the iris dataset
data(iris)

# for our tree based model we use the rpart package
# to download it type install.packages("rpart")
library(rpart)

# Building the tree
fit <- rpart(Species ~ Petal.Length + Petal.Width, method="class", data=iris)

# Plot the tree
plot(fit)
text(fit)

Conforme sugerido, a análise com R exige que você se codifique, mas você encontrará um pacote para a maioria das tarefas de classificação que funcionarão imediatamente. Uma visão geral pode ser encontrada aqui Machine Learning Task Ver

Para começar com o RapidMinder, você deve dar uma olhada no Youtube. Existem alguns screencasts, mesmo para árvores de decisão.

audijenz
fonte
1
Eu gostaria de votar novamente, mas você é novo, por isso: basta listar um conjunto de ferramentas (uma resposta bastante genérica) sem demonstrar por que é adequado para a tarefa específica do OP. Sugiro fornecer mais detalhes, caso contrário, sua resposta poderá ser substituída por stats.stackexchange.com/questions/2007/… . Sem ofensa, por favor, tome isso como um conselho de amigo :)
Steffen
@steffen: respeitosamente, o recebimento do audijenz de 4 votos a favor e 0 voto negativo diz o contrário. Acredito que ele tenha respondido bem à pergunta. Ele perguntou "qual ferramenta de mineração de dados disponível gratuitamente poderia fornecer as funcionalidades necessárias", e a resposta deu isso e muito mais. Muito mais, na verdade, do que qualquer uma das respostas no tópico que você vinculou.
Rolando2
1
@ rolando2 Adicionei o comentário ANTES do audijenz editá-lo e já voto a resposta editada;).
Steffen
@steffen: Estou corrigido!
Rolando2
5

Weka é um conjunto de ferramentas de aprendizado de máquina gratuito e de código aberto. Eles têm uma GUI e uma API para chamar do seu código Java, se desejar.

Eles têm muitos algoritmos de classificação, incluindo vários algoritmos de árvore de decisão. Eles estão disponíveis na interface do usuário. Os vizinhos mais próximos são um pouco mais complicados e parece que você precisa usar a API diretamente .

Acho que o Rapid Miner provavelmente suporta esse tipo de coisa, mas não o usei para esses propósitos antes.

Você também pode considerar R , mas isso pode exigir que as mãos fiquem um pouco mais sujas.

Observe que a Netflix fez um monte de trabalho na classificação de classificação de filmes. Há vários anos, eles ofereceram um prêmio de US $ 1 milhão ao grupo que melhor poderia melhorar sua classificação. Você pode estar interessado em ler como várias equipes abordaram esse problema.

Michael McGowan
fonte
Obrigado Michael, tentei o Weka para algoritmos de árvore de decisão, mas descobri que os valores numéricos não são suportados para a maioria dos algoritmos da árvore de decisão. Nos meus conjuntos de dados, tenho valores numéricos, como classificação (o rótulo da classe), orçamento, ID do diretor, ID do ator, etc. Então, como eu poderia lidar com esses valores numéricos? (Não tenho certeza se devo abrir um novo tópico para minha pergunta). Você tem alguma sugestão sobre outro algoritmo adequado?
K # ​​Hein
2
@K Hein 1) Sugiro usar florestas aleatórias (RF) em vez de DTs. Veja, por exemplo, stats.stackexchange.com/questions/10001/… . 2) variáveis ​​numéricas: o RF pode lidar com etiquetas numéricas e discretas; você deve tentar as duas abordagens; director_id, actor_id não é uma característica numérica, é um booleano (ator participou?) ou um nominal (ator principal); o orçamento pode ser discretizado ou deixar a RF lidar com eles. Nesse caso, o algoritmo procura o ponto de divisão ideal. Sugiro brincar e voltar mais tarde com perguntas mais específicas;).
Steffen
@steffen Obrigado Steffen! Vou tentar o RF, mas ainda tenho algumas perguntas sobre o seu comentário. Digamos que, se eu quiser pegar o actor_id como booleano, então, para cada actor_id exclusivo, tenho um atributo booleano como isActor1Particated (digamos, actor_id = 1)? Se eu gostaria de mudar o actor_id para o atributo nominal, como devo proceder? Ficaria muito grato se você pudesse fornecer algumas descrições, pois sou realmente novo na área de mineração de dados.
K Hein
1
@KEin Minha idéia por trás da sugestão nominal era restringir os atores aos mais importantes, criando recursos como first_actor, second_actor etc. De qualquer forma: como lidar com informações de tamanho variável (atores, diretores, palavras-chave etc.) é um tópico para uma pergunta separada.
Steffen
@KHein Quando você faz a pergunta "Como lidar com informações de tamanho variável", faça um link para ela aqui :-)
Darren Cook
1

Pode ser ... WEKA? http://www.cs.waikato.ac.nz/ml/weka/

Orsino
fonte
1
(-1): Embora Weka seja de fato uma ferramenta de mineração de dados que realmente contém uma implementação de NN e DT, a resposta é tão genérica que poderia ser uma resposta a uma tonelada de perguntas. Se você acha que Weka é adequado para a tarefa especial de previsão de classificação, com dados esparsos extremamente altos, por que você não mostra um exemplo (ou um link para um exemplo). Sem ofensa, por favor, tome isso como uma sugestão amigável.
22611 steffen