Analisando meus dados do Netflix

Introdução

Um dia vi uma publicação no LinkedIn que havia analisado dados do Spotify e descoberto diversos insights interessantes. Com essa ideia em mente, achei interessante baixar meus dados do Netflix e analisá-los também. Não sou um grande usuário de streaming audiovisual, mas surgiu uma grande curiosidade em saber o que eu havia consumido, até mesmo para confirmar essa hipótese.

Inicialmente, escrevi algumas perguntas de negócios curiosas a respeito de como eu havia consumido os serviços da Netflix. Com elas em mãos, determinei quais seriam minhas fontes de dados para respondê-las, depois um estudo da compreensão desses dados e de como integrá-los.

Com o entendimento de negócios mais consolidado, parti para a escolha das ferramentas, ou seja, quais seriam mais adequadas para resolver meu problema eficazmente. Por fim, preparei e integrei os dados para aplicá-los em uma ferramenta de visualização de dados, e a partir disso, responder as perguntas de negócios.

Abordando o problema

No início do projeto, levantei algumas questões curiosas a respeito de como eu havia consumido meus serviços da Netflix. Após algum tempo rascunhando e compilando, cheguei no seguinte problema de negócio:

  • Em que ano comecei a utilizar os serviços do Netflix? Houve um aumento em seu uso ao longo dos anos?
  • Quais meses do ano eu assisti mais títulos? Isso difere a cada ano?
  • Quais são os títulos assistidos?
  • Quais são os 3 títulos mais assistidos em cada ano e de todo o período?
  • Quais são os 3 gêneros mais assistidos em cada ano e de todo o período?
  • Os 3 títulos mais assistidos são bem rankeados (avaliados)?
  • Qual é o tempo total assistido de títulos em horas?
  • Qual é o tempo total assistido em cada ano?
  • O tempo total assistido difere por gênero?
  • Há alguma série que não terminei de ver?

Solução

1. Coleta de dados (Netflix e IMDb)

Para responder às minhas perguntas, e consequentemente, resolver o meu problema, coletei os dados do meu histórico de streaming do Netflix e um banco de dados aberto de avaliações e registros de filmes do IMDb.

2. Entendendo os dados (Netflix e IMDb)

Os dados do histórico de streaming do Netflix continham dois atributos:

  • Title (título assistido com, eventualmente, o nome do episódio)
  • Date (data em que o título foi assistido)

O IMDb disponibiliza diversos conjuntos de dados em sua página de seu grande banco de filmes. Para atender ao meu problema, utilizei apenas:

  • title.akas.tsv.gz (dados de características do título ou episódio, como título, região, idioma...)
  • title.basics.tsv.gz (dados básicos do título ou episódio, como tipo, gênero, tempo...)
  • title.episode.tsv.gz (dados dos episódios das séries)
  • title.ratings.tsv.gz (dados de avaliações de títulos e episódios)

3. Escolha das ferramentas

Escolhi a linguagem Python utilizando Jupyter Notebook no ambiente em nuvem do Colaboratory do Google, pois permitem que eu importe, trate e manipule os dados de forma simples e integrada, além de possuir familiaridade com a linguagem.

Como adicional, resolvi utilizar o Apache Spark (PySpark) para otimizar o processamento dos dados do IMDb. Visto que demorava muito tempo realizando cargas dos milhões de registros nos conjuntos de dados.

Por fim, escolhi o Power BI da Microsoft como ferramenta de visualização de dados. Nele, aproveitei a facilidade de uma ferramenta de Self-Service BI para responder as perguntas de negócios.

4. Processo de integração dos dados

Com o entendimento de negócio definido e o ambiente configurado, chegou a hora de integrar os dados de streaming do Netflix com os do IMDb. Destaco que foi um processo cíclico, em que eu integrava, mas voltava para entender os dados e resolver alguns pequenos problemas na integração.

    4.1 Preparação dos dados de Streaming

Primeiramente, minha estratégia foi separar o título do nome do episódio nos dados de streaming para associar esse título na base de dados do IMDb, e assim, eventualmente, associar uma chave (ID) do IMDb nos meu dados.

No entanto, percebi que os títulos dos meus dados de streaming estavam no idioma local (Português), o que poderia dificultar a associação nos dados do IMDb. Com isso, mapeei os títulos para os títulos originais de seu idioma para facilitar e garantir a busca.

    4.2 Associação dos IDs de títulos

Depois disso, consegui realizar a associação de IDs do IMDb sem nenhuma falta. Contudo, poderia haver de algum ID, na verdade, não corresponder exatamente para aquele título, mas com um parecido.

    4.3 Associação dos IDs de episódios

Com os IDs dos títulos associados, notei que também precisava associar os IDs dos episódios para garantir que não houvesse perda de informação. Assim, imputei manualmente o número do episódio correspondente, visto que não havia essa informação nos dados de streaming.

