

Se tem algo que está na moda atualmente é Machine Learning (em português, aprendizado de máquina). As máquinas roubarão seu emprego, saber mexer com isso garantirá seu futuro, tudo em pouco tempo será regido por ML ou AI (inteligência artificial)… Enfim, o que não falta são afirmações como estas vindas de vários tipos de pessoas, que sabem ou não sobre o assunto (como todo assunto relevante, atualmente rs) e, por isso, algumas delas trazem discussões interessantes enquanto que outras … deixa pra lá.
De qualquer forma, é inegável que Machine Learning é responsável por trazer muita gente para a ciência de dados e quem quer trabalhar nessa área deve se dedicar muito a fim de dominar esta arte (é lindo quando um modelo seu funciona hahaha). E provavelmente a melhor maneira de praticar os fundamentos de ML atualmente seja no Kaggle. Para quem não sabe, o Kaggle é uma das mais conhecidas plataformas para competições de Data Science. A plataforma foi fundada em 2010 por Anthony Goldbloom e em 2017 foi adquirida pelo Google (Alphabet). Sua plataforma pode hospedar competições de Data Science públicas, privadas e acadêmicas, sendo que as competições patrocinadas por empresas costumam oferecer prêmios em dinheiro pela melhor solução. A plataforma também armazena e disponibiliza dados sobre assuntos diversos e possui fóruns para troca de conhecimentos entre seus usuários. Além disso, existem competições de aprendizado (disponibilizadas pelo próprio Kaggle ou por empresas) e é assim que, geralmente, os iniciantes no site, como eu, começam.
Meus primeiros passos dentro da plataforma foram com 2 clássicas competições de aprendizado, Titanic e House Prices. Ambas possuem datasets interenssantíssimas para quem está começando, pois não possuem um nível de complexidade tão elevado mas também não são tão simples quanto um “Iris” dataset por exemplo, já que, além de serem maiores, irão exigir do participante, por exemplo, lidar com NA’s, transformações de variáveis, seleção de variáveis, e várias outras preocupações que um analista/cientista de dados terá em qualquer trabalho do tipo ao longo de sua carreira.
Após passar um tempo tentando implementar soluções nestes 2 desafios, certamente aprendi lições valiosas que, se ainda não me tornam um especialista de ML (como falta para isso…) com certeza me deixam um pouquinho mais perto disso. Nas próximas linhas, irei compartilhar as 3 mais importantes ao meu ver, deixando claro que não vou compartilhar minhas soluções, já que, por serem desafios conhecidos, existem várias soluções postadas na internet. Além disso, minha ideia é causar uma reflexão sobre o árduo processo de aprendizado de ML.
1- Tenha paciência com a curva de aprendizado:
Pode parecer clichê, mas tendemos a nos cobrar muito, seja em qual área for, e em Data science não é diferente. Sentir dificuldade ao tentar construir o modelo, ou em qualquer outra parte do processo, é normal, pois o processo de aprendizagem não se resume ao modelo, apenas. Envolve aprender a limpar os dados, analisá-los, transformá-los, etc. Tudo isso usando uma linguagem de programação (no meu caso, R), ou seja, é também necessário aprender a como programar usando os recursos necessários da maneira adequada a todo esse processo.
Resumindo, é um turbilhão de coisas para se preocupar e, no final, quando seu modelo estiver “pronto”, ele não estará tão bom assim (é praticamente impossível acertar de primeira) e será necessário voltar algumas casinhas para ajeitar algumas (ou muitas) coisas. Se estiver praticando em alguma competição de aprendizado no Kaggle (ou em algum outro site), tente não ligar tanto para a posição de seu resultado no ranking e compare seu resultado apenas com os seus resultados anteriores. Em Machine Learning, a perfeição não existe (não existe em lugar algum hehe), ou seja, não há modelo que acerte tudo, senão não seria um modelo e sim uma bola de cristal. Como dizia George E. P. Box: “Essencialmente, todos os modelos estão errados, mas alguns são úteis”. Portanto, no final, o importante não é aprender a montar modelos mirabolantes e sim aprender a montar modelos bons o bastante para resolver seus problemas.
2- Tenha organização:
Testar várias técnicas, como algoritmos diferentes, podem exigir métodos diferentes de seleção de variáveis, tratar variáveis categóricas de formas diferentes (como “Ordinal Encoding” ou “variáveis dummy”, por exemplo), normalizar ou não os dados… Enfim, são infinitas possibilidades e, por isso, talvez seja interessante organizar versões diferentes do seu script de programação para não confundir (uma pastinha por projeto cai bem também). É fundamental também organizar o seu tempo gasto em cada projeto, pois uma das coisas mais comuns é ficar preso em um trabalho por querer testar infinitas soluções (principalmente no Kaggle, para tentar subir no ranking, hehe) e chega um ponto em que é mais interessante se dar por satisfeito com os resultados obtidos e ir em busca de outros desafios para aprender com situações diferentes do que ir em busca da solução perfeita (lembrar da lição 1). É importante considerar que, por ser iniciante, talvez seja interessante tentar soluções com recursos mais complexos aos poucos, avançando um pouco em cada projeto. Desse jeito, não só fica interessante para absorver os conteúdos mais pesados, como também para praticar bastante os mais “leves” como análise de dados (que por sinal é uma atividade muito mais frequente na profissão de cientista de dados do que a construção de modelos).
3- Participe da comunidade:
Isso é algo que preciso fazer mais. Uma das melhores formas de aprender é olhar a solução dos outros. Não confundir isso com copiar, inclusive, é interessante de olhar não só soluções melhores que a sua mas as piores também, entender o que funciona ou não. É muito interessante de se tirar dúvidas também, pois o que não falta na comunidade de Data science são pessoas querendo ajudar, além de tirar a dúvida dos outros, afinal, quando você sabe explicar com clareza algo para os outros, este algo entra no seu sangue. Se existe muito material na internet para estudar é pelo fato da comunidade ser muito ativa, formada por muita gente apaixonada por achar soluções e compartilhá-las. Você não faz ideia do quanto tem a ganhar se fizer parte disso!
Com certeza existem várias outras preocupações ao se estudar Machine Learning, mas estas 3 me parecem ser as mais impactantes para quem está começando. Muitos podem achar este texto bem simples (e de fato é), mas são coisas que muitos negligenciam e que são importantíssimas para se atentar. Discorda de algo que escrevi? Tem alguma outra lição que gostaria de compartilhar comigo? Comente! Eu quero saber!