1. Início
  2. Machine Learning & AI
  3. Os algoritmos de machine learning

Os algoritmos de machine learning

redes neurais de uma inteligência artificial

Machine Learning – ou, no bom português: machine learning – está cada vez mais em voga no mercado tech. Tudo isso devido aos inúmeros cases de sucesso como: Netflix, Spotify, Amazon e tantas outras.

Estas empresas estão conseguindo transformar experiências humanas e trazer alta inteligência de negócios para si.

Você não tem dúvidas de que o profissional conhecedor de machine learning será um dos mais procurados em poucos anos, né? O futuro é brilhante.

Para dar o pontapé inicial na nossa série de artigos sobre machine learning, hoje nós abordaremos quais são os tipos de algoritmos e seus usos para cada caso.

Vamos aprender mais sobre os algoritmos de machine learning?

Vamos lá!

>> Leitura Recomendada:
Inteligência Artificial na sociedade: como a I.A. transformará o mundo?

Os algoritmos de machine learning

ligações fractais

Os algoritmos são classificados em  três categorias:

  1. Algoritmos de aprendizagem supervisionado;
  2. Algoritmos de aprendizagem não supervisionados;
  3. Algoritmos de aprendizagem por reforço;

O uso de um desses três algoritmos depende do tipo de dados que temos e quais respostas queremos obter com sua implementação. Vamos aprender o que são cada uma das categorias, para usarmos o algoritmo adequado ao tipo de necessidade.

>>Leitura Recomendada:
Aprendizagem de Maquina: Supervisionada ou Não Supervisionada?

Algoritmos Supervisionados

Os algoritmos supervisionados podem ser subdivididos em algoritmos de classificação e algoritmos de regressão.

Os algoritmos de classificação tem como objetivo classificar itens ou amostras de acordo com as características observadas pelo supervisor, enquanto os algoritmos de regressão funcionam com a compreensão de relação da máquina, quanto às variáveis para prever valores.

Algoritmos de Classificação

Para utilizar algoritmos de classificação, temos uma etapa inicial, com 3 steps.

1ª Etapa

  1. Extração de características;
  2. Algoritmo de aprendizagem;
  3. Modelo aprendido;

Primeiramente extraímos as características, ou seja, coletamos os dados que serão utilizados para que a máquina possa procurar por padrões e com isso gerar o modelo.

No step do algoritmo de aprendizagem é onde fica a figura do supervisor que organizará as classes de cada conjunto de características.

Um exemplo para ilustrar: Imagine um banco de imagens possuindo inúmeras fotos de patos e de gatos. O primeiro passo é a extração de características:

Colocaremos na tabela abaixo um exemplo da extração das característica para dez amostras. O que for verdadeiro marcamos com 1 o que for falso marcamos com 0.

Amostras É peludo? Faz miau? Tem penas? Tem asas? É animal doméstico? É pequeno?
amostra 1 1 1 0 0 1 1
amostra 2 0 0 1 1 0 1
amostra 3 1 1 0 0 1 0
amostra 4 1 0 0 0 1 1
amostra 5 0 1 0 0 1 1

Feito isso vem a segunda parte do uso de algoritmos de classificação, onde o supervisor classifica as amostras entre gato ou pato. Gatos marcamos com G e pato com P.

Amostras É peludo? Faz miau? Tem penas? Tem asas? É animal doméstico? É pequeno? Qual é o animal?
amostra 1 1 1 0 0 1 1 G
amostra 2 0 0 1 1 0 1 P
amostra 3 1 1 0 0 1 0 G
amostra 4 1 0 0 0 1 1 G
amostra 5 0 1 0 0 1 1 G

Agora a máquina usará estes dados para identificar um padrão e com isso aprender.

2ª Etapa

  1. Extração de características
  2. Modelo aprendido

Na segunda etapa pegamos uma nova amostra, cuja classificação ainda não conhecemos, mas temos as características:

Amostras É peludo? Faz miau? Tem penas? Tem asas? É animal doméstico? É pequeno?
amostra oculta 0 0 1 1 1 1

