Tipos de Aprendizado de Máquina #3
Tags: datascience, machinelearning, womenintech, computerscience
Published: 2020-08-14 21:12:36

<img src="https://miro.medium.com/max/875/1*lJcamouoOv8-8EtMlV8m1g.png" width="600">

Fazendo um link (literalmente rs) com [o post da semana passada](https://dev.to/beatrizmaiads/o-que-e-inteligencia-artificial-data-science-machine-learning-e-deep-learning-primeiros-passos-2-41l7), o post de hoje será destinado a explicar um pouco melhor sobre os tipos de Aprendizado de Máquina. 
Sempre tentando trazer o conteúdo de maneira visual para facilitar o entendimento e claro, com a ajudinha de alguns gifs para deixar tudo mais divertido.

As máquinas podem aprender de formas diferentes e hoje você irá entender como isso é possível.

<img src="https://isitics.com/wp-content/uploads/2018/05/WP2-IA000000-07-1024x599.jpg" width="600">

# **Aprendizado Supervisionado (Supervised Learning).**

No **Aprendizado Supervisionado**, os dados são apresentados ao algoritmo com os dados de entrada e com os resultados que acompanha aquele conjunto de dados, isso tudo para auxiliar no aprendizado. 

Se você pensar bem, de certa forma, o seu aprendizado também foi supersionado. Como assim?
Bom, quando você era jovem nesse mundo e não precisava pagar boletos e ter preocupações (saudades né?), muito provavelmente alguém chegou para você e disse "olha ali o au au" enquanto apontava para um cachorro ou cachorra. Então tinhamos ali alguém te ajudando a aprender que animal era aquele. E com o tempo você foi aprendendo as características de cada animalzinho e foi ficando mais fácil identificar cada um, mas para isso você teve que ter contato com uma quantidade de dados considerável para esse seu aprendizado ser eficiente. 

Essa é uma analogia que você pode considerar até boba, mas é bem utilizada para explicar superficialmente como alguns algoritmos funcionam.

<img src="https://media.giphy.com/media/T7nRl5WHw7Yru/giphy.gif" width="400">

Agora vamos para um outro exemplo, dessa vez algo mais parecido com o que você pode encontrar por ai. Vamos supor que estamos trabalhando em cima de um conjunto de dados referente a imóveis de uma região do Rio de Janeiro e precisamos prever o valor de aluguel de imóveis dessa região. 

Dentro desse conjunto de dados temos algumas características desses imóveis, como quantidade de quartos, quantidade de banheiros, se possui garagem, renda média de quem alugou aquele imóvel e etc… E além disso, também é fornecido o valor de aluguel daquele imóvel em questão.

<img src="https://miro.medium.com/max/875/1*qhoReW3mZz__GKbrI0eWPg.png" width="600">

Aqui nós temos algumas características dos imóveis, além do valor de aluguel representado na coluna **Valor**. Esse é um típico caso de **Regressão**, onde queremos **prever um valor contínuo**, como nesse caso, o valor do aluguel.

Outro exemplo, é o filtro de Spam, ele é treinado com muitos exemplos de emails junto a suas classes (spam ou não spam) e conforme novos dados são fornecido a este modelo, ele consegue fazer a **Classificação** pois já foi ensinado a reconhecer padrões dentro daquelas classes (spam ou não spam). 
**O Aprendizado Supervisionado aprende com os dados já rotulados.**

**Algoritmos comuns nesse tipo de Aprendizado:**

- K-NN (K-Nearest Neighbours).
- Decision Tree e Random Forest (Árvores de Decisão e Florestas Aleatórias).
- Regressão Linear.
- Regressão Logística.
- SVM — Máquinas de Vetores de Suporte.

# **Aprendizado Não Supervisionado (Unsupervised Learning).**

No **Aprendizado Não Supervisionado**, os dados forncedidos para o treinamento do modelo não são rotulados. O modelo tenta aprender sem um supervisor.

Vamos supor que você tenha um e-commerce e que tenha um volume muito grande de dados sobre os visitantes do seu site. Como já foi dito, dados são informações, você pode fazer inferências em cima desses dados. Nesse caso, você pode querer aplicar um algoritmo de *clustering* para detectar grupos de visitantes semelhantes para tentar identificar comportamentos parecidos em relação as compras do seu site. Como esses dados não são rotulados, você não tem a informação de quais grupos existem e nem em qual grupo cada visitante pertence. O algoritmo tentará encontrar essas conexões sem a sua ajuda, sem a sua supervisão.

**Alguns algoritmos desse tipo de Aprendizado:**

Clustering:
- Clustering Hierárquico(HCA)
- k-Means
Aprendizado da regra de associação:
- Apriori
- Eclat

# **Aprendizado Semi-Supervisionado (Semi-Supervised Learning).**

O google fotos é um bom exemplo desse tipo de aprendizado e você já deve ter notado isso nas suas fotos em família ou amigos. O serviço carrega todas as suas fotos e automaticamente reconhece as pessoas que estão ali. Por exemplo, ele reconhce que a pessoa **A** aparece nas fotos **1, 3 e 5**, enquanto a pessoa B aparece nas fotos **2, 4 e 6**. O algoritmo faz um agrupamento, sendo assim a parte não supervisionada. Já a parte supervisionada é quando você precisa rotular aquelas pessoas, ou seja, dizer ao aplicativo quem são aquelas pessoas.

# **Aprendizado por Reforço (Reinforcement Learning).**

Aqui o sistema de aprendizado é chamado de **agente**. Esse agente irá interagir com o ambiente externo para realizar uma ação e atingir um determinado objetivo. O ambiente irá recompensar ou punir o agente de acordo com suas ações. E assim, com base no feedback que ele recebeu por ter executado tal ação, ele aprenderá por si só qual é a melhor estratégia a seguir.

<img src="https://media.giphy.com/media/S0hxMGYFhEMzm/giphy.gif" width="400">

**Você já deve ter ouvido falar da AlphaGo, uma inteligência artificial desenvolvida para jogar um jogo chamado Go e que durante uma disputa, venceu o campeão mundial Ke Jie no jogo. O AlphaGo analisou milhões de jogos e depois praticou muito contra si mesmo para atingir esse resultado. Leia mais sobre [aqui.](https://deepmind.com/research/case-studies/alphago-the-story-so-far).**

## **Referências:**

*[Livro Mãos à Obra: Aprendizado de Máquina com Scikit-Learn & TensorFlow](https://www.amazon.com.br/M%C3%A3os-Obra-Aprendizado-Scikit-Learn-TensorFlow/dp/8550803812/ref=asc_df_8550803812/?tag=googleshopp00-20&linkCode=df0&hvadid=379748659420&hvpos=&hvnetw=g&hvrand=5950424541098989292&hvpone=&hvptwo=&hvqmt=&hvdev=c&hvdvcmdl=&hvlocint=&hvlocphy=1031613&hvtargid=pla-812887614657&psc=1)*
*[Livro Hands-On Deep Learning Algorithms with Python](https://www.amazon.com.br/Hands-Deep-Learning-Algorithms-Python-ebook/dp/B07LH43V8P)*


## **Contatos:**

- [LinkedIn]: https://www.linkedin.com/in/beatrizmaiads/
- [GitHub]: https://github.com/beatrizmaiads
- [Instagram]: @beatrizmaiads
- [Dev.to]: https://dev.to/beatrizmaiads
- [Email]: beatrizmaiads@outlook.com