DS – Day #1: Será que Python presta mesmo?

Então…por enquanto, eu não posso me introduzir como um cientista de dados, consegui apenas 68% de AUC(área sob a curva ROC) em um problema de predição sobre internação de diabéticos mas estou tentando me tornar um!, para aumentar meus horizontes em programação e em análise de dados, resolvi estudar Python.

Primeiro, procurei por bons recursos, principalmente no site Quora, que por sinal possui uma das melhores comunidades de data science por ai, e ao pesquisar sobre, achei o livro “Python for Data Analysis”, que me pareceu muito bom e agora o estou utilizando para aprender.

“First things, First”!

Como eu não sei quase nada de Python ainda, procurei sobre como fazer um bom projeto e me indicaram o IPython, minha recomendação? O instale usando Anaconda, é uma forma bem simples de instalar e possui ótimos tutoriais e possui as principais bibliotecas que usarei neste post: MatplotLib e Pandas(e suas dependências, como Numpy, por exemplo).

Dataset!

O dataset que escolhi para análise foi o dataset disponibilizado pelo site consumidor.gov.br, que você pode baixar em:http://dados.gov.br/dataset/reclamacoes-do-consumidor-gov-br , que é a fonte oficial de dados do governo federal, contudo, ela está desatualizada, você pode encontrar alguns meses a mais no site do próprio consumidor.gov:https://www.consumidor.gov.br/pages/dadosabertos/externo/ .

O primeiro desafio que encontrei foi colocar os dados em algum objeto, o método de leitura “read_csv” parece ter um certo problema com formatos latinos, mas nada que a adição de um parâmetro “enconding= ‘latin-1’ ” não resolvesse, mesmo assim, foi um pouco chato comparado com outra ferramenta que utilizo, o R.

Explicando um pouco o processo da reclamação do Consumidor.gov: O consumidor registra uma reclamação com uma das empresas cadastradas contendo qual o tipo de problema, o que ele quer que a empresa faça, pode anexar arquivos sobre a situação, e a empresa tem em torno de 15 dias para atender o usuário, após isto, o usuário modifica ou não os status da reclamação(p/ “Resolvida”, “Não Resolvida”) e dá uma nota para o atendimento da empresa.

Segue um histograma da situação de junho de 2015, que foi o dataset que utilizei para aprender mais sobre como o site funciona, para mostrar como esta amostra avaliou as empresas:

Histograma das Notas

Percebe-se que boa parte dos usuários reagiu de forma bem binária, bem mais de 50% dos usuários deu 1 ou 5 como nota ao atendimento da empresa. Este gráfico foi bem tranquilo de fazer utilizando Python, contudo, tive de utilizar a classe chamada Counter para converter os números de String para Float, sendo que este erro foi ocasionado por eu não saber utilizar a classe DataFrame do Pandas que já os converte de forma automática.

Mas eu gostaria de agregar mais valor à esta discussão e apareceu uma ótima feature do Panda, o método groupby, sério, isto facilita e muito a vida, além do Pandas ser um dos principais packages, ele é bem completo, o que diminui o trabalho já que não preciso procurar por packages específicos para problemas simples. Este método conseguiu agrupar para mim todas as reclamações em cinco clusters correspondentes à cada nota, e eu pesquisei qual empresa possuia a maior quantidade daquela nota:

result = dataset.groupby('Nota do Consumidor')
print(result["Nome Fantasia"].describe())
Nota do Consumidor|| Variáveis ||        Valores        
1                   count                   2840
                    unique                   134
                    top                  Oi Fixo
                    freq                     306
2                   count                    650
                    unique                    72
                    top                  Oi Fixo
                    freq                      83
3                   count                   1205
                    unique                   100
                    top       Vivo - Telefônica 
                    freq                     192
4                   count                   1469
                    unique                   104
                    top       Vivo - Telefônica 
                    freq                     248
5                   count                   3051
                    unique                   127
                    top       Vivo - Telefônica 
                    freq                     513

Como você pode ver , o campeão de votos positivos é ” Vivo – Telefônica ” e o título de pior ficou com a ” Oi Fixo ” (como eu percebi no meu post anterior https://medium.com/@felipebormann/quem- os- brasileiros -n % C3% A3o – Gostam – 520a8e589b26 ) .

Veredito

Entre outras coisas, Python provou ser uma ferramente bem interessante e sua curva de aprendizado muito simples, e que possui uma grande gama de tutoriais na internet, o que facilitou e muito o aprendizado comparado com o R. Além de possuir o IPython, que sinceramente, é bom pra caramba, a capacidade de salvar todos os meus comandos de uma forma visivelmente agradável é algo fantástico!, o Python vale sim um pouco do seu tempo para tentar.
Concluindo o episódio de hoje: acho que agora é um bom momento para explorar mais os dados e tentar coisas novas , vejo vocês no próximo post. Espero que tenham gostado da minha breve análise e minha pobre habilidade em Python haha , espero me tornar melhor utilizando ele com o tempo, neste momento, ainda estou tentando me acostumar com o IPython, mas esperem pra ver, haverá o tempo em que eu vou ser reconhecido como parte dos 5 melhores cientistas de Dados do Brasil o/!.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s