Então inserimos estes dados no modelo aprendido – aquele da etapa inicial – e a máquina classifica a amostra oculta em ‘gato’ ou ‘pato’. No caso acima falamos de ‘pato’.

>> Leitura recomendada:
Mineração de texto: python para descobrir emoções

Algoritmos de Regressão

As etapas para os algoritmos de regressão são semelhantes aos algoritmos de classificação, porém neste caso ao invés de classificar os itens, nosso objetivo é  fazer uma regressão para tentar prever um número, que pode ser valor de ação, preço de casa ou outra coisa.

Imagine que temos um banco de dados com características de usuários de um seguro.

Com os dados que dispomos queremos prever o valor que será pago como prêmio do seguro a um novo cliente.

1ª Etapa

CLIENTE IDADE SEXO IMC FILHOS FUMANTE REGIÃO
cliente 1 19 feminino 27.9 0 não sudeste
cliente 2 46 feminino 33.44 1 não sudeste
cliente 3 37 masculino 29.83 2 não nordeste
cliente 4 35 masculino 36.7 1 sim nordeste
cliente 5 39 feminino 22.88 1 sim sudeste

Treinamento de modelo

Então, logo depois de extrair os dados, o supervisor indicará quanto cada cliente recebeu para poder treinar o modelo.

CLIENTE IDADE SEXO IMC FILHOS FUMANTE REGIÃO prêmio do seguro (R$)
cliente 1 19 feminino 27.9 0 não sudeste 16884.92
cliente 2 46 feminino 33.44 1 não sudeste 8240.58
cliente 3 37 masculino 29.83 2 não nordeste 6406,41
cliente 4 35 masculino 36.7 1 sim nordeste 39774.27
cliente 5 39 feminino 22.88 1 sim sudeste 23244.79

Com o modelo treinado, passamos para a etapa 2, dando entrada aos dados de um novo cliente que não tem o prêmio do seguro computado. Assim, tentamos prever com o modelo de regressão quanto este cliente ganhará com o prêmio do seguro.

2ª Etapa

cliente desconhecido 28 masculino 36.8 1 sim sudeste 5067.55

Nosso modelo previu que o cliente desconhecido ganhará com o prêmio do seguro R$ 5067.55. Agora cabe a seguradora decidir se é interessante fazer o seguro ou não.

>> Leitura recomendada:
Algoritmos de Recomendação: como implementá-los?

Algoritmos não supervisionados

Neste tipo de aprendizado não há rótulos, o algoritmo se encarrega de agrupar os dados em algum formato para melhor entendimento da estrutura, ou fazer a simplificação dos dados.

Um exemplo disso são os atuais serviços de indicação de filmes, livros música e etc (Exato, o Netflix é um destes serviços!).

Imagine o seguinte caso: um serviço de streaming de filmes começa indicar filmes para um usuário, porém este usuário não gosta de nenhum filme.

A probabilidade deste cliente abandonar o serviço é grande, então antes de indicar o filme o serviço de streaming agrupa seus usuários e com isso prevê qual a nota o usuário dará para um filme antes dele assistir.

É com isso que se toma a decisão de indicar o filme ou não.

USUÁRIO/FILME FILME 1 FILME 2 FILME 3 FILME 4 FILME 5
USUÁRIO 1 3 ????????? 4 3 2
USUÁRIO 2 4 5 4 4 2
USUÁRIO 3 5 1 1 5 4
USUÁRIO 4 4 5 3 3 3
USUÁRIO 5 1 3 ??????? 2 ????????

Agora como vamos saber se indicamos o filme 2 para o usuário 1? Para tal o processo será dividido em duas etapas,

Na primeira etapa iremos procurar por usuários similares ao usuário 1, isto é, usuários com gostos parecidos com o do usuário 1.

Na segunda etapa iremos calcular a provável nota que o usuário 1 dará ao filme 2, com isso poderemos decidir se indicamos ou não o filme ao usuário 1.

1ª Etapa: Busca por similares

O primeiro passo desta etapa é calcular a correlação do usuário 1 com os demais usuários, para isso usaremos a seguinte fórmula:

Essa é a fórmula de correlação entre dois elementos onde:

