Article image

JP

Joao Pinto30/06/2023 17:56
Compartilhe

A DANÇA DOS DADOS: REVELANDO SEGREDOS OCULTOS COM PYTHON

    "E aqueles que foram vistos dançando foram julgados insanos por aqueles que não podiam escutar a música". (Friedrich Nietzsche).


    Com o acúmulo de dados em nossa sociedade cada vez mais conectada, uma nova área do conhecimento científico surgiu: a ciência de dados. Esse gigantesco acúmulo de dados requer um tratamento específico par que possa ser interpretado e revelados detalhes que até então permaneciam ocultos.


    A visualização de dados é o resultado de todo o tratamento feito a partir de diversas bibliotecas, tais como a Matplotlib, Seaborn, Plotly, entre outros, com a linguagem Python, o que indicia a importância dessa linguagem para a ciência de dados e sua aplicação para a correta visualização de dados.


    Neste pequeno texto, pretendemos abordar a importância da ciência de dados para a sociedade contemporânea, bem como o papel singular da visualização de dados dentro dessa área do conhecimento para a correta interpretação dos dados e como isso auxilia as corporações a tomar as melhores decisões.


    Além disso, discutiremos também a importância da linguagem de programação Python e de algumas de suas bibliotecas que fornecem todo o ferramental necessário para construir os diversos tipos de visualização de dados para desvelar os segredos ocultos dos dados.


    INTRODUÇÃO


    A ciência de dados é uma área interdisciplinar relativamente nova, cujo desenvolvimento se deu principalmente a partir da década de 1970, quando o termo foi utilizado como sinônimo para ciência da computação.


    Todavia, o que se entende hoje por ciência de dados remonta ao início do século XXI, quando em 2001, W. S. Cleveland defendeu que a Estatística se expandisse para outras áreas técnicas. Então, essa expansão resultou em um campo diferente, que desde então passou a ser conhecido como ciência de dados.


    1. QUE A CENÁRIO SE MONTE: A CIÊNCIA DE DADOS


    Em linhas gerais, podemos dizer que a ciência de dados se constitui como uma combinação:


    • Matemática;
    • Estatística;
    • Programação Especializada;
    • Analítica Avançada;
    • Inteligência Artificial (IA);
    • Machine Learning;


    image

    (Fonte).


    A combinação dessas áreas tem como objetivo revelar os segredos escondidos dos dados de uma determinada organização. E A partir dessa revelação, todo o processo de tomada de decisão e planejamento estratégico de uma dada companhia pode ser programado e efetivado visando objetivos específicos.


    Considerando o rápido crescente volume de fontes de dados e, também, dos próprios dados, a ciência de dados tem se transformado em uma das áreas do conhecimento com maior crescimento nas últimas décadas.


    Todo esse volume de dados precisa ser tratado e visualizado, o que implica dizer que a visualização de dados é uma subárea-chave da ciência de dados, por isso, a importância da linguagem de programação Python e de suas bibliotecas voltadas à ciência de dados.


    image

    (Fonte).


    As organizações possuem uma coleção gigantesca de dados e precisam que esses dados sejam tratados, analisados e mostrados para que as suas decisões estratégicas possam ser tomadas ou reformuladas, objetivando sempre o seu sucesso dentro de um determinado nicho.


    2. QUE OS DADOS DANCEM: A VISUALIZAÇÃO DE DADOS


    Conforme já afirmado acima, a visualização de dados tem uma idiossincrática importância dentro da ciência de dados, pois se trata da forma como os dados são apresentados tanto para as organizações quanto para os indivíduos de uma forma geral.


    image

    (Fonte)

    A representação visual desses dados é o que podemos comparar com a dança dos dados, através da qual, diversas informações são repassadas e comunicadas, revelando assim, os segredos dos dados.


    Além disso, isso permite demonstrar a relação complexa dos e entre os dados, bem como engatilhar insights que podem ser utilizados para a tomada de decisão e/ou planejamento estratégico.


    É nesse sentido que a visualização de dados desempenha um papel capital para a ciência de dados, pois ilustra intuitiva e graficamente informações quantitativas e complexas.


    E a transposição desses dados para elementos visuais, tais como mapas, gráficos, tabelas, plotagens, infográficos, etc., auxilia na compreensão e interpretação desses dados, além de revelar as tendências e os insights escondidos. A dança dos dados revela o que os dados escondem.


    É importante salientar ainda que essa representação gráfica dos dados fornece aos cientistas de dados uma forma melhor de comunicar suas descobertas e seus resultados para o público geral. E, no contexto de mídias sociais, tais dados podem ser apresentados na forma de animações em vídeos curtos.

    Para a própria organização, por exemplo, a visualização dos dados pode permitir a identificação precisa de anomalias, falhas e tendências, para que seus gestores possam ter uma visão panorâmica, rápida e abrangente do tema.


    E combinando isso com técnicas mais avançadas de análise estatística e machine learning, isso pode se transformar em uma poderosa ferramenta de extração de informações valiosas, que mune os cientistas de dados e gestores a tomarem as melhores decisões se baseando nas evidências encontradas.

    image

    (Fonte).

    Historicamente, o ser-humano sempre se lançou de ferramentas e instrumentos para visualizar dados de uma forma mais eficiente. Os dashboards, por exemplo, são um tipo bem comum utilizado na visualização de dados, principalmente quando estamos interessados em tempo-real.


    Além disso, os dashboards são muito úteis quando queremos visualizar dados de diversas fontes e esperamos que sua a visibilidade provoque insights para os cientistas de dados ou para os gestores da organização. Assim, há várias técnicas de visualização que podem ser utilizadas nos dashboards.


    A escolha de cada técnica, no entanto, depende de uma série de fatores considerados pelas equipes que trabalham com dados, já que cada tipo de visualização pode revelar indícios característicos dos tipos de dados trabalhados.

    Por exemplo, para verificar, no momento, no Twitter os topic trends, a nuvem de palavra pode ser o mais adequado, considerando que o tamanho das palavras na nuvem é proporcional à quantidade de menções, isto é, quanto maior a palavra, maior é o número de menções na rede social.

    image

    (Fonte).

    Os tipos mais comuns de técnicas de visualização que podem ser empregadas nos dashboards são:

    • Histogramas;
    • Mapas de Calor;
    • Tabelas;
    • Gráficos Pizza;
    • Gráficos de Barras;
    • Gráficos de Linhas;
    • Gráficos de Área;
    • Gráficos de Dispersão;
    • Mapas de Árvores;

    image

    (Fonte).

    Uma vez que tenhamos escolhidos as melhores técnicas para representar nossos dados, podemos utilizar todo o instrumental da linguagem de programa Python e de suas principais bibliotecas voltadas para a ciência de dados para que os dados dancem e nos revelem as tendências ocultas.

    3. QUE A SINFONIA TOQUE: PYTHON E AS BIBLIOTECAS DE VISUALIZAÇÃO DE DADOS

    Se temos o cenário pronto e os dados dançantes, só nos falta a sinfonia que permite a dança dos dados. A linguagem Python é a grande responsável por orquestrar a sinfonia para que os dados dancem e desvelem seus segredos para que os homens possam interpretar e, assim, tomar as decisões necessárias.


    E, para fazer isso, Python precisa de colaboração. É quando entra as seguintes bibliotecas:

    • Matplotlib: é uma biblioteca muito utilizada para gerar dados estáticos, sendo base para diversas outras bibliotecas de visualização;
    • Seaborn: tendo como base a biblioteca anterior, esta biblioteca permite criar melhores gráficos estatísticos, prezando pela atratividade e informatividade;
    • Plotly: é uma biblioteca para gráficos interativos, como de dispersão, barras, além de permitir a criação de visualizações interativas paras as páginas web;
    • Pandas: é uma biblioteca muito utilizada para manipulação e análise de dados, mas permite recursos de visualização de dados simplistas;
    • Dash: é uma biblioteca que permite criar e manipular dashboards, sua base é a biblioteca Plotly, e esses dashboards podem implementados tanto localmente quando na web;

    image

    (Fonte).

    Para ilustrar o poder da visualização de dados e a sua importância para a ciência de dados, tomaremos como exemplo ilustrativo a seguinte tabela com dados fictícios sobre o desemprego nos países da América do Norte desde 1990 até 2030. Os dados podem ser apresentados assim:

    image

    (Fonte: autoria própria).

    Como podemos ver, a tabela de dados acima não é muito sugestiva para o leitor comum, que pode não gostar de ler os dados da forma como estar. Com a ajuda de Python e da biblioteca Plotly, podemos transformar a tabela acima em gráfico colorido que atraía a atenção do leitor interessado.

    Como o nosso exemplo é apenas ilustrativo, poderíamos organizar os dados da tabela acima da seguinte forma:

    # Definição os dados
    years = [1990, 1995, 2000, 2005, 2010, 2015, 2020, 2025, 2030]
    us_rates = [6.7, 5.5, 4.0, 5.1, 8.2, 5.0, 7.9, 6.8, 5.3]
    canada_rates = [7.2, 6.8, 6.0, 5.2, 7.5, 6.2, 8.1, 7.5, 6.5]
    mexico_rates = [4.8, 4.4, 3.7, 4.0, 5.5, 4.8, 6.3, 5.9, 4.5]
    

    Com os dados definidos na forma acima, nosso código em Python, pode criar uma figura para receber o gráfico e o layout desse gráfico. Cada função de nosso código executa uma função importante para o resultado final seja alcançado. Exploraremos melhor o que faz cada uma delas.


    A seguinte função:

    # Criação do gráfico de barra
    fig = go.Figure()
    
    fig.add_trace(go.Bar(
      x=years,
      y=us_rates,
      name='United States',
      marker_color='darkblue'
    ))
    
    fig.add_trace(go.Bar(
      x=years,
      y=canada_rates,
      name='Canada',
      marker_color='lightblue'
    ))
    
    fig.add_trace(go.Bar(
      x=years,
      y=mexico_rates,
      name='Mexico',
      marker_color='violet'
    ))
    

    cria o nosso gráfico a partir das informações encontradas na parte onde definimos nossos dados. Como o tipo de gráfico é de barras, a função acima especifica o eixo x com os anos, e o eixo y com a taxa de desemprego.


    Assim, cada barra, uma para cada país é criada, e seu tamanho decorre da taxa de desemprego de cada país dentro do intervalo temporal definido. Cada barra também recebe uma cor e é acrescida a legenda.


    Então a função seguinte customiza o layout:

    # Customização do layout
    fig.update_layout(
      title='Unemployment Rates in North America',
      xaxis=dict(title='Year'),
      yaxis=dict(title='Unemployment Rate (%)'),
      barmode='group',
      legend=dict(x=0.02, y=0.95)
    )
    

    ou seja, atualiza a propriedades do layout da figura, coloca o título do gráfico, as legendas para os eixos x e y, agrupa as barras segundo os anos (eixo x) e posiciona as legendas.


    Por fim, a função:

    # Exibição do gráfico
    fig.show()
    

    exibe o gráfico em um navegador web qualquer. E temos como resultado o seguinte gráfico:


    image

    (Fonte: autoria própria).


    Com o gráfico acima, podemos verificar que as informações contidas na tabela anterior podem ser visualizadas de uma forma mais dinâmica, atrativa e que desperte a atenção do leitor.


    Quando a imagem é visualizada em um navegador web, contamos ainda com algumas funcionalidades, como a exibição da legenda e do percentual quando o mouse é passado sobre uma barra.


    Os dados acima poderiam ser visualizados utilizadas outras técnicas de visualização, como um mapa, conforme apresentamos abaixo:

    image

    (Fonte: autoria própria).

    Neste caso, a visualização é estática e está fixada no ano de 2010. Todavia, com as bibliotecas adequadas, é possível fazer uma animação colorindo os países envolvidos de acordo com o percentual de desemprego ao longo da série temporal.

    A função para criar a visualização estática acima é a seguinte:

    import plotly.graph_objects as go
    
    # Definição dos dados
    countries = ['United States', 'Canada', 'Mexico']
    unemployment_rates_2010 = [8.2, 7.5, 5.5] 
    
    # Criação de um mapa coropético
    fig = go.Figure(data=go.Choropleth(
      locations=countries,
      z=unemployment_rates_2010,
      locationmode='country names',
      colorscale='Blues',
      colorbar=dict(title='Unemployment Rate (%)')
    )) 
    
    # Definição dos limites latitudinal e longitudinal da América do Norte
    lat_bounds = [5, 85]
    lon_bounds = [-170, -50]
    
    # Customização do layout para focar na América do Norte
    fig.update_geos(
      visible=True,
      resolution=110,
      showcountries=False,
      showcoastlines=True,
      projection_type='orthographic',
      lataxis_range=lat_bounds,
      lonaxis_range=lon_bounds
    )
    
    # Adição de um título para o mapa
    fig.update_layout(title='Unemployment Rates in North America - 2010')
    
    # Exibição do mapa
    fig.show()
    

    Acima, comentamos apenas dois exemplos de como visualizar dados em duas técnicas de visualização. Todavia, as técnicas escolhidas podem variar de acordo com as necessidades exigidas.


    Certamente, com a linguagem Python e uma rica bibliotecas focadas para a ciência de dados, as organizações e os indivíduos têm em mãos inúmeras possibilidades para representar os dados e extrair daí um leque de informações preciosas que podem alavancar o sucesso de uma determinada organização.


    É importante salientarmos também que se faça o planejamento adequado para que a visualização de dados possa revelar os segredos ocultos dos dados, e, a partir disso, tanto os cientistas quantos os gestores possam tomar as ações desejadas, visando o sucesso de cada área.


    Para isso, é preciso que a visualização de dados seja utilizada com cautela e que seja planejada com o intuito de garantir os insights para ver as falhas, as anomalias, as tendências a partir dos dados e com as informações verdadeiras. Por isso, a visualização de dados pode ser diferente.


    Em outras palavras, faz-se necessário ter o contexto de utilização das visualizações: se é para o público geral ou se é para o consumo da própria organização. Quando se é para consumo interno, as visualizações precisam ser as mais completas possíveis.


    Outro fator importante é correta escolha do visual, isto é, os layouts precisam ser escolhidos de acordo com os conjuntos de dados, por isso, a importância da estatística e da matemática, o que indicia que a ciência de dados é de fato uma combinação de diferentes áreas do conhecimento.


    4. CONCLUSÃO

    Em conclusão, podemos afirmar que a ciência de dados tem um importante papel na sociedade contemporânea, visto que estamos lidando com um volume imenso de dados gerado pela nossa sociedade cada vez mais conectada.


    Com esse volume astronômico de dados, a visualização de dados se configura como uma ferramenta essencial para esse campo, de modo que o seu emprego propicia a interpretação dos dados de forma clara e acessível. Além disso, pode rever os insights ocultos e ajudar na tomada de decisões nas organizações.


    Com Python, os cientistas de dados são capazes de explorar os segredos ocultos nos dados, e com a matemática e a estatística e de outras áreas, podem compreender melhor seus clientes, otimizar suas operações e desenvolver estratégias de marketing e tomar decisões a partir de informações atualizadas.


    No mundo orientado por dados, a ciência de dados e a visualização de dados são imprescindíveis para analisar e interpretar a enorme quantidade de dados já produzida e ainda em produção. Assim, o trabalho do cientista da computação é lidar com o desafio crescente de tratar e interpretar tais dados.

    BIBLIOGRAFIA CONSULTADA

    LEE, Giles. The Importance of Data Visualization in Data Science. (2016).

    WILKE, Claus, O. Data Visualization: A Practical Introduction. (2011).

    TUFTE, Edward R. The Visual Display of Quantitative Information. (2001).

    CAIRO, Alberto. Infographics: The Art and Science of Visualizing Information. (2013).

    CAO, Longbing (2017). Data Science: A Comprehensive Overview. ACM Computing Surveys. 50 (3): 43:1–43:42. doi:10.1145/3076253. ISSN 0360-0300. S2CID 207595944.

    GUPTA, Shanti (11 December 2015). "William S. Cleveland". Retrieved 2 April 2020.

    Compartilhe
    Comentários (0)