Modelo de clasificación para predicción de calificación de películas

11

Soy un poco nuevo en la minería de datos y estoy trabajando en un modelo de clasificación para la predicción de calificación de películas.

He recopilado conjuntos de datos de IMDB, y estoy planeando usar un árbol de decisión y enfoques de vecinos más cercanos para mi modelo. Me gustaría saber qué herramienta de minería de datos disponible gratuitamente podría proporcionar la funcionalidad que requiero.

K Hein
fuente

Respuestas:

5

Hein

Hay muchas herramientas y bibliotecas con la funcionalidad disponible.

La elección depende de si desea utilizar una interfaz gráfica de usuario para su trabajo o si desea incrustarla en algún otro programa.

Herramientas de minería de datos independientes (hay ohters como WEKA con interfaz Java):

  • Minero rápido
  • naranja
  • Sonajero gui para R
  • KNIME

Basado en texto:

  • GNU R

Libs:

  • Scikit para Python
  • Mahout en Hadoop

Si conoces un lenguaje de programación lo suficientemente bien, usaría una lib para ese lenguaje o probaría R. Si no, puede probar una de las herramientas con gui.

Un ejemplo de árbol en 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)

Como se sugirió, el análisis con R requiere que usted se codifique, pero encontrará un paquete para la mayoría de las tareas de clasificación que funcionará de inmediato. Puede encontrar una descripción general aquí Vista de tareas de aprendizaje automático

Para comenzar a usar RapidMinder, debe echar un vistazo a Youtube. Hay algunos screencasts, incluso para árboles de decisión.

audijenz
fuente
1
Me gustaría votar a favor, pero usted es nuevo, por lo tanto: simplemente enumera un conjunto de herramientas (una respuesta bastante genérica) sin una demostración de por qué es adecuado para la tarea específica del OP. Sugiero proporcionar más detalles, de lo contrario, su respuesta podría ser reemplazada por stats.stackexchange.com/questions/2007/… . Sin ofender, tómalo como un consejo amistoso :)
steffen
@steffen: respetuosamente, el recibo de audijenz de 4 votos a favor y 0 votos a favor dice lo contrario. Creo que él / ella ha respondido bien la pregunta. Preguntó "qué herramienta de minería de datos disponible gratuitamente podría proporcionar las funcionalidades que requiero", y la respuesta dio eso y más. Mucho más, en realidad, que cualquiera de las respuestas en el hilo que vinculó.
rolando2
1
@ rolando2 Agregué el comentario ANTES de que audijenz lo editara y ya había votado la respuesta editada;).
steffen
@steffen: ¡Estoy corregido!
rolando2
5

Weka es un conjunto de herramientas de aprendizaje automático gratuito y de código abierto. Tienen una GUI y una API para llamar desde su código Java si lo desea.

Tienen muchos algoritmos de clasificación, incluidos varios algoritmos de árbol de decisión. Estos están disponibles en la interfaz de usuario. Los vecinos más cercanos son un poco más complicados y parece que tienes que usar la API directamente .

Creo que Rapid Miner probablemente es compatible con este tipo de cosas, pero no lo he usado para tales fines antes.

También puede considerar R , pero eso puede requerir que sus manos estén un poco más sucias.

Tenga en cuenta que Netflix ha hecho un montón de trabajo en la clasificación de clasificación de películas. Hace varios años ofrecieron un premio de $ 1 millón al grupo que podría mejorar su clasificación al máximo. Quizás le interese leer cómo varios equipos abordaron ese problema.

Michael McGowan
fuente
Gracias Michael, probé Weka para los algoritmos del árbol de decisión, pero descubrí que los valores numéricos no son compatibles con la mayoría de los algoritmos del árbol de decisión. En mis conjuntos de datos, tengo valores numéricos como la calificación (la etiqueta de la clase), el presupuesto, la identificación del director, la identificación del actor, etc. Entonces, ¿cómo podría manejar esos valores numéricos? (No estoy seguro de si debo abrir un nuevo hilo para mi pregunta). ¿Tiene alguna sugerencia sobre algún otro algoritmo adecuado?
K Hein
2
@K Hein 1) Sugiero utilizar bosques aleatorios (RF) en lugar de DT. Ver, por ejemplo, stats.stackexchange.com/questions/10001/… . 2) variables numéricas: RF puede manejar etiquetas numéricas y discretas, debe probar ambos enfoques; director_id, actor_id no es una función numérica, es booleana (¿participó el actor?) o nominal (actor principal); el presupuesto puede ser discretizado o dejar que RF los maneje. En este caso, el algoritmo busca el punto de división óptimo. Sugiero jugar y volver más tarde con preguntas más específicas;).
steffen
@steffen Gracias Steffen! Probaré con RF, pero todavía tengo algunas preguntas con respecto a tu comentario. Digamos que si quiero tomar actor_id como booleano, ¿para cada actor_id único, tengo un atributo booleano como isActor1Particated (digamos para actor_id = 1)? Si me gustaría cambiar actor_id a atributo nominal, ¿cómo debo proceder? Le estaría muy agradecido si pudiera proporcionar algunas descripciones, ya que soy realmente nuevo en el área de minería de datos.
K Hein
1
@KHein, mi idea detrás de la sugerencia nominal era restringir a los actores a los más importantes mediante la creación de características como first_actor, second_actor, etc. De todos modos: cómo tratar la información de longitud variable (actores, directores, palabras clave, etc.) es un tema para Una pregunta aparte.
steffen
@KHein Cuando hace la pregunta "Cómo tratar con información de longitud variable", por favor, haga un enlace aquí :-)
Darren Cook,
1

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

Orsino
fuente
1
(-1): Aunque Weka es de hecho una herramienta de minería de datos que contiene una implementación de NN y DT, la respuesta es tan genérica que podría responderse a un montón de preguntas. Si cree que Weka es adecuado para la tarea especial de calificar la predicción dados datos dispersos de dimensiones extremadamente altas, ¿por qué no muestra un ejemplo (o un enlace a un ejemplo)? Sin ofender, tómalo como una sugerencia amigable.
steffen