Home » Articole » RO » Afaceri » Știința datelor (Data Science) » Data mining » Mineritul datelor (Data Mining): Coeficientul de corelație Pearson

Mineritul datelor (Data Mining): Coeficientul de corelație Pearson

Mineritul datelor (Big Data): Coeficientul de corelație Pearson

Să aruncăm o privire mai detaliată asupra evaluărilor utilizatorilor. Vedem că utilizatorii au comportamente foarte diferite atunci când vine vorba de evaluarea trupelor:

Angelica Bill Chan Dan Hailey Jordyn Sam Veronica
Blues Traveler 3.5 2 5 3 5 3
Broken Bells 2 3.5 1 4 4 4.5 2
Deadmau5 4 1 4.5 1 4
Norah Jones 4.5 3 4 5 3 5
Phoenix 5 2 5 3 5 5 4
Slightly Stoopid 1.5 3.5 1 4.5 4.5 4 2.5
The Strokes 2.5 4 4 4 5 3
Vampire Weekend 2 3 2 1 4

Lui Jordyn se pare că îi place totul. Evaluările ei variază de la 4 la 5.

Bill pare să evite extremele. Evaluările sale variază de la 2 la 4

Hailey este o persoană binară care dă fie 1, fie 4 trupelor.

Deci, cum putem compara, de exemplu, Hailey cu Jordan? „4” al lui Hailey înseamnă același lucru ca „4” al lui Jordyn sau „5” al lui Jordyn? Aș presupune că seamănă mai mult cu „5” al lui Jordyn. Această variabilitate poate crea probleme cu un sistem de recomandare.

Broken Bells sunt ok. Le-aș da un „4”.

Ador absolut Broken Bells! Sunt buni! Le dau un 4.

Coeficientul de corelație Pearson

O modalitate de a rezolva această problemă este utilizarea coeficientului de corelație Pearson. În primul rând, ideea generală. Luați în considerare următoarele date (nu din setul de date de mai sus):

BluesTraveler NorahJones Phoenix TheStrokes Weird Al
Clara 4.75 4.5 5 4.25 4
Robert 4 3 5 2 1

Acesta este un exemplu de ceea ce se numește „inflație de grad” în comunitatea de minerit a datelor. Cea mai mică evaluare a Clarei este 4 – toate ratingurile ei sunt cuprinse între 4 și 5. Dacă ar trebui să reprezentăm grafic acest grafic, ar arăta astfel

Data Mining - Coeficientul de corelație Pearson

Linie dreaptă = Acord perfect !!!

Faptul că aceasta este o linie dreaptă indică un acord perfect între Clara și Robert. Ambii l-au clasat pe Phoenix ca fiind cea mai bună formație, Blues Traveler în continuare, Norah Jones după aceea și așa mai departe. Pe măsură ce Clara și Robert sunt de acord mai puțin, cu atât punctele de date se află mai puțin pe o linie dreaptă:

Acord destul de bun:

Data Mining - Coeficientul de corelație Pearson

Acordul nu este atât de bun:

Data Mining - Coeficientul de corelație Pearson

Deci, în grafic, acordul perfect este indicat printr-o linie dreaptă. Coeficientul de corelație Pearson este o măsură a corelației dintre două variabile (în acest caz specific corelația dintre Angelica și Bill). Acesta variază între -1 și 1 inclusiv. 1 indică un acord perfect. -1 indică un dezacord perfect. Pentru a vă oferi o impresie generală în acest sens, graficul de mai sus cu linia dreaptă are un Pearson de 1, graficul de mai sus pe care l-am etichetat „acord destul de bun” are un Pearson de 0,91, iar graficul „nu atât de bun” are un Pearson de 0,81 Deci putem folosi acest lucru pentru a găsi persoana care este cea mai asemănătoare cu persoana care ne interesează.

Formula pentru coeficientul de corelație Pearson este

Data Mining - Coeficientul de corelație Pearson

Matematica

În afară de aspectul complex, problema cu formula de mai sus este că algoritmul pentru implementarea acestuia ar necesita mai multe treceri prin date. Din fericire pentru noi, oamenii algoritmici, există o formulă alternativă, care este o aproximare a lui Pearson:

Data Mining - Coeficientul de corelație Pearson

Această formulă, pe lângă aspectul complex, este, mai important, instabilă din punct de vedere numeric, ceea ce înseamnă că ceea ce ar putea fi o mică eroare este amplificat de această reformulare. Marele plus este că o putem implementa folosind un algoritm cu o singură trecere. Să disecăm această formulă și să analizăm exemplul nostru:

BluesTraveler NorahJones Phoenix The Strokes Weird Al
Clara 4.75 4.5 5 4.25 4
Robert 4 3 5 2 1

Pentru început, să calculăm

Σi=1nxiyi

care este în prima expresie de la numărător. Aici x și y reprezintă Clara și Robert.

