• Nenhum resultado encontrado

2 Referencial Teórico

2.2.1 Self-Training

Provavelmente a ideia mais antiga sobre o uso de dados não rotulados na classificação é a autoaprendizagem (do inglês self-learning), que também é denominada autotreina- mento (do inglês self-training), autorrotulagem (do inglês self-labeling) ou aprendizagem orientada pela decisão (do inglês desicion-directed learning). Este é um algoritmo wrapper (do inglês wrapper-algorithm) que usa repetidamente um método de aprendizado super-

visionado e começa treinando apenas os dados rotulados. Em cada passo, uma parte das instâncias não rotuladas é rotulada de acordo com a função de decisão corrente. O mé- todo supervisionado é novamente treinado usando suas próprias previsões como instâncias rotuladas adicionais (CHAPELLE; SCHOLKOPF; ZIEN, 2006).

A Figura 3 apresenta o fluxo do processo de rotulagem executado pelo self-training. Inicialmente, um classificador é gerado com uma pequena porção de dados rotulados. A seguir, este classificador é usado para classificar os dados não rotulados. As instâncias não rotuladas de maior confiança, juntamente com seus rótulos preditos, são adicionados ao conjunto de treinamento. O classificador é retreinado e o procedimento repetido até que

Figura 3: Processo de rotulagem do self-training.

o conjunto de dados não rotulados esteja vazio.

O Algoritmo 1 contém o passo a passo executado para a realização deste processo. Observe que o classificador usa suas próprias predições para ensinar a si próprio, por isso o nome self-training (ZHU; GOLDBERG, 2009).

No trabalho de Rodrigues, Santos e Canuto (2013) foi implementado um algoritmo baseado na técnica self-training com a adaptação de adicionar um parâmetro de confiança a ser usado como limiar para inclusão de novas instâncias ao conjunto de dados rotula- dos. Sendo assim, será incluída no conjunto de dados rotulados qualquer instância cuja confiança na predição seja maior ou igual a taxa de confiança mínima para inclusão de novas instâncias (limiar). Para facilitar o entendimento, o Algoritmo 2 apresenta o passo a passo deste algoritmo que foi a base desta tese.

2.2.2

Co-Training

A técnica denominada co-training, proposta inicialmente por Blum e Mitchell (1998), é similar à self-training, pois incrementa o conjunto de dados rotulados classificando ite-

Algoritmo 1: Algoritmo Self-Training

Entrada: dados rotulados {DL}, dados não rotulados {DU}, um aprendiz

chamado k

1 início

2 inicialmente temos {DL} = {(xi, yi)|i = 1 · · · l} e {DU} =

{(xj)|j = l + 1 · · · l + u} 3 repita

4 Treinar o classificador f a partir de {DL} usando aprendizado

supervisionado;

5 Aplicar f para as instâncias em {DU};

6 Remover um subconjunto S = {s1, s2, · · · , sn} de {DU}, contendo as

primeiras k instâncias com predição de maior confiança;

7 Adicionar ao conjunto {DL} o subconjunto {(x, f (x))|xS}. 8 até {DU} = ∅;

9 fim

10 Saída: dados rotulados

Algoritmo 2: Algoritmo Self-Training Proposto por (RODRIGUES; SANTOS; CA- NUTO, 2013)

Entrada: dados rotulados {DL}, dados não rotulados {DU} 1 início

2 inicialmente temos {DL} = {(xi, yi)|i = 1 · · · l} e {DU} =

{(xj)|j = l + 1 · · · l + u} 3 repita

4 Treinar o classificador f a partir de {DL} usando aprendizado

supervisionado;

5 Aplicar f para as instâncias em {DU};

6 Remover um subconjunto S = {s1, s2, · · · , sn} de {DU}, tal que a taxa de

confiança em f (x) seja maior ou igual a taxa de confiança mínima para inclusão de novas instâncias;

7 Adicionar ao conjunto {DL} o subconjunto {(x, f (x))|xS}.

8 até {DU} = ∅ ou não existir instância cuja taxa de confiança em f (x) seja

maior ou igual a taxa de confiança mínima para inclusão de novas instâncias;

9 fim

rativamente o conjunto de dados não rotulados e movendo as instâncias de predição mais confiáveis para o conjunto dos dados rotulados. No entanto, ao contrário do self-training, dois classificadores complementares são simultaneamente gerados, alimentados com duas visões diferentes do conjunto de atributos: Xi = [X

(1) i , X

(2)

i ], onde Xi é uma instância,

Xi(1) é uma visão com parte dos atributos da instância Xi e Xi(2) é a visão formada pelos

atributos da instância Xi que não foram utilizados em X (1) i .

A Figura 4 apresenta um exemplo de duas possíveis visões geradas pelo co-training, onde o conjunto X = {X1, X2, X3, X4, X5, X6} representa as instâncias dos dados, o con-

junto A = {A1, A2, A3, A4} corresponde aos atributos e Y é o atributo classe, em outras

