SlideShare uma empresa Scribd logo
1 de 122
Baixar para ler offline
Rotulação Automática
(Automatic Tagging)
26 Abril 2016
Felipe Almeida
Orientador: Prof. Geraldo Xexéo
PESC / COPPE / UFRJ
1
Estrutura
● O problema
● Aprendizado de Máquina
● Introdução
● Exemplo 1 (Regressão linear)
● Exemplo 2 (Árvore de Decisão)
● Exemplo 3 (Naïve Bayes)
● Aprendizado de Máquina Multi-rótulo
● Introdução
● Método 1 (Binary Relevance)
● Método 2 (Label Powerset)
● Método 3 (ML-DT)
● Tópicos
2
O Problema
● Dado um documento, me diga quais seriam as tags
que um humano associaria a ele.
3
O Problema: exemplo
● Sugestão de tags em um post no StackOverflow
4Fonte: Stackoverflow.com, Abril de 2016
O Problema: exemplo
5
O texto é sobre uma
dúvida em como fazer
certa ação em uma
plataforma de blogs
As tags sugeridas pelo
website foram bastante
equivocadas
● Ou seja, não parece haver muita inteligência nessa
solução
O Problema: exemplo
6
tags sugeridas pois são
tags muito usadas no site
tags sugeridas pois
ocorrem no texto
O Problema: exemplo
7
● O que poderíamos melhorar nessa solução?
● Sugestões?
Aprendizado de Máquina1
● Objetivo principal: prever como uma certa fonte de
dados irá se comportar no futuro, com base em
informações passadas
● Em outras palavras, aprender (treinar) um modelo
aproximado que consiga explicar tanto os dados
passados (vistos) como os dados futuros (não
vistos)
[1] Supervisionado
8
Aprendizado de Máquina
● Em geral temos um conjunto de dados chamado de
conjunto de treinamento, que usamos para treinar
nosso modelo.
9
x1
Y
1.0 1.0
2.0 2.0
3.0 1.3
4.0 3.75
5.0 2.25
● Os valores de x1
são chamados de features
● Os valores de Y são o objetivo
● Todos os métodos de aprendizado de
máquina são, em última instância, uma
função que recebe um conjunto de
features e retorna um valor (estimado)
para o objetivo.
Aprendizado de Máquina
● Neste outro exemplo, cada linha tem três (em vez
de apenas uma) feature
10
x1
x2
x3
Y
2.0 1.0 1.0 1.0
2.0 1.0 2.0 2.0
3.0 2.0 3.0 1.3
Aprendizado de Máquina
● Neste outro exemplo, cada linha tem três (em vez
de apenas uma) feature
● O conjunto de features é chamado de vetor de
features e é representado por X
11
x1
x2
x3
Y
2.0 1.0 1.0 1.0
2.0 1.0 2.0 2.0
3.0 2.0 3.0 1.3
Aprendizado de Máquina
● A seguir vamos ver três diferentes métodos para
fazer aprendizado de máquina:
● Regressão Linear
● Árvore de decisão
● Naïve Bayes
12
Ex. 1: Regressão Linear
● Consiste em aprender uma reta ou polinômio que
aproxime bem os dados
● Um algoritmo bastante comum usa a soma dos
quadrados dos erros como medida
Aprendizado de Máquina - Ex. 1
13
Aprendizado de Máquina - Ex. 1
14Fonte: Fisher and Belle [1993]: Biostatistics. A
Methodology for the Health Sciences
● Dados de exemplo: câncer de pele
Aprendizado de Máquina - Ex. 1
15
● Agora queremos saber a taxa de mortalidade para
um ponto que não está no nosso conjunto:
50
?
Aprendizado de Máquina - Ex. 1
16
● O algoritmo de regressão linear gera uma reta que
minimiza a soma dos quadrados dos erros:
[Fonte:
http://onlinestatbook.com/2/regression/intro.html]
Reta gerada para este conjunto
de dados de 5 pontos
As linhas verticais indicam o
erro entre os pontos e a reta
Aprendizado de Máquina - Ex. 1
17
● Para os nossos dados, a seguinte reta é gerada:
50
● Para os nossos dados, a seguinte reta é gerada:
Aprendizado de Máquina - Ex. 1
18
50
Esta reta tem a equação:
ŷ(x) = 389.2 - 5.98x
50
Aprendizado de Máquina - Ex. 1
19
● Para os nossos dados, a seguinte reta é gerada:
Esta reta tem a equação:
ŷ(x) = 389.2 - 5.98x
Podemos usá-la para fazer uma
estimativa do valor que o nosso
novo ponto teria:
ŷ(50) = 389.2 - 5.98 ( 50)
ŷ(50) = 90.2
50
Aprendizado de Máquina - Ex. 1
20
● Para os nossos dados, a seguinte reta é gerada:
Esta reta tem a equação:
ŷ(x) = 389.2 - 5.98x
Podemos usá-la para fazer uma
estimativa do valor que o nosso
novo ponto teria:
ŷ(50) = 389.2 - 5.98 ( 50)
ŷ(50) = 90.2
Portanto, nosso modelo prevê que uma
localidade com latitude 50 graus terá uma
taxa de mortalidade de câncer de pele de
90.2 mortes por 10 milhões de habitante
Concluindo:
● Vantagens
● Simples
● Intuitivo
Aprendizado de Máquina - Ex. 1
21
Concluindo:
● Vantagens
● Simples
● Intuitivo
● Desvantagens
● Sujeito a overfitting
● Não funciona para casos em que os dados não apresentam
relacionamento linear
● Isso não é tão limitante quanto parece
Aprendizado de Máquina - Ex. 1
22
Significa que o modelo funciona bem no
conjunto de dados de treinamento mas
não em dados novos
Aprendizado de Máquina - Ex. 2
Ex. 2: Árvore de decisão
● Consiste em aprender uma série de IFs/ELSEs que
servirão para categorizar um exemplo
● Graficamente, é uma árvore onde cada nó
representa uma fronteira para o valor de uma
feature
23
Aprendizado de Máquina - Ex. 2
Dados de exemplo: casas em SF vs NY[Fonte: github/jadeyee]
● Consiste em 490 linhas com informações sobre
residências localizadas em São Francisco ou Nova
York.
● Cada linha tem 7 features
24
Aprendizado de Máquina - Ex. 2
● Exemplo de 3 linhas do dataset:
25
Nº de
quartos
Nº de
banheiros
Preço Ano de
construção
Área Preço por
unidade de área
Elevação Cidade
2 1 999,000 1960 1000 999 10 0
1 1,5 775,000 2009 835 928 14 1
3 3 9,990,000 2015 2950 3356 4 0
Aprendizado de Máquina - Ex. 2
● Exemplo de 3 linhas do dataset:
26
0 significa Nova York, 1
significa São Francisco
Objetivo
Features
Nº de
quartos
Nº de
banheiros
Preço Ano de
construção
Área Preço por
unidade de área
Elevação Cidade
2 1 999,000 1960 1000 999 10 0
1 1,5 775,000 2009 835 928 14 1
3 3 9,990,000 2015 2950 3356 4 0
Aprendizado de Máquina - Ex. 2
● Um teste, ou split, de uma árvore de decisão é um
valor de corte de uma feature
27
● Por exemplo, se escolhermos
(elevação <= 30.5) como
nosso primeiro teste, temos:
Aprendizado de Máquina - Ex. 2
● Um teste, ou split, de uma árvore de decisão é um
valor de corte de uma feature
28
● Por exemplo, se escolhermos
(elevação <= 30.5) como
nosso primeiro teste, temos:
224 268
215 85 9 183
elevação <= 30.5 ?
NY
SF
Não Sim
NY
SFSF NY
[Dataset original]
Aprendizado de Máquina - Ex. 2
● O algoritmo continua de forma recursiva, os nós vão
se repartindo sucessivamente até que todas as
folhas do grafo sejam “puras”
● Ou seja quando, em todas as folhas só haja elementos de uma
das classes
29
Aprendizado de Máquina - Ex. 2
● O algoritmo continua de forma recursiva, os nós vão
se repartindo sucessivamente até que todas as
folhas do grafo sejam “puras”
● Ou seja quando, em todas as folhas só haja elementos de uma
das classes
● Ao fim do algoritmo, teremos uma série de testes ou
splits que podem ser usados para classificar uma
instância nova
30
Aprendizado de Máquina - Ex. 2
31
● Detalhe da raiz da árvore gerada (diagrama feito
pela biblioteca scikit-learn)
Aprendizado de Máquina - Ex. 2
32
Arquivo: http://imgur.com/1lSkxGJ● Árvore inteira:
Aprendizado de Máquina - Ex. 2
33
● Testando nosso modelo (com um exemplo novo,
criado por mim):
Nº de
quartos
Nº de
banheiros
Preço Ano de
construção
Área Preço por
unidade de área
Elevação Cidade
4 3 1,500,000 1930 1200 1250 300 ?
Este atributo é o que desejamos
descobrir
Aprendizado de Máquina - Ex. 2
34
● Este exemplo representa uma casa mais ou menos
assim:
Casa espaçosa, antiga, no topo de uma
colina. Fonte: https://flic.kr/p/cFRb1u
Aprendizado de Máquina - Ex. 2
35
Testes:
● Elevação <= 30.5? Não
● Preço <= 579,450 ? Não
● Elevação <= 37.0? Não
● Cidade == São Francisco ✓
O modelo decidiu que a nossa casa tem mais probabilidade de se
localizar em São Francisco do que em Nova York.
Nº de
quartos
Nº de
banheiros
Preço Ano de
construção
Área Preço por
unidade de área
Elevação Cidade
4 3 1,500,000 1930 1200 1250 300 ?
Aprendizado de Máquina - Ex. 2
36
Concluindo:
● Vantagens
● Simples
● Escalável
● Muito facilmente Interpretável; permite comparação do resultado
do algoritmo com o conhecimento de domínio existente
Aprendizado de Máquina - Ex. 2
37
Concluindo:
● Vantagens
● Simples
● Escalável
● Muito facilmente Interpretável; permite comparação do resultado
do algoritmo com o conhecimento de domínio existente
● Desvantagens
● Vulnerável a overfitting
● Não conseguem aprender algumas funções (e.g. XOR)
Aprendizado de Máquina - Ex. 3
Ex. 3: Naïve Bayes
● Classificador baseado na regra de Bayes
● Lembrando:
38
Aprendizado de Máquina - Ex. 3
● A forma de usar a regra para aprendizado de
máquina é imaginar que o objetivo é a variável A e
as features do exemplo são a variável B
● Ou seja:
39
Aprendizado de Máquina - Ex. 3
● A forma de usar a regra para aprendizado de
máquina é imaginar que o objetivo é a variável A e
as features do exemplo são a variável B
● Ou seja:
40
● Ou, de forma mais sucinta:
Aprendizado de Máquina - Ex. 3
● O algoritmo é chamado de naïve (ou ingênuo) pois
ele faz uma suposição simplificadora de que as
features são independentes entre si
● Isso facilita muito os cálculos e não piora muito os
resultados
41
Aprendizado de Máquina - Ex. 3
● Então em vez de ter que calcular as dependências
entre as features podemos calcular o numerador
(do lado direito da equação) de forma bem simples:
● Lembrando que X é o conjunto de features x1
até xn
42
Aprendizado de Máquina - Ex. 3
● Então em vez de ter que calcular as dependências
entre as features podemos calcular o numerador
(do lado direito da equação) de forma bem simples:
● Lembrando que X é o conjunto de features x1
até xn
43
ObjetivoProduto da probabilidade de cada feature, dado o objetivo
Aprendizado de Máquina - Ex. 3
● E o denominador do lado direito da equação?
44
Aprendizado de Máquina - Ex. 3
● E o denominador do lado direito da equação?
● Não precisamos calculá-lo (mais explicações no exemplo)
45
Aprendizado de Máquina - Ex. 3
● A partir daí é só a gente ver quanto vale este valor
para cada um dos objetivos que podem existir e
pegar o maior.
● Qualquer coisa que não tenha ficado clara vai ser
vista no exemplo
46
Aprendizado de Máquina - Ex. 3
Dados de exemplo: Roubo de carros
47
COR TIPO ORIGEM FOI ROUBADO ?
VERMELHO ESPORTIVO NACIONAL SIM
VERMELHO ESPORTIVO NACIONAL NÃO
VERMELHO ESPORTIVO NACIONAL SIM
AMARELO ESPORTIVO NACIONAL NÃO
AMARELO ESPORTIVO IMPORTADO SIM
AMARELO UTILITÁRIO IMPORTADO NÃO
AMARELO UTILITÁRIO IMPORTADO SIM
AMARELO UTILITÁRIO NACIONAL NÃO
VERMELHO UTILITÁRIO IMPORTADO NÃO
VERMELHO ESPORTIVO IMPORTADO SIM
[Adaptado do trabalho de Eric Meisner @ JHU]
Aprendizado de Máquina - Ex. 3
Dados de exemplo: Roubo de carros
48
COR TIPO ORIGEM FOI ROUBADO ?
VERMELHO ESPORTIVO NACIONAL SIM
VERMELHO ESPORTIVO NACIONAL NÃO
VERMELHO ESPORTIVO NACIONAL SIM
AMARELO ESPORTIVO NACIONAL NÃO
AMARELO ESPORTIVO IMPORTADO SIM
AMARELO UTILITÁRIO IMPORTADO NÃO
AMARELO UTILITÁRIO IMPORTADO SIM
AMARELO UTILITÁRIO NACIONAL NÃO
VERMELHO UTILITÁRIO IMPORTADO NÃO
VERMELHO ESPORTIVO IMPORTADO SIM
[Adaptado do trabalho de Eric Meisner @ JHU]
features
objetivo
Aprendizado de Máquina - Ex. 3
● Vamos usar o algoritmo para prever se um carro
Utilitário, Nacional e Vermelho será roubado
● Como nos outros exemplos, este é um dado que não faz parte
do nosso conjunto de treinamento
49
Aprendizado de Máquina - Ex. 3
● Vamos usar o algoritmo para prever se um carro
Utilitário, Nacional e Vermelho será roubado
● Como nos outros exemplos, este é um dado que não faz parte
do nosso conjunto de treinamento
50
Este é o atributo que
desejamos descobrir
COR TIPO ORIGEM FOI
ROUBADO ?
VERMELHO UTILITÁRIO NACIONAL
Aprendizado de Máquina - Ex. 3
Pelo algoritmo, devemos calcular:
Ou seja, a probabilidade de um objetivo dadas as
features (este é o lado esquerdo da equação que
vimos)
Os dois objetivos possíveis são:
● FOI ROUBADO = SIM
● FOI ROUBADO = NÃO
51
COR TIPO ORIGEM FOI ROUBADO ?
VERMELHO ESPORTIVO NACIONAL SIM
VERMELHO ESPORTIVO NACIONAL NÃO
VERMELHO ESPORTIVO NACIONAL SIM
AMARELO ESPORTIVO NACIONAL NÃO
AMARELO ESPORTIVO IMPORTADO SIM
AMARELO UTILITÁRIO IMPORTADO NÃO
AMARELO UTILITÁRIO IMPORTADO SIM
AMARELO UTILITÁRIO NACIONAL NÃO
VERMELHO UTILITÁRIO IMPORTADO NÃO
VERMELHO ESPORTIVO IMPORTADO SIM
Aprendizado de Máquina - Ex. 3
Isto equivale a dizer que precisamos
calcular estas duas probabilidades:
●
●
Um destes valores será maior; será
possível ver se é mais provável que o
nosso carro de exemplo seja roubado
ou não.
52
COR TIPO ORIGEM FOI ROUBADO ?
VERMELHO ESPORTIVO NACIONAL SIM
VERMELHO ESPORTIVO NACIONAL NÃO
VERMELHO ESPORTIVO NACIONAL SIM
AMARELO ESPORTIVO NACIONAL NÃO
AMARELO ESPORTIVO IMPORTADO SIM
AMARELO UTILITÁRIO IMPORTADO NÃO
AMARELO UTILITÁRIO IMPORTADO SIM
AMARELO UTILITÁRIO NACIONAL NÃO
VERMELHO UTILITÁRIO IMPORTADO NÃO
VERMELHO ESPORTIVO IMPORTADO SIM
Aprendizado de Máquina - Ex. 3
Então vamos calcular:
●
●
53
Aprendizado de Máquina - Ex. 3
Então vamos calcular:
●
●
54
● Note que o denominador é o mesmo nos dois casos!
● Como só queremos saber qual das duas probabilidades é
maior, não precisamos calculá-lo
Aprendizado de Máquina - Ex. 3
Continuando (note que o símbolo de igualdade não é mais usado)
●
●
55
Aprendizado de Máquina - Ex. 3
● O valor 0.072 é maior do que o valor 0.024, portanto o mais provável é que
o carro NÃO seja roubado afinal de contas!
● Note que esses valores não são probabilidades, senão eles somariam 1
56
Aprendizado de Máquina - Ex. 3
Concluindo:
● Vantagens:
● Simples
● Rápido (baixa complexidade de tempo)
● Apesar da hipótese forte de independência, boa performance em
muitos casos
57
Aprendizado de Máquina - Ex. 3
Concluindo:
● Vantagens:
● Simples
● Rápido (baixa complexidade de tempo)
● Apesar da hipótese forte de independência, boa performance em
muitos casos
● Desvantagens:
● Não consegue aprender interações entre features, por causa da
hiótese de independência
58
Aprendizado de Máquina
● Vamos usar aprendizado de máquina para nos
ajudar a sugerir rótulos (tags) para nossos
documentos (esse é nosso objetivo inicial)
● Ideias?
59
Aprendizado de Máquina
60
Sugestão de pausa
Aprendizado de Máquina Multi-Rótulo
Continuando do último slide
● Vamos usar aprendizado de máquina para nos
ajudar a sugerir rótulos (tags) para nossos
documentos (esse é nosso objetivo inicial)
61
Aprendizado de Máquina Multi-Rótulo
Continuando do último slide
● Vamos usar aprendizado de máquina para nos
ajudar a sugerir rótulos (tags) para nossos
documentos (esse é nosso objetivo inicial)
● Com aprendizado de máquina multi-rótulo
62
Aprendizado de Máquina Multi-Rótulo
● Um conjunto de dados normal (como os vistos até agora) é assim
63
x1
x2
x3
... xn
Y
n features
1 objetivo
Aprendizado de Máquina Multi-Rótulo
● Um conjunto de dados normal (como os vistos até agora) é assim
● Já um conjunto de dados multi-rótulo é assim:
64
n features
1 objetivo
x1
x2
... xn
y1
y2
... ym
n features m objetivos
x1
x2
x3
... xn
Y
Aprendizado de Máquina Multi-Rótulo
● Dados que contêm mais de um objetivo são ditos
multi-rótulo
● O aprendizado de máquina usando conjuntos de
dados multi-rótulo é chamado de aprendizado
multi-rótulo
● Neste contexto, conjuntos de dados normais são
chamados de conjuntos de dados de rótulo único
65
Aprendizado de Máquina Multi-Rótulo
Alguns exemplos de domínios em que dados
costumam ter mais de um objetivo:
● Categorização de textos em assuntos
● Diagnósticos médicos
● Categorização de imagens
● Classificação de função de proteínas
● Classificação de função de genes
● Categorização de músicas em emoções
66
Aprendizado de Máquina Multi-Rótulo
Alguns exemplos de domínios em que dados
costumam ter mais de um objetivo:
● Categorização de textos em assuntos
● Diagnósticos médicos
● Categorização de imagens
● Classificação de função de proteínas
● Classificação de função de genes
● Categorização de músicas em emoções
67
Tags podem
ser usadas
para classificar
qualquer coisa
(não só texto)
Aprendizado de Máquina Multi-Rótulo
Alguns exemplos de domínios em que dados
costumam ter mais de um objetivo:
● Categorização de textos em assuntos
● Diagnósticos médicos
● Categorização de imagens
● Classificação de função de proteínas
● Classificação de função de genes
● Categorização de músicas em emoções
68
Os termos tag, rótulo e objetivo são usados
como sinônimos no contexto de aprendizado
multi-rótulo!
Tags podem
ser usadas
para classificar
qualquer coisa
(não só texto)
Aprendizado de Máquina Multi-Rótulo
Um exemplo de um conjunto de dados multi-rótulo:
Livros e assuntos abordados [Adaptado de: Tsoumakas et al 2010]
69
Título do livro Esportes Religião Ciência Política
1 Game Over: How Politics Has Turned
the Sports World Upside Down
S N N S
2 Emotional Intelligence: Why It Can
Matter More Than IQ
N N S S
3 Scholastic Year in Sports 2016 S N N N
4 The Great Partnership: Science,
Religion and Search for Meaning
N S S N
S significa que o livro aborda este assunto, N
significa que não
Aprendizado de Máquina Multi-Rótulo
● Então uma forma de aprender quais são as tags
corretas para um documento é usando aprendizado
multi-rótulo.
70
Aprendizado de Máquina Multi-Rótulo
Há dois tipos básicos de métodos para fazer
aprendizado multi-rótulo:
● Transformação do problema
● Transformamos o conjunto de dados multi-rótulo em um conjunto
de dados normal (de rótulo único), de forma que possamos usar
os métodos tradicionais de aprendizado de máquina
71
Aprendizado de Máquina Multi-Rótulo
Há dois tipos básicos de métodos para fazer
aprendizado multi-rótulo:
● Transformação do problema
● Transformamos o conjunto de dados multi-rótulo em um conjunto
de dados normal (de rótulo único), de forma que possamos usar
os métodos tradicionais de aprendizado de máquina
● Adaptação do algoritmo
● Transformamos um algoritmo tradicional para que ele consiga
lidar com dados multi-rótulo
72
Aprendizado de Máquina Multi-Rótulo
73
Label Powersets
Figura adaptada de Zhang and Zhou [2014]
* Adição minha
Aprendizado de Máquina Multi-Rótulo - Ex. 1
74
Ex. 1: Binary relevance (também chamado de
One-vs-Rest)
● Este é um método de transformação do problema
Aprendizado de Máquina Multi-Rótulo - Ex. 1
75
Ex. 1: Binary relevance
● Este é um método de transformação do problema
● O conjunto de dados multi-rótulo é transformado em
vários conjuntos de dados com um único rótulo e
um modelo é aprendido para cada rótulo
● Ou seja, você resolve um número de problemas
igual ao número de tags diferentes que você pode
ter
Aprendizado de Máquina Multi-Rótulo - Ex. 1
76
● É chamado de Binary Relevance (relevância
binária) pois, para cada rótulo, será criado um
classificador binário (só responde True/false)
Aprendizado de Máquina Multi-Rótulo - Ex. 1
77
● É chamado de Binary Relevance (relevância
binária) pois, para cada rótulo, será criado um
classificador binário (só responde True/false)
● Este classificador binário pode ser qualquer
método de aprendizado de máquina, inclusive os
já vistos aqui
Aprendizado de Máquina Multi-Rótulo - Ex. 1
78
Dados de exemplo: Filmes e assuntos
ID Livro Esportes Religião Ciência Política
1 S N N S
2 N N S S
3 S N N N
4 N S S N
Aprendizado de Máquina Multi-Rótulo - Ex. 1
79
Dados de exemplo: Filmes e assuntos
ID Livro Esportes Religião Ciência Política
1 S N N S
2 N N S S
3 S N N N
4 N S S N
É o mesmo conjunto utilizado há pouco; tiramos os títulos pois
não serão utilizados neste exemplo
Aprendizado de Máquina Multi-Rótulo - Ex. 1
80
Pelo algoritmo, devemos transformar o conjunto de
dados multi-rótulo em vários conjuntos de rótulo único
Aprendizado de Máquina Multi-Rótulo - Ex. 1
ID Esportes Religião Ciência Política
1 S N N S
2 N N S S
3 S N N N
4 N S S N
1 conjunto de dados multi-rótulo:
4 rótulos por exemplo
Aprendizado de Máquina Multi-Rótulo - Ex. 1
1 conjunto de dados multi-rótulo:
4 rótulos por exemplo 82
ID Y
1 S
2 N
3 S
4 N
ID Y
1 N
2 N
3 N
4 S
ID Y
1 S
2 S
3 N
4 N
ID Y
1 N
2 S
3 N
4 S
Esportes Religião Ciência Política
4 conjuntos de dados com 1 único rótulo por
exemplo
ID Esportes Religião Ciência Política
1 S N N S
2 N N S S
3 S N N N
4 N S S N
Aprendizado de Máquina Multi-Rótulo - Ex. 1
1 conjunto de dados multi-rótulo:
4 rótulos por exemplo 83
ID Y
1 S
2 N
3 S
4 N
ID Y
1 N
2 N
3 N
4 S
ID Y
1 S
2 S
3 N
4 N
ID Y
1 N
2 S
3 N
4 S
Esportes Religião Ciência Política
4 conjuntos de dados com 1 único rótulo por
exemplo
ID Esportes Religião Ciência Política
1 S N N S
2 N N S S
3 S N N N
4 N S S N
Aqui ocorre a transformação do
problema
Aprendizado de Máquina Multi-Rótulo - Ex. 1
● A partir daí treinamos um classificador para cada
um dos rótulos.
84
Aprendizado de Máquina Multi-Rótulo - Ex. 1
● A partir daí treinamos um classificador para cada
um dos rótulos.
● Usando o Algoritmo Naïve Bayes, nós treinaríamos:
● Um modelo para o rótulo “Esportes”
● Um modelo para o rótulo “Religião”
● Um modelo para o rótulo “Ciência”
● Um modelo para o rótulo “Política”
85
Aprendizado de Máquina Multi-Rótulo - Ex. 1
● A partir daí treinamos um classificador para cada
um dos rótulos.
● Usando o Algoritmo Naïve Bayes, nós treinaríamos:
● Um modelo para o rótulo “Esportes”
● Um modelo para o rótulo “Religião”
● Um modelo para o rótulo “Ciência”
● Um modelo para o rótulo “Política”
86
“Classificador” é, no nosso caso, um sinônimo
para “modelo” de aprendizado de máquina
Aprendizado de Máquina Multi-Rótulo - Ex. 1
● Então, se quiséssemos classificar um novo livro,
nós usaríamos cada um dos 4 modelos para testar
se:
● O livro terá o rótulo “Esportes”? (S ou N)
● O livro terá o rótulo “Religião”? (S ou N)
● O livro terá o rótulo “Ciência”? (S ou N)
● O livro terá o rótulo “Política”? (S ou N)
87
Aprendizado de Máquina Multi-Rótulo - Ex. 1
● Então, se quiséssemos classificar um novo livro,
nós usaríamos cada um dos 4 modelos para testar
se:
● O livro terá o rótulo “Esportes”? (S ou N)
● O livro terá o rótulo “Religião”? (S ou N)
● O livro terá o rótulo “Ciência”? (S ou N)
● O livro terá o rótulo “Política”? (S ou N)
88
Lembrando que cada classificador é binário (retorna apenas
um valor de um bit, ou seja, S ou N)
Aprendizado de Máquina Multi-Rótulo - Ex. 1
● A resposta final (ou seja, o conjunto de assuntos
que um dado livro deve ter) será o conjunto das
previsões de cada classificador:
89
Aprendizado de Máquina Multi-Rótulo - Ex. 1
● A resposta final (ou seja, o conjunto de assuntos
que um dado livro deve ter) será o conjunto das
previsões de cada classificador:
90
ID Esportes Religião Ciência Política
Resultado do
classificador para o
rótulo “Esportes”
(S/N)
Resultado do
classificador para o
rótulo “Política”
(S/N)
Resultado do
classificador para o
rótulo “CIência”
(S/N)
Resultado do
classificador para o
rótulo “Religião”
(S/N)
Aprendizado de Máquina Multi-Rótulo - Ex. 1
Concluindo:
● Vantagens:
● Simples
● Intuitivo
91
Aprendizado de Máquina Multi-Rótulo - Ex. 1
Concluindo:
● Vantagens:
● Simples
● Intuitivo
● Desvantagens
● Não leva em conta dependências entre rótulos
92
Aprendizado de Máquina Multi-Rótulo - Ex. 2
Ex. 2: Label powerset
● Este é um método de transformação do problema
93
Aprendizado de Máquina Multi-Rótulo - Ex. 2
Ex. 2: Label powerset
● Este é um método de transformação do problema
● Consiste em transformar o conjunto de dados
multi-rótulo em um único conjunto de dados com
um único rótulo.
94
Aprendizado de Máquina Multi-Rótulo - Ex. 2
Ex. 2: Label powerset
● Este é um método de transformação do problema
● Consiste em transformar o conjunto de dados
multi-rótulo em um único conjunto de dados com
um único rótulo.
95
Em contraste, o método anterior (Binary Relevance)
transforma o conjunto de dados multi-rótulo original em L
novos conjuntos de dados - onde L é o número de rótulos
distintos no conjunto
Aprendizado de Máquina Multi-Rótulo - Ex. 2
Usando o nosso conjunto de dados anterior como
exemplo (livros e assuntos):
96
ID Livro Esportes Religião Ciência Política
1 S N N S
2 N N S S
3 S N N N
4 N S S N
Aprendizado de Máquina Multi-Rótulo - Ex. 2
1 conjunto de dados multi-rótulo:
4 rótulos por exemplo 97
1 conjunto de dados com 1 único rótulo por
exemplo
ID Esportes Religião Ciência Política
1 S N N S
2 N N S S
3 S N N N
4 N S S N
ID Y
1 (S,N,N,S)
2 (N,N,S,S)
3 (S,N,N,N)
4 (N,S,S,N)
Aprendizado de Máquina Multi-Rótulo - Ex. 2
1 conjunto de dados multi-rótulo:
4 rótulos por exemplo 98
1 conjunto de dados com 1 único rótulo por
exemplo
ID Esportes Religião Ciência Política
1 S N N S
2 N N S S
3 S N N N
4 N S S N
ID Y
1 (S,N,N,S)
2 (N,N,S,S)
3 (S,N,N,N)
4 (N,S,S,N)
Aqui ocorre a transformação do problema; os
múltiplos rótulos de cada exemplo foram fundidos
em um só
Aprendizado de Máquina Multi-Rótulo - Ex. 2
99
Outras formas de interpretar esta transformação:
● Concatenar os rótulos (como se fossem strings)
ID Esportes Religião Ciência Política
1 S N N S
2 N N S S
ID Y
1 “SNNS”
2 “NNSS”
Aprendizado de Máquina Multi-Rótulo - Ex. 2
100
Outras formas de interpretar esta transformação:
● Concatenar os rótulos (como se fossem strings)
● Substituir os rótulos por um símbolo qualquer, único (e.g. uma função hash)
ID Esportes Religião Ciência Política
1 S N N S
2 N N S S
ID Esportes Religião Ciência Política
1 S N N S
2 N N S S
ID Y
1 “SNNS”
2 “NNSS”
ID Y
1 md5(“SNNS”)
2 md5(“NNSS”)
Aprendizado de Máquina Multi-Rótulo - Ex. 2
101
● O novo conjunto de dados resultante desta
transformação tem um único rótulo, então podemos
usar qualquer método tradicional de aprendizado de
máquina
Aprendizado de Máquina Multi-Rótulo - Ex. 2
102
Concluindo
● Vantagens
● Simples
● Leva em consideração dependências entre rótulos
Aprendizado de Máquina Multi-Rótulo - Ex. 2
103
Concluindo
● Vantagens
● Simples
● Leva em consideração dependências entre rótulos
● Desvantagens
● O número de labelsets (conjuntos distinto de rótulos) pode variar
exponencialment com o número de rótulos distintos, tornando o
número de classificadores criados muito grande
● Só pode prever labelsets que ocorreram no conjunto de
treinamento
Aprendizado de Máquina Multi-Rótulo - Ex. 3
104
Ex. 3: Multi-label Decision Tree (ML-DT) (Fonte: Clare and King [2001])
● Este é um método de adaptação do algoritmo
● O algoritmo adaptado para aprendizado multi-rótulo é a Árvore
de Decisão
Aprendizado de Máquina Multi-Rótulo - Ex. 3
105
Relembrando:
● Árvores de decisão são algoritmos para gerar
um conjunto de regras da forma:
que vão sendo aplicadas em sucessão em um
novo exemplo até que ele seja classificado em
apenas um dos rótulos
Ou também
● No algoritmo normal de árvore de decisão, o
critério de decisão sobre qual teste (ou split)
faremos é a entropia:
Aprendizado de Máquina Multi-Rótulo - Ex. 3
106
● No algoritmo normal de árvore de decisão, o
critério de decisão sobre qual teste (ou split)
faremos é a entropia:
Aprendizado de Máquina Multi-Rótulo - Ex. 3
107
A entropia é uma medida do grau de dúvida ou
incerteza sobre uma instância.
● No algoritmo normal de árvore de decisão, o
critério de decisão sobre qual teste (ou split)
faremos é a entropia:
Aprendizado de Máquina Multi-Rótulo - Ex. 3
108
A entropia é máxima quando há o mesmo número
de elementos com cada rótulo em um conjunto de
dados
A entropia é mínima quando todos os elementos
têm o mesmo rótulo.
A entropia é uma medida do grau de dúvida ou
incerteza sobre uma instância.
Aprendizado de Máquina Multi-Rótulo - Ex. 3
109
224 268
215 85 183
[Dataset original]
9
elevação <= 30.5 ?
SimNão
No exemplo usado anteriormente, o split foi
feito em elevação == 30.5 porque este é
o valor que separa o conjunto de dados de
modo a haver maior redução na entropia
Aprendizado de Máquina Multi-Rótulo - Ex. 3
110
224 268
215 85 183
[Dataset original]
9
elevação <= 30.5 ?
SimNão
No exemplo usado anteriormente, o split foi
feito em elevação == 30.5 porque este é
o valor que separa o conjunto de dados de
modo a haver maior redução na entropia
Houve diminuição na entropia de uma etapa para outra
porque antes do split havia quase a mesma chance de
uma casa pertencer a uma cidade ou outra (ou seja, a
entropia era grande e diminuiu)
● A forma de adaptar o algoritmo para aprendizado
multi-rótulo é, precisamente, alterar a forma de
calcular a entropia.
Aprendizado de Máquina Multi-Rótulo - Ex. 3
111
● Fórmula tradicional da entropia:
● Ou seja, a entropia de um conjunto de dados é a
soma, para cada rótulo, da fração de exemplos com
este rótulo vezes o log desta quantidade
Aprendizado de Máquina Multi-Rótulo - Ex. 3
112
● Fórmula modificada, para dados multi-rótulo:
Onde
● Esta fórmula é semelhante à anterior, com uma
pequena diferença.
Aprendizado de Máquina Multi-Rótulo - Ex. 3
113
● Como nesse contexto um exemplo pode ter mais de
um rótulo, não é a proporção de exemplos cujo
rótulo é igual a , mas os exemplos cujo conjunto
de rótulos contém .
Aprendizado de Máquina Multi-Rótulo - Ex. 3
114
● Como nesse contexto um exemplo pode ter mais de
um rótulo, não é a proporção de exemplos cujo
rótulo é igual a , mas os exemplos cujo conjunto
de rótulos contém .
● Uma outra mudança com relação ao algoritmo
original é que as folhas da árvore (ou seja, o split
final) dá como resultado um conjunto de rótulos (ou
seja, um labelset) em vez de um único rótulo.
Aprendizado de Máquina Multi-Rótulo - Ex. 3
115
Aprendizado de Máquina Multi-Rótulo
116
Sugestão de pausa
Aprendizado de Máquina Multi-Rótulo - Tópicos
Modelar a dependência entre os rótulos
● Melhora o resultado
● Tem alto custo (número total de dependências é 2L
)
● Pode ser possível modelar algumas dependências,
só as importantes.
Lembrando que L é o número de rótulos distintos no conjunto de dados
117
Aprendizado de Máquina Multi-Rótulo - Tópicos
Aprendizado Online (stream de dados)
● Aprendizado incremental VS batch
● Concept drift (de labelsets, de dependências)
118
Aprendizado de Máquina Multi-Rótulo - Tópicos
Hierarquia de rótulos
● Muito relevante se os rótulos são tags informadas
em uma comunidade online, por exemplo.
119
Aprendizado de Máquina Multi-Rótulo - Tópicos
Métodos de rankeamento de rótulos
● Retornar um ranking de todas os rótulos possíveis,
ordenados pela relevância
● Pode-se selecionar quantos rótulos quiser para
cada exemplo
120
Aprendizado de Máquina Multi-Rótulo - Tópicos
Ensembles
● Também é um tema de pesquisa em aprendizado
de máquina tradicional
● Bagging (amostragens do conjunto de dados)
● Boosting (transformar vários classificadores fracos em um único que seja
forte)
● Stacking (treinar um algoritmo para combinar resultados de outros algoritmos
de forma a melhorar os resultados gerais)
121
Aprendizado de Máquina Multi-Rótulo - Tópicos
Seleção de Features
● Também chamado de Engenharia de Features
● Também é um assunto quente em aprendizado de
máquina tradicional
122

Mais conteúdo relacionado

Semelhante a Rotulação Automática com Aprendizado de Máquina

Análise de desempenho de algoritmos de ordenação
Análise de desempenho de algoritmos de ordenaçãoAnálise de desempenho de algoritmos de ordenação
Análise de desempenho de algoritmos de ordenaçãoGustavo Carvalho
 
Regressão Múltipla
Regressão MúltiplaRegressão Múltipla
Regressão MúltiplaFelipe Pontes
 
Aula_07_Complexidade_de_Algoritmos.ppt
Aula_07_Complexidade_de_Algoritmos.pptAula_07_Complexidade_de_Algoritmos.ppt
Aula_07_Complexidade_de_Algoritmos.pptssuserd654cb1
 
Aula_07_Complexidade_de_Algoritmos (1).ppt
Aula_07_Complexidade_de_Algoritmos (1).pptAula_07_Complexidade_de_Algoritmos (1).ppt
Aula_07_Complexidade_de_Algoritmos (1).pptssuserd654cb1
 
AlfaCon LABs - Meetup Machine Learning (03/07/2014)
AlfaCon LABs - Meetup Machine Learning (03/07/2014)AlfaCon LABs - Meetup Machine Learning (03/07/2014)
AlfaCon LABs - Meetup Machine Learning (03/07/2014)Labs Alfacon
 
Código limpo: Funções Capítulo 3
Código limpo: Funções  Capítulo 3Código limpo: Funções  Capítulo 3
Código limpo: Funções Capítulo 3Inael Rodrigues
 
4. metodos de contrucao de algoritmo
4. metodos de contrucao de algoritmo4. metodos de contrucao de algoritmo
4. metodos de contrucao de algoritmoEugenio Caetano
 
mod2-mecanismos
mod2-mecanismosmod2-mecanismos
mod2-mecanismosdiogoa21
 
Algoritmo e estruturas de dados operações com matrizes
Algoritmo e estruturas de dados operações com matrizesAlgoritmo e estruturas de dados operações com matrizes
Algoritmo e estruturas de dados operações com matrizesRADILSON RIPARDO DE FRETIAS
 

Semelhante a Rotulação Automática com Aprendizado de Máquina (20)

Análise de desempenho de algoritmos de ordenação
Análise de desempenho de algoritmos de ordenaçãoAnálise de desempenho de algoritmos de ordenação
Análise de desempenho de algoritmos de ordenação
 
Regressão Múltipla
Regressão MúltiplaRegressão Múltipla
Regressão Múltipla
 
Aula_07_Complexidade_de_Algoritmos.ppt
Aula_07_Complexidade_de_Algoritmos.pptAula_07_Complexidade_de_Algoritmos.ppt
Aula_07_Complexidade_de_Algoritmos.ppt
 
Aula_07_Complexidade_de_Algoritmos (1).ppt
Aula_07_Complexidade_de_Algoritmos (1).pptAula_07_Complexidade_de_Algoritmos (1).ppt
Aula_07_Complexidade_de_Algoritmos (1).ppt
 
Aula 3-lógica.pptx
Aula 3-lógica.pptxAula 3-lógica.pptx
Aula 3-lógica.pptx
 
Clean code part 2
Clean code   part 2Clean code   part 2
Clean code part 2
 
PO - aula 1.pptx
PO - aula 1.pptxPO - aula 1.pptx
PO - aula 1.pptx
 
Introducao a otimizacao
Introducao a otimizacaoIntroducao a otimizacao
Introducao a otimizacao
 
Ap algoritmosglauco
Ap algoritmosglaucoAp algoritmosglauco
Ap algoritmosglauco
 
Manual lindo 6.1
Manual lindo 6.1Manual lindo 6.1
Manual lindo 6.1
 
AlfaCon LABs - Meetup Machine Learning (03/07/2014)
AlfaCon LABs - Meetup Machine Learning (03/07/2014)AlfaCon LABs - Meetup Machine Learning (03/07/2014)
AlfaCon LABs - Meetup Machine Learning (03/07/2014)
 
Código limpo: Funções Capítulo 3
Código limpo: Funções  Capítulo 3Código limpo: Funções  Capítulo 3
Código limpo: Funções Capítulo 3
 
0001
00010001
0001
 
000003 complexidade
000003 complexidade000003 complexidade
000003 complexidade
 
4. metodos de contrucao de algoritmo
4. metodos de contrucao de algoritmo4. metodos de contrucao de algoritmo
4. metodos de contrucao de algoritmo
 
Visualg
VisualgVisualg
Visualg
 
mod2-mecanismos
mod2-mecanismosmod2-mecanismos
mod2-mecanismos
 
Algoritmo e estruturas de dados operações com matrizes
Algoritmo e estruturas de dados operações com matrizesAlgoritmo e estruturas de dados operações com matrizes
Algoritmo e estruturas de dados operações com matrizes
 
Aula6final
Aula6finalAula6final
Aula6final
 
Aula2
Aula2Aula2
Aula2
 

Mais de Felipe

First steps with Keras 2: A tutorial with Examples
First steps with Keras 2: A tutorial with ExamplesFirst steps with Keras 2: A tutorial with Examples
First steps with Keras 2: A tutorial with ExamplesFelipe
 
Word embeddings introdução, motivação e exemplos
Word embeddings  introdução, motivação e exemplosWord embeddings  introdução, motivação e exemplos
Word embeddings introdução, motivação e exemplosFelipe
 
Cloud Certifications - Overview
Cloud Certifications - OverviewCloud Certifications - Overview
Cloud Certifications - OverviewFelipe
 
Elasticsearch for Data Analytics
Elasticsearch for Data AnalyticsElasticsearch for Data Analytics
Elasticsearch for Data AnalyticsFelipe
 
Cloudwatch: Monitoring your Services with Metrics and Alarms
Cloudwatch: Monitoring your Services with Metrics and AlarmsCloudwatch: Monitoring your Services with Metrics and Alarms
Cloudwatch: Monitoring your Services with Metrics and AlarmsFelipe
 
Cloudwatch: Monitoring your AWS services with Metrics and Alarms
Cloudwatch: Monitoring your AWS services with Metrics and AlarmsCloudwatch: Monitoring your AWS services with Metrics and Alarms
Cloudwatch: Monitoring your AWS services with Metrics and AlarmsFelipe
 
Online Machine Learning: introduction and examples
Online Machine Learning:  introduction and examplesOnline Machine Learning:  introduction and examples
Online Machine Learning: introduction and examplesFelipe
 
Aws cost optimization: lessons learned, strategies, tips and tools
Aws cost optimization: lessons learned, strategies, tips and toolsAws cost optimization: lessons learned, strategies, tips and tools
Aws cost optimization: lessons learned, strategies, tips and toolsFelipe
 
Exemplos de uso de apache spark usando aws elastic map reduce
Exemplos de uso de apache spark usando aws elastic map reduceExemplos de uso de apache spark usando aws elastic map reduce
Exemplos de uso de apache spark usando aws elastic map reduceFelipe
 
Pré processamento de grandes dados com Apache Spark
Pré processamento de grandes dados com Apache SparkPré processamento de grandes dados com Apache Spark
Pré processamento de grandes dados com Apache SparkFelipe
 
Hadoop MapReduce and Apache Spark on EMR: comparing performance for distribut...
Hadoop MapReduce and Apache Spark on EMR: comparing performance for distribut...Hadoop MapReduce and Apache Spark on EMR: comparing performance for distribut...
Hadoop MapReduce and Apache Spark on EMR: comparing performance for distribut...Felipe
 
Boas práticas no desenvolvimento de software
Boas práticas no desenvolvimento de softwareBoas práticas no desenvolvimento de software
Boas práticas no desenvolvimento de softwareFelipe
 
Rachinations
RachinationsRachinations
RachinationsFelipe
 
Ausgewählte preußische Tugenden
Ausgewählte preußische TugendenAusgewählte preußische Tugenden
Ausgewählte preußische TugendenFelipe
 
Short intro to scala and the play framework
Short intro to scala and the play frameworkShort intro to scala and the play framework
Short intro to scala and the play frameworkFelipe
 
Conceitos e exemplos em versionamento de código
Conceitos e exemplos em versionamento de códigoConceitos e exemplos em versionamento de código
Conceitos e exemplos em versionamento de códigoFelipe
 
DevOps Series: Extending vagrant with Puppet for configuration management
DevOps Series: Extending vagrant with Puppet for configuration managementDevOps Series: Extending vagrant with Puppet for configuration management
DevOps Series: Extending vagrant with Puppet for configuration managementFelipe
 
DevOps Series: Defining and Sharing Testable Machine Configurations with vagrant
DevOps Series: Defining and Sharing Testable Machine Configurations with vagrantDevOps Series: Defining and Sharing Testable Machine Configurations with vagrant
DevOps Series: Defining and Sharing Testable Machine Configurations with vagrantFelipe
 
D3.js 30-minute intro
D3.js   30-minute introD3.js   30-minute intro
D3.js 30-minute introFelipe
 

Mais de Felipe (19)

First steps with Keras 2: A tutorial with Examples
First steps with Keras 2: A tutorial with ExamplesFirst steps with Keras 2: A tutorial with Examples
First steps with Keras 2: A tutorial with Examples
 
Word embeddings introdução, motivação e exemplos
Word embeddings  introdução, motivação e exemplosWord embeddings  introdução, motivação e exemplos
Word embeddings introdução, motivação e exemplos
 
Cloud Certifications - Overview
Cloud Certifications - OverviewCloud Certifications - Overview
Cloud Certifications - Overview
 
Elasticsearch for Data Analytics
Elasticsearch for Data AnalyticsElasticsearch for Data Analytics
Elasticsearch for Data Analytics
 
Cloudwatch: Monitoring your Services with Metrics and Alarms
Cloudwatch: Monitoring your Services with Metrics and AlarmsCloudwatch: Monitoring your Services with Metrics and Alarms
Cloudwatch: Monitoring your Services with Metrics and Alarms
 
Cloudwatch: Monitoring your AWS services with Metrics and Alarms
Cloudwatch: Monitoring your AWS services with Metrics and AlarmsCloudwatch: Monitoring your AWS services with Metrics and Alarms
Cloudwatch: Monitoring your AWS services with Metrics and Alarms
 
Online Machine Learning: introduction and examples
Online Machine Learning:  introduction and examplesOnline Machine Learning:  introduction and examples
Online Machine Learning: introduction and examples
 
Aws cost optimization: lessons learned, strategies, tips and tools
Aws cost optimization: lessons learned, strategies, tips and toolsAws cost optimization: lessons learned, strategies, tips and tools
Aws cost optimization: lessons learned, strategies, tips and tools
 
Exemplos de uso de apache spark usando aws elastic map reduce
Exemplos de uso de apache spark usando aws elastic map reduceExemplos de uso de apache spark usando aws elastic map reduce
Exemplos de uso de apache spark usando aws elastic map reduce
 
Pré processamento de grandes dados com Apache Spark
Pré processamento de grandes dados com Apache SparkPré processamento de grandes dados com Apache Spark
Pré processamento de grandes dados com Apache Spark
 
Hadoop MapReduce and Apache Spark on EMR: comparing performance for distribut...
Hadoop MapReduce and Apache Spark on EMR: comparing performance for distribut...Hadoop MapReduce and Apache Spark on EMR: comparing performance for distribut...
Hadoop MapReduce and Apache Spark on EMR: comparing performance for distribut...
 
Boas práticas no desenvolvimento de software
Boas práticas no desenvolvimento de softwareBoas práticas no desenvolvimento de software
Boas práticas no desenvolvimento de software
 
Rachinations
RachinationsRachinations
Rachinations
 
Ausgewählte preußische Tugenden
Ausgewählte preußische TugendenAusgewählte preußische Tugenden
Ausgewählte preußische Tugenden
 
Short intro to scala and the play framework
Short intro to scala and the play frameworkShort intro to scala and the play framework
Short intro to scala and the play framework
 
Conceitos e exemplos em versionamento de código
Conceitos e exemplos em versionamento de códigoConceitos e exemplos em versionamento de código
Conceitos e exemplos em versionamento de código
 
DevOps Series: Extending vagrant with Puppet for configuration management
DevOps Series: Extending vagrant with Puppet for configuration managementDevOps Series: Extending vagrant with Puppet for configuration management
DevOps Series: Extending vagrant with Puppet for configuration management
 
DevOps Series: Defining and Sharing Testable Machine Configurations with vagrant
DevOps Series: Defining and Sharing Testable Machine Configurations with vagrantDevOps Series: Defining and Sharing Testable Machine Configurations with vagrant
DevOps Series: Defining and Sharing Testable Machine Configurations with vagrant
 
D3.js 30-minute intro
D3.js   30-minute introD3.js   30-minute intro
D3.js 30-minute intro
 

Rotulação Automática com Aprendizado de Máquina

  • 1. Rotulação Automática (Automatic Tagging) 26 Abril 2016 Felipe Almeida Orientador: Prof. Geraldo Xexéo PESC / COPPE / UFRJ 1
  • 2. Estrutura ● O problema ● Aprendizado de Máquina ● Introdução ● Exemplo 1 (Regressão linear) ● Exemplo 2 (Árvore de Decisão) ● Exemplo 3 (Naïve Bayes) ● Aprendizado de Máquina Multi-rótulo ● Introdução ● Método 1 (Binary Relevance) ● Método 2 (Label Powerset) ● Método 3 (ML-DT) ● Tópicos 2
  • 3. O Problema ● Dado um documento, me diga quais seriam as tags que um humano associaria a ele. 3
  • 4. O Problema: exemplo ● Sugestão de tags em um post no StackOverflow 4Fonte: Stackoverflow.com, Abril de 2016
  • 5. O Problema: exemplo 5 O texto é sobre uma dúvida em como fazer certa ação em uma plataforma de blogs As tags sugeridas pelo website foram bastante equivocadas
  • 6. ● Ou seja, não parece haver muita inteligência nessa solução O Problema: exemplo 6 tags sugeridas pois são tags muito usadas no site tags sugeridas pois ocorrem no texto
  • 7. O Problema: exemplo 7 ● O que poderíamos melhorar nessa solução? ● Sugestões?
  • 8. Aprendizado de Máquina1 ● Objetivo principal: prever como uma certa fonte de dados irá se comportar no futuro, com base em informações passadas ● Em outras palavras, aprender (treinar) um modelo aproximado que consiga explicar tanto os dados passados (vistos) como os dados futuros (não vistos) [1] Supervisionado 8
  • 9. Aprendizado de Máquina ● Em geral temos um conjunto de dados chamado de conjunto de treinamento, que usamos para treinar nosso modelo. 9 x1 Y 1.0 1.0 2.0 2.0 3.0 1.3 4.0 3.75 5.0 2.25 ● Os valores de x1 são chamados de features ● Os valores de Y são o objetivo ● Todos os métodos de aprendizado de máquina são, em última instância, uma função que recebe um conjunto de features e retorna um valor (estimado) para o objetivo.
  • 10. Aprendizado de Máquina ● Neste outro exemplo, cada linha tem três (em vez de apenas uma) feature 10 x1 x2 x3 Y 2.0 1.0 1.0 1.0 2.0 1.0 2.0 2.0 3.0 2.0 3.0 1.3
  • 11. Aprendizado de Máquina ● Neste outro exemplo, cada linha tem três (em vez de apenas uma) feature ● O conjunto de features é chamado de vetor de features e é representado por X 11 x1 x2 x3 Y 2.0 1.0 1.0 1.0 2.0 1.0 2.0 2.0 3.0 2.0 3.0 1.3
  • 12. Aprendizado de Máquina ● A seguir vamos ver três diferentes métodos para fazer aprendizado de máquina: ● Regressão Linear ● Árvore de decisão ● Naïve Bayes 12
  • 13. Ex. 1: Regressão Linear ● Consiste em aprender uma reta ou polinômio que aproxime bem os dados ● Um algoritmo bastante comum usa a soma dos quadrados dos erros como medida Aprendizado de Máquina - Ex. 1 13
  • 14. Aprendizado de Máquina - Ex. 1 14Fonte: Fisher and Belle [1993]: Biostatistics. A Methodology for the Health Sciences ● Dados de exemplo: câncer de pele
  • 15. Aprendizado de Máquina - Ex. 1 15 ● Agora queremos saber a taxa de mortalidade para um ponto que não está no nosso conjunto: 50 ?
  • 16. Aprendizado de Máquina - Ex. 1 16 ● O algoritmo de regressão linear gera uma reta que minimiza a soma dos quadrados dos erros: [Fonte: http://onlinestatbook.com/2/regression/intro.html] Reta gerada para este conjunto de dados de 5 pontos As linhas verticais indicam o erro entre os pontos e a reta
  • 17. Aprendizado de Máquina - Ex. 1 17 ● Para os nossos dados, a seguinte reta é gerada: 50
  • 18. ● Para os nossos dados, a seguinte reta é gerada: Aprendizado de Máquina - Ex. 1 18 50 Esta reta tem a equação: ŷ(x) = 389.2 - 5.98x
  • 19. 50 Aprendizado de Máquina - Ex. 1 19 ● Para os nossos dados, a seguinte reta é gerada: Esta reta tem a equação: ŷ(x) = 389.2 - 5.98x Podemos usá-la para fazer uma estimativa do valor que o nosso novo ponto teria: ŷ(50) = 389.2 - 5.98 ( 50) ŷ(50) = 90.2
  • 20. 50 Aprendizado de Máquina - Ex. 1 20 ● Para os nossos dados, a seguinte reta é gerada: Esta reta tem a equação: ŷ(x) = 389.2 - 5.98x Podemos usá-la para fazer uma estimativa do valor que o nosso novo ponto teria: ŷ(50) = 389.2 - 5.98 ( 50) ŷ(50) = 90.2 Portanto, nosso modelo prevê que uma localidade com latitude 50 graus terá uma taxa de mortalidade de câncer de pele de 90.2 mortes por 10 milhões de habitante
  • 21. Concluindo: ● Vantagens ● Simples ● Intuitivo Aprendizado de Máquina - Ex. 1 21
  • 22. Concluindo: ● Vantagens ● Simples ● Intuitivo ● Desvantagens ● Sujeito a overfitting ● Não funciona para casos em que os dados não apresentam relacionamento linear ● Isso não é tão limitante quanto parece Aprendizado de Máquina - Ex. 1 22 Significa que o modelo funciona bem no conjunto de dados de treinamento mas não em dados novos
  • 23. Aprendizado de Máquina - Ex. 2 Ex. 2: Árvore de decisão ● Consiste em aprender uma série de IFs/ELSEs que servirão para categorizar um exemplo ● Graficamente, é uma árvore onde cada nó representa uma fronteira para o valor de uma feature 23
  • 24. Aprendizado de Máquina - Ex. 2 Dados de exemplo: casas em SF vs NY[Fonte: github/jadeyee] ● Consiste em 490 linhas com informações sobre residências localizadas em São Francisco ou Nova York. ● Cada linha tem 7 features 24
  • 25. Aprendizado de Máquina - Ex. 2 ● Exemplo de 3 linhas do dataset: 25 Nº de quartos Nº de banheiros Preço Ano de construção Área Preço por unidade de área Elevação Cidade 2 1 999,000 1960 1000 999 10 0 1 1,5 775,000 2009 835 928 14 1 3 3 9,990,000 2015 2950 3356 4 0
  • 26. Aprendizado de Máquina - Ex. 2 ● Exemplo de 3 linhas do dataset: 26 0 significa Nova York, 1 significa São Francisco Objetivo Features Nº de quartos Nº de banheiros Preço Ano de construção Área Preço por unidade de área Elevação Cidade 2 1 999,000 1960 1000 999 10 0 1 1,5 775,000 2009 835 928 14 1 3 3 9,990,000 2015 2950 3356 4 0
  • 27. Aprendizado de Máquina - Ex. 2 ● Um teste, ou split, de uma árvore de decisão é um valor de corte de uma feature 27 ● Por exemplo, se escolhermos (elevação <= 30.5) como nosso primeiro teste, temos:
  • 28. Aprendizado de Máquina - Ex. 2 ● Um teste, ou split, de uma árvore de decisão é um valor de corte de uma feature 28 ● Por exemplo, se escolhermos (elevação <= 30.5) como nosso primeiro teste, temos: 224 268 215 85 9 183 elevação <= 30.5 ? NY SF Não Sim NY SFSF NY [Dataset original]
  • 29. Aprendizado de Máquina - Ex. 2 ● O algoritmo continua de forma recursiva, os nós vão se repartindo sucessivamente até que todas as folhas do grafo sejam “puras” ● Ou seja quando, em todas as folhas só haja elementos de uma das classes 29
  • 30. Aprendizado de Máquina - Ex. 2 ● O algoritmo continua de forma recursiva, os nós vão se repartindo sucessivamente até que todas as folhas do grafo sejam “puras” ● Ou seja quando, em todas as folhas só haja elementos de uma das classes ● Ao fim do algoritmo, teremos uma série de testes ou splits que podem ser usados para classificar uma instância nova 30
  • 31. Aprendizado de Máquina - Ex. 2 31 ● Detalhe da raiz da árvore gerada (diagrama feito pela biblioteca scikit-learn)
  • 32. Aprendizado de Máquina - Ex. 2 32 Arquivo: http://imgur.com/1lSkxGJ● Árvore inteira:
  • 33. Aprendizado de Máquina - Ex. 2 33 ● Testando nosso modelo (com um exemplo novo, criado por mim): Nº de quartos Nº de banheiros Preço Ano de construção Área Preço por unidade de área Elevação Cidade 4 3 1,500,000 1930 1200 1250 300 ? Este atributo é o que desejamos descobrir
  • 34. Aprendizado de Máquina - Ex. 2 34 ● Este exemplo representa uma casa mais ou menos assim: Casa espaçosa, antiga, no topo de uma colina. Fonte: https://flic.kr/p/cFRb1u
  • 35. Aprendizado de Máquina - Ex. 2 35 Testes: ● Elevação <= 30.5? Não ● Preço <= 579,450 ? Não ● Elevação <= 37.0? Não ● Cidade == São Francisco ✓ O modelo decidiu que a nossa casa tem mais probabilidade de se localizar em São Francisco do que em Nova York. Nº de quartos Nº de banheiros Preço Ano de construção Área Preço por unidade de área Elevação Cidade 4 3 1,500,000 1930 1200 1250 300 ?
  • 36. Aprendizado de Máquina - Ex. 2 36 Concluindo: ● Vantagens ● Simples ● Escalável ● Muito facilmente Interpretável; permite comparação do resultado do algoritmo com o conhecimento de domínio existente
  • 37. Aprendizado de Máquina - Ex. 2 37 Concluindo: ● Vantagens ● Simples ● Escalável ● Muito facilmente Interpretável; permite comparação do resultado do algoritmo com o conhecimento de domínio existente ● Desvantagens ● Vulnerável a overfitting ● Não conseguem aprender algumas funções (e.g. XOR)
  • 38. Aprendizado de Máquina - Ex. 3 Ex. 3: Naïve Bayes ● Classificador baseado na regra de Bayes ● Lembrando: 38
  • 39. Aprendizado de Máquina - Ex. 3 ● A forma de usar a regra para aprendizado de máquina é imaginar que o objetivo é a variável A e as features do exemplo são a variável B ● Ou seja: 39
  • 40. Aprendizado de Máquina - Ex. 3 ● A forma de usar a regra para aprendizado de máquina é imaginar que o objetivo é a variável A e as features do exemplo são a variável B ● Ou seja: 40 ● Ou, de forma mais sucinta:
  • 41. Aprendizado de Máquina - Ex. 3 ● O algoritmo é chamado de naïve (ou ingênuo) pois ele faz uma suposição simplificadora de que as features são independentes entre si ● Isso facilita muito os cálculos e não piora muito os resultados 41
  • 42. Aprendizado de Máquina - Ex. 3 ● Então em vez de ter que calcular as dependências entre as features podemos calcular o numerador (do lado direito da equação) de forma bem simples: ● Lembrando que X é o conjunto de features x1 até xn 42
  • 43. Aprendizado de Máquina - Ex. 3 ● Então em vez de ter que calcular as dependências entre as features podemos calcular o numerador (do lado direito da equação) de forma bem simples: ● Lembrando que X é o conjunto de features x1 até xn 43 ObjetivoProduto da probabilidade de cada feature, dado o objetivo
  • 44. Aprendizado de Máquina - Ex. 3 ● E o denominador do lado direito da equação? 44
  • 45. Aprendizado de Máquina - Ex. 3 ● E o denominador do lado direito da equação? ● Não precisamos calculá-lo (mais explicações no exemplo) 45
  • 46. Aprendizado de Máquina - Ex. 3 ● A partir daí é só a gente ver quanto vale este valor para cada um dos objetivos que podem existir e pegar o maior. ● Qualquer coisa que não tenha ficado clara vai ser vista no exemplo 46
  • 47. Aprendizado de Máquina - Ex. 3 Dados de exemplo: Roubo de carros 47 COR TIPO ORIGEM FOI ROUBADO ? VERMELHO ESPORTIVO NACIONAL SIM VERMELHO ESPORTIVO NACIONAL NÃO VERMELHO ESPORTIVO NACIONAL SIM AMARELO ESPORTIVO NACIONAL NÃO AMARELO ESPORTIVO IMPORTADO SIM AMARELO UTILITÁRIO IMPORTADO NÃO AMARELO UTILITÁRIO IMPORTADO SIM AMARELO UTILITÁRIO NACIONAL NÃO VERMELHO UTILITÁRIO IMPORTADO NÃO VERMELHO ESPORTIVO IMPORTADO SIM [Adaptado do trabalho de Eric Meisner @ JHU]
  • 48. Aprendizado de Máquina - Ex. 3 Dados de exemplo: Roubo de carros 48 COR TIPO ORIGEM FOI ROUBADO ? VERMELHO ESPORTIVO NACIONAL SIM VERMELHO ESPORTIVO NACIONAL NÃO VERMELHO ESPORTIVO NACIONAL SIM AMARELO ESPORTIVO NACIONAL NÃO AMARELO ESPORTIVO IMPORTADO SIM AMARELO UTILITÁRIO IMPORTADO NÃO AMARELO UTILITÁRIO IMPORTADO SIM AMARELO UTILITÁRIO NACIONAL NÃO VERMELHO UTILITÁRIO IMPORTADO NÃO VERMELHO ESPORTIVO IMPORTADO SIM [Adaptado do trabalho de Eric Meisner @ JHU] features objetivo
  • 49. Aprendizado de Máquina - Ex. 3 ● Vamos usar o algoritmo para prever se um carro Utilitário, Nacional e Vermelho será roubado ● Como nos outros exemplos, este é um dado que não faz parte do nosso conjunto de treinamento 49
  • 50. Aprendizado de Máquina - Ex. 3 ● Vamos usar o algoritmo para prever se um carro Utilitário, Nacional e Vermelho será roubado ● Como nos outros exemplos, este é um dado que não faz parte do nosso conjunto de treinamento 50 Este é o atributo que desejamos descobrir COR TIPO ORIGEM FOI ROUBADO ? VERMELHO UTILITÁRIO NACIONAL
  • 51. Aprendizado de Máquina - Ex. 3 Pelo algoritmo, devemos calcular: Ou seja, a probabilidade de um objetivo dadas as features (este é o lado esquerdo da equação que vimos) Os dois objetivos possíveis são: ● FOI ROUBADO = SIM ● FOI ROUBADO = NÃO 51 COR TIPO ORIGEM FOI ROUBADO ? VERMELHO ESPORTIVO NACIONAL SIM VERMELHO ESPORTIVO NACIONAL NÃO VERMELHO ESPORTIVO NACIONAL SIM AMARELO ESPORTIVO NACIONAL NÃO AMARELO ESPORTIVO IMPORTADO SIM AMARELO UTILITÁRIO IMPORTADO NÃO AMARELO UTILITÁRIO IMPORTADO SIM AMARELO UTILITÁRIO NACIONAL NÃO VERMELHO UTILITÁRIO IMPORTADO NÃO VERMELHO ESPORTIVO IMPORTADO SIM
  • 52. Aprendizado de Máquina - Ex. 3 Isto equivale a dizer que precisamos calcular estas duas probabilidades: ● ● Um destes valores será maior; será possível ver se é mais provável que o nosso carro de exemplo seja roubado ou não. 52 COR TIPO ORIGEM FOI ROUBADO ? VERMELHO ESPORTIVO NACIONAL SIM VERMELHO ESPORTIVO NACIONAL NÃO VERMELHO ESPORTIVO NACIONAL SIM AMARELO ESPORTIVO NACIONAL NÃO AMARELO ESPORTIVO IMPORTADO SIM AMARELO UTILITÁRIO IMPORTADO NÃO AMARELO UTILITÁRIO IMPORTADO SIM AMARELO UTILITÁRIO NACIONAL NÃO VERMELHO UTILITÁRIO IMPORTADO NÃO VERMELHO ESPORTIVO IMPORTADO SIM
  • 53. Aprendizado de Máquina - Ex. 3 Então vamos calcular: ● ● 53
  • 54. Aprendizado de Máquina - Ex. 3 Então vamos calcular: ● ● 54 ● Note que o denominador é o mesmo nos dois casos! ● Como só queremos saber qual das duas probabilidades é maior, não precisamos calculá-lo
  • 55. Aprendizado de Máquina - Ex. 3 Continuando (note que o símbolo de igualdade não é mais usado) ● ● 55
  • 56. Aprendizado de Máquina - Ex. 3 ● O valor 0.072 é maior do que o valor 0.024, portanto o mais provável é que o carro NÃO seja roubado afinal de contas! ● Note que esses valores não são probabilidades, senão eles somariam 1 56
  • 57. Aprendizado de Máquina - Ex. 3 Concluindo: ● Vantagens: ● Simples ● Rápido (baixa complexidade de tempo) ● Apesar da hipótese forte de independência, boa performance em muitos casos 57
  • 58. Aprendizado de Máquina - Ex. 3 Concluindo: ● Vantagens: ● Simples ● Rápido (baixa complexidade de tempo) ● Apesar da hipótese forte de independência, boa performance em muitos casos ● Desvantagens: ● Não consegue aprender interações entre features, por causa da hiótese de independência 58
  • 59. Aprendizado de Máquina ● Vamos usar aprendizado de máquina para nos ajudar a sugerir rótulos (tags) para nossos documentos (esse é nosso objetivo inicial) ● Ideias? 59
  • 61. Aprendizado de Máquina Multi-Rótulo Continuando do último slide ● Vamos usar aprendizado de máquina para nos ajudar a sugerir rótulos (tags) para nossos documentos (esse é nosso objetivo inicial) 61
  • 62. Aprendizado de Máquina Multi-Rótulo Continuando do último slide ● Vamos usar aprendizado de máquina para nos ajudar a sugerir rótulos (tags) para nossos documentos (esse é nosso objetivo inicial) ● Com aprendizado de máquina multi-rótulo 62
  • 63. Aprendizado de Máquina Multi-Rótulo ● Um conjunto de dados normal (como os vistos até agora) é assim 63 x1 x2 x3 ... xn Y n features 1 objetivo
  • 64. Aprendizado de Máquina Multi-Rótulo ● Um conjunto de dados normal (como os vistos até agora) é assim ● Já um conjunto de dados multi-rótulo é assim: 64 n features 1 objetivo x1 x2 ... xn y1 y2 ... ym n features m objetivos x1 x2 x3 ... xn Y
  • 65. Aprendizado de Máquina Multi-Rótulo ● Dados que contêm mais de um objetivo são ditos multi-rótulo ● O aprendizado de máquina usando conjuntos de dados multi-rótulo é chamado de aprendizado multi-rótulo ● Neste contexto, conjuntos de dados normais são chamados de conjuntos de dados de rótulo único 65
  • 66. Aprendizado de Máquina Multi-Rótulo Alguns exemplos de domínios em que dados costumam ter mais de um objetivo: ● Categorização de textos em assuntos ● Diagnósticos médicos ● Categorização de imagens ● Classificação de função de proteínas ● Classificação de função de genes ● Categorização de músicas em emoções 66
  • 67. Aprendizado de Máquina Multi-Rótulo Alguns exemplos de domínios em que dados costumam ter mais de um objetivo: ● Categorização de textos em assuntos ● Diagnósticos médicos ● Categorização de imagens ● Classificação de função de proteínas ● Classificação de função de genes ● Categorização de músicas em emoções 67 Tags podem ser usadas para classificar qualquer coisa (não só texto)
  • 68. Aprendizado de Máquina Multi-Rótulo Alguns exemplos de domínios em que dados costumam ter mais de um objetivo: ● Categorização de textos em assuntos ● Diagnósticos médicos ● Categorização de imagens ● Classificação de função de proteínas ● Classificação de função de genes ● Categorização de músicas em emoções 68 Os termos tag, rótulo e objetivo são usados como sinônimos no contexto de aprendizado multi-rótulo! Tags podem ser usadas para classificar qualquer coisa (não só texto)
  • 69. Aprendizado de Máquina Multi-Rótulo Um exemplo de um conjunto de dados multi-rótulo: Livros e assuntos abordados [Adaptado de: Tsoumakas et al 2010] 69 Título do livro Esportes Religião Ciência Política 1 Game Over: How Politics Has Turned the Sports World Upside Down S N N S 2 Emotional Intelligence: Why It Can Matter More Than IQ N N S S 3 Scholastic Year in Sports 2016 S N N N 4 The Great Partnership: Science, Religion and Search for Meaning N S S N S significa que o livro aborda este assunto, N significa que não
  • 70. Aprendizado de Máquina Multi-Rótulo ● Então uma forma de aprender quais são as tags corretas para um documento é usando aprendizado multi-rótulo. 70
  • 71. Aprendizado de Máquina Multi-Rótulo Há dois tipos básicos de métodos para fazer aprendizado multi-rótulo: ● Transformação do problema ● Transformamos o conjunto de dados multi-rótulo em um conjunto de dados normal (de rótulo único), de forma que possamos usar os métodos tradicionais de aprendizado de máquina 71
  • 72. Aprendizado de Máquina Multi-Rótulo Há dois tipos básicos de métodos para fazer aprendizado multi-rótulo: ● Transformação do problema ● Transformamos o conjunto de dados multi-rótulo em um conjunto de dados normal (de rótulo único), de forma que possamos usar os métodos tradicionais de aprendizado de máquina ● Adaptação do algoritmo ● Transformamos um algoritmo tradicional para que ele consiga lidar com dados multi-rótulo 72
  • 73. Aprendizado de Máquina Multi-Rótulo 73 Label Powersets Figura adaptada de Zhang and Zhou [2014] * Adição minha
  • 74. Aprendizado de Máquina Multi-Rótulo - Ex. 1 74 Ex. 1: Binary relevance (também chamado de One-vs-Rest) ● Este é um método de transformação do problema
  • 75. Aprendizado de Máquina Multi-Rótulo - Ex. 1 75 Ex. 1: Binary relevance ● Este é um método de transformação do problema ● O conjunto de dados multi-rótulo é transformado em vários conjuntos de dados com um único rótulo e um modelo é aprendido para cada rótulo ● Ou seja, você resolve um número de problemas igual ao número de tags diferentes que você pode ter
  • 76. Aprendizado de Máquina Multi-Rótulo - Ex. 1 76 ● É chamado de Binary Relevance (relevância binária) pois, para cada rótulo, será criado um classificador binário (só responde True/false)
  • 77. Aprendizado de Máquina Multi-Rótulo - Ex. 1 77 ● É chamado de Binary Relevance (relevância binária) pois, para cada rótulo, será criado um classificador binário (só responde True/false) ● Este classificador binário pode ser qualquer método de aprendizado de máquina, inclusive os já vistos aqui
  • 78. Aprendizado de Máquina Multi-Rótulo - Ex. 1 78 Dados de exemplo: Filmes e assuntos ID Livro Esportes Religião Ciência Política 1 S N N S 2 N N S S 3 S N N N 4 N S S N
  • 79. Aprendizado de Máquina Multi-Rótulo - Ex. 1 79 Dados de exemplo: Filmes e assuntos ID Livro Esportes Religião Ciência Política 1 S N N S 2 N N S S 3 S N N N 4 N S S N É o mesmo conjunto utilizado há pouco; tiramos os títulos pois não serão utilizados neste exemplo
  • 80. Aprendizado de Máquina Multi-Rótulo - Ex. 1 80 Pelo algoritmo, devemos transformar o conjunto de dados multi-rótulo em vários conjuntos de rótulo único
  • 81. Aprendizado de Máquina Multi-Rótulo - Ex. 1 ID Esportes Religião Ciência Política 1 S N N S 2 N N S S 3 S N N N 4 N S S N 1 conjunto de dados multi-rótulo: 4 rótulos por exemplo
  • 82. Aprendizado de Máquina Multi-Rótulo - Ex. 1 1 conjunto de dados multi-rótulo: 4 rótulos por exemplo 82 ID Y 1 S 2 N 3 S 4 N ID Y 1 N 2 N 3 N 4 S ID Y 1 S 2 S 3 N 4 N ID Y 1 N 2 S 3 N 4 S Esportes Religião Ciência Política 4 conjuntos de dados com 1 único rótulo por exemplo ID Esportes Religião Ciência Política 1 S N N S 2 N N S S 3 S N N N 4 N S S N
  • 83. Aprendizado de Máquina Multi-Rótulo - Ex. 1 1 conjunto de dados multi-rótulo: 4 rótulos por exemplo 83 ID Y 1 S 2 N 3 S 4 N ID Y 1 N 2 N 3 N 4 S ID Y 1 S 2 S 3 N 4 N ID Y 1 N 2 S 3 N 4 S Esportes Religião Ciência Política 4 conjuntos de dados com 1 único rótulo por exemplo ID Esportes Religião Ciência Política 1 S N N S 2 N N S S 3 S N N N 4 N S S N Aqui ocorre a transformação do problema
  • 84. Aprendizado de Máquina Multi-Rótulo - Ex. 1 ● A partir daí treinamos um classificador para cada um dos rótulos. 84
  • 85. Aprendizado de Máquina Multi-Rótulo - Ex. 1 ● A partir daí treinamos um classificador para cada um dos rótulos. ● Usando o Algoritmo Naïve Bayes, nós treinaríamos: ● Um modelo para o rótulo “Esportes” ● Um modelo para o rótulo “Religião” ● Um modelo para o rótulo “Ciência” ● Um modelo para o rótulo “Política” 85
  • 86. Aprendizado de Máquina Multi-Rótulo - Ex. 1 ● A partir daí treinamos um classificador para cada um dos rótulos. ● Usando o Algoritmo Naïve Bayes, nós treinaríamos: ● Um modelo para o rótulo “Esportes” ● Um modelo para o rótulo “Religião” ● Um modelo para o rótulo “Ciência” ● Um modelo para o rótulo “Política” 86 “Classificador” é, no nosso caso, um sinônimo para “modelo” de aprendizado de máquina
  • 87. Aprendizado de Máquina Multi-Rótulo - Ex. 1 ● Então, se quiséssemos classificar um novo livro, nós usaríamos cada um dos 4 modelos para testar se: ● O livro terá o rótulo “Esportes”? (S ou N) ● O livro terá o rótulo “Religião”? (S ou N) ● O livro terá o rótulo “Ciência”? (S ou N) ● O livro terá o rótulo “Política”? (S ou N) 87
  • 88. Aprendizado de Máquina Multi-Rótulo - Ex. 1 ● Então, se quiséssemos classificar um novo livro, nós usaríamos cada um dos 4 modelos para testar se: ● O livro terá o rótulo “Esportes”? (S ou N) ● O livro terá o rótulo “Religião”? (S ou N) ● O livro terá o rótulo “Ciência”? (S ou N) ● O livro terá o rótulo “Política”? (S ou N) 88 Lembrando que cada classificador é binário (retorna apenas um valor de um bit, ou seja, S ou N)
  • 89. Aprendizado de Máquina Multi-Rótulo - Ex. 1 ● A resposta final (ou seja, o conjunto de assuntos que um dado livro deve ter) será o conjunto das previsões de cada classificador: 89
  • 90. Aprendizado de Máquina Multi-Rótulo - Ex. 1 ● A resposta final (ou seja, o conjunto de assuntos que um dado livro deve ter) será o conjunto das previsões de cada classificador: 90 ID Esportes Religião Ciência Política Resultado do classificador para o rótulo “Esportes” (S/N) Resultado do classificador para o rótulo “Política” (S/N) Resultado do classificador para o rótulo “CIência” (S/N) Resultado do classificador para o rótulo “Religião” (S/N)
  • 91. Aprendizado de Máquina Multi-Rótulo - Ex. 1 Concluindo: ● Vantagens: ● Simples ● Intuitivo 91
  • 92. Aprendizado de Máquina Multi-Rótulo - Ex. 1 Concluindo: ● Vantagens: ● Simples ● Intuitivo ● Desvantagens ● Não leva em conta dependências entre rótulos 92
  • 93. Aprendizado de Máquina Multi-Rótulo - Ex. 2 Ex. 2: Label powerset ● Este é um método de transformação do problema 93
  • 94. Aprendizado de Máquina Multi-Rótulo - Ex. 2 Ex. 2: Label powerset ● Este é um método de transformação do problema ● Consiste em transformar o conjunto de dados multi-rótulo em um único conjunto de dados com um único rótulo. 94
  • 95. Aprendizado de Máquina Multi-Rótulo - Ex. 2 Ex. 2: Label powerset ● Este é um método de transformação do problema ● Consiste em transformar o conjunto de dados multi-rótulo em um único conjunto de dados com um único rótulo. 95 Em contraste, o método anterior (Binary Relevance) transforma o conjunto de dados multi-rótulo original em L novos conjuntos de dados - onde L é o número de rótulos distintos no conjunto
  • 96. Aprendizado de Máquina Multi-Rótulo - Ex. 2 Usando o nosso conjunto de dados anterior como exemplo (livros e assuntos): 96 ID Livro Esportes Religião Ciência Política 1 S N N S 2 N N S S 3 S N N N 4 N S S N
  • 97. Aprendizado de Máquina Multi-Rótulo - Ex. 2 1 conjunto de dados multi-rótulo: 4 rótulos por exemplo 97 1 conjunto de dados com 1 único rótulo por exemplo ID Esportes Religião Ciência Política 1 S N N S 2 N N S S 3 S N N N 4 N S S N ID Y 1 (S,N,N,S) 2 (N,N,S,S) 3 (S,N,N,N) 4 (N,S,S,N)
  • 98. Aprendizado de Máquina Multi-Rótulo - Ex. 2 1 conjunto de dados multi-rótulo: 4 rótulos por exemplo 98 1 conjunto de dados com 1 único rótulo por exemplo ID Esportes Religião Ciência Política 1 S N N S 2 N N S S 3 S N N N 4 N S S N ID Y 1 (S,N,N,S) 2 (N,N,S,S) 3 (S,N,N,N) 4 (N,S,S,N) Aqui ocorre a transformação do problema; os múltiplos rótulos de cada exemplo foram fundidos em um só
  • 99. Aprendizado de Máquina Multi-Rótulo - Ex. 2 99 Outras formas de interpretar esta transformação: ● Concatenar os rótulos (como se fossem strings) ID Esportes Religião Ciência Política 1 S N N S 2 N N S S ID Y 1 “SNNS” 2 “NNSS”
  • 100. Aprendizado de Máquina Multi-Rótulo - Ex. 2 100 Outras formas de interpretar esta transformação: ● Concatenar os rótulos (como se fossem strings) ● Substituir os rótulos por um símbolo qualquer, único (e.g. uma função hash) ID Esportes Religião Ciência Política 1 S N N S 2 N N S S ID Esportes Religião Ciência Política 1 S N N S 2 N N S S ID Y 1 “SNNS” 2 “NNSS” ID Y 1 md5(“SNNS”) 2 md5(“NNSS”)
  • 101. Aprendizado de Máquina Multi-Rótulo - Ex. 2 101 ● O novo conjunto de dados resultante desta transformação tem um único rótulo, então podemos usar qualquer método tradicional de aprendizado de máquina
  • 102. Aprendizado de Máquina Multi-Rótulo - Ex. 2 102 Concluindo ● Vantagens ● Simples ● Leva em consideração dependências entre rótulos
  • 103. Aprendizado de Máquina Multi-Rótulo - Ex. 2 103 Concluindo ● Vantagens ● Simples ● Leva em consideração dependências entre rótulos ● Desvantagens ● O número de labelsets (conjuntos distinto de rótulos) pode variar exponencialment com o número de rótulos distintos, tornando o número de classificadores criados muito grande ● Só pode prever labelsets que ocorreram no conjunto de treinamento
  • 104. Aprendizado de Máquina Multi-Rótulo - Ex. 3 104 Ex. 3: Multi-label Decision Tree (ML-DT) (Fonte: Clare and King [2001]) ● Este é um método de adaptação do algoritmo ● O algoritmo adaptado para aprendizado multi-rótulo é a Árvore de Decisão
  • 105. Aprendizado de Máquina Multi-Rótulo - Ex. 3 105 Relembrando: ● Árvores de decisão são algoritmos para gerar um conjunto de regras da forma: que vão sendo aplicadas em sucessão em um novo exemplo até que ele seja classificado em apenas um dos rótulos Ou também
  • 106. ● No algoritmo normal de árvore de decisão, o critério de decisão sobre qual teste (ou split) faremos é a entropia: Aprendizado de Máquina Multi-Rótulo - Ex. 3 106
  • 107. ● No algoritmo normal de árvore de decisão, o critério de decisão sobre qual teste (ou split) faremos é a entropia: Aprendizado de Máquina Multi-Rótulo - Ex. 3 107 A entropia é uma medida do grau de dúvida ou incerteza sobre uma instância.
  • 108. ● No algoritmo normal de árvore de decisão, o critério de decisão sobre qual teste (ou split) faremos é a entropia: Aprendizado de Máquina Multi-Rótulo - Ex. 3 108 A entropia é máxima quando há o mesmo número de elementos com cada rótulo em um conjunto de dados A entropia é mínima quando todos os elementos têm o mesmo rótulo. A entropia é uma medida do grau de dúvida ou incerteza sobre uma instância.
  • 109. Aprendizado de Máquina Multi-Rótulo - Ex. 3 109 224 268 215 85 183 [Dataset original] 9 elevação <= 30.5 ? SimNão No exemplo usado anteriormente, o split foi feito em elevação == 30.5 porque este é o valor que separa o conjunto de dados de modo a haver maior redução na entropia
  • 110. Aprendizado de Máquina Multi-Rótulo - Ex. 3 110 224 268 215 85 183 [Dataset original] 9 elevação <= 30.5 ? SimNão No exemplo usado anteriormente, o split foi feito em elevação == 30.5 porque este é o valor que separa o conjunto de dados de modo a haver maior redução na entropia Houve diminuição na entropia de uma etapa para outra porque antes do split havia quase a mesma chance de uma casa pertencer a uma cidade ou outra (ou seja, a entropia era grande e diminuiu)
  • 111. ● A forma de adaptar o algoritmo para aprendizado multi-rótulo é, precisamente, alterar a forma de calcular a entropia. Aprendizado de Máquina Multi-Rótulo - Ex. 3 111
  • 112. ● Fórmula tradicional da entropia: ● Ou seja, a entropia de um conjunto de dados é a soma, para cada rótulo, da fração de exemplos com este rótulo vezes o log desta quantidade Aprendizado de Máquina Multi-Rótulo - Ex. 3 112
  • 113. ● Fórmula modificada, para dados multi-rótulo: Onde ● Esta fórmula é semelhante à anterior, com uma pequena diferença. Aprendizado de Máquina Multi-Rótulo - Ex. 3 113
  • 114. ● Como nesse contexto um exemplo pode ter mais de um rótulo, não é a proporção de exemplos cujo rótulo é igual a , mas os exemplos cujo conjunto de rótulos contém . Aprendizado de Máquina Multi-Rótulo - Ex. 3 114
  • 115. ● Como nesse contexto um exemplo pode ter mais de um rótulo, não é a proporção de exemplos cujo rótulo é igual a , mas os exemplos cujo conjunto de rótulos contém . ● Uma outra mudança com relação ao algoritmo original é que as folhas da árvore (ou seja, o split final) dá como resultado um conjunto de rótulos (ou seja, um labelset) em vez de um único rótulo. Aprendizado de Máquina Multi-Rótulo - Ex. 3 115
  • 116. Aprendizado de Máquina Multi-Rótulo 116 Sugestão de pausa
  • 117. Aprendizado de Máquina Multi-Rótulo - Tópicos Modelar a dependência entre os rótulos ● Melhora o resultado ● Tem alto custo (número total de dependências é 2L ) ● Pode ser possível modelar algumas dependências, só as importantes. Lembrando que L é o número de rótulos distintos no conjunto de dados 117
  • 118. Aprendizado de Máquina Multi-Rótulo - Tópicos Aprendizado Online (stream de dados) ● Aprendizado incremental VS batch ● Concept drift (de labelsets, de dependências) 118
  • 119. Aprendizado de Máquina Multi-Rótulo - Tópicos Hierarquia de rótulos ● Muito relevante se os rótulos são tags informadas em uma comunidade online, por exemplo. 119
  • 120. Aprendizado de Máquina Multi-Rótulo - Tópicos Métodos de rankeamento de rótulos ● Retornar um ranking de todas os rótulos possíveis, ordenados pela relevância ● Pode-se selecionar quantos rótulos quiser para cada exemplo 120
  • 121. Aprendizado de Máquina Multi-Rótulo - Tópicos Ensembles ● Também é um tema de pesquisa em aprendizado de máquina tradicional ● Bagging (amostragens do conjunto de dados) ● Boosting (transformar vários classificadores fracos em um único que seja forte) ● Stacking (treinar um algoritmo para combinar resultados de outros algoritmos de forma a melhorar os resultados gerais) 121
  • 122. Aprendizado de Máquina Multi-Rótulo - Tópicos Seleção de Features ● Também chamado de Engenharia de Features ● Também é um assunto quente em aprendizado de máquina tradicional 122