é a média das avaliações de a em comum com b
é  a média das avaliações em comum de b com a

são as avaliações que a deu para o item i
são as avaliações que b deu para o item i

Isso serve para calcularmos o ru1 (média das notas do usuário 1 em comum com usuário 2) e o ru2 (média das notas do usuário 2 em comum com o usuário 1). Neste caso somente as notas que estão com asteriscos.

USUÁRIO/FILME FILME 1 FILME 2 FILME 3 FILME 4 FILME 5
USUÁRIO 1 3* ????????? 4* 3* 2*
USUÁRIO 2 4* 5 4* 4* 2*
USUÁRIO 3 5* 1 1* 5* 4*
USUÁRIO 4 4* 5 3* 3* 3*
USUÁRIO 5 1* 3 ??????? 2* ????????

Calculando a correlação dos dois temos que:

Quando falamos nas notas em comum do usuário 1 com usuário 2 estamos nos referindo aos filmes que os dois assistiram e já deram suas respectivas notas.

Fazendo as outras correlações chegamos à seguinte conclusão:

2ª Etapa: Calculando a predição da nota

Agora que calculamos os coeficientes de correlação, podemos executar o cálculo da predição que é dada pela seguinte fórmula:

nota da predição de um item i para o usuário a

média das avaliações do usuário-alvo a considerando as notas em comum com todos os similares

média das avaliações do usuário similar b considerando as notas em comum com o usuário a

 


coeficiente de similaridade entre a e b

avaliação dada por b ao item i

Como queremos prever a nota do usuário 1 dará ao filme 2 teremos a seguinte fórmula:

Perceba que a correlação nesta fórmula está entre ||, que significa modulo. Ou seja, se eventualmente a correlação for negativa consideramos apenas o valor da correlação sem o sinal de negativo.

O 1 e o 0.53 referem-se ao cálculo da correlação que aqui transformam-se em pesos, quanto maior for a correlação maior será o peso para determinar a predição da nota.

Então a nota que provavelmente o usuário 1 dará ao filme 2 é de 1.03. Neste caso particular eu não indicaria o filme 2 ao usuário 1, pois considero a nota abaixo da média, já que usei a régua de 0 até 5 para popular a tabela usuário x nota x filme.

Lembrando que a nota vai de 0 a 5 então a média é de 2.5.

Aprendizagem por reforço

Na aprendizagem por reforço o algoritmo toma uma decisão com base no conjunto de dados que é disposto e depois recebe um sinal de recompensa para saber se a decisão tomada foi boa ou não. Com base nisso o algoritmo ajusta sua estratégia para receber a recompensa mais alta.

Um exemplo disso são os algoritmos que indicam caminhos para o motoristas. O algoritmo aprende as rotas mais rápidas e descarta as rotas mais lentas. Imagine que um motorista quer sair da rua “A” e chegar na rua “G”:

Desta forma o algoritmo traçará a rota mais rápida levando em consideração o maior sinal de recompensa. Sendo assim neste caso o algoritmo indicará a seguinte rota:

  1. Saia da rua A e vá para rua B > Em seguida vá para rua E > Por fim siga para rua G;

O algoritmo descarta as outras rotas, pois o sinal de recompensa é menor.

Algoritmos de Machine Learning: uma conclusão

Bom, espero ter ajudado no entendimento da classificação dos algoritmos e no uso do entendimento de quando cada um desses algoritmos pode ser usado.

Vale lembrar que isto não é uma regra rígida, tudo dependerá do seu conjunto de dados e das perguntas que queremos resolver, ou até dos padrões que queremos analisar.

A dica que eu dou é a seguinte: conheça bem os seus dados, faça uma boa exploração deles e saiba fazer as perguntas certas.

Até a próxima!

 

Quer conhecer a plataforma líder em recrutamento tech?

A solução mais completa para recrutar os melhores talentos tech.

Precisa de ajuda para recrutar talentos?

Conheça o Serviço de Recrutamento da Geekhunter

Leituras Recomendadas

Quer receber conteúdos incríveis como esses?

Assine nossa newsletter para ficar por dentro de todas as novidades do universo de TI e carreiras tech.