Uma palavra sobre curva de aprendizado e Ciência dos Dados com Python
- Roberto Barberá
- 27 de dez. de 2017
- 4 min de leitura

Se você tiver decidido aprender Python, para ingressar na área de Ciência de Dados com aprendizado de máquinas, mas não possui experiência anterior em programação, é natural que você esteja confuso.
É bem provável que tenha se deparado com o volume assustador de material que trata de programação com Python, seus detalhes e extensão. Na certa, deve estar pensando em desistir, tal é a quantidade de bibliotecas disponíveis para Python. E cada uma delas parece ser um mundo inteiro a ser “conquistado” por você, antes de começar sua jornada rumo à elaboração de modelos preditivos, ou a projetos baseados em Machine Learning, por exemplo.
Aí é que se está o problema. Para ser um bom cientista de dados, você não precisa se transformar num desenvolvedor Python. Investir no aprendizado profundo de Python, apesar de ser uma excelente linguagem de programação, pode representar um certo desperdício de tempo, para quem dirige o foco para Inteligência Artificial.
Você não precisa se tornar um Ninja em Python. Eu mesmo quase cometi este erro e poderia ter trilhado um caminho menos árduo, para chegar ao estágio em que me encontro. Felizmente, percebi a tempo. Depois de um mês de estudos, reparei que estava passando mais tempo aprendendo a desenvolver software com Python, do que a aprender técnicas de análise de dados, com Python.
Alguns dias de pesquisa avaliando opiniões de cientistas mais experientes, cheguei à conclusão de que são cinco as bibliotecas Python fundamentais para começarmos a lidar com a maioria dos problemas de análise de dados.
Portanto, na minha humilde opinião, acredito que não seja necessária proficiência em Python, para que se possa projetar, construir e avaliar modelos baseados em Machine Learning, de forma produtiva e eficiente. Isto significa que, embora existam livros e cursos excelentes de Python online, eu não recomendaria fazê-los, pelo menos num primeiro momento, pois eles se destinam a uma audiência de aspirantes a desenvolvedores em Python e não, a dos cientistas de dados. Os conteúdos teóricos ligados a vetores e matrizes em geral (álgebra linear) e estatística (medidas de dispersão, métodos quantitativos e testes de hipóteses), voltados para observação de dados discretos (aqueles do mundo real), seriam mais indicados para investir seu tempo, caso ele esteja sobrando.
Será útil e importante, também familiarizar-se com o site github.com e com a criação de um notebook (espécie de repositório de código e documentação online que o github proporciona). O github é a rede social mundial dos desenvolvedores. A criação de um notebook no github exige que você crie uma conta pessoal, para acesso pleno ao conteúdo disponibilizado. O notebook torna-se um local, da nuvem, para você ir depositando e organizando todo o conteúdo que for criando. Aconselho a visita a dois links referência de conteúdo no github, aqui e aqui, que certamente lhe serão bastante úteis, ao longo de sua viagem pelo mundo da ciência dos dados.
Eis os atalhos do “caminho das pedras” para a aprendizagem:
Depois do github, comece abrindo uma conta na Code Academy e tente completar todos os exercícios que lá estiverem. Você pode conseguir isto em 20 dias, investindo cerca de três horas por dia. A Code Academy abrange todos os conceitos básicos de Python, mas não segue uma abordagem orientada a projetos, como a Udacity. Mas isto pouco importa, uma vez que seu foco não é o de tornar-se um de mago de Python, mas sim, de usar Python em projetos de ciência dos dados.
Depois de completar os exercícios da Code Academy, navegue neste notebook tutorial em Python. Ele trata dos conceitos que não foram abordados na Code Academy. Você poderia completá-lo em uma ou duas horas.
Agora que já deve estar familiarizado com os conceitos básicos do Python, você poderá aprender a utilizar as principais bibliotecas Python.
A biblioteca NumPy
Comece a aprender o NumPy, pois é o pacote fundamental para computação científica com Python. Uma boa compreensão de Numpy, irá lhe ajudar a entender a próxima biblioteca – a Pandas. Numpy trata de vetores, matrizes, enfim de arrays n dimensionais. Eis aqui o link para o NumPy Tutorial, elaborado por por Manu Jeevan.
A biblioteca Pandas
Pandas provê estruturas de dados de alto nível e ferramentas de manipulação destas estruturas que tornam a análise de dados mais eficiente e fácil, com Python.Este tutorial básico inclui trabalhos com séries, data frames, eliminação de colunas e linhas em axis (eixos), ensina a tratar missing values (dados faltantes) e etc,,ar com valores em falta, etc.
A biblioteca Matplotlib
O tutorial de Matplotlib é dividido em quatro partes. Outra grande contribuição de Manu Jeevan. Matplotlib permite a composição de gráficos ilustrativos dos dados, das variáveis analisadas e de suas relações.
A primeira parte apresenta os tipos básicos de plotagem de figuras contínuas (plots) e discretas (scatter), assim como histogramas e outras formas de exibição.
Cobre o controle do estilo e cor de uma figura, assim como marcadores, espessura de linhas e padrões de linhas.
Apresenta a “anotation” de uma figura que compõe várias figuras, controlando a disposição e o alcance dos eixos e sua relação com o sistema de coordenadas.
Abrange o trabalho com figuras complexas, composição de gráficos e coordenadas polares, dentre outros recursos.
Conclusão
Um dos erros mais comuns, que muitos iniciantes cometem ao aprender Python, é o de tentar aprender várias bibliotecas ao mesmo tempo. Sugiro evitar ficar alternando o tema, pois dificulta a fixação. Embora o assunto seja fascinante, vá com calma e fique muito atento a esta “compulsão”. Procure compreender os conceitos básicos do Python, aprenda NumPy, depois Pandas e assim sucessivamente.
Seja otimista, perseverante e muito paciente. Terá valido à pena.
Forte abraço e boa sorte.
Comments