Um dos aspectos mais significativos do aprendizado de máquina são os inúmeros algoritmos disponíveis para que os Cientistas de Dados e Engenheiros de Machine Learning possam usar e construir modelos e projetos de aprendizado de máquina. E uma questão é comumente discutida: construir o algoritmo a partir do zero ou usar um framework? Vamos tratar disso neste quinto artigo da série. Se estiver chegando agora por aqui acesse o primeiro artigo da série neste link.

O Que é Um Algoritmo?

Para começar, vamos compreender o que é um algoritmo. Para explicar o conceito, imagine uma receita de bolo. Uma receita contém os ingredientes necessários, as quantidades das porções e o procedimento, ou seja, como unir os ingredientes e o tempo de preparo. O resultado pode ser um suculento bolo de chocolate, certo?

Um algoritmo segue o mesmo raciocínio. Uma sequência de tarefas para alcançar um objetivo. Por exemplo: se tivermos dados de pacientes que desenvolveram uma doença e pacientes que não desenvolveram, podemos criar um algoritmo capaz de encontrar padrões nos dados. Quando esse algoritmo é treinado com os dados, ele se transforma em um modelo capaz de fazer previsões a partir de novos dados. Abaixo o exemplo de um trecho de um algoritmo de Machine Learning.

algo

Para os iniciantes isso pode aparecer meio aterrorizante. Mas o fato é que dificilmente você terá que desenvolver um algoritmo a partir do zero. Todos os principais algoritmos (estamos falando de mais de 60) já foram desenvolvidos e estão prontos para uso. Seu principal trabalho é saber qual algoritmo usar em qual situação e interpretar os resultados.

Mas se quiser aprender a ler os algoritmos como mostrado na imagem acima, mostramos isso em detalhes no curso de Matemática Para Machine Learning.

Mas Ainda Tenho Que Programar?

Na imagem acima você percebe que temos somente o algoritmo, a receita de bolo. Mas precisamos implementar o algoritmo e para isso usamos uma Linguagem de Programação como Python, R, Java ou Scala. E aí entra outra questão interessante.

Vários frameworks já oferecem os algoritmos prontos para uso, no formato de funções. Passamos parâmetros, alimentamos com dados e treinamos os algoritmos. O resultado é um modelo de Machine Learning que pode ser usado para fazer previsões. Atualmente os principais frameworks são Scikit-Learn, TensorFlow e PyTorch para Linguagem Python e Caret para Linguagem R.

Mas o meu amigo disse que é preciso programar tudo a partir do zero! Seu amigo não sabe muito bem o que está falando. Na grande maioria dos casos seu trabalho é criar um script para construir um pipeline desde a preparação dos dados, passando pelo treinamento do algoritmo, até a construção e avaliação do modelo. Programar um algoritmo a partir do zero é necessário em casos bem específicos, como um produto exclusivo de uma Startup ou uma necessidade exclusiva de uma empresa.

E para quem está começando o ideal é primeiro compreender bem o processo e para isso o uso de um framework é a melhor opção. Como os frameworks evoluíram muito nos últimos anos, diversas empresas estão implementando seus modelos usando esses frameworks, sem a necessidade de programar a partir do zero.

Preciso Aprender Todos os Algoritmos?

Um algoritmo de Machine Learning é como uma ferramenta e quanto mais ferramentas você souber usar mais problemas será capaz de resolver. Logo, o ideal é aprender o maior número possível de algoritmos.

Alguns dos algoritmos básicos que os iniciantes devem começar a trabalhar e dominar são os algoritmos supervisionados como: regressão logística, regressão linear, máquinas de vetores de suporte (SVM – Support Vector Machines) e algoritmo Naive Bayes (todos eles estudados em detalhes no curso de Machine Learning aqui na DSA). Esses algoritmos podem ser usados em várias tarefas e projetos.

Outros algoritmos essenciais que você precisa focar no aprendizado, além dos mencionados anteriormente, incluem árvores de decisão, K-Nearest Neighbours (KNN) e algoritmos de métodos ensemble, como RandomForest (todos também abordados no curso de Machine Learning, o curso mais extenso em nosso portal). Esses são alguns algoritmos úteis para resolver uma variedade de tarefas e projetos complexos e algo que todo entusiasta do aprendizado de máquina deve ter em seu arsenal de ferramentas. Além disso, você também deve obter conhecimento sobre algoritmos de aprendizado não supervisionado, como clustering e sistemas de recomendação.

Se quiser aprender a construir um modelo de Machine learning agora mesmo, mostramos como fazê-lo nos cursos gratuitos de Python e Power BI em nosso portal.

Até a Parte 6.

Referências:

Machine Learning em Python e R

Logistic regression in data analysis: An overview