Este tipo de sistema depende de las calificaciones que da la gente a
un objeto. Entre más esparcidad (más NA’s, más espacios vacios) menos
eficiente se vuelve el sistema
Vamos a agregar datos de los alumnos y convertirlos en una matriz
## Kung_Fu_Panda_1 Enredados Up Cars_1 Toy_Story_3 Shrek_2 La_Monja
## David_Heredia 5 2 4 5 3 5 NA
## Nayeli_Peña 5 5 4 5 4 3 NA
## Karla_Sánchez 3 3 3 4 2 3 NA
## Yo 2 5 4 4 4 3 NA
Ahora hacemos el proceso de matrices
## cosine_similarity
## David_Heredia 0.8776315
## Nayeli_Peña 0.9611541
## Karla_Sánchez 0.9510442
Usamos la función creada con anterioridad para predecir “Yo” en base
a los 3 usuarios para 3 películas
## # A tibble: 3 × 2
## movie predicted_rating
## <chr> <dbl>
## 1 Enredados 3.37
## 2 Toy_Story_3 3.00
## 3 Up 3.66
“Up” es la película con calificación más alta por lo tanto en el
sistema de recomendación sería la primera en aparecer
LS0tDQp0aXRsZTogIlNpc3RlbWEgZGUgUmVjb21lbmRhY2nDs24gQUNUIDIiDQphdXRob3I6ICJMRVNMWSBEQVJJQU4gUk9NRVJPIFZBWlFVRVoiDQpkYXRlOiAiMjAyNC0wNC0wNCINCm91dHB1dDogDQogaHRtbF9kb2N1bWVudDoNCiAgIHRvYzogdHJ1ZQ0KICAgdG9jX2Zsb2F0OiB0cnVlDQogICBjb2RlX2Rvd25sb2FkOiB0cnVlDQogICB0aGVtZTogInlldGkiDQotLS0NCg0KYGBge3Igc2V0dXAsIGluY2x1ZGU9RkFMU0V9DQprbml0cjo6b3B0c19jaHVuayRzZXQoZWNobyA9IEZBTFNFKQ0KYGBgDQoNCmBgYHtyIG1lc3NhZ2U9RkFMU0UsIHdhcm5pbmc9RkFMU0V9DQpsaWJyYXJ5KHRpZHl2ZXJzZSkgICANCmxpYnJhcnkocmVjb21tZW5kZXJsYWIpDQpgYGANCg0KRXN0ZSB0aXBvIGRlIHNpc3RlbWEgZGVwZW5kZSBkZSBsYXMgY2FsaWZpY2FjaW9uZXMgcXVlIGRhIGxhIGdlbnRlIGEgdW4gb2JqZXRvLg0KRW50cmUgbcOhcyBlc3BhcmNpZGFkIChtw6FzIE5BJ3MsIG3DoXMgZXNwYWNpb3MgdmFjaW9zKSBtZW5vcyBlZmljaWVudGUgc2UgdnVlbHZlIGVsIHNpc3RlbWENCg0KVmFtb3MgYSBhZ3JlZ2FyIGRhdG9zIGRlIGxvcyBhbHVtbm9zICB5IGNvbnZlcnRpcmxvcyBlbiB1bmEgbWF0cml6DQpgYGB7cn0NCm1vdmllX3JhdGluZ3MgPC0gZGF0YS5mcmFtZSgNCiAgS3VuZ19GdV9QYW5kYV8xID0gYyg1LCA1LCAzLCAyKSwgDQogIEVucmVkYWRvcyA9IGMoMiwgNSwgMywgNSksDQogIFVwID0gYyg0LCA0LCAzLCA0KSwNCiAgQ2Fyc18xID0gYyg1LCA1LCA0LCA0KSwNCiAgVG95X1N0b3J5XzMgPSBjKDMsIDQsIDIsIDQpLA0KICBTaHJla18yID0gYyg1LCAzLCAzLCAzKSwNCiAgTGFfTW9uamEgPSBjKE5BLCBOQSwgTkEsIE5BKQ0KKQ0Kcm93bmFtZXMobW92aWVfcmF0aW5ncykgPC0gYygnRGF2aWRfSGVyZWRpYScsICdOYXllbGlfUGXDsWEnLCAnS2FybGFfU8OhbmNoZXonLCAnWW8nKQ0KbW92aWVfcmF0aW5ncw0KYGBgDQoNCkFob3JhIGhhY2Vtb3MgZWwgcHJvY2VzbyBkZSBtYXRyaWNlcw0KYGBge3J9DQpjb3NpbmVfc2ltaWxhcml0eSA8LSBmdW5jdGlvbih2ZWNfMSwgdmVjXzIpIHsNCiAgdmVjX2xlbiA8LSBsZW5ndGgodmVjXzEpDQogIA0KICAjIE5BIHZhbHVlcyBhcmUgcmVwbGFjZWQgd2l0aCAwDQogIHZlY18xW2lzLm5hKHZlY18xKV0gPC0gMA0KICB2ZWNfMltpcy5uYSh2ZWNfMildIDwtIDANCiAgDQogICMgQ29tcHV0aW5nIHRoZSBkZW5vbWluYXRvcg0KICB2ZWNfMV9kZW5vbSA8LSBzcXJ0KHN1bSh2ZWNfMV4yKSkNCiAgdmVjXzJfZGVub20gPC0gc3FydChzdW0odmVjXzJeMikpDQogIGRlbm9taW5hdG9yIDwtIHZlY18xX2Rlbm9tICogdmVjXzJfZGVub20NCiAgDQogICMgQ29tcHV0aW5nIHRoZSBudW1lcmF0b3INCiAgdGliID0gdGliYmxlKHZlY18xID0gdmVjXzEsIHZlY18yID0gdmVjXzIpDQogIHRpYiA8LSB0aWIgJT4lIG11dGF0ZShwcm9kdWN0cyA9IHZlY18xICogdmVjXzIpDQogIG51bWVyYXRvciA8LSBzdW0odGliJHByb2R1Y3RzKQ0KICANCiAgIyBSZXR1cm4gdGhlIGNvc2luZSBzaW1pbGFyaXR5DQogIHJldHVybiAobnVtZXJhdG9yIC8gZGVub21pbmF0b3IpDQp9DQpgYGANCg0KDQpgYGB7cn0NCiMgT2J0ZW5lbW9zIGxvcyB2ZWN0b3JlcyBkZSBjYWRhIGFsdW1ubw0KWW8gPC0gYXMubnVtZXJpYyhhcy52ZWN0b3IobW92aWVfcmF0aW5nc1snWW8nLF0pKQ0KDQpEYXZpZF9IZXJlZGlhIDwtIGFzLm51bWVyaWMoYXMudmVjdG9yKG1vdmllX3JhdGluZ3NbJ0RhdmlkX0hlcmVkaWEnLF0pKQ0KDQpOYXllbGlfUGXDsWEgPC0gYXMubnVtZXJpYyhhcy52ZWN0b3IobW92aWVfcmF0aW5nc1snTmF5ZWxpX1Blw7FhJyxdKSkNCg0KS2FybGFfU8OhbmNoZXogPC0gYXMubnVtZXJpYyhhcy52ZWN0b3IobW92aWVfcmF0aW5nc1snS2FybGFfU8OhbmNoZXonLF0pKQ0KDQoNCiMgT2J0ZW5lbW9zICJkaXN0YW5jaWEiIHVzYW5kbyBzaW1pbGl0dWQgcG9yIGNvbnNlbm8NCnNpbWlsYXJpdGllcyA8LSBkYXRhLmZyYW1lKA0KICBjb3NpbmVfc2ltaWxhcml0eSA9IGMoY29zaW5lX3NpbWlsYXJpdHkoWW8sIERhdmlkX0hlcmVkaWEpLCBjb3NpbmVfc2ltaWxhcml0eShZbywgTmF5ZWxpX1Blw7FhKSwgY29zaW5lX3NpbWlsYXJpdHkoWW8sIEthcmxhX1PDoW5jaGV6KSkNCikNCg0Kcm93bmFtZXMoc2ltaWxhcml0aWVzKSA8LSBjKCdEYXZpZF9IZXJlZGlhJywgJ05heWVsaV9QZcOxYScsICdLYXJsYV9Tw6FuY2hleicpDQoNCnNpbWlsYXJpdGllcw0KYGBgDQoNCmBgYHtyfQ0KIyBDcmVhbW9zIHVuYSBmdW5jacOzbiBwYXJhIG9idGVuZXIgdW4gcHJvbWVkaW8gcG9uZGVyYWRvIGVuIGJhc2UgYSBsb3MgYWx1bW5vcw0KbW92aWVfcmF0aW5nX3dlaWdodGVkX2F2ZXJhZ2UgPC0gZnVuY3Rpb24obW92aWUsIGZyaWVuZHMpIHsNCiAgZGVub21pbmF0b3IgPC0gMA0KICBudW1lcmF0b3IgPC0gMA0KICBmb3IgKGZyaWVuZCBpbiBmcmllbmRzKSB7DQogICAgZnJpZW5kX3NpbWlsYXJpdHkgPC0gc2ltaWxhcml0aWVzW2ZyaWVuZCxdWzFdDQogICAgZnJpZW5kX3JhdGluZyA8LSBtb3ZpZV9yYXRpbmdzW2ZyaWVuZCwgbW92aWVdWzFdDQogICAgDQogICAgIyBUb21hcmVtb3MgZWwgcHJvbWVkaW8gcG9uZGVyYWRvIGVuIGN1ZW50YSBzb2xvIHBhcmEgcGVsw61jdWxhcyBjb24gY2FsaWZpY2FjacOzbg0KICAgIGlmIChpcy5uYShmcmllbmRfcmF0aW5nKSkgbmV4dA0KICAgIA0KICAgIGRlbm9taW5hdG9yIDwtIGRlbm9taW5hdG9yICsgZnJpZW5kX3NpbWlsYXJpdHkNCiAgICBudW1lcmF0b3IgPC0gbnVtZXJhdG9yICsgKGZyaWVuZF9zaW1pbGFyaXR5ICogZnJpZW5kX3JhdGluZykNCiAgfQ0KICANCiAgcmV0dXJuIChudW1lcmF0b3IgLyBkZW5vbWluYXRvcikNCn0NCmBgYA0KDQoNClVzYW1vcyBsYSBmdW5jacOzbiBjcmVhZGEgY29uIGFudGVyaW9yaWRhZCBwYXJhIHByZWRlY2lyICJZbyIgZW4gYmFzZSBhIGxvcyAzIHVzdWFyaW9zIHBhcmEgMyBwZWzDrWN1bGFzDQpgYGB7cn0NCmZyaWVuZF9uYW1lcyA8LSBjKCdEYXZpZF9IZXJlZGlhJywgJ05heWVsaV9QZcOxYScsICdLYXJsYV9Tw6FuY2hleicpDQpuZXdfbW92aWVzIDwtIGMoJ0VucmVkYWRvcycsICdUb3lfU3RvcnlfMycsICdVcCcpDQpuZXdfbW92aWVfcHJlZGljdGVkX3JhdGluZ3MgPC0gdGliYmxlKCkNCmZvciAobiBpbiBuZXdfbW92aWVzKSB7DQogIHByZWRpY3RlZF9yYXRpbmcgPC0gbW92aWVfcmF0aW5nX3dlaWdodGVkX2F2ZXJhZ2UobiwgZnJpZW5kX25hbWVzKQ0KICBwcmVkaWN0aW9uX3RpYmJsZSA8LSB0aWJibGUobW92aWUgPSBuLCBwcmVkaWN0ZWRfcmF0aW5nID0gcHJlZGljdGVkX3JhdGluZykNCiAgbmV3X21vdmllX3ByZWRpY3RlZF9yYXRpbmdzIDwtIGJpbmRfcm93cyhuZXdfbW92aWVfcHJlZGljdGVkX3JhdGluZ3MsIHByZWRpY3Rpb25fdGliYmxlKQ0KfQ0KbmV3X21vdmllX3ByZWRpY3RlZF9yYXRpbmdzDQpgYGANCiJVcCIgZXMgbGEgcGVsw61jdWxhIGNvbiBjYWxpZmljYWNpw7NuIG3DoXMgYWx0YSBwb3IgbG8gdGFudG8gZW4gZWwgc2lzdGVtYSBkZSByZWNvbWVuZGFjacOzbiBzZXLDrWEgbGEgcHJpbWVyYSBlbiBhcGFyZWNlcg0KDQoNCg0K