Frage

Ich denke, eine App zu schreiben, Filme in einem HTPC auf das, was die Familienmitglieder mögen.

zu klassifizieren

Ich weiß nicht, Statistiken oder AI, aber das Zeug hier sieht sehr saftig. Ich weiß nicht, wo ich anfangen sollen zu tun.

Hier ist, was ich erreichen will:

  1. Erstellen Sie eine Reihe von Proben von jedem Benutzer mag, Rating jede Probe Attribut getrennt. Zum Beispiel, vielleicht ein Benutzer mag westliche Filme viel, so das Western-Genre wäre ein bisschen mehr Gewicht für den Benutzer (und so weiter für andere Attribute, wie Schauspieler, Regisseur, usw.) tragen.

  2. Ein Benutzer kann Vorschläge erhalten auf Größen wie die anderen Benutzer basiert. Zum Beispiel, wenn beiden Benutzer A und B wie Spielberg (Verbindung zwischen den Benutzern), und Benutzer B lieben Batman Begins, aber Benutzer A verabscheut Katie Holmes, wiegt den Film für den Benutzer A entsprechend (wieder Attribut jeweils separat, zum Beispiel, vielleicht Benutzer A nicht wie Actionfilme so viel, so die Bewertung bringt ein wenig nach unten, und da Katie Holmes nicht der Hauptstern ist, nehmen Sie nicht, dass in Betracht, so viel wie die anderen Attribute).

Grundsätzlich Sätze von Benutzer A ähnlich wie Sätze von Benutzer B, und kommen mit einem Rating für den Benutzer A verglichen werden.

Ich habe eine grobe Vorstellung davon, wie diese zu implementieren, aber ich bin sicher, einig hellen Köpfe bereits von einer weitaus besseren Lösung gedacht haben schon so ... irgendwelche Vorschläge?

Eigentlich nach einer schnellen Forschung, scheint es ein Bayes-Filter funktionieren würden. Wenn ja, wäre dies der bessere Ansatz sein? Wäre es so einfach sein nur „Normalisierung“ Filmdaten für jeden Benutzer einen Klassifikator trainiert, und dann einfach jeden Film klassifizieren?

Wenn Ihr Vorschlag einig Gehirne Schmelz Konzepte beinhaltet (ich bin nicht in diesen Fächern erfahren, speziell in AI), würde ich es begrüßen, wenn Sie auch eine Liste mit einigen Grundlagen enthalten für mich vor dem Tauchen in die fleischigen Sachen zu erforschen .

Danke!

War es hilfreich?

Lösung

Es gibt ein paar Algorithmen, die für diese gut sind:

ARTMAP-: Gruppen über Wahrscheinlichkeit gegeneinander (dies ist nicht schnell, aber es ist das Beste, was für Ihr Problem IMO)

ARTMAP hält eine Gruppe von gemeinsamen Eigenschaften und bestimmt likelyhood von simliarity über einen Prozentsatz. ARTMAP-

KMeans: Diese trennt die Vektoren durch den Abstand heraus, dass sie voneinander entfernt sind KMeans: Wikipedia

PCA: der Durchschnitt aller Werte aus den varing Bits trennen. Dies ist, was würden Sie die Gesichtserkennung zu tun, verwenden und Untergrundsubtraktion in Computer Vision. PCA

Andere Tipps

Dies ist ähnlich href="https://stackoverflow.com/questions/1512624/building-a-collaborative-filtering-recommendation-system/1512697#1512697"> diese Frage wo die OP zum

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

und für eine Unrated-Film X:

10    20     2009   drama   ?

wollen wir eine Bewertung prognostizieren. Dadurch für alle unsichtbaren Filme dann von vorhergesagter Filmbewertung sortieren und die Top-10 gibt Ihnen ein Empfehlungssystem ausgegeben wird.

Der einfachste Ansatz ist die Verwendung eines k-nearest-neighbor Algorithmus. Unter den bewerteten Filme, die Suche nach den „nächsten“ diejenigen Film X, und ihre Ratings kombinieren, um eine Vorhersage zu erzeugen. Dieser Ansatz hat den Vorteil, sehr einfach zu sein, um einfach von Grund auf neu zu implementieren.

Andere anspruchsvollere Ansätze existieren. Zum Beispiel können Sie ein Entscheidungsbaum , paßt eine Reihe von Regeln auf den Trainingsdaten aufzubauen. //en.wikipedia: Sie können auch Bayes-Netzwerke , künstliche neuronale Netze , -Vektor-Maschinen unterstützen , unter vielen anderen ... Wenn man durch jede dieser wird nicht einfach sein für jemanden ohne den richtigen Hintergrund. Dennoch erwarte ich, dass Sie ein externes Tool / Bibliothek wäre. Jetzt scheinen Sie mit Bayesian Networks vertraut zu sein, so dass eine einfache naive Bayes-Netz, könnte in der Tat sehr mächtig. Ein Vorteil ist, dass es für die Vorhersage erlauben, unter fehlenden Daten.

Die Idee wäre etwas gleich; nehmen Sie die Eingabedaten, die Sie haben, trainieren, ein Modell, dann verwenden Sie die Klasse von neuen Instanzen zu prognostizieren.

Wenn Sie mit verschiedenen Algorithmen in einfache, intuitive Paket spielen, um möchten, welche keine Programmierung erfordert, empfehle ich Ihnen einen Blick auf Weka (meine erste Wahl), orange oder Rapidminer. Der schwierigste Teil wäre den Datensatz in das gewünschte Format vorzubereiten. Der Rest ist so einfach wie das, was Algorithmus wählen und es anwenden (alle in ein paar Klicks!)

ich für jemanden denke, nicht zu sehr ins Detail zu gehen suchen, ich mit der nächsten Nachbar-Methode gehen würde empfehlen, da es intuitiv und einfach zu implementieren .. Immer noch die Möglichkeit, mit Weka (oder eines der anderen Tool) ist diskussionswürdig.

Der K-Nächster-Nachbar-Algorithmus kann bis Ihre Gasse sein.

Überprüfen Sie einen Teil der Arbeit der Top-Teams für die netflix Preis

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top