2016-07-28 7 views
0

Ich muss eine Menge von CSV-Dateien verarbeiten, die 3 Spalten enthält: Datum, TV-Kanal-ID, Film-ID.Analysiere abstrakte Daten

Basierend auf diesen Spalten, muss ich klassifizieren, was das Genre jedes Films und das Genre der TV-Kanal-ID ist.

Ich bin neu im Big Data Prozess und ich frage mich, wie kann ich diese Daten klassifizieren, wenn ich nur eine ID habe (ich kann nicht eine andere Quelle verwenden, um die ID zu suchen oder Zufallsdaten zu generieren, um meinen Algorithmus zu trainieren).

Die Lösung, die ich gefunden habe, ist eine Reihe von Stunden definieren und legen Sie die Filme, die innerhalb eines Genres in Reichweite sind. Beispiel:

  • Filme, die zwischen 01: 00-04: 00, Genre 1;
  • Filme, die zwischen 04: 01-06: 00, Genre 2;
  • usw.

Nach Klassifizieren Filme, kann ich die TV-Kanäle klassifizieren basierend auf Filme, die sie gespielt haben.

Und ich habe vor, es zu tun Funken mit :)

jemand eine andere Lösung oder einen Rat? Es ist ein bisschen schwer, weil diese Daten wie abstrakt aussehen.

Danke

+0

Können Sie einen Code bereitstellen, den Sie ausprobiert haben? So wie es aussieht, gibt es so viele Ansätze, dass die Frage zu weit gefasst ist, um sie zu beantworten. – wheaties

+1

Aus Ihrer Erklärung geht hervor, dass Sie immer noch die Geschäftslogik herausfinden !!! Sobald Sie die Geschäftslogik herausgefunden haben, wie Funken verwendet werden können, kann durchdacht werden. – rakesh

Antwort

1

Wenn Sie sagen: "Ich brauche das Genre des Films zu klassifizieren", tun Sie "Drama", "Comedy", "Action", oder "Genre1", "Genre2" bedeuten? Ich würde den zweiten Fall im Folgenden annehmen.

Sie ein Genre von Hand nicht abtreten - Verwenden Sie einen Cluster-Algorithmus

Erstens, ich werde nicht ein Genre zuordnen nur auf der Grundlage der Zeit, wenn der Film abgespielt wird. Generell würde ich Sie daran hindern, das Clustering von Hand durchzuführen. Denn dafür sind Clustering-Algorithmen gemacht. Diese verwenden Merkmale, um Personen zu gruppieren, die in gewisser Weise miteinander verwandt sind.

In Ihrem Fall gibt es einen kniffligen Teil: jeder Datenpunkt/Zeile ist kein Film. Ein Film könnte also in verschiedenen Clustern vorhanden sein, also verschiedene Genres haben.

Es gibt mehrere Möglichkeiten:

  • entweder ein Film Belons zu verschiedenen Genres - was ganz natürlich ist.
  • Sie können nur ein Genre basierend auf der Gruppe auswählen, in der der Film am häufigsten angezeigt wird
  • Wenn Sie sich für ein bestimmtes Genre pro Film entscheiden, können Sie sich einen Schwellenwert vorstellen: Zum Beispiel, wenn ein Film kleiner als N ist erstellen Sie mal in einer Gruppe, dann ist es nicht zu dieser Gruppe gehören

neue Features (es sei denn, es die einzigen Gruppen, es scheint ist)

Sie als viel neue Features * wie Sie entwerfen sollten kann, hilft dem Clustering al um die Daten gut zu trennen und homogene Cluster zu erzeugen.

Als ich mir vorstellen kann, was Sie tun können:

  • eine Boolesche Funktion für jeden Zeitrahmen hinzufügen Sie betrachten (0.00 bis 03.59 Uhr; 4.00 bis 6.00; .. .). Nur eines dieser Features ist eins: wenn der Film abgespielt wird. Die anderen sind null.

  • Ein Merkmal zu zählen, wie oft der Film (Men in Black wird mehr gespielt als 12 Angry Men))

  • Ein Merkmal couting wie viele Kanal-ID diesen Film gespielt haben gespielt wurde (Star Wars auf mehr Kanal als einige Bollywood-Film gespielt)

  • ...

Denken Sie an wie ein Genre in allen Kanälen dargestellt/gespielt wird und die Features entsprechend erstellt werden.

PS: * Verstehen Sie mich nicht falsch, so viele Funktionen bedeutet mehr als Ihre drei Funktionen, aber was heißt der Fluch der Dimensionalität.

+0

Sie geben einen guten Rat, aber diese Frage ist nicht wirklich passend für StackOverflow, sie ist besser für [CrossValidated] (http://stats.stackexchange.com/) geeignet. –

+0

@IgorQA Vielen Dank für tolle Ratschläge. Ich kann nur "Genre1", "Genre2" usw. haben, weil ich nur "Zufallszahlen" in meiner CSV-Datei habe. Jetzt habe ich eine (dumme) Frage, wenn Sie sagen, neue Features zu erstellen, meinen Sie, es auf meinem Clustering-Algorithmus zu erstellen? Dies ist das erste Mal, dass ich es gemacht habe, ich war in Kreisen vor deinen Ratschlägen. – placplacboom

+1

Erstellen Sie aus Ihren ersten drei Variablen $ N $ neue Funktionen wie die, die ich erwähnt habe. Führen Sie dann Ihren Clustering-Algorithmus für Ihre gesamten 3 + N-Funktionen aus –