Estrellas realineadas: mejorando el sistema de calificación de IMDb
Publicado: 2022-03-11Los espectadores de películas a veces usan clasificaciones para seleccionar qué ver. Una vez que hice esto yo mismo, noté que muchas de las películas mejor clasificadas pertenecían al mismo género: drama. Esto me hizo pensar que el ranking podría tener algún tipo de sesgo de género.
Estaba en uno de los sitios más populares para los amantes del cine, IMDb, que cubre películas de todo el mundo y de cualquier año. Su famoso ranking se basa en una gran colección de reseñas. Para este análisis de datos de IMDb, decidí descargar toda la información disponible allí para analizarla e intentar crear una clasificación nueva y refinada que considerara una gama más amplia de criterios.
El sistema de calificación de IMDb: filtrado de datos de IMDb
Pude descargar información de 242.528 películas estrenadas entre 1970 y 2019 inclusive. La información que me dio IMDb para cada uno fue: Rank , Title , ID , Year , Certificate , Rating , Votes , Metascore , Synopsis , Tiempo de Runtime , Genre , Gross y Año de SearchYear .
Para tener suficiente información para analizar, necesitaba un número mínimo de reseñas por película, así que lo primero que hice fue filtrar las películas con menos de 500 reseñas. Esto dio como resultado un conjunto de 33.296 películas, y en la siguiente tabla, pudimos ver un análisis resumido de sus campos:
| Campo | Escribe | Recuento nulo | Significar | Mediana |
|---|---|---|---|---|
| Rango | Factor | 0 | ||
| Título | Factor | 0 | ||
| IDENTIFICACIÓN | Factor | 0 | ||
| Año | En t | 0 | 2003 | 2006 |
| Certificado | Factor | 17587 | ||
| Clasificación | En t | 0 | 6.1 | 6.3 |
| Votos | En t | 0 | 21040 | 2017 |
| Metascore | En t | 22350 | 55.3 | 56 |
| Sinopsis | Factor | 0 | ||
| tiempo de ejecución | En t | 132 | 104.9 | 100 |
| Género | Factor | 0 | ||
| Bruto | Factor | 21415 | ||
| Año de búsqueda | En t | 0 | 2003 | 2006 |
Nota: En R, Factor se refiere a cadenas. Rank y Gross son así en el conjunto de datos original de IMDb debido a que tienen, por ejemplo, miles de separadores.
Antes de comenzar a refinar la puntuación, tuve que analizar más a fondo este conjunto de datos. Para empezar, los campos Certificate , Metascore y Gross tenían más del 50 % de valores nulos, por lo que no son útiles. El Rank depende intrínsecamente del Rating (la variable a refinar), por lo tanto, no contiene ninguna información útil. Lo mismo ocurre con el ID , ya que es un identificador único para cada película.
Finalmente, Title y Synopsis son campos de texto cortos. Podría ser posible usarlos a través de alguna técnica de PNL, pero debido a que es una cantidad limitada de texto, decidí no tomarlos en cuenta para esta tarea.
Después de este primer filtro, me quedé con Genre , Rating , Year , Votes , SearchYear y Runtime . En el campo Genre , había más de un género por película, separados por comas. Entonces, para capturar el efecto aditivo de tener muchos géneros, lo transformé usando una codificación one-hot. Esto dio como resultado 22 nuevos campos booleanos, uno para cada género, con un valor de 1 si la película tenía este género o 0 en caso contrario.
Análisis de datos de IMDb
Para ver las correlaciones entre variables, calculé la matriz de correlación.
Aquí, un valor cercano a 1 representa una fuerte correlación positiva y valores cercanos a -1 una fuerte correlación negativa. Por este gráfico, hice muchas observaciones:
-
YearySearchYearestán absolutamente correlacionados. Esto significa que probablemente tengan los mismos valores y que tener ambos es lo mismo que tener solo uno, así que mantuve soloYear. - Algunos campos esperaban correlaciones positivas, tales como:
-
MusicconMusical -
ActionconAdventure -
AnimationconAdventure
-
- Lo mismo para las correlaciones negativas:
-
DramacontraHorror -
ComedycontraHorror -
HorrorcontraRomance
-
- Relacionado con la variable clave (
Rating) noté:- Tiene una correlación positiva e importante con
RuntimeyDrama. - Tiene una menor correlación con
Votes,BiographyeHistory. - Tiene una correlación negativa considerablemente con
Horrory una negativa menor conThriller,Action,Sci-FiyYear. - No tiene otras correlaciones significativas.
- Tiene una correlación positiva e importante con
Parecía ser que los dramas largos estaban bien calificados, mientras que las películas de terror cortas no. En mi opinión, no tenía los datos para verificarlo, no se correlacionaba con el tipo de películas que generan más ganancias, como las películas de Marvel o Pixar.
Puede ser que las personas que votan en este sitio no sean los mejores representantes del criterio general de personas. Tiene sentido porque aquellos que se toman el tiempo de enviar reseñas en el sitio son probablemente algún tipo de críticos de cine con un criterio más específico. De todos modos, mi objetivo era eliminar el efecto de las características comunes de las películas, así que traté de eliminar este sesgo en el proceso.
Distribución de géneros en el sistema de calificación de IMDb
El siguiente paso fue analizar la distribución de cada género sobre el rating. Para hacer eso, creé un nuevo campo llamado Principal_Genre basado en el primer género que apareció en el campo Genre original. Para visualizar esto, hice un gráfico de violín.
Una vez más, pude ver que Drama se correlaciona con calificaciones altas y Horror con calificaciones más bajas. Sin embargo, este gráfico también reveló otros géneros con buenas puntuaciones: Biography y Animation . El hecho de que sus correlaciones no aparecieran en la matriz anterior probablemente se debió a que había muy pocas películas con estos géneros. A continuación, creé un gráfico de barras de frecuencia por género.
Efectivamente, Biography y Animation tuvieron muy pocas películas, al igual que Sport y Adult . Por esta razón, no están muy bien correlacionados con Rating .
Otras variables en el sistema de calificación de IMDb
Después de eso, comencé a analizar las covariables continuas: Year , Votes y Runtime . En el diagrama de dispersión, puede ver la relación entre Rating y Year .
Como vimos anteriormente, el Year parecía tener una correlación negativa con la Rating : a medida que aumenta el año, la variación de la calificación también aumenta, alcanzando valores más negativos en las películas más nuevas.
A continuación, hice el mismo gráfico para Votes .
Aquí, la correlación fue más clara: cuanto mayor sea el número de votos, mayor será la clasificación. Sin embargo, la mayoría de las películas no tuvieron tantos votos y, en este caso, la Rating tuvo una variación mayor.
Por último, observé la relación con Runtime .
Nuevamente, tenemos un patrón similar pero aún más fuerte: los tiempos de ejecución más altos significan calificaciones más altas, pero hubo muy pocos casos de tiempos de ejecución altos.
Refinamientos del sistema de calificación de IMDb
Después de todo este análisis, tenía una mejor idea de los datos con los que estaba trabajando, así que decidí probar algunos modelos para predecir las calificaciones en función de estos campos. Mi idea era que la diferencia entre las predicciones de mi mejor modelo y la Rating real eliminaría la influencia de las características comunes y reflejaría las características particulares que hacen que una película sea mejor que otras.
Empecé con el modelo más simple, el lineal. Para evaluar qué modelo funcionó mejor, observé los errores de la raíz cuadrada media (RMSE) y la media absoluta (MAE). Son medidas estándar para este tipo de tareas. Además, están en la misma escala que la variable predicha, por lo que son fáciles de interpretar.
En este primer modelo, el RMSE fue de 1,03 y el MAE de 0,78. Pero los modelos lineales suponen independencia sobre los errores, mediana cero y varianza constante. Si esto es correcto, el gráfico de "valores residuales frente a valores predichos" debería verse como una nube sin estructura. Así que decidí graficarlo para corroborar eso.
Pude ver que hasta 7 en los valores predichos, tenía una forma no estructurada, pero después de este valor, tiene una forma de descenso lineal clara. En consecuencia, las suposiciones del modelo eran malas, y además, tuve un “desbordamiento” de los valores predichos porque en realidad, el Rating no puede ser más de 10.
En el anterior análisis de datos de IMDb, con una mayor cantidad de Votes , el Rating mejoró; sin embargo, esto sucedió en algunos casos y por una gran cantidad de votos. Esto podría causar distorsiones en el modelo y producir este desbordamiento de Rating . Para comprobar esto, evalué lo que sucedería con este mismo modelo, eliminando el campo Votes .

