Primeiros passos em Machine Learning

Jupyter Machine Learning

Para aprender Machine Learning

é interessante saber uma linguagem de programação

Pensando em alternativas na construção de soluções envolvendo aprendizagem de máquina, é interessante dar os primeiros passos em Machine Learning. Pode-se fazer isso escolhendo uma linguagem de programação estatística, como o R ou Python, ou então seguindo com serviços cognitivos. Mas afinal, se for para o caminho da linguagem de programação, qual das duas devo investir meu tempo? Seguindo o ranking de linguagens de programação da IEEE, em 2019, o Python aparece em primeiro lugar e o R em quinto. Contudo, isso não significa que você deve escolher o Python apenas por isso. Ambas linguagens são ótimas para trabalhar com Machine Learning!

Você poderia desenvolver soluções de Machine Learning com qualquer linguagem como Java ou C#, porque no final das contas, os algoritmos são representações matemáticas. Porém, isso não é recomendado, porque estas linguagens são poderosas para alguns tipos de desenvolvimentos mas não possuem módulos específicos para cálculos matriciais complexos.

O R é uma das linguagens de programação estatística mais utilizadas para este fim, assim como o Python. Por outro lado, o Python é bastante versátil permitindo inclusive desenvolvimento de aplicações web.

IDE – Integrated Development Environment

As duas linguagens são gratuitas, isso significa que não precisa pagar para desenvolver soluções com elas. Por outro lado as IDEs, que são os software utilizados para escrever os códigos, podem ser cobradas. É muito comum usar o RStudio para desenvolver com linguagem R e o PyCharm para Python. Estas duas IDEs possuem a versão gratuita e a paga. Em ambas a versão gratuita é utilizada principalmente para estudos, e a paga é para quando você terá algum tipo de rentabilidade com a sua solução desenvolvida.

Existem alternativas. Uma é o VSCode que tem o Python nativo mas o R precisa ser adicionado como extensão. Ou o Jupyter Notebook, que é uma IDE web-based que permite nativamente escolher o Kernel de interpretação do código com Python ou R.

Comunidade

Para as duas linguagens existe uma comunidade muito ativa. Esta comunidade publica diariamente vários pacotes de funcionalidades, que resolvem problemas específicos. No R a comunidade se centraliza no CRAN – The Comprehensive R Archive Network enquanto a comunidade Python utiliza o PyPi – Python Package Index.  Estes pacotes ajudam a acelerar o desenvolvimento, facilitando a execução de tarefas complexas de forma simples. Imagine que você esteja fazendo uma análise exploratória descritiva e necessita gerar diversos gráficos sobre os dados. No R existe o GGPLOT2 que é um dos pacotes mais usados para geração de gráficos, e no Python o MatPlotLib. Mas repare que você não precisará criar do zero, você poderá utilizar algo já pronto que resolve o seu problema de forma específica.

A mesma coisa acontece para os principais pacotes de Machine Learning. Existem pacotes preparados em cada uma das comunidades, que facilitam o desenvolvimento dos seus modelos de aprendizagem de máquina.

Para aprender

Sendo totalmente imparcial, para você dar seus primeiros passos em Machine Learning, escolha uma das duas linguagens de programação e se arrisque. Existem diversos cursos gratuitos de R e de Python na internet. O Kaggle possui diversas bases de dados com muitos desafios, assim como o repositório de dataset da UCI. Os fóruns de discussão são ótimos pontos de encontro para tirar duvidas sobre a linguagem. E o principal benefício de escolher entre uma ou outra linguagem, é que a migração entre elas é bastante rápida. Ao aprender uma linguagem, migrar para a outra é questão praticamente de sintaxe. A forma de pensar, e de resolver problemas, é muito similar. Se não se adaptou com R, mude para o Python com muita fluidez.

Ah, outro ponto importante. Não se preocupe em aprender a matemática complexa por trás de cada modelo agora. Sugiro que aprenda uma das linguagens, estude alguns algoritmos que resolvem os principais problemas (classificação binária, classificação multi-classes, regressão linear bivariada, regressão linear multivariada, regressão logística, clustering e regras de associação). Depois que já estiver fluido em resolver problemas com estes algoritmos, ai sim comece a estudar o que eles fazem e como funcionam. Assim poderá entender o que está fazendo, e até melhorar a performance quando for preciso.

Sobre Diego Nogare 322 Artigos
Diego Nogare é CDO - Chief Data Officer - na Lambda3. Também é professor em programas de pós graduação no Mackenzie e na FIAP, em São Paulo. Foi nomeado como Microsoft MVP por 11 anos seguidos, e hoje faz parte do programa Microsoft Regional Director.