---
presentation
theme: beige.css
slideNumber: true
width: 1024 height: 768
---
## Aprendizado de Máquina
#### Aprendizado não-supervisionado (agrupamento)
#### Prof. Ronaldo Cristiano Prati
[ronaldo.prati@ufabc.edu.br](mailto:ronaldo.prati@ufabc.edu.br)
Bloco A, sala 513-2
## Tipos de Aprendizado
- **Supervisionado** os exemplos tem um atributo de interesse pré-determinado
- **Não supervisionado** não temos um atributo de interesse pré-determinado
### Aprendizado não supervisionado
- **Agrupamento** identificar alguma estrutura nos dados
- **Redução de dimensionalidade** usar características estruturais para simplificar os dados
## Agrupamento
- Organizar dados em grupos de forma que exista
- uma alta similaridade intra-classe
- uma baixa similaridade inter-classes
- Mais informalmente, encontrar grupos que ocorrem naturalmente entre objetos.
#### Qual é o agrupamento natural desses objetos?
![](simpsons.png)
#### Agrupamento é subjetivo
![](simpsons-grupo.png)
### Aprupamento particional
- **Algoritmos Particionais:** Construir diversas partições de acordo com algum critério
![](particional.png)
### Aprupamento hierárquico
- **Algoritmos Hierárquicos:** Criar uma decomposição hierárquica de um conjunto de objetos utilizando algum critério
![](hierarquico.png)
## K-médias
- Algoritmo particional: cada ponto é associado a um único grupo
- Precisamos decidir antecipadamente o número $k$ de grupos
### K-médias - algoritmo
1. Decidir um valor para k.
2. Inicializar os centros dos k grupos (aleatoriamente, se necessário).
3. Decidir o grupo dos N objetos por meio da associação ao centro do grupo mais próximo.
4. Re-estimar os centros dos k grupos, assumindo que a associação com os grupos encontradas anteriormente está correta.
5. Se nenhum dos N objetos mudou de grupo na última iteração, pare. Caso contrário, volte para o passo 3.
### K-médias - exemplo
![](km0.png)
queremos encontrar 2 grupos
### K-médias - exemplo
![](km1.png)
inicalizamos aleatoriamente o centróide dos dois grupos
### K-médias - exemplo
![](km2.png)
Cada exemplo é atribuído a um grupo, de acordo com o centróide mais próximo
### K-médias - exemplo
![](km3.png)
O centróide do grupo é movido para o centro de cada grupo
### K-médias - exemplo
![](km4.png)
Cada exemplo é (re)atribuído a um grupo, de acordo com o (novo) centróide mais próximo
### K-médias - exemplo
![](km5.png)
O centróide do grupo é movido (novamente) para o (novo) centro de cada grupo
### K-médias - exemplo
![](km6.png)
Cada exemplo é (re)atribuído a um grupo, de acordo com o (novo) centróide mais próximo
### K-médias - exemplo
![](km7.png)
O centróide do grupo é movido (novamente) para o (novo) centro de cada grupo.
### K-médias - exemplo
![](km7.png)
Cada exemplo é (re)atribuído a um grupo, de acordo com o (novo) centróide mais próximo. Como não houve alteração, convergiu.
## K-médias
- O k-médias é dependente do número de cluster $k$
- O k-médias é sensível à inicialização dos clusters
### K-médias - diferentes execuções
![](k3m.png)
### Função objetivo
- Seja $c^i$ o cluster $i$, $\mu_{c^i}$ o centróide do cluster $i$ e $x^i$ um exemplo associado ao cluster $i$. Podemos definir a função objetivo como:
$$ J(c^1,\dots,c^k,\mu_{c^1},\dots,\mu_{c^k}) = \frac{1}{m} \sum_i^m \| x^i - \mu_{c^i}\|^2$$
- Soma dos quadrados da distância de cada ponto ao seu respectivo cluster.
- Também chamado de inércia.
### Função objetivo
![](inertia.png)
### Escolha do valor de $k$
- Alguns problemas tem um valor de $k$ bem definido
- Agrupar tarefas similares em 4 núcleos de CPU ($k=4$)
- Agrupar roupas em 5 diferentes tamanhos para cobrir a maioris das pessoas ($k=5$)
- Agrupar comentários similares em 10 grupos ($k=10$)
### Escolha do valor de $k$
- Quando não temos conhecimento do domínio, escolher $k$
- Método do "cotovelo"
- Executar k-médias para diferentes valores de $k$
- Fazer um gráfico de $k$ por $J$
- Escolher $k$ em que $J$ se "estabiliza"
### Escolha do valor de $k$
- Chama-se método do "cotovelo" pois espera-se que o gráfico tenha o formato de um braço dobrado, e o $k$ adequado seria o "cotovelo"
![](joelho.png)
- Nem sempre tem esse formato
### Suposições
### Escolha da medida de distância
- A escolha da medida de distância é extremamente importante para o sucesso do agrupamento
- Cada métrica tem vantagens/desvantagens e casos de uso mais apropriado
- Muitas vezes é preciso realizar uma avaliação empírica
### Distância Euclideana
![](euclidean.png)
### Distância Manhattan
![](manhatan.png)
- Menos sensível a outliers
### Distância de Cosenos
![](cosine.png)
- Menos sensível a escala e dimensionalidade
### Agrupamento hierárquico
- Representa a similaridade entre os dados por meio de um dendograma
- A similaridade entre dois objetos em um dendograma é representada pela altura do nó interno mais baixo que eles compartilham.
![](dendograma.jpg)
### Número de clusters
- O dendograma pode ajudar a determinar o número “correto” de agrupamentos. Nesse caso, a existência de duas árvores bem separadas é um forte indicativo de dois clusters.
- Infelizmente, raramente as coisas são assim tão claras.
### outliers
- Um possível uso de dendogramas é a detecção de outliers
- Um ramo único e isolado sugere um dado que é muito diferente de todos os demais
### Agrupamento hierárquico
- O número possível de dendogramas cresce exponencialmente com o tamanho do dataset
- Busca heurística:
- **aglomerativo**: começa agrupando exemplos individualmente até construir um único cluster
- **divisivo**: começa com um único cluster e vai dividindo recursivamente até chegar nos exemplos.
### Matriz de Distância
- contém as distâncias entre cada par de objetos da base de dados
### Abordagem aglomerativa
1. Cada exemplo representa um grupo
2. Encontra o melhor par para (menor distância) para criar um novo grupo
3. Recalcula a distânci do grupo criado para os demais
4. Volta ao passo 2. até que um único grupo seja formado
### Abordagem aglomerativa
#### Distância entre clusters
- Ligação simples (vizinho mais próximo): distância entre os dois objetos mais próximos (vizinhos mais próximos) nos diferentes clusters.
- Ligação completa (vizinho mais distante): maior distância entre dois objetos nos diferentes clusters (“vizinhos mais distantes”).
- Ligação média de grupo: distância média entre todos os pares de objetos nos diferentes clusters.
- Ligação Wards: minimiza a variância entre os dois clusters aglomerados.
#### Distância entre clusters
![](linkage.png)
#### Distância entre clusters
![](difh.png)
### Agrupamento hierárquico
- Não existe a necessidade de especificar o número de clusters a priori.
- A natureza hierárquica é facilmente mapeada pela intuição humana para alguns domínios.
- Eles não escalam bem: a complexidade de tempo é pelo menos $O(n^2)$, na qual $n$ é o número de objetos.
- Como qualquer algoritmo de busca heurística, mínimos locais são um problema.
- A interpretação dos resultados é (muito) subjetiva.