palavras, Y é a coluna equivalente aos rótulos de cada instância. Observe que a visão 1 é formada pelos atributos A1 e A4 e a visão 2 pelos atributos A2 e A3. Além disso, as visões

1 e 2 possuem dois conjuntos de dados, os rotulados (X1, X3, X4, X6) e os não rotulados

(X2, X5).

Figura 4: Exemplo de duas visões geradas pelo co-training.

Após gerar as duas visões dos dados, a predição do primeiro classificador é usada para aumentar o conjunto de dados rotulados disponível para o segundo classificador e vice- versa (ALBALATE; MINKER, 2011). Em outras palavras, a predição de um classificador é apresentada ao outro e vice-versa e suas saídas são combinadas.

A Figura 5 apresenta o fluxo do processo de rotulagem do co-training. No início são criadas duas visões, em seguida são gerados dois classificadores supervisionados (C1 e C2),

Figura 5: Processo de rotulagem do co-training.

os dados não rotulados de cada uma das visões usando o classificador C1 para rotular a

visão 1 e o C2 para rotular a visão 2. Por conseguinte, serão adicionados ao conjunto de

dados rotulados da visão 1 as instâncias de maior confiança na predição do classificador C2 e na visão 2 as instâncias de maior confiança na predição do classificador C1. Esse

processo se repete até que o conjunto dos dados não rotulados esteja vazio. O Algoritmo 3 corresponde ao passo a passo executado para realização deste processo.

2.3

Classificação de dados

No contexto de aprendizado de máquina, um sistema de classificação ou classificador é uma técnica que formula uma hipótese baseada em uma amostra de dados (MONARD; BARANAUSKAS, 2003). Como exemplo de um sistema de classificação pode-se citar um sistema de crédito em que o banco decide se o cliente é de alto ou baixo risco de acordo com o valor do crédito e as informações sobre o cliente. Estas informações incluem dados que o banco tem acesso e que são relevantes para calcular a capacidade de financiamento do cliente, por exemplo: rendimento, poupança, profissão, idade, histórico financeiro, entre outros. O banco tem um histórico de financiamentos contendo tais dados dos clientes e se os pagamentos foram realizados em dia ou não. Para esses dados de aplicações particulares, o objetivo é inferir uma regra geral, codificando a associação entre atributos do cliente e o risco dele. Em outras palavras, um sistema de classificação cria um modelo usando os dados antigos do cliente de forma útil para calcular o risco para uma nova aplicação e então decide consequentemente aprovar ou não o crédito solicitado (ALPAYDIN, 2010).

A Tabela 1 mostra um exemplo, semelhante ao citado anteriormente, apresentando um conjunto de dados fictícios para avaliação de crédito de clientes bancários. Nesta tabela,

Algoritmo 3: Algoritmo Co-Training

Entrada: dados rotulados {DL} = {(xi, yi)|i = 1 · · · l}, dados não rotulados

{DU} = {(xj)|j = l + 1 · · · l + u}, um aprendiz chamado k. 1 início

2 Cada instância tem duas visões Xi = [Xi(1), Xi(2)]. 3 Inicialmente, temos as instâncias de treinamento sendo

D(1)L = {(Xi(1), Yi), ..., (Xl(1), Yl)} e DL(2) = {(Xi(2), Yi), ..., (Xl(2), Yl)} e 4 as instâncias não rotuladas sendo D(1)U = {(Xi(1)), ..., (Xl(1))} e

D(2)U = {(Xi(2)), ..., (Xl(2))}

5 onde,

6 {DL} = DL(1)∪ DL(2) e D(1)L − D(2)L = ∅ 7 {DU} = DU(1)∪ DU(2) e D(1)U − D(2)U = ∅ 8 repita

9 Gerar os classificadores f(1) e f(2) a partir dos dados de treinamento D(1)L

e DL(2), respectivamente.

10 Classificar os dados não rotulados D(1)U e DU(2) usando os classificadores

f(1) e f(2), respectivamente.

11 Adicionar as primeiras k instâncias com predição de maior confiança

classificadas por f(1) para o conjunto D(2) L .

12 Adicionar as primeiras k instâncias com predição de maior confiança

classificadas por f(2) para o conjunto D(1) L .

13 Remover essas instâncias do conjunto de dados não rotulados. 14 até {DU} = ∅;

15 fim

16 Saída: dados rotulados

cada linha representa uma instância do conjunto de dados e cada coluna um atributo desta instância. O atributo Crédito é especial, pois possui o rótulo da classe para cada exemplo, ou seja, aprovado ou não aprovado.

Vários algoritmos podem ser utilizados em sistemas de classificação; as principais diferenças entre eles dizem respeito à estratégia de pesquisa, linguagem de representação e à quantidade de conhecimento utilizado a priori (PADHY, 2005). A próxima seção define alguns desses algoritmos, os quais podem ser chamados de classificadores.

Documentos relacionados