Prof. Dr. Franz Schweiggert Abteilung Angewandte Informationsverarbeitung 10. Mai 2002
Ingo MelzerBlatt 4


Uni Logo



Software Engineering Praxis (SS 2002)


Abgabetermin 17. Mai 2002 vor den Übungen

Was mag ich denn? (20 Punkte)

Es ist spannend, das Verhalten oder die Meinung von Personen durch Vergleich mit anderen zu schätzen. Dazu benötigt man eine Datenbank mit Wertung von Personen. Es sei im Folgenden $v_{i,j}$ die Wertung des Benutzers $i$ zum Thema $j$. Ist $I_i$ die Menge aller von $i$ abgegebenen Wertungen, so ist seine mittlere Wertung $\bar{v}_i = \frac{1}{\left\vert I_i\right\vert}\sum\limits_{j\in I_i}v_{i,j}$. Möchte man nun die Wertung der aktiven Person $a$ zu $j$, also $p_{a,j}$ vorhersagen, so berechnet man $p_{a,j}=\bar{v}_a+\kappa\sum\limits_{i=1}^{n}\omega(a,i)(v_{i,j}-\bar{v}_i)$. Die Gewichte $\omega(a,i)$ geben die Korrelation zwischen $a$ und $i$ wieder. Im Folgenden wählen wir $\kappa=\frac{1}{\sum\limits_{i=1}^{n}\left\vert\omega(a,i)\right\vert}$. Eine der gebräuchlichsten Formeln zur Berechnung der Korrelation zwischen zwei Personen $a$ und $i$ ist der Pearson-Korrelationskoeffizient:

\begin{eqnarray*}
\omega(a,i)=\frac{\sum\limits_k(v_{a,k}-\bar{v}_a)(v_{i,k}-\ba...
...imits_k(v_{a,k}-\bar{v}_a)^2\sum\limits_k(v_{i,k}-\bar{v}_i)^2}}
\end{eqnarray*}



Die Summation über $k$ geht über alle Themen, zu denen die Wertung von $a$ und $i$ vorliegt.

Obiges wollen wir an einer kleinen Filmdatenbank testen. Auf unserem FTP-Server liegt eine Liste von Filmen (films). Zu etwa zehn dieser Filme sollte jeder Teilnehmer der Übungen bitte seine Meinung (Zahl 1 (schlecht) bis 10 (sehr gut)) abgeben. Rufen Sie dazu bitte das Skript /www/turing/htdocs/sai/ss02/sep/addvote.pl auf. Als Parameter muss der genaue Titel des Films und die Wertung angegeben werden. Alle Wertung werden in der Datei votes im gleichen Verzeichnis abgelegt.

Schreiben Sie nun ein Perl-Skript, das $p_{a,j}$, also die vermutliche Meinung der Person $a$ zum Film $j$, mittels obiger Formel berechnet. Verwenden Sie die Option -w, deklarieren Sie alle Variablen und nutzen Sie keine globalen Variablen.

Obige Formeln stammen aus einem Paper von John Breese, David Heckermann und Carl Kadie mit dem Titel ,,Empirical Analysis of Predictive Algorithms for Collaborative Filtering`` von 1998.

Noch ein paar Tipps:



Ingo Melzer 2002-05-10