BluesTraveler NorahJones Phoenix The Strokes Weird Al
Clara 4.75 4.5 5 4.25 4
Robert 4 3 5 2 1

Pentru fiecare trupă vom merge împreună la mai multe ratinguri ale lui Clara și Robert și vom rezuma rezultatele:

(4.75 × 4)+ (4.5 × 3)+ (5 × 5)+ (4.25 × 2)+ (4 ×1) = 19 +13.5 + 25 + 8.5 + 4 = 70

Grozav! Acum să calculăm restul numărătorului:

i=1nxi Σi=1nyi)/n

Astfel

Σi=1nxi

este suma evaluărilor Clarei, care este 22,5. Suma lui Robert este de 15 și ei au evaluat 5 trupe:

(22,5 ×15)/5 = 67,5

Deci, numărătorul din formulă este 70 – 67,5 = 2,5

Acum să disecăm numitorul.

√((Σi=1nxi2) – ((Σi=1nxi)2)/n))

În primul rând,

Data Mining - Coeficientul de corelație Pearson

Am calculat deja suma evaluărilor Clarei, care este 22,5. Pătratul ei este 506,25. Împărțim asta la numărul de trupe cotate (5) și obținem 101,25.

Punem totul împreună:

√(101,875 −101,25) = 0,625 = 0,79057

Apoi facem același calcul pentru Robert:

√((Σi=1nxi2) – ((Σi=1nxi)2)/n)) = √(55 − 45) = 3,162277

Punând totul în valoare obținem:

r = 2,5 / 0,79057(3,162277) = 2.5 / 2.5 = 1.00

Așa că rezultă că a existat un acord perfect între Clara și Robert!

Exercițiu

Înainte de a merge mai departe, implementați algoritmul în Python. Ar trebui să obțineți următoarele rezultate.

>>> pearson(users['Angelica'], users['Bill'])
-0.90405349906826993
>>> pearson(users['Angelica'], users['Hailey'])
0.42008402520840293
>>> pearson(users['Angelica'], users['Jordyn'])
0.76397486054754316
>>>

Pentru această implementare veți avea nevoie de 2 funcții Python sqrt (rădăcină pătrată) și operatorul de putere ** care ridică argumentul său stâng la puterea argumentului său drept:

>>> from math import sqrt
>>> sqrt(9)
3.0
>>> 3**2
9

Soluție

Iată implementarea mea a coeficientului de corelație Pearson

def pearson(rating1, rating2):
   sum_xy = 0
   sum_x = 0
   sum_y = 0
   sum_x2 = 0
   sum_y2 = 0
   n = 0
   for key in rating1:
      if key in rating2:
         n += 1
         x = rating1[key]
         y = rating2[key]
         sum_xy += x * y
         sum_x += x
         sum_y += y
         sum_x2 += x**2
         sum_y2 += y**2
   # if no ratings in common return 0
   if n == 0:
      return 0
   # now compute denominator
   denominator = sqrt(sum_x2 - (sum_x**2) / n) *
               sqrt(sum_y2 - (sum_y**2) / n)
   if denominator == 0:
      return 0
   else:
      return (sum_xy - (sum_x * sum_y) / n) / denominator

Sursa: Ron Zacharski, A Programmer’s Guide to Data Mining – The Ancient Art of the Numerati. Licența CC BY-NC 3.0. Traducere și adaptare: Nicolae Sfetcu

Articol oferit sub licență CC BY-NC 3.0

Eseuri filosofice
Eseuri filosofice

O colecție personală de eseuri din filosofia științei (fizică, în special gravitație), filosofia tehnologiei informațiilor și comunicații, problemele sociale actuale (inteligența emoțională, pandemia COVID-19, eugenia, serviciile de informații), filosofia artei și logica și filosofia limbajului. Distincția dintre falsificare și respingere … Citeşte mai mult

Nu a fost votat $4,99$18,09 Selectează opțiunile
Ghid Facebook pentru utilizatori
Ghid Facebook pentru utilizatori

Facebook este, de departe, cea mai cunoscută reţea socială, care permite utilizatorilor înregistraţi să îşi creeze profiluri proprii, să încarce şi să partajeze cu prietenii fotografii şi clipuri video, să trimită mesaje şi să păstreze legătura cu prietenii, familia şi … Citeşte mai mult

Nu a fost votat $1,99$3,39 Selectează opțiunile
Facebook pentru afaceri şi utilizatori
Facebook pentru afaceri şi utilizatori

Ediția a doua (revăzută și îmbunătățită) Un ghid pentru dezvoltarea profilului propriu al utilizatorilor Facebook, şi pentru promovarea imaginii, produselor şi serviciilor firmei prin paginile de Facebook. Include volumele Ghid Facebook pentru utilizatori și Ghid pagini Facebook – Campanii de … Citeşte mai mult

Nu a fost votat $4,99$7,18 Selectează opțiunile

Faci un comentariu sau dai un răspuns?

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *