Ich habe folgendes Problem:
- Wir haben eine Gruppe von N Personen
- Wir haben eine Gruppe von K Bildern
- Jede Person bewertet eine bestimmte Anzahl von Bildern. Eine Person könnte ein Bild mögen oder nicht (dies sind die einzigen zwei Möglichkeiten). - Das Problem ist, wie man die Wahrscheinlichkeit berechnet, dass eine Person ein bestimmtes Bild mag.
Ich werde ein Beispiel geben, das meine Intuition darstellt.
N = 4
K = 5
+ bedeutet, dass die Person das Bild mag
- bedeutet, dass die Person das Bild nicht mag
0 bedeutet, dass die Person nicht nach dem Bild gefragt wurde und dieser Wert vorhergesagt werden sollte
x 1 2 3 4 5
1 + - 0 0 +
2 + - + 0 +
3 - - + + 0
4 - 0 - - -
Person 1 wird wahrscheinlich Bild 3 mögen, weil Person 2 ähnliche Vorlieben hat und Person 2 Bild 3 mag.
Person 4 wird Bild 2 wahrscheinlich nicht mögen, weil es niemand anderem gefällt und außerdem Person 4 die meisten Bilder nicht mag.
Gibt es eine bekannte Methode, mit der diese Wahrscheinlichkeit berechnet werden kann?
quelle
Antworten:
Ich glaube, dies ist ein Standardproblem der kollaborativen Filterung . Eine Google-Suche liefert Tausende von Ergebnissen.
quelle
Dies scheint ein gutes Problem für das maschinelle Lernen zu sein, daher werde ich mich auf diese Gruppe von Methoden konzentrieren.
Die erste und naheliegendste Idee ist der kNN-Algorithmus. Dort berechnen Sie zuerst die Ähnlichkeit zwischen den Zuschauern und sagen dann die fehlenden Stimmen mit der durchschnittlichen Stimme für dieses von ähnlichen Benutzern abgegebene Bild voraus. Für Details siehe Wikipedia .
Eine andere Idee ist es, unbeaufsichtigte zufällige Wälder auf diesen Daten aufzubauen (so oder so, mit Attributen in Bildern oder Personen, was auch immer besser ist) und fehlende Daten basierend auf der Waldstruktur zu unterstellen. Die gesamte Methode ist implementiert und im R-
randomForest
Paket beschrieben. Suchen Sie nachrfImpute
Funktionen.Schließlich können Sie das Problem in eine einfache Klassifizierungsaufgabe umstrukturieren, z. B. ein Objekt aus jeder Null in der Matrix erstellen und versuchen, einige vernünftige Deskriptoren zu finden (wie durchschnittliche Zuschauerstimme, durchschnittliche Bildstimme, Stimmenmehrheit, zweitmeisten Stimmen, .. . ähnlicher Betrachter, gleich mit Bild, möglicherweise einige externe Daten (durchschnittlicher Farbton des Bildes, Alter des Wählers usw.). Versuchen Sie dann verschiedene Klassifizierer für diese Daten (SVM, RF, NB, ...).
Es gibt auch einige komplexere Möglichkeiten; Für eine Übersicht können Sie nach Lösungen für die Netflix-Preisherausforderung suchen (was ein ähnliches Problem war).
quelle