2009-12-04 14 views
19

Ich bin auf der Suche nach einem einfachen Vorschlag Algorithmus in meiner Web App zu implementieren. Ähnlich wie Netflix, Amazon, etc ... Aber einfacher. Ich brauche keine Teams von Doktoranden, die daran arbeiten, einen besseren Vorschlagswert zu bekommen.Einfacher Vorschlag/Empfehlung Algorithmus

Also sage ich:

  • User1 Object1 mag.
  • User2 mag Objekt1 und Objekt2.

Ich möchte Benutzer1 vorschlagen, dass sie auch Object2 mögen könnten.

Ich kann natürlich etwas naiv finden. Ich bin auf der Suche nach etwas überprüft und leicht implementiert.

Antwort

1

Sie möchten vielleicht Association rule learning und Apriori algorithm betrachten. Der Grundgedanke dahinter ist, dass Sie Regeln wie "ob Benutzer wie Objekt1, dann Benutzer mag Objekt2" erstellen und überprüfen, wie gut sie (Ihre) Realität beschreiben. In Ihrem konkreten Beispiel hätte diese Regel eine Unterstützung von 2 (wie zwei Benutzer wie Objekt1) und eine Sicherheit von 50% (wie die Regel in 1 von 2 Fällen zutrifft). Ich habe gerade einen grundlegenden Proof of Concept selbst implementiert (eigentlich meine ersten Schritte auf Hadoop) und es ist nicht allzu schwierig, dies zu tun.

Alternativ können Sie auch Apache Mahout - Taste betrachten. Ich habe es aber nie selbst benutzt.

11

versuchen Sie einen Slope One Algorithmus, es ist einer der am häufigsten verwendeten für diese Art von Problem.

here's eine Beispielimplementierung in T-SQL

+1

+1 für den Link zum Quellcode. Hier ist Slope One in 40 Zeilen von Python (und eine detaillierte Erklärung): http://www.serpentine.com/blog/2006/12/12/collaborative-filtering-made-easy/ –

1

ich mit K nächsten Nachbarn gehen würde. Die wikipedia entry erklärt es gut und hat Links zu Referenzimplementierungen.

0

k-nearest-Nachbar-Algorithmus

0

Ich habe einen vorgeschlagenen Artikel Algorithmus, die Schlüsselwörter verwendet (im Gegensatz zu „Produktkäufe“) Korrelation zu bestimmen. Es braucht ein Schlüsselwort und führt alle anderen Artikel durch, in denen dieses Schlüsselwort vorkommt, und erzeugt Ergebnisse, basierend darauf, welche Artikel die meisten übereinstimmenden Schlüsselwörter haben.

Neben der offensichtlichen Notwendigkeit, solche Informationen zwischenzuspeichern, ist etwas falsch mit ihm, das eine ähnliche Methode verwendet?