ZASTOSOWANIE ALGORYTMÓW GRUPOWANIA

W SIECI WWW I E-BIZNESIE

Sprawozdanie III

Algorytmy grupujące w systemach rekomendujących

Czemiel Paulina

Hałaburda Krzysztof

Zadanie 1

Dla podzbioru danych MovieLens zawierających 50 użytkowników i ich oceny dla 10 filmów:

dla każdego użytkownika ze zbioru testowego:

Rozwiązanie

Otrzymane dane grup:

Number of clusters selected by cross validation: 2

f1

mean 3.6318 1.9928

std. dev. 0.9677 1.1139

f2

mean 3.4999 3.5004

std. dev. 0.2767 0.0147

f3

mean 0 0

std. dev. 0 0

f4

mean 4 4

std. dev. 0 0

f5

mean 3.3333 3.3333

std. dev. 0.1231 0.3381

f6

mean 3.5 3.4999

std. dev. 0.3084 0.2174

f7

mean 4.0263 3.8235

std. Dev. 0.4208 0.3829

f8

mean 3 3

std. dev. 0 0

f9

mean 4 4

std. dev. 0 0

f10

mean 4.4289 4.4262

std. dev. 0.2088 0.0318

Time taken to build model (full training data) : 0.52 seconds

Profil po zaokrągleniu:

f1 mean 4 2

f2 mean 3 4

f3 mean 0 0

f4 mean 4 4

f5 mean 3 3

f6 mean 4 3

f7 mean 4 4

f8 mean 3 3

f9 mean 4 4

f10 mean 4 4

Zbiór testowy:

f1 f2 f3 f4 f5 f6 f7 f8 f9 f10

4 1 "?" "?" "?" "?" "?" "?" "?" "?"

1 "?" "?" "?" "?" 3 5 "?" "?" "?"

5 1 "?" "?" "?" "?" "?" "?" "?" "?"

1 1 "?" "?" "?" "?" "?" "?" "?" 5

5 "?" "?" "?" 4 4 5 "?" 5 "?"

Kod funkcji liczącej odległość euklidesową i zwracająca bliższą ocenę:

function licz_ocene($i,$aOceny,$aProfile){

$iPodPierwiastkiem[0]=0;

$iPodPierwiastkiem[1]=0;

for($f=1;$f<count($aOceny);$f++){

if($f<>$i&&$aOceny[$f]<>"?"){

$iPodPierwiastkiem[0]+=pow(($aOceny[$f]-$aProfile[$f][0]),2);

$iPodPierwiastkiem[1]+=pow(($aOceny[$f]-$aProfile[$f][1]),2);

}

}

if(sqrt($iPodPierwiastkiem[0])<sqrt($iPodPierwiastkiem[1])){

return 0;

}return 1;

}

Tabela wyników wyliczona dla f1:

nr

ocena rzeczywista 

ocena oszacowana 

1

4

4

2

1

2

3

5

4

4

1

4

5

5

4