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.