Sprawozdanie2 czemiel halaburda

background image

ZASTOSOWANIE ALGORYTMÓW GRUPOWANIA

W SIECI WWW I E-BIZNESIE

Sprawozdanie II

Algorytmy w systemach rekomendujących

Czemiel Paulina

Hałaburda Krzysztof

background image

Zadanie 1

Dla podanego zbioru dotyczącego zakupów (0 - oznacza przedmiot nie kupiony, 1 - kupiony przez

użytkownika) stworzyć listę rekomendacji dla klienta który kupił przedmioty 5 i 7.

Kod funkcji:

function licz_cos($p_i, $p_j, $dane) {
$licznik = 0;

$ilosc_osob = count($dane)+1;

for ($i = 1; $i < $ilosc_osob; $i++) {
$licznik += $dane[$i][$p_i] * $dane[$i][$p_j];
}
$pierwiastek[1] = 0;
$pierwiastek[2] = 0;
for ($i = 1; $i < $ilosc_osob; $i++) {
$pierwiastek[1]+= $dane[$i][$p_i];
$pierwiastek[2]+= $dane[$i][$p_j];
}
$mianownik = sqrt($pierwiastek[1]) * sqrt($pierwiastek[2]);
if ($mianownik == 0) {
return 0;
}
return $licznik / $mianownik;
}

Otrzymane wyniki:

Przedmiot 5

Przedmiot 7

p1

cos(1,5) = 0.35355

cos(1,7) = 0.00000

p2

cos(2,5) = 0.25000

cos(2,7) = 0.00000

p3

cos(3,5) = 0.00000

cos(3,7) = 0.00000

p4

cos(4,5) = 0.00000

cos(4,7) = 0.00000

p6

cos(6,5) = 0.00000

cos(5,7) = 0.43290

p7

cos(7,5) = 0.43290

cos(6,7) = 0.00000

p8

cos(8,5) = 0.43301

cos(8,7) = 0.83333

p9

cos(9,5) = 0.00000

cos(9,7) = 0.00000

p10

cos(10,5) = 0.00000

cos(10,7) = 0.00000

p11

cos(11,5) = 0.00000

cos(11,7) = 0.00000

p12

cos(12,5) = 0.00000

cos(12,7) = 0.00000

p13

cos(13,5) = 0.40089

cos(13,7) = 0.61721

p14

cos(14,5) = 0.00000

cos(14,7) = 0.00000

p15

cos(15,5) = 0.40089

cos(15,7) = 0.61721

Poniżej przedstawiono listę rekomendacji dla klienta:

Przedmiot 5

Przedmiot 7

brak

Przedmiot 8

Przedmiot 13

Przedmiot 15

Lista rekomendacji zostaje utworzona wówczas, gdy porównując popularność przedmiotu

otrzymamy wynik > 0,5. W przypadku klienta, który zakupił przedmiot 5 nie zostanie utworzona

lista rekomendacji, ponieważ z wykonanych obliczeń nie otrzymaliśmy wyników większych niż

0,5. Dla klienta kupującego przedmiot 7 w liście rekomendacji pojawią się przedmioty 8, 13, 15.

background image

Zadanie 2

1. Podzielić dane na zbiór testowy (elementy o1 io4) i uczący (pozostałe 8 elementów).

2. Dla zbioru uczącego obliczyć średnie różnice Dij.

Otrzymane wyniki:

D12:-0.15

D13:-

D14:-

D15:5.14

D16:-

D17:15.09

D18:17.96

D19:-

D110:-

D21:0.15

D23:-

D24:-

D25:4.08

D26:-

D27:10.07

D28:9.515

D29:-

D210:-

D31:-

D32:-

D34:-

D35:-

D36:-

D37:-

D38:-

D39:-

D310:-

D41:-

D42:-

D43:-

D45:-

D46:-

D47:-

D48:-

D49:-

D410:-

D51:-5.14

D52:-4.08

D53:-

D54:-

D56:-

D57:2.005

D58:1.336

D59:-

D510:3.64

D61:-

D62:-

D63:-

D64:-

D65:-

D67:-

D68:-

D69:-

D610:-

D71:-15.09

D72:-10.07

D73:-

D74:-

D75:- 2.005

D76:-

D78:- 0.669

D79:-

D710:14.8

D81:-17.96

D82:-9.515

D83:-

D84:-

D85:-1.336

D86:-

D87:0.669

D89:-

D810:11.31

