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: aprendizado de máquina 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 aprendizado de máquina, hoje nós abordaremos quais são os tipos de algoritmos e seus usos para cada caso.

Vamos aprender mais sobre os algoritmos de aprendizagem de máquina?

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 1110011
amostra 2001101
amostra 3110010
amostra 4100011
amostra 5010011

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 1110011G
amostra 2001101P
amostra 3110010G
amostra 4100011G
amostra 5010011G

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 oculta001111

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

CLIENTEIDADESEXOIMCFILHOSFUMANTEREGIÃO
cliente 119feminino27.90nãosudeste
cliente 246feminino33.441nãosudeste
cliente 337masculino29.832nãonordeste
cliente 435 masculino36.71simnordeste
cliente 539feminino22.881simsudeste

Treinamento de modelo

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

CLIENTEIDADESEXOIMCFILHOSFUMANTEREGIÃOprêmio do seguro (R$)
cliente 119feminino27.90nãosudeste16884.92
cliente 246feminino33.441nãosudeste8240.58
cliente 337masculino29.832nãonordeste6406,41
cliente 435 masculino36.71simnordeste39774.27
cliente 539feminino22.881simsudeste23244.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 desconhecido28masculino36.81simsudeste5067.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/FILMEFILME 1FILME 2FILME 3FILME 4FILME 5
USUÁRIO 13?????????432
USUÁRIO 245442
USUÁRIO 351154
USUÁRIO 445333
USUÁRIO 513???????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/FILMEFILME 1FILME 2FILME 3FILME 4FILME 5
USUÁRIO 13*?????????4*3*2*
USUÁRIO 24*54*4*2*
USUÁRIO 35*11*5*4*
USUÁRIO 44*53*3*3*
USUÁRIO 51*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!


Categorias

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.