konto usunięte

Temat: Pearson

Witam,

Czy ktoś z Państwa dysponuje może kodem T-SQL, który w efektywny sposób jest w stanie policzyć współczynniki korelacji pearsona dla zbioru danych o następującej postaci lub podobnego:

User; Product; Rating
1; 1; 5
1; 2; 4
1; 3; 3
2; 1; 4
2; 3; 2
...

Chodzi o to aby otrzymać macierz korelacji również w postaci tabeli:

User1; User2; Corr
1; 2; Corr(1,2)
...

Algorytm powinien brać pod uwagę wyłącznie userów, którzy mają choć jeden produkt, który obaj ocenili, produkty ocenione wyłącznie przez jedną osobę nie mają być uwzględniane podczas liczenia współczynników.

Dodam tylko, że ocen w tabeli pierwszej może być ponad 200 mln. Userów może być ponad 500 tys. Produktów może być ponad 100 tys.
Macierz jest bardzo rzadka.

Jeżeli ktoś słyszał o jakiejś sprytnej metodzie generowania takiej macierzy lub o bibliotece lub kodzie, który realizuje optymalny algorytm proszę o info.

Pozdrawiam i z góry dzięki za pomoc.

konto usunięte

Temat: Pearson

Google pęka w szwach...
Natomiast zaciekawiła mnie sama macierz.
Właściwie jaką zależność badasz?
Czy występuje korelacja między użytkownikami?
W sensie - jeśli user1 sprzedaje produkt 5, to user2 sprzedaje X?

W sumie mniejsza o odpowiedź, dzięki za inspirację ;-)

Zobacz sobie to:
http://www.vanheusden.com/misc/pearson.php
Badanie zbieżności gustów ;)

http://devlicio.us/blogs/billy_mccafferty/archive/2006...
Kasowanie loga co 10 userów wydaje mi się dziwaczne ale jak ktoś lubi zabawy z kursorem...

Temat: Pearson

Przy okazji dodam, że do badania "zgodności ocen" użytkowników (sędziów) nadaje się świetnie (został do tego "zaprojektowany") współczynnik konkordacji W Kendalla - Babingtona Smitha i korelacja rangowa tau Kendalla. Są to procedury nieparametryczne i - co równie ważne - badają zależność monotoniczną (niemalejącą, nierosnącą), a nie jedynie liniową, jak Pearson.

Na potrzeby prostych obliczeń szkoda "przefilozofować" zagadnienie, ale trzeba uważać na pułapki - np. dla np kwadratowej zależności między ocenami, korelacja liniowa może(nie musi) wyjść bliska zeru. Jeśli jednak ma to trafić do jakiegoś poważniejszego opracowania, lepiej uważać na metody i sprawdzać, czy spełniają założenia.

Rozumiem, że zbiór danych traktujemy jak populację i wnioskowanie dotyczy jedynie jej? Innymi słowy - nie będzie żadnej estymacji (rozciągania wniosków na podstawie próby na całą populację) na podstawie tych danych?

konto usunięte

Temat: Pearson

Jerzy Ł.:
Google pęka w szwach...

Może i pęka w szwach, ale od prostych rozwiązań liczących korelację między tylko dwoma userami. Tutaj problem polega na efektywnym policzeniu korelacji między 500 tys. userów. Nie chodzi o to żeby to liczyło się dwa lata.
Natomiast zaciekawiła mnie sama macierz.
Właściwie jaką zależność badasz?

System rekomendacyjny. Chodzi o predykcję nieznanych ocen.
Czy występuje korelacja między użytkownikami?
W sensie - jeśli user1 sprzedaje produkt 5, to user2 sprzedaje X?

Userzy nie sprzedają produktów ale je oceniają.
W sumie mniejsza o odpowiedź, dzięki za inspirację ;-)

Zobacz sobie to:
http://www.vanheusden.com/misc/pearson.php
Badanie zbieżności gustów ;)

http://devlicio.us/blogs/billy_mccafferty/archive/2006...
Kasowanie loga co 10 userów wydaje mi się dziwaczne ale jak ktoś lubi zabawy z kursorem...

konto usunięte

Temat: Pearson

Adrian Olszewski:
Rozumiem, że zbiór danych traktujemy jak populację i wnioskowanie dotyczy jedynie jej? Innymi słowy - nie będzie żadnej estymacji (rozciągania wniosków na podstawie próby na całą populację) na podstawie tych danych?

Tak, zbiór danych to populacja, na podstawie korelacji wypełniamy brakujące przecięcia macierzy.
Wojciech Sobala

Wojciech Sobala Redaktor
statystyczny,
biostatystyk,
Instytut Medycyny
Pr...

Temat: Pearson

Uwzlędniając zastżeżnia co do wyboru miary wskazane przez Adriana, podstawowym pytaniem jest to po co aż tak wiele współczynników korelacji. Tak wiele wyników trudno będzie trudno zinterpretować.

Z tego co napisałeś wynika, że chodzi o korelacje dla ocen różnych produktów przez dwóch userów (takie współczynniki dla wszystkich par!!!).
Interpretacja geometryczna korelacji którą chcesz obliczyć jest taka, że na osi X masz usera1 na osi Y usera2, a poszczególne punkty na wykresie to produkty.

W takim przypadku powinni mieć co najmniej 2 wspólnie ocenione produkty a nie jeden jaki napisałeś 1. Z punktu widzenia statystyki (zkałdając, że korelacja będzie bardzo wysoka) należałoby liczyć takie korelacje dla par które mają co najmniej 10 wspólnie ocenione produkty.

Kolejnym problemem jest różna liczba obserwacji użyta dla obliczenia poszczególnych współczynników. Trudno będzie je porównywać między sobą.

konto usunięte

Temat: Pearson

Dziękuję za odpowiedź. Problem został już rozwiązany. Opisane przeze mnie podejście, jest jednym z częściej stosowanych podczas masowego generowania predykcji ocen produktów w systemach rekomendacyjnych. Nie chodzi o to aby analizować każdy współczynnik oddzielnie, nie starczyłoby na to życia. Dodatkowo, bardzo rzadko zdarza się, że użytkownicy mają aż 10 wspólnie ocenionych produktów. Chodzi raczej o próbę oceny podobieństwa gustu badanych użytkowników.
Opisane podejście oparte o obliczanie współczynników korelacji nie jest jednak najlepsze. Jest to jakiś start, ale lepsze wyniki predykcji osiągnąć można stosując inne algorytmy (np. SVD).
Leszek Dorożyński

Leszek Dorożyński Kierownik Działu
Ryzyka, Firma
leasingowa

Temat: Pearson

Jakie jest w rozwiązanie. Mógłbys się podzielić ta informacją?
Pozdrawiam

Temat: Pearson

Przepraszam, ale na czym zastosować to SVD? Bo tak, czy tak i tak musisz mieć jakąś macierz.



Wyślij zaproszenie do