Klassifizierungsmodell für die Vorhersage von Filmbewertungen

11

Ich bin etwas neu im Data Mining und arbeite an einem Klassifizierungsmodell für die Vorhersage von Filmbewertungen.

Ich habe Datensätze aus der IMDB gesammelt und plane, für mein Modell Entscheidungsbäume und Ansätze für den nächsten Nachbarn zu verwenden. Ich möchte wissen, welches frei verfügbare Data Mining-Tool die von mir benötigte Funktionalität bieten kann.

K Hein
quelle

Antworten:

5

Hein,

Es gibt viele Tools und Bibliotheken mit der verfügbaren Funktionalität.

Welche Sie wählen müssen, hängt davon ab, ob Sie eine GUI für Ihre Arbeit verwenden möchten oder ob Sie sie in ein anderes Programm einbetten möchten.

Standalone-Data-Mining-Tools (es gibt andere wie WEKA mit Java-Schnittstelle):

  • Rapid Miner
  • Orange
  • Rassel Gui für R.
  • KNIME

Textbasiert:

  • GNU R.

Bibliotheken:

  • Scikit für Python
  • Mahout auf Hadoop

Wenn Sie eine Programmiersprache gut genug kennen, würde ich eine Bibliothek für diese Sprache verwenden oder R ausprobieren. Wenn nicht, können Sie eines der Tools mit GUI ausprobieren.

Ein Baumbeispiel in 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)

Wie vorgeschlagen, müssen Sie sich bei der Analyse mit R selbst codieren. Für die meisten Klassifizierungsaufgaben finden Sie jedoch ein Paket, das sofort funktioniert. Eine Übersicht finden Sie hier Machine Learning Task View

Um mit RapidMinder zu beginnen, sollten Sie sich Youtube ansehen. Es gibt einige Screencasts, auch für Entscheidungsbäume.

audijenz
quelle
1
Ich würde gerne abstimmen, aber Sie sind neu, also: Sie listen einfach eine Reihe von Tools auf (eine eher allgemeine Antwort), ohne zu demonstrieren, warum sie für die spezifische Aufgabe des OP geeignet sind. Ich schlage vor, weitere Details anzugeben , andernfalls könnte Ihre Antwort durch stats.stackexchange.com/questions/2007/… ersetzt werden . Nichts für ungut, bitte nehmen Sie es als freundlichen Rat :)
steffen
@steffen: respektvoll sagt audijenz 'empfang von 4 upvotes und 0 downvotes etwas anderes. Ich glaube, er hat die Frage gut beantwortet. Es wurde gefragt, "welches frei verfügbare Data Mining-Tool die von mir benötigten Funktionen bereitstellen könnte", und die Antwort gab dies und mehr. Viel mehr als jede der Antworten in dem Thread, den Sie verlinkt haben.
Rolando2
1
@ rolando2 Ich habe den Kommentar hinzugefügt, BEVOR audijenz ihn bearbeitet hat und ich habe die bearbeitete Antwort bereits positiv bewertet;).
steffen
@steffen: Ich stehe korrigiert!
Rolando2
5

Weka ist eine kostenlose Open-Source-Suite für maschinelles Lernen. Sie haben eine GUI sowie eine API, die Sie von Ihrem Java-Code aus aufrufen können, wenn Sie möchten.

Sie haben viele Klassifizierungsalgorithmen, einschließlich mehrerer Entscheidungsbaumalgorithmen. Diese sind in der Benutzeroberfläche verfügbar. Die nächsten Nachbarn sind etwas kniffliger und es scheint, dass Sie die API direkt verwenden müssen .

Ich denke, Rapid Miner unterstützt diese Art von Dingen wahrscheinlich, aber ich habe sie noch nie für solche Zwecke verwendet.

Sie könnten auch R in Betracht ziehen , aber das könnte erfordern, dass Ihre Hände etwas schmutziger werden.

Beachten Sie, dass Netflix eine Menge Arbeit bei der Klassifizierung von Filmbewertungen geleistet hat. Vor einigen Jahren haben sie der Gruppe einen Preis in Höhe von 1 Million US-Dollar angeboten , der ihre Klassifizierung am meisten verbessern könnte. Vielleicht möchten Sie lesen, wie verschiedene Teams dieses Problem angegangen sind.

Michael McGowan
quelle
Danke Michael, ich habe Weka für Entscheidungsbaumalgorithmen ausprobiert, aber ich habe festgestellt, dass numerische Werte für die meisten Entscheidungsbaumalgorithmen nicht unterstützt werden. In meinen Datensätzen sind numerische Werte wie Bewertung (Klassenbezeichnung), Budget, Regie-ID, Schauspieler-ID usw. enthalten. Wie kann ich mit diesen numerischen Werten umgehen? (Ich bin nicht sicher, ob ich einen neuen Thread für meine Frage öffnen soll). Haben Sie Vorschläge für einen anderen geeigneten Algorithmus?
K Hein
2
@K Hein 1) Ich schlage vor, Random Forests (RF) anstelle von DTs zu verwenden. Siehe z . B. stats.stackexchange.com/questions/10001/… . 2) numerische Variablen: RF kann sowohl numerische als auch diskrete Beschriftungen verarbeiten. Sie sollten beide Ansätze ausprobieren. Director_ID, Actor_ID ist kein numerisches Merkmal, sondern entweder ein Boolescher Wert (Schauspieler hat teilgenommen?) oder ein Nominalwert (Hauptdarsteller). Das Budget kann diskretisiert werden oder von RF verwaltet werden. In diesem Fall sucht der Algorithmus nach dem optimalen Teilungspunkt. Ich schlage vor, herumzuspielen und später mit spezifischeren Fragen zurückzukommen;).
steffen
@steffen Danke Steffen! Ich werde es mit RF versuchen, aber ich habe noch ein paar Fragen zu Ihrem Kommentar. Nehmen wir an, ich möchte für jede eindeutige Schauspieler-ID ein boolesches Attribut wie isActor1Particated haben (z. B. für Schauspieler-ID = 1). Wie soll ich vorgehen, wenn ich driver_id in nominales Attribut ändern möchte? Ich wäre Ihnen sehr dankbar, wenn Sie uns einige Beschreibungen geben könnten, da ich im Data Mining-Bereich wirklich neu bin.
K Hein
1
@KHein meine Idee hinter dem nominalen Vorschlag war, die Schauspieler auf die wichtigsten zu beschränken, indem Features wie first_actor, second_actor usw. erstellt wurden. Wie auch immer: Wie man mit Informationen variabler Länge umgeht (Schauspieler, Regisseure, Schlüsselwörter usw.), ist ein Thema für eine separate Frage.
steffen
@KHein Wenn Sie die Frage "Wie man mit Informationen variabler Länge umgeht" stellen, verlinken Sie bitte hier :-)
Darren Cook
1

Kann sein ... WEKA? http://www.cs.waikato.ac.nz/ml/weka/

Orsino
quelle
1
(-1): Obwohl Weka in der Tat ein Data Mining-Tool ist, das tatsächlich eine Implementierung von NN und DT enthält, ist die Antwort so allgemein, dass sie eine Menge Fragen beantworten kann. Wenn Sie der Meinung sind, dass Weka für die spezielle Aufgabe der Bewertungsvorhersage bei extrem hochdimensionalen, spärlichen Daten geeignet ist, zeigen Sie nicht ein Beispiel (oder einen Link zu einem Beispiel). Nichts für ungut, bitte nehmen Sie es als freundlichen Vorschlag.
steffen