Home » Articole » RO » Afaceri » Știința datelor (Data Science) » Data mining » Data mining: Similaritatea cosinusoidală

Data mining: Similaritatea cosinusoidală

Similaritatea cosinusoidală este o formulă foarte populară în mineritul de text, dar este utilizată și în filtrarea colaborativă. Pentru a vedea când putem folosi această formulă, să presupunem că îmi schimb ușor exemplul. Vom urmări de câte ori o persoană a redat o anumită melodie și vom folosi aceste informații pentru a ne baza pe ea în recomandările noastre.

Numărul de piese
The Decemberists: The King is Dead Radiohead: The King of Limbs Katy Perry: E.T.
Ann 10 5 32
Ben 15 25 1
Sally 12 6 27

Doar examinând graficul de mai sus (și folosind oricare dintre formulele de distanță menționate mai sus) putem vedea că Sally este mai asemănătoare cu obiceiurile de ascultare ale lui Ann decât cu cele ale lui Ben.

Deci care este problema?

Am în jur de patru mii de melodii în iTunes. Iată un instantaneu al primelor câteva ordonate după numărul de piese:

Playlist - iTunes

Deci melodia mea de top este Moonlight Sonata de Marcus Miller cu 25 de ascultări. Șansele sunt să fi ascultat acea piesă de zero ori. De fapt, sunt mari șanse să nu fi ascultat niciuna dintre melodiile mele de top. În plus, există peste 15 milioane de melodii în iTunes și eu am doar patru mii. Deci, datele pentru o singură persoană sunt rare, deoarece au relativ puține atribute diferite de zero (ascultările unei piese). Când comparăm două persoane, folosind numărul de piese din cele 15 milioane de piese, cele mai multe vor avea zero în comun. Cu toate acestea, nu vrem să folosim aceste zerouri partajate atunci când calculăm similaritatea.

Un caz similar poate fi făcut atunci când comparăm documente text folosind cuvinte. Să presupunem că ne-a plăcut o anumită carte, să spunem Tom Corbett, Space Cadet: The Space Pioneers de Carey Rockwell și vrem să găsim o carte similară. O modalitate posibilă este utilizarea frecvenței cuvintelor. Atributele vor fi cuvinte individuale, iar valorile acestor atribute vor fi frecvența acelor cuvinte din carte. Deci 6,13% din cuvintele din The Space Pioneers sunt apariții ale cuvântului the, 0,89% sunt cuvântul Tom, 0,25% din cuvinte sunt space. Pot calcula similaritatea acestei cărți cu altele folosind aceste frecvențe de cuvinte. Totuși, aceeași problemă legată de raritatea datelor apare și aici. Există 6.629 de cuvinte unice în The Space Pioneers și există puțin peste un milion de cuvinte unice în limba engleză. Deci, dacă atributele noastre sunt cuvinte în limba engleză, vor exista relativ puține atribute diferite de zero pentru The Space Pioneers sau orice altă carte. Din nou, orice măsură de similitudine nu ar trebui să depindă de valorile zero partajate.

Similaritatea cosinusoidală ignoră scorurile 0-0. Este definită ca

cos(x, y) = (x ∙ y) / (||x|| × ||y||)

unde • indică produsul punct și ||x|| indică lungimea vectorului x. Lungimea unui vector este

√Σi=1nxi2

Să încercăm acest lucru cu exemplul de acord perfect utilizat mai sus:

Blues Traveler Norah Jones Phoenix The Strokes Weird Al
Clara 4.75 4.5 5 4.25 4
Robert 4 3 5 2 1

Cei doi vectori sunt:

||x|| = (4,75, 4,5, 5, 4,25, 4)
y = (4, 3, 5, 2, 1)

atunci

||x|| = √(4,752 +  4,52 + 52 + 4,252 + 42) = √101,875 = 10,09
||y|| = √(42 +  32 +  52 +  22 +  12) = √55 = 7,416

Produsul dot este

x ∙ y = (4.75 × 4) + (4.5 × 3) + (5 × 5) + (4.25 × 2) + (4 ×1) = 70

și similaritatea cosinusoidală este

cos(x,y) = 70 / (10,093 × 7,416) = 70 / 74,85 = = 0,935

Evaluarea similarității cosinusoidale variază de la 1 (care indică asemănarea perfectă) la -1 (care indică asemănare negativă perfectă). Deci 0.935 reprezintă un acord foarte bun.

Exercițiu

Calculați similaritatea cosinusoidală dintre Angelica și Veronica (din setul nostru de date). (considerați liniuțele ca fiind egale cu zero)

Blues Traveler Broken Bells Deadmau 5 Norah Jones Phoenix Slightly Stoopid The Strokes Vampire Weekend
Angelica 3.5 2 4.5 5 1.5 2.5 2
Veronica 3 5 4 2.5 3
[showhide type=”post” more_text=”CLIC AICI PENTRU RĂSPUNS” less_text=”ASCUNDE”] x = (3,5, 2, 0, 4,5, 5, 1,5, 2,5, 2)
y = (3, 0, 0, 5, 4, 2,5, 3, 0)

x = √(3,52 + 22 + 02 + 4,52 + 52 +1,52 + 2,52 + 22 = √74 = 8,602
y = √(32 + 02 + 02 + 52 + 42 + 2,52 + 32 + 02) = √65,25 = 8,078

Produsul dot este

x ∙ y = (3,5 × 3) + (2 × 0) + (0 × 0) + (4,5 × 5) + (5 × 4) + (1,5 × 2.5) + (2,5 × 3) + (2 × 0) = 64,25

Similaritatea cosinusoidală este

cos(x,y) = 64,25 / (8,602 × 8,078) = 64,25 / 69,487 = 0,9246
[/showhide]

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

Excel - Ghid pentru începători
Excel – Ghid pentru începători

Acest ghid este destinat să vă ajute să învățați și să lucrați cu Microsoft Excel. Se bazează pe utilizarea Excel 2016 pe un computer Windows, dar conceptele și instrumentele acoperite rămân destul de consistente cu unele versiuni mai vechi de … Citeşte mai mult

Nu a fost votat $0,00 Selectează opțiunile
PowerPoint - Ghid pentru începători
PowerPoint – Ghid pentru începători

PowerPoint este un instrument excelent pentru prezentări de orice fel, fie în clasă, fie în cadrul unei conferințe. O prezentare PowerPoint este formată dintr-o serie de diapozitive care pot fi proiectate (afișate electronic) sau tipărite într-o varietate de formate de … Citeşte mai mult

Nu a fost votat $0,00 Selectează opțiunile
Inteligența emoțională
Inteligența emoțională

Inteligența emoțională este un set de abilități pentru răspunsurile la evenimente care constituie emoții. Prin integrarea inteligenței cu emoția se pot determina „cel puțin unele răspunsuri „corecte” în ceea ce privește sentimentele” pentru a distinge indivizii în funcţie de inteligența … Citeşte mai mult

Nu a fost votat $3,99$8,95 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 *