Machine Learning

Introdução ao Machine Learning e seus principais algoritmos

Machine Learning, ou Aprendizado de Máquina, está se tornando mais valorizado a cada dia. Com a explosão do Big Data na indústria da tecnologia, Machine Learning é uma ferramenta muita poderosa para realizar predições, minerar dados e obter insights através de uma grande quantidade de dados.

Veja no gráfico a seguir o crescimento da busca pelo termo Machine Learning nas ferramentas de pesquisa do Google:


O que é Machine Learning

 

Machine Learning é um subcampo da Inteligência Artificial, que engloba um conjunto de algoritmos que recebem conjuntos de dados e retornam uma previsão.

É um método de análise de dados que automatiza a criação de um modelo analítico.

Usando algoritmos que iterativamente aprendem com os dados, Machine Learning permite ao computador encontrar insights nos dados, sem que o programador necessariamente tenha que deixar explícito aonde examinar.

A ideia do Machine Learning é extrair ideias a partir dos dados.

Esta abordagem tem enormes benefícios e uma aplicabilidade muito extensa. Além disso, os sistemas de Machine Learning são projetados para melhorar à medida que novos dados são coletados.

A fim de permitir que o algoritmo possa aprender a transformar a entrada em uma saída desejada, é necessário que sejam fornecidas as chamadas instâncias de treinamento.

Instâncias são dados que trabalham como exemplos a partir do qual o algoritmo de Machine Learning vai aprender a executar a tarefa desejada. É como ensinar um bebê a jogar uma bola, você joga a bola algumas vezes para mostrar ao bebê como fazer, e, olhando para esses exemplos, ele começa a jogar a bola sozinho.

 

Algoritmos

 

Os algoritmos de Machine Learning são uma função matemática que, aplicada à uma massa de dados, consegue identificar padrões ocultos e realizar previsões.

Estes algoritmos podem ser divididos em Supervisionados Não-Supervisionados (existe uma terceira categoria chamada Reinforcement Learning que se mantém entre os dois tipos, mas  que não entrarei em maiores detalhes neste artigo).


Supervisionados

Aprendizagem supervisionada é a categoria mais popular dos algoritmos de Machine Learning.

Nesta categoria, no treinamento do modelo, os dados de entrada e de saída são apresentados juntos. O treinamento do algoritmo dura até que o modelo aprenda a mapear os dados e a identificar padrões entre as entradas e as saídas.

Baseado no treinamento com os dados pré-definidos, o programa pode tomar decisões precisas quando recebe novos dados.

Divide-se os algoritmos supervisionados em dois tipos:

Classificação: É quando o resultado pertence a um conjunto finito de possibilidades e os resultados da previsão são de natureza distinta do tipo “sim” ou “não”. Um exemplo bem básico seria o de mapear uma pessoa e classifica-la em masculino ou feminino.

Regressão: É usado quando o valor que está sendo previsto segue um espectro numérico e continuo. Pode ser usado para estabelecer relações entre variáveis. Sistemas de Regressão poderiam ser usados por exemplo para responder as perguntas “Quanto custa?”, “Quantos existem?” ou “Como está se comportando ao longo do tempo?”.

Os algoritmos/modelos principais de Aprendizagem Supervisionada são:

  • Decision Trees
  • Naïve Bayes Classification
  • Ordinary Least Squares Regression
  • Logistic Regression
  • Support Vector Machines
  • Ensemble Methods

 

Não-Supervisionados

Os algoritmos de aprendizagem não-supervisionada só recebem os dados de entrada e a sua função é descobrir os relacionamentos entre os dados apresentados.

Um dos maiores exemplos deste modelo é a técnica de clusterização, que permite dividir os seus dados em novas categorias ou subgrupos, exibindo as relações entre eles.

O K-means é um algoritmo de clusterização. Com ele, assume-se aleatoriamente K centros/pontos em nosso banco de dados e com base nesses centros, vai-se continuamente inserindo os dados até alguma convergência.

 

Os algoritmos/modelos principais de Aprendizagem Não-supervisionada são:

  • Clustering Algorithms
  • Principal Component Analysis
  • Singular Value Decomposition
  • Independent Component Analysis


Qual algoritmo usar?

 

Com tantos algoritmos e com tanta aplicabilidade, saber qual algoritmo utilizar às vezes pode ser um desafio. A resposta para esta pergunta depende de vários fatores, como:

  • O tamanho, qualidade e natureza dos dados
  • O tempo computacional disponível
  • A urgência para realizar o trabalho
  • Qual o seu objetivo com os dados

Mesmo o mais experiente cientista de dados não pode definir exatamente qual algoritmo tem uma melhor perfomance antes de fazer experimentos com diferentes modelos.

Apesar disso, o infográfico a seguir pode ser bastante útil para se ter como referência:

 

Machine Learning com o R

 

Se você é um usuário do R, recomendo conferir o pacote MLR (Veja dicas sobre este pacote neste artigo.

Além do MLR, a seguinte lista apresenta os 10 pacotes de Machine Learning para R mais procurados (fonte), com base no número de downloads no CRAN, interações no Stack Overflow e no GitHub:

 

 

Para ir além

 

Caso você queira saber com mais detalhes sobre Machine Learning, o vídeo a seguir possui uma boa e clara apresentação sobre o tema:

 

Os seguintes links abordam o tema de maneira introdutória e são de excelente qualidade:

 

Se você é iniciante em Machine Learning e gostaria de começar a colocar em prática os seus conhecimentos, vale a pena dar uma olhada no artigo a seguir (clique na imagem para abrir):

 

Um outro conceito bastante importante do Machine Learning é a Aprendizagem Profunda (Deep Learning), um tema muito discutido recentemente.

Basicamente, Deep Learning refere-se a uma categoria de algoritmos de Machine Learning, que muitas vezes usam redes neurais artificiais para gerar modelos. Se você já está familiarizado com Machine Learning, vale a pena expandir-se para o Deep Learning.

 


Espero que este artigo lhe tenha sido útil e que você possa tirar bastante proveito dos exemplos que citei nele.

Um abraço e até a próxima!