fcoclavero / machinelol

1 stars 0 forks source link

Simple recomendation system #24

Closed Vichoko closed 8 years ago

Vichoko commented 8 years ago

El sistema que recibe una lista de PlayerId, extrae la información de las Champion Masteries y Ranked Stats para hacer una recomendación esta casi listo.

Se logró:

  1. Hacer dos diccionarios de la forma {champid: {caracteristica: , ...}, ...} donde champid corresponden a las id de cada campeón existente. Y donde caracteristica es 'championPoints', "totalAssists", "totalDeathsPerSession", "totalSessionsWon", "totalChampionKills", "totalSessionsLost" (cada uno).

Un diccionario (meanDict) contiene el promedio de cada característica y el otro diccionario (totalDict) contiene la suma de cada característica para cada campeón sobre todos los usuarios de la lista de PlayerId.

El promedio de championPoints se calculó sobre todos los Players de la lista de Ids (i.e. los players sin championPoints es como si tuvieran 0). El promedio del resto de las características (Provenientes de ranked stats) se calcularon sobre los players que tienen partidas ranked con ese campeón.

Esto como meta-información de los scripts que se subirán más rato.

Vichoko commented 8 years ago

Planeo hacer 4 tipos de recomendaciones a priori:

  1. Ordenar por championPoints de mayor a menor y recomendar.
  2. Calcular KDA = (kills + assists) / deaths; ordenar de mayor a menor y recomendar.
  3. Calcular winRate = win / loses; ordenar de mayor a menor y recomendar.
  4. Construir artesanalmente una formula que pondere las caracteristicas y despues ordenar de mayor a menor los campeones según esta y recomendar.
Vichoko commented 8 years ago

Además se agregó una recomendación a través de colaborative filtering. Sistemas están funcionales y listos.