Antes de associar os IDs dos episódios, notei que para isso o ID do título precisava corresponder ao exato título que continha episódios dos meus dados. Deste modo, realizei a troca manual desses IDs para os que eram de fato que eu havia assistido.

Com a congruência dos dados melhorada, realizei então a associação dos IDs dos episódios para todos os títulos. Os que eram filmes, ou seja, sem episódios, ficavam sem um ID de episódio associado.

    4.4 Associação de um ID único nos dados de streaming

Por fim, notei a necessidade de associar um ID único nos dados de streaming, ao invés de separar por título e episódio. Com isso, rodei um algoritmo para apenas manter o ID do episódio para os que haviam esse ID, caso contrário, ou seja, os que eram filmes, mantinham o ID do título.

A partir desse processo, e alguns outros de limpeza de dados, restou apenas a data e o ID associado a um registro no IMDb nos meu dados de streaming.

    4.5 Preparação dos outros dados do IMDb

Após, a integração dos dados do Netflix e IMDb, apenas exportei um subconjunto de interesse dos outros conjuntos de dados do IMDb a fim de associá-los ao dados de streaming que integrei e importá-los na ferramenta de visualização.

5. Visualização dos dados

Com os dados pré-processados, os importei no Power BI para um tratamento mais refinado a fim de utilizar aquilo de interesse para resolver o problema e, por fim, criar as visualizações.

Com os dados importados, foi necessário criar os relacionamentos entre os conjuntos de dados, visto que meu processo foi de integração desses dados.

Por último, após o tratamento e relacionamento dos dados, construi uma visualização que atendesse ao máximo às perguntas de negócios.

6. Insights

  • Após o ano de 2019, em que comecei a usar Netflix, o total assistido em horas foi diminuindo.
  • Houve um maior consumo no começo e fim dos anos, provavelmente por ser período de férias.
  • As séries Um Maluco no Pedaço, Três é Demais e Sangatsu no Lion foram as que mais tempo passei assistindo, respectivamente. Similarmente, os gêneros de comédia, drama e desenho.
  • A avaliação geral dos três títulos mais assistidos são bem avaliados, variando de 7.15 a 8.35 pontos.
  • Foram 256 horas totais assistindo filmes e séries na Netflix.
  • O total assistido ao longo dos anos foi de 125, 98, 32 e 2 horas, respectivamente. Uma tendência de queda no consumo, confirmando minha hipótese de que ter passado menos tempo assistindo streaming, uma vez que só assisto na Netflix.
  • O tempo total assistido dos gêneros de comédia e drama, cada um superou 100 horas, enquanto desenho ficou em 90 horas e o restante dos gêneros abaixo de 40 horas assistidas cada. Ou seja, minha preferência é de assistir títulos de comédia e drama que por ventura sejam desenho ou anime.
  • Infelizmente, não foi possível estabelecer quais séries não haviam sido concluídas neste projeto, ou seja, todos os episódios assistidos.

Apesar de não conseguir responder a uma pergunta, fiquei bastante satisfeito com o resultado e descobri insights muito interessantes, como, por exemplo, o gênero de comédia foi o que mais busquei assistir. Isso reflete minha necessidade ao usar Netflix como uma plataforma, principalmente, de entretenimento e descontração.

Sendo assim, considero que o problema de explorar e descobrir minhas tendências nos dados de streaming do Netflix a partir das perguntas de negócios foi solucionado.

7. Dificuldades

As dificuldades foram mais relacionadas à forma como eu integraria os dados de streaming do Netflix com os dados do IMDb. Minha ideia inicial era apenas associar o ID do título, mas depois percebi que precisaria também associar um ID dos episódios. 

Contudo, ainda foi necessário estipular um ID único de cada registro do streaming aos dados do IMDb. Visto que seria um relacionamento de 1 para muitos ao invés de muitos para muitos, o que permitiria a criação apurada das visualização.

Por último, há um problema de design dessa integração nos relacionamentos em que tive que criar um conjunto de dados separado apenas para os títulos dos episódios. Assim, as informações dos títulos dos episódios ficam separadas dos episódios e dos filmes em si.

Em relação ao dashboard, confesso que não ficou visualmente atrativo, pois queria ser fiel à temática do problema. Sobretudo, com relação ao contraste e utilização das cores que estão muito fortes. Contudo, tentarei testar e melhorar essa habilidade em futuras versões.

Referências

  • https://www.linkedin.com/posts/adautobraz_spotify-unwrapped-parte-i-ugcPost-6889222786267656192-xt6w?utm_source=linkedin_share&utm_medium=member_desktop_web
  • https://www.imdb.com/interfaces/ 
  • https://spark.apache.org/docs/latest/

Fique à vontade para deixar nos comentários opiniões ou sugestões de melhoria.

Comentários

Postagens mais visitadas deste blog

Dados Estruturados, Semi-Estruturados e Desestruturados

Normalização e Desnormalização de Banco de Dados

Por que usar R?

Tipos de Análise de Dados

Dashboard de Vendas com Power BI - RoupasParaTodos