![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 24.07.2007 Ostrzeżenie: (0%) ![]() ![]() |
Zrobiłem stronę na której możliwe jest ocenianie płyt, a teraz chciałbym dodać do niej rankingi płyt ze względu na np. rok wydania albo gatunek. Zastanawiam się, jak najobiektywniej porównywać takie płyty.
Oczywiście średnia ocen dobrze opisuje daną płytę ale do ranking się nie nadaje, bo jak np. porównać dwie płyty, które zostały ocenione w taki sposób: 1. przez 1 osobę na 4.5 2. przez 50 osób z średnią 4.0 ![]() Oczywiste jest, że wyżej w rankingu powinna być płyta oceniona na 4.0 przez 50 osób niż przez jedną na 4.5 - średnia takiej możliwości nie zakłada. Mam już funkcję, która na podstawie ilości oddanych głosów i średniej (a właściwie drugą zmienną jest suma), taki ranking tworzy ale nie jestem z niej tak do końca zadowolony. Ciekaw jestem z jakich funkcji Wy korzystacie? Są może takie funkcje dostępne w MySql albo PHP?? ------------------------------------ www.progrock.org.pl |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 1 076 Pomógł: 62 Dołączył: 6.03.2005 Skąd: Wroc Ostrzeżenie: (0%) ![]() ![]() |
Możesz zastosować średnią windsorską, czyli wywalić najmniejsze i największe oceny (jak w jeździe figurowej na lodzie wywala się najmniejszą i największą notę) lub do generowania notowań używać albumów, które mają więcej niż ileś-tam ocen (np 5).
-------------------- The answer is out there, Neo. It's looking for you. And it will find you, if you want it to.
SERVER_SOFTWARE : Apache/2.2.4 (Win32) PHP/5.2.1 MySQL Client API version : 5.0.27 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 24.07.2007 Ostrzeżenie: (0%) ![]() ![]() |
Myslalem o tym ale to nadal nie zdaje egz - wywalic tylko pojedyncze oceny czy podwojne tez, a jesli podwojne nie to nadal pozostaje ten sam problem czy ocena dwoch osob na 4.5 jest tak samo miarodajna jak powiedzmy: 50 osob z srednia 4.4
![]() Znalazłem kilka funkcji ale szukam takiej, z ktorej bylbym naprawde zadowolony :-( Przyklad: f(x,y) = x (logarytm(y)+1) , gdzie x - średnia ocen, y - ilosc oddanych glosow. |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 254 Pomógł: 10 Dołączył: 8.11.2006 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
A moze tak:
n1 - ilosc wszystkich ocen o warosci 1 n2 - ilosc wszystkich ocen o warosci 2 ... n1,1 - ilosc ocen o warosci 1 oddanych na album 1 n2,1 - ilosc ocen o warosci 2 oddanych na album 1 ... ocena albumu #1 : [(n1,2/n1)*1 + (n2,1/n2)*2 + ....]/[(n1,2/n1)+(n2,1/n2)+...] -------------------- --------------------------------------------------------------------------------
weblog.axent.pl -------------------------------------------------------------------------------- |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 24.07.2007 Ostrzeżenie: (0%) ![]() ![]() |
Wygląda ciekawie, chociaż (na pierwszy rzut oka) pewnie przy założeniu, że album tym lepszy, im mniejszą liczbą okaże się to wyrażenie. Mam też wrażenie, że w ocenie albumy powinno być n1,1 , n2,1 ,...
A moze tak: n1 - ilosc wszystkich ocen o warosci 1 n2 - ilosc wszystkich ocen o warosci 2 ... n1,1 - ilosc ocen o warosci 1 oddanych na album 1 n2,1 - ilosc ocen o warosci 2 oddanych na album 1 ... ocena albumu #1 : [(n1,2/n1)*1 + (n2,1/n2)*2 + ....]/[(n1,2/n1)+(n2,1/n2)+...] poza tym tego typu funkcja nie nadawałaby się do wykorzystanie w moim przypadku dlatego, że baza danych przechowuje tylko sumę głosów i ich liczbę bez rozbicia na konkretne głosowania. |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 19.07.2025 - 15:07 |