D91:-

D92:-

D93:-

D94:-

D95:-

D96:-

D97:-

D98:-

D910:-

D101:-

D102:-

D103:-

D104:-

D105:-3.64

D106:-

D107:-14.8

D108:-11.31

D109:-

3. Dla każdego przypadku i ze zbioru testowego wyznaczyć błąd RMSE.

3.1 dla każdej oceny j danego użytkownika i należy obliczyć wartość przewidywaną Pi i

porównać ją z rzeczywistą Ri.

3.2 obliczyć RMSEi jako pierwiastek z wyrażenia 1/noi(Pi0Ri)2, gdzie noi oznacza liczbę ocen

danego użytkownika.

Oceny dla: o1

Oceny dla: o4

p1

14.21667

7.38750

p2

9.37500

10.03333

p3

-

0

p4

-

0

p5

5.43389

-1.23105

p6

-

0

p7

1.51222

-3.63842

p8

-2.48611

-5.24684

p9

-

0

p10

-8.43000

-12.76333

4. Ostateczny błąd RMSE=RMSE1+RMSE2+...+RMSEn01+RMSEn, gdzie n oznacza liczbę

wszystkich przypadków w zbiorze testowym.

Suma:

Różnice w ocenach o1 RMSE:

Różnice w ocenach o4 RMSE:

0.08150

0.25187

0.06158

0.05783
0.36335
0.47653
0.13191

0.39495

1.02962

Suma wszystkich przypadków zbioru testowego: 1,4245749458647.

background image

Kod funkcji:

function wylicz_Dij($dane){

$Dij = array();

$ilosc_produktow = count($dane[1]);

$ilosc_osob = count($dane)+1;

for($i=1;$i<$ilosc_produktow;$i++){

for($j=1;$j<$ilosc_produktow;$j++){

if($i<>$j){

$suma=0;$ilosc_par=0;

for($o=1;$o<$ilosc_osob;$o++){

if(($dane[$o][$i]<>'-')&&($dane[$o][$j]<>'-'))

{

$suma += (($dane[$o][$i]) - ($dane[$o][$j]));

$ilosc_par++;

}

}

if($ilosc_par==0){

$Dij[$i.$j]['wartosc'] = $Dij[$i.$j]['ilosc'] = "-";

}else{

$Dij[$i.$j]['wartosc'] = $suma/$ilosc_par;

$Dij[$i.$j]['ilosc'] = $ilosc_par;

}

}

}

}

return $Dij;

}



function licz_ocene($p_i,$Dij,$dane){

$ocena = 0;

$ilosc_produktow = count($dane);

$p = array();

for($i=1;$i<$ilosc_produktow;$i++){

if($dane[$i]<>"-" && $Dij[$p_i.$i]['wartosc']<>"-"){

$p[$i]['wartosc'] = $dane[$i] + $Dij[$p_i.$i]['wartosc'];

$p[$i]['ilosc'] = $Dij[$p_i.$i]['ilosc'];

}

}

$licznik = 0;$mianownik = 0;

for($i=1;$i<$ilosc_produktow;$i++){

if(isset($p[$i]))

{

$licznik += $p[$i]['wartosc']*$p[$i]['ilosc'];

$mianownik += $p[$i]['ilosc'];

}

}

if($mianownik == 0){

return '-';

}else{

return $licznik/$mianownik;

}

}


Wyszukiwarka

Podobne podstrony:
Sprawozdanie1 czemiel halaburda doc
Sprawozdanie6 czemiel halaburda
Sprawozdanie6 czemiel halaburda doc
Sprawozdanie5 czemiel halaburda doc
Sprawozdanie5 czemiel halaburda
Sprawozdanie3 czemiel halaburda new
Sprawozdanie4 czemiel halaburda
Sprawozdanie3 czemiel halaburda doc
Sprawozdanie2 czemiel halaburda doc
Sprawozdanie7 czemiel halaburda doc
Sprawozdanie3 czemiel halaburda
Sprawozdanie3 czemiel halaburda new doc
Sprawozdanie7 czemiel halaburda
Kopia Czemiel Halaburda ZAGwSWiEB PS4
Czemiel Halaburda ZAGwSWiEB PS4
Czemiel Halaburda ZAGwSWiEB PS4 doc
2 definicje i sprawozdawczośćid 19489 ppt
PROCES PLANOWANIA BADANIA SPRAWOZDAN FINANSOWYC H

więcej podobnych podstron