- Presentación
- Caso de estudio
9/4/2018
LastFM y otras personas de la industria musical te han entregado una base de datos que tiene un conjunto de preferencias musicales por usuario (users_artist.csv). Ellos quieren conocer posibles relaciones de artistas que se escuchan frecuentemente de manera conjunta, de forma tal que se pueda apalancar el portafolio de productos y artistas por diferentes medios. Ellos quieren saber que acciones tomar a partir de esas relaciones encontradas, así mismo, están muy curiosos por saber qué pudiese ser valioso para comprender las dinámicas del comportamiento de sus usuarios o enriquecer su portafolio de productos.
tomado de la prueba Data Alchemist
## Parsed with column specification: ## cols( ## userID = col_integer(), ## artistID = col_integer(), ## weight = col_integer() ## )
## Parsed with column specification: ## cols( ## tagID = col_integer(), ## tagValue = col_character() ## )
## Parsed with column specification: ## cols( ## userID = col_integer(), ## artistID = col_integer(), ## tagID = col_integer(), ## day = col_integer(), ## month = col_integer(), ## year = col_integer() ## )
## Parsed with column specification: ## cols( ## artistID = col_integer(), ## name = col_character(), ## url = col_character(), ## pictureURL = col_character() ## )
## Observations: 92,834 ## Variables: 3 ## $ userID <int> 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,... ## $ artistID <int> 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 6... ## $ weight <int> 13883, 11690, 11351, 10300, 8983, 6152, 5955, 4616, 4...
| userID | artistID | weight |
|---|---|---|
| 2 | 51 | 13883 |
| 2 | 52 | 11690 |
| 2 | 53 | 11351 |
| 2 | 54 | 10300 |
| 2 | 55 | 8983 |
## Observations: 11,946 ## Variables: 2 ## $ tagID <int> 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16... ## $ tagValue <chr> "metal", "alternative metal", "goth rock", "black met...
## Warning in kable_styling(., font_size = 2): Please specify format in ## kable. kableExtra can customize either HTML or LaTeX outputs. See https:// ## haozhu233.github.io/kableExtra/ for details.
| tagID | tagValue |
|---|---|
| 1 | metal |
| 2 | alternative metal |
| 3 | goth rock |
| 4 | black metal |
| 5 | death metal |
## Observations: 17,632 ## Variables: 4 ## $ artistID <int> 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 15, 16, ... ## $ name <chr> "MALICE MIZER", "Diary of Dreams", "Carpathian Fore... ## $ url <chr> "http://www.last.fm/music/MALICE+MIZER", "http://ww... ## $ pictureURL <chr> "http://userserve-ak.last.fm/serve/252/10808.jpg", ...
## Warning in kable_styling(., font_size = 2): Please specify format in ## kable. kableExtra can customize either HTML or LaTeX outputs. See https:// ## haozhu233.github.io/kableExtra/ for details.
| artistID | name | url | pictureURL |
|---|---|---|---|
| 1 | MALICE MIZER | http://www.last.fm/music/MALICE+MIZER | http://userserve-ak.last.fm/serve/252/10808.jpg |
| 2 | Diary of Dreams | http://www.last.fm/music/Diary+of+Dreams | http://userserve-ak.last.fm/serve/252/3052066.jpg |
| 3 | Carpathian Forest | http://www.last.fm/music/Carpathian+Forest | http://userserve-ak.last.fm/serve/252/40222717.jpg |
| 4 | Moi dix Mois | http://www.last.fm/music/Moi+dix+Mois | http://userserve-ak.last.fm/serve/252/54697835.png |
| 5 | Bella Morte | http://www.last.fm/music/Bella+Morte | http://userserve-ak.last.fm/serve/252/14789013.jpg |
## Observations: 186,479 ## Variables: 6 ## $ userID <int> 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,... ## $ artistID <int> 52, 52, 52, 52, 52, 63, 63, 63, 63, 73, 73, 73, 73, 7... ## $ tagID <int> 13, 15, 18, 21, 41, 13, 14, 23, 40, 13, 14, 15, 18, 2... ## $ day <int> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,... ## $ month <int> 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,... ## $ year <int> 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009,...
## Warning in kable_styling(., font_size = 2): Please specify format in ## kable. kableExtra can customize either HTML or LaTeX outputs. See https:// ## haozhu233.github.io/kableExtra/ for details.
| userID | artistID | tagID | day | month | year |
|---|---|---|---|---|---|
| 2 | 52 | 13 | 1 | 4 | 2009 |
| 2 | 52 | 15 | 1 | 4 | 2009 |
| 2 | 52 | 18 | 1 | 4 | 2009 |
| 2 | 52 | 21 | 1 | 4 | 2009 |
| 2 | 52 | 41 | 1 | 4 | 2009 |
Se genera una estadística exploratoria para reconocer los componentes de la base de datos, se toma el año, como variable de interés para conocer el total de productos como variable resultante, se toma la secuencia de 2005-2011
## tagID userID artistID.x weight ## Min. : 1 Min. : 2 Min. : 1 Min. : 1.0 ## 1st Qu.: 79 1st Qu.: 488 1st Qu.: 475 1st Qu.: 152.0 ## Median : 195 Median :1021 Median : 1401 Median : 341.0 ## Mean : 1432 Mean :1035 Mean : 3538 Mean : 880.6 ## 3rd Qu.: 853 3rd Qu.:1624 3rd Qu.: 4793 3rd Qu.: 793.0 ## Max. :12647 Max. :2100 Max. :18745 Max. :352698.0 ## name url pictureURL artistID.y ## Length:9277108 Length:9277108 Length:9277108 Min. : 1 ## Class :character Class :character Class :character 1st Qu.: 687 ## Mode :character Mode :character Mode :character Median : 2203 ## Mean : 4367 ## 3rd Qu.: 6706 ## Max. :18744 ## day month year tagValue ## Min. :1.000 Min. : 1.000 Min. :1956 Length:9277108 ## 1st Qu.:1.000 1st Qu.: 3.000 1st Qu.:2008 Class :character ## Median :1.000 Median : 7.000 Median :2009 Mode :character ## Mean :1.095 Mean : 6.528 Mean :2009 ## 3rd Qu.:1.000 3rd Qu.:10.000 3rd Qu.:2010 ## Max. :9.000 Max. :12.000 Max. :2011
Se eliminan las variables que por el momento no son necesarias, pero se fija un nivel de más de 150 AIC en la variable año
## # A tibble: 7 x 2 ## year total ## <int> <int> ## 1 2005 124150 ## 2 2006 490580 ## 3 2007 1018571 ## 4 2008 2011003 ## 5 2009 2146503 ## 6 2010 2737667 ## 7 2011 748384
Se identifica por año cual de estos géneros predomino
Es de notar que desde la música electrónica hasta el rock, la frecuencia de escucha es más alta dado el año, aunque lo más interesante viene dado por la forma como los géneros tienden a representarse, si se ve de manera agregada, se puede apreciar lo siguiente
Para terminar con el análisis exploratorio se procede hacer un proceso desde la validación de lo que se obtuvo a través de los artistas
Una de las definiciones más practicas sobre las reglas de asociación la da IBM , donde la define de la siguiente manera > Relaciona una determinada conclusión […] con un conjunto de condiciones. [^1]
Otra definición, una más enciclopédica dice que las reglas de asociación estudian las ocurrencias de un evento dentro de un conjunto de datos, dadas las diferentes medidas de interés (ítems), por ello es importante conocer la estructura en que viene la base de datos, puesto que el método de aprendizaje que presentan las reglas deben ser coherente con el objeto de estudio.
El anterior concepto se estructura de la definición regla fuerte[^2] asociada a grandes volumenes de datos por ello en la ciencia de datos las reglas de asociación son de gran uso, dado la obtención de conocimiento útil por una variable (la cual será llamada transacción en lenguaje técnico).
Un articulo llamado "REGLAS DE ASOCIACIÓN APLICADAS A LA DETECCIÓN DE FRAUDE CON TARJETAS DE CRÉDITOS" dice que :
Las reglas de asociación son implicaciones que relacionan la presencia de ítem en las transacciones. Las transacciones son la estructura básica desde donde las reglas de asociación son obtenidas.
Un ejemplo típico de las reglas de asociación es la mayoria de personas que compran pan , compran leche , en lenguaje matemático sería: \[F(PAN)\Rightarrow Leche\] Donde, la parte izquierda se le llama antecedente y a la derecha consecuente. La definición más formal se dará en el siguiente apartado.
La definición que da Agrawal[^4] es sumamente interesante desde la óptica del desarrollo y abstracción donde \(X= \{i_1,i_2,...i_n\} \mbox{ son los items}\) Entonces \(D\) son los set (o escenarios) donde se realizan las transacciones, y \(T\) son las transacciones pertenecientes a \(X\), por lo tanto \(T\subseteq X\) [^5]
Una parte importante para entender este argumento viene dado por el confidence el cual mide la confiabilidad en que está dada la regla , por lo tanto \(X \Rightarrow Y \mbox{ entonces viene dado por la transacción } D \mbox{ con confiabilidad del } c\%\)
Otra parte importante en la construcción de la regla de asociación es el support, el cual es la frecuencia relativa de una regla dada el total de las transacciones. Por lo tanto \(X \Rightarrow Y \mbox{ tiene support} s \mbox{ en las transacciones del set } D\)
Estás definiciones son de las variables como las llama R
## Apriori ## ## Parameter specification: ## confidence minval smax arem aval originalSupport maxtime support minlen ## 0.01 0.1 1 none FALSE TRUE 5 0.01 1 ## maxlen target ext ## 10 rules FALSE ## ## Algorithmic control: ## filter tree heap memopt load sort verbose ## 0.1 TRUE TRUE FALSE TRUE 2 TRUE ## ## Absolute minimum support count: 0 ## ## set item appearances ...[0 item(s)] done [0.00s]. ## set transactions ...[33 item(s), 62 transaction(s)] done [0.00s]. ## sorting and recoding items ... [33 item(s)] done [0.00s]. ## creating transaction tree ... done [0.00s]. ## checking subsets of size 1 2 done [0.00s]. ## writing ... [41 rule(s)] done [0.00s]. ## creating S4 object ... done [0.00s].
## set of 41 rules
## lhs rhs support confidence
## [1] {Black Eyed Peas} => {Avril Lavigne} 0.01612903 1.00000000
## [2] {Kings of Leon} => {Katy Perry} 0.01612903 1.00000000
## [3] {30 Seconds to Mars} => {The Killers} 0.01612903 1.00000000
## [4] {Avril Lavigne} => {Black Eyed Peas} 0.01612903 0.50000000
## [5] {Katy Perry} => {Kings of Leon} 0.01612903 0.33333333
## [6] {The Killers} => {30 Seconds to Mars} 0.01612903 0.33333333
## [7] {Coldplay} => {Lady Gaga} 0.01612903 0.33333333
## [8] {Lady Gaga} => {Coldplay} 0.01612903 0.25000000
## [9] {} => {The Beatles} 0.08064516 0.08064516
## [10] {} => {Radiohead} 0.06451613 0.06451613
## lift
## [1] 31.000000
## [2] 20.666667
## [3] 20.666667
## [4] 31.000000
## [5] 20.666667
## [6] 20.666667
## [7] 5.166667
## [8] 5.166667
## [9] 1.000000
## [10] 1.000000
## names.itemFrequency.datos.. Frecuencia ## 32 The Beatles 0.08064516 ## 5 Britney Spears 0.06451613 ## 8 Depeche Mode 0.06451613 ## 15 Lady Gaga 0.06451613 ## 18 Madonna 0.06451613 ## 29 Radiohead 0.06451613 ## 31 Rihanna 0.06451613 ## 7 Coldplay 0.04838710 ## 10 Katy Perry 0.04838710 ## 22 Muse 0.04838710 ## 33 The Killers 0.04838710 ## 2 Avril Lavigne 0.03225806 ## 20 Michael Jackson 0.03225806 ## 25 Paramore 0.03225806 ## 1 30 Seconds to Mars 0.01612903 ## 3 Beyonc\xed\xa9 0.01612903 ## 4 Black Eyed Peas 0.01612903 ## 6 Christina Aguilera 0.01612903 ## 9 Green Day 0.01612903 ## 11 Ke$ha 0.01612903 ## 12 Kelly Clarkson 0.01612903 ## 13 Kings of Leon 0.01612903 ## 14 Kylie Minogue 0.01612903 ## 16 Led Zeppelin 0.01612903 ## 17 Linkin Park 0.01612903 ## 19 Mariah Carey 0.01612903 ## 21 Miley Cyrus 0.01612903 ## 23 Nirvana 0.01612903 ## 24 P!nk 0.01612903 ## 26 Pink Floyd 0.01612903 ## 27 Placebo 0.01612903 ## 28 Queen 0.01612903 ## 30 Red Hot Chili Peppers 0.01612903
## lhs rhs support confidence
## [1] {Black Eyed Peas} => {Avril Lavigne} 0.01612903 1.0000000
## [2] {Kings of Leon} => {Katy Perry} 0.01612903 1.0000000
## [3] {30 Seconds to Mars} => {The Killers} 0.01612903 1.0000000
## [4] {Avril Lavigne} => {Black Eyed Peas} 0.01612903 0.5000000
## [5] {Katy Perry} => {Kings of Leon} 0.01612903 0.3333333
## [6] {The Killers} => {30 Seconds to Mars} 0.01612903 0.3333333
## [7] {Coldplay} => {Lady Gaga} 0.01612903 0.3333333
## [8] {Lady Gaga} => {Coldplay} 0.01612903 0.2500000
## lift
## [1] 31.000000
## [2] 20.666667
## [3] 20.666667
## [4] 31.000000
## [5] 20.666667
## [6] 20.666667
## [7] 5.166667
## [8] 5.166667
Estas ocho (8) combinaciones fortalece el portafolio de la empresa y genera un aumento el blindaje que busca la empresa.
## Apriori ## ## Parameter specification: ## confidence minval smax arem aval originalSupport maxtime support minlen ## 0.01 0.1 1 none FALSE TRUE 5 0.01 1 ## maxlen target ext ## 10 rules FALSE ## ## Algorithmic control: ## filter tree heap memopt load sort verbose ## 0.1 TRUE TRUE FALSE TRUE 2 TRUE ## ## Absolute minimum support count: 0 ## ## set item appearances ...[0 item(s)] done [0.00s]. ## set transactions ...[9 item(s), 62 transaction(s)] done [0.00s]. ## sorting and recoding items ... [9 item(s)] done [0.00s]. ## creating transaction tree ... done [0.00s]. ## checking subsets of size 1 2 done [0.00s]. ## writing ... [15 rule(s)] done [0.00s]. ## creating S4 object ... done [0.00s].
## set of 15 rules
## lhs rhs support confidence
## [1] {female vocalists} => {rock} 0.03225806 0.40000000
## [2] {} => {rock} 0.38709677 0.38709677
## [3] {} => {pop} 0.29032258 0.29032258
## [4] {indie} => {rock} 0.01612903 0.20000000
## [5] {} => {alternative} 0.09677419 0.09677419
## [6] {rock} => {female vocalists} 0.03225806 0.08333333
## [7] {} => {indie} 0.08064516 0.08064516
## [8] {} => {female vocalists} 0.08064516 0.08064516
## [9] {} => {dance} 0.06451613 0.06451613
## [10] {pop} => {rock} 0.01612903 0.05555556
## lift
## [1] 1.0333333
## [2] 1.0000000
## [3] 1.0000000
## [4] 0.5166667
## [5] 1.0000000
## [6] 1.0333333
## [7] 1.0000000
## [8] 1.0000000
## [9] 1.0000000
## [10] 0.1435185
Por lo tanto el fortalecimiento durante el periodo de estudio se da con forme a las relaciones de genero , con el Rock que genera derivaciones importantes a través del consumo de female vocalist, Indie, y se tiene en cuenta que El pop y la música alternativa tienen independencia en los géneros, por ello se diseña el portafolio a través de los artistas
## lhs rhs support confidence
## [1] {Black Eyed Peas} => {Avril Lavigne} 0.01612903 1.0000000
## [2] {Kings of Leon} => {Katy Perry} 0.01612903 1.0000000
## [3] {30 Seconds to Mars} => {The Killers} 0.01612903 1.0000000
## [4] {Avril Lavigne} => {Black Eyed Peas} 0.01612903 0.5000000
## [5] {Katy Perry} => {Kings of Leon} 0.01612903 0.3333333
## [6] {The Killers} => {30 Seconds to Mars} 0.01612903 0.3333333
## [7] {Coldplay} => {Lady Gaga} 0.01612903 0.3333333
## [8] {Lady Gaga} => {Coldplay} 0.01612903 0.2500000
## lift
## [1] 31.000000
## [2] 20.666667
## [3] 20.666667
## [4] 31.000000
## [5] 20.666667
## [6] 20.666667
## [7] 5.166667
## [8] 5.166667
Gracias!!!