¡Esto fue mucho mejor! Tenía una forma más clara, no estructurada, sin valores previstos de desbordamiento. El campo Votes también depende de la actividad de los revisores y no es una característica de las películas, por lo que decidí descartar este campo también. Los errores después de eliminarlo fueron 1,06 en RMSE y 0,81 en MAE, un poco peor, pero no tanto, y preferí tener mejores suposiciones y selección de funciones que un rendimiento un poco mejor en mi conjunto de entrenamiento.
Análisis de datos de IMDb: ¿Qué tan bien funcionan otros modelos?
Lo siguiente que hice fue probar diferentes modelos para analizar cuál funcionaba mejor. Para cada modelo, utilicé la técnica de búsqueda aleatoria para optimizar los valores de los hiperparámetros y la validación cruzada de 5 veces para evitar el sesgo del modelo. En la siguiente tabla se muestran los errores estimados obtenidos:
| Modelo | RMSE | MAE |
|---|---|---|
| Red neuronal | 1.044596 | 0.795699 |
| impulsar | 1.046639 | 0.7971921 |
| Árbol de inferencia | 1.05704 | 0.8054783 |
| GAM | 1.0615108 | 0.8119555 |
| Modelo lineal | 1.066539 | 0.8152524 |
| Reg. lineal penalizado | 1.066607 | 0.8153331 |
| KNN | 1.066714 | 0.8123369 |
| Cresta bayesiana | 1.068995 | 0.8148692 |
| MVS | 1.073491 | 0.8092725 |
Como puede ver, todos los modelos funcionan de manera similar, así que usé algunos de ellos para analizar un poco más de datos. Quería saber la influencia de cada campo sobre la calificación. La forma más sencilla de hacerlo es observando los parámetros del modelo lineal. Pero para evitar distorsiones en ellos anteriormente, escalé los datos y luego volví a entrenar el modelo lineal. Los pesos eran como se muestra aquí.
En este gráfico, queda claro que dos de las variables más importantes son Horror y Drama , donde la primera tiene un impacto negativo en la calificación y la segunda positiva. También hay otros campos que tienen un impacto positivo, como Animation y Biography , mientras que Action , Sci-Fi y Year tienen un impacto negativo. Además, Principal_Genre no tiene un impacto considerable, por lo que es más importante qué géneros tiene una película que cuál es el principal.
Con el modelo aditivo generalizado (GAM), también pude ver un impacto más detallado para las variables continuas, que en este caso fue el Year .
Aquí tenemos algo más interesante. Si bien era cierto que para las películas recientes, la calificación tendía a ser más baja, el efecto no fue constante. Tiene el valor más bajo en 2010 y luego parece “recuperarse”. Sería intrigante descubrir qué sucedió después de ese año en la producción de películas que pudo haber producido este cambio.
El mejor modelo fueron las redes neuronales, que tenían el RMSE y el MAE más bajos, pero como puede ver, ningún modelo alcanzó un rendimiento perfecto. Pero esto no era una mala noticia en términos de mi objetivo. La información disponible me permite estimar algo bien el rendimiento, pero no es suficiente. Hay otra información que no pude obtener de IMDb que hace que la Rating difiera de la puntuación esperada según el Genre , el tiempo de Runtime y el Year . Puede ser la actuación de un actor, guiones de películas, fotografía o muchas otras cosas.
Desde mi perspectiva, estas otras características son las que realmente importan al seleccionar qué ver. No me importa si una película dada es un drama, acción o ciencia ficción. Quiero que tenga algo especial, algo que me haga pasar un buen rato, me haga aprender algo, me haga reflexionar sobre la realidad, o simplemente me entretenga.
Así que creé una calificación nueva y refinada tomando la calificación de IMDb y restando la calificación predicha del mejor modelo. Al hacer esto, estaba eliminando el efecto de Genre , Tiempo de Runtime y Year y manteniendo esta otra información desconocida que es mucho más importante para mí.
Alternativa del sistema de calificación de IMDb: los resultados finales
Veamos ahora cuáles son las 10 mejores películas según mi nueva calificación versus la calificación real de IMDb:
IMDb
| Título | Género | Calificación de IMDb | Calificación refinada |
|---|---|---|---|
| Ko a tamo peva | Aventura, Comedia, Drama | 8.9 | 1,90 |
| dipu número 2 | Aventura,Familia | 8.9 | 3.14 |
| El señor de los anillos: El retorno del rey | Aventura,Drama,Fantasía | 8.9 | 2.67 |
| El señor de los anillos: La comunidad del anillo | Aventura,Drama,Fantasía | 8.8 | 2.55 |
| anbe sivam | Aventura, Comedia, Drama | 8.8 | 2.38 |
| Hababam Sinifi Tatilde | Aventura, Comedia, Drama | 8.7 | 1.66 |
| El señor de los anillos: Las dos torres | Aventura,Drama,Fantasía | 8.7 | 2.46 |
| Mudras llamando | Aventura,Drama,Romance | 8.7 | 2.34 |
| interesar | Aventura,Drama,Ciencia ficción | 8.6 | 2.83 |
| volver al futuro | Aventura, Comedia, Ciencia Ficción | 8.5 | 2.32 |
Mío
| Título | Género | Calificación de IMDb | Calificación refinada |
|---|---|---|---|
| dipu número 2 | Aventura,Familia | 8.9 | 3.14 |
| interesar | Aventura,Drama,Ciencia ficción | 8.6 | 2.83 |
| El señor de los anillos: El retorno del rey | Aventura,Drama,Fantasía | 8.9 | 2.67 |
| El señor de los anillos: La comunidad del anillo | Aventura,Drama,Fantasía | 8.8 | 2.55 |
| Kolah ghermezi va a pesar khale | Aventura,Comedia,Familia | 8.1 | 2.49 |
| El señor de los anillos: Las dos torres | Aventura,Drama,Fantasía | 8.7 | 2.46 |
| anbe sivam | Aventura, Comedia, Drama | 8.8 | 2.38 |
| Los caballeros de la mesa cuadrada | Aventura, Comedia, Fantasía | 8.2 | 2.35 |
| Mudras llamando | Aventura,Drama,Romance | 8.7 | 2.34 |
| volver al futuro | Aventura, Comedia, Ciencia Ficción | 8.5 | 2.32 |
Como podéis ver, el podio no cambió radicalmente. Esto era de esperar porque el RMSE no era tan alto, y aquí estamos viendo el tope. Veamos qué pasó con los 10 últimos:
IMDb
| Título | Género | Calificación de IMDb | Calificación refinada |
|---|---|---|---|
| Holnap tortent - Un bulvarfilm nagy | Comedia, Misterio | 1 | -4.86 |
| Cumali Ceber: Allah Seni Alsin | Comedia | 1 | -4.57 |
| Badang | Comedia,Fantasía | 1 | -4.74 |
| ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ Kosmiczna nominacja | Comedia | 1.1 | -4.52 |
| Americano orgulloso | Drama | 1.1 | -5.49 |
| Casacas marrones: guerra de independencia | Acción, ciencia ficción, guerra | 1.1 | -3.71 |
| El fin de semana que vive | Comedia, Terror, Misterio | 1.2 | -4.53 |
| Bolívar: el héroe | Animación,Biografía | 1.2 | -5.34 |
| El ascenso del murciélago negro | Acción, ciencia ficción | 1.2 | -3.65 |
| hatsukoi | Drama | 1.2 | -5.38 |
Mío
| Título | Género | Calificación de IMDb | Calificación refinada |
|---|---|---|---|
| Americano orgulloso | Drama | 1.1 | -5.49 |
| Santa y el conejito de los helados | Familia,Fantasía | 1.3 | -5.42 |
| hatsukoi | Drama | 1.2 | -5.38 |
| reyes | Biografía,Drama | 1.5 | -5.35 |
| Bolívar: el héroe | Animación,Biografía | 1.2 | -5.34 |
| Hanum y Rangga: Fe y la ciudad | Drama,Romance | 1.2 | -5.28 |
| Después de la última temporada | Animación,Drama,Ciencia ficción | 1.7 | -5.27 |
| Barschel - Mord en Genf | Drama | 1.6 | -5.23 |
| Rasshu raifu | Drama | 1.5 | -5.08 |
| Kamifusen | Drama | 1.5 | -5.08 |
Aquí sucedió lo mismo, pero ahora podemos ver que aparecen más dramas en el caso refinado que en IMDb, lo que muestra que algunos dramas podrían estar sobrevalorados solo por ser dramas.
Tal vez el podio más interesante para ver son las 10 películas con la mayor diferencia entre el puntaje del sistema de clasificación de IMDb y el mío refinado. Estas películas son las que tienen más peso en sus características desconocidas y hacen que la película sea mucho mejor (o peor) de lo esperado por sus características conocidas.
| Título | Calificación de IMDb | Calificación refinada | Diferencia |
|---|---|---|---|
| Kanashimi no beradonna | 7.4 | -0.71 | 8.11 |
| Jesucristo superestrella | 7.4 | -0.69 | 8.09 |
| Pink Floyd la pared | 8.1 | 0.03 | 8.06 |
| Tenshi no tamago | 7.6 | -0.42 | 8.02 |
| Jibon Theke Neya | 9.4 | 1.52 | 7.87 |
| el baile | 7.8 | 0.00 | 7.80 |
| Santa y los tres osos | 7.1 | -0.70 | 7.80 |
| La alegre historia de Scrooge | 7.5 | -0.24 | 7.74 |
| piel de asno | 7 | -0.74 | 7.74 |
| 1776 | 7.6 | -0.11 | 7.71 |
Si yo fuera un director de cine y tuviera que producir una nueva película, después de hacer todo este análisis de datos de IMDb, podría tener una mejor idea de qué tipo de película hacer para tener una mejor clasificación en IMDb. Sería un largo drama biográfico animado que sería una nueva versión de una película antigua, por ejemplo, Amadeus. Probablemente esto aseguraría una buena clasificación en IMDb, pero no estoy seguro de las ganancias...
¿Qué opinas de las películas que se clasifican en esta nueva medida? ¿Te gustan? ¿O prefieres los originales? ¡Déjame saber abajo en los comentarios!
