• Nenhum resultado encontrado

Uma proposta de automatização do processo de rotulagem de instâncias em algoritmos de aprendizado semissupervisionado

N/A
N/A
Protected

Academic year: 2021

Share "Uma proposta de automatização do processo de rotulagem de instâncias em algoritmos de aprendizado semissupervisionado"

Copied!
118
0
0

Texto

(1)

Departamento de Informática e Matemática Aplicada Programa de Pós-Graduação em Sistemas e Computação

Doutorado Acadêmico em Sistemas e Computação

Uma Proposta de Automatização do Processo

de Rotulagem de Instâncias em Algoritmos de

Aprendizado Semissupervisionado

Karliane Medeiros Ovidio Vale

Natal-RN Novembro 2019

(2)

Uma Proposta de Automatização do Processo de

Rotulagem de Instâncias em Algoritmos de

Aprendizado Semissupervisionado

Tese de Doutorado apresentada ao Programa de Pós-Graduação em Sistemas e Computa-ção do Departamento de Informática e Mate-mática Aplicada da Universidade Federal do Rio Grande do Norte como requisito para a obtenção do grau de Doutor em Sistemas e Computação.

Linha de pesquisa:

Inteligência computacional

Orientador

Dra. Anne Magály de Paula Canuto

Co-Orientador

Dr. Araken de Medeiros Santos

PPgSC – Programa de Pós-Graduação em Sistemas e Computação DIMAp – Departamento de Informática e Matemática Aplicada

CCET – Centro de Ciências Exatas e da Terra UFRN – Universidade Federal do Rio Grande do Norte

Natal-RN Novembro 2019

(3)

Vale, Karliane Medeiros Ovidio.

Uma proposta de automatização do processo de rotulagem de instâncias em algoritmos de aprendizado semissupervisionado / Karliane Medeiros Ovidio Vale. - 2019.

116f.: il.

Tese (Doutorado) - Universidade Federal do Rio Grande do Norte, Centro de Ciências Exatas e da Terra, Programa de Pós-graduação em Sistemas e Computação. Natal, 2019.

Orientadora: Anne Magály de Paula Canuto. Coorientador: Araken de Medeiros Santos.

1. Inteligência artificial - Tese. 2. Aprendizado de máquina - Tese. 3. Aprendizado semissupervisionado - Tese. 4. Self-training - Tese. 5. Co-Self-training - Tese. I. Canuto, Anne Magály de Paula. II. Santos, Araken de Medeiros. III. Título.

RN/UF/CCET CDU 004.8

Catalogação de Publicação na Fonte. UFRN - Biblioteca Setorial Prof. Ronaldo Xavier de Arruda - CCET

(4)

gem de Instâncias em Algoritmos de Aprendizado Semissupervisionado apresentada por Karliane Medeiros Ovidio Vale e aceita pelo Programa de Pós-Graduação em Sistemas e Computação do Departamento de Informática e Matemática Aplicada da Universidade Federal do Rio Grande do Norte, sendo aprovada por todos os membros da banca exami-nadora abaixo especificada:

Profa Dra. Anne Magály de Paula Canuto (UFRN) Orientadora e coordenadora do PPgSC

Banca Examinadora

Profa Dra. Marjory Cristiany da Costa Abreu (UFRN) Examinador

Profo Dr. Daniel Sabino Amorim de Araújo (UFRN) Examinador

Profo Dr. Flavius da Luz e Gorgônio (UFRN) Examinador

Profo Dr. Araken de Medeiros Santos (UFERSA)

(5)
(6)
(7)

Agradeço em primeiro lugar a Deus que a cada dia me concede forças para seguir em frente e a Virgem Maria por sua intercessão. Muito obrigada a minha orientadora Anne, aos amigos Flavius, Araken e Jhoseph e aos alunos Alan, Cainan, Arthur, Yago e Fábio que contribuiram diretamente com o meu trabalho e a todos os colegas do DIMAp/UFRN, DCT/UFRN/CERES e LABICAN/LABENS que colaboraram comigo de forma direta ou indireta. Por fim, não poderia deixar de agradecer a todos os meus familiares e amigos que são alicerces para que eu consiga galgar este caminho de tantos obstáculos.

(8)
(9)

Rotulagem de Instâncias em Algoritmos de

Aprendizado Semissupervisionado

Autor: Karliane Medeiros Ovidio Vale Orientador(a): Profa. Dra. Anne Magály de Paula Canuto Co-orientador(a): Prof. Dr. Araken de Medeiros Santos

Resumo

O aprendizado semissupervisionado é um tipo de aprendizado de máquina que integra os mecanismos de aprendizado supervisionado e não supervisionado. Nele, a maioria dos rótulos do conjunto de treinamento são desconhecidos, mas há uma pequena parcela que possui rótulo. Este tipo de aprendizado atrai atenção devido ao seu potencial de utilização de dados rotulados e não rotulados para alcançar melhor desempenho do que o aprendi-zado supervisionado. Este trabalho consiste em um estudo no campo da aprendizagem semissupervisionada e implementa mudanças na estrutura de dois algoritmos semissu-pervisionados, self-training e co-training. Na literatura, é comum o desenvolvimento de pesquisas que alteram a estrutura destes algoritmos, no entanto, nenhuma delas propõe a automatização no processo de rotulagem de instâncias não rotuladas, que é o principal propósito deste trabalho. Para atingir este objetivo, três métodos são propostos: FlexCon-G, FlexCon e FlexCon-C. As principais diferenças entre estes métodos são a forma de calcular o limiar de confiança e a estratégia para escolha dos rótulos a cada iteração, entre elas comitês de classificadores. Para avaliar a performance dos métodos propostos, foi realizada uma análise empírica em que o desempenho destes métodos foi avaliado em 30 conjuntos de dados com características diversificadas. Os resultados indicam que os três métodos propostos e suas versões apresentam melhor desempenho que os métodos self-training e co-training originais na maioria dos casos.

Palavras-chave: Inteligência Artificial, Aprendizado de Máquina, Aprendizado Semissu-pervisionado, Self-Training, Co-Training.

(10)

Semi-Supervised Learning Algorithms

Author: Karliane Medeiros Ovidio Vale Supervisor: Profa. Dra. Anne Magály de Paula Canuto Co supervisor: Prof. Dr. Araken de Medeiros Santos

Abstract

Semi-supervised learning is a kind of machine learning that integrates supervised and unsupervised learning mechanisms. In this type of learning, most of training set labels are unknown, while there is a small part of data that has known labels. The semi-supervised learning is attractive because of its potential to use labeled and unlabeled data to per-form better than supervised learning. This paper consists of a study in the field of supervised learning and implements changes on the self-training and co-training semi-supervised learning algorithms. In the literature, it is common to develop researches that change the structure of such algorithms, however, none of them proposes automating the labeling process of unlabeled instances, which is the main purpose of this work. In order to achieve this goal, three methods are proposed: FlexCon-G, FlexCon e FlexCon-C. The main difference among these methods is how tje confidence rate is calculated and the stra-tegy used to choose a label in each iteration, among them ensembles. In order to evaluate the proposed methods’ performance, we have carried out an empirical analysis, in which the performances of these methods have been evaluated on 30 datasets with diversified characteristics. The obtained results indicate that the three proposed methods perform better than original self-training and co-training methods in most cases.

Keywords: Artificial Intelligence, Machine Learning, Semi-supervised Learning, Self-Training, Co-Training.

(11)

1 Estrutura do aprendizado de máquina (indutivo). . . p. 27 2 Conjunto de dados para aprendizado semissupervisionado . . . p. 28 3 Processo de rotulagem do self-training. . . p. 30 4 Exemplo de duas visões geradas pelo co-training. . . p. 32 5 Processo de rotulagem do co-training. . . p. 33 6 Exemplo de uma árvore de decisão para jogar tênis (adaptado de Gama

et al. (2011)) . . . p. 36 7 Exemplo de cálculo do limiar de confiança usando FlexCon. . . p. 53 8 Exemplo de cálculo do limiar de confiança usando FlexCon-C. . . p. 55 9 Metodologia experimental baseada no self-training. . . p. 56 10 Metodologia experimental baseada no co-training. . . p. 58 11 Divisão dos dados . . . p. 68 12 Quantidade de vezes que cada método obteve maior desempenho em

relação ao percentual inicialmente rotulado (self-training) . . . p. 75 13 Desempenho do ST Original e ST limiar fixo para os quatro

classificado-res (self-training) . . . p. 76 14 Desempenho dos métodos propostos para os quatro classificadores

(self-training) . . . p. 77 15 Percentual médio de instâncias rotuladas usando os métodos de limiar

fixo e os propostos . . . p. 80 16 Quantidade de vezes que cada método obteve maior desempenho em

relação ao percentual inicialmente rotulado (co-training) . . . p. 82 17 Desempenho do CT Original e CT limiar fixo para os quatro

(12)

training) . . . p. 84 19 Resultado estatístico dos métodos por percentual de instâncias

inicial-mente rotuladas (self-training) . . . p. 86 20 Resultado estatístico dos métodos por percentual de instâncias

(13)

1 Conjunto de dados para avaliação de crédito . . . p. 35 2 Conjuntos de dados . . . p. 63 3 Acurácia média de todos os métodos com os classificadores Naive Bayes,

árvore de decisão, Ripper e k-NN usando self-training . . . p. 73 4 Acurácia média de todos os métodos com os classificadores Naive Bayes,

árvore de decisão, Ripper e k-NN usando co-training . . . p. 78 5 Acurácia média do FlexCon(s) usando critério de parada (co-training) . p. 81 6 Acurácia dos métodos ST Original, ST Limiar fixo, FlexCon-G e

Flex-Con(s) para cada base de dados utilizando Naive Bayes como classificador p. 99 7 Acurácia dos métodos FlexCon(v), C1(s), C1(v) e

FlexCon-C2 para cada base de dados utilizando Naive Bayes como classificador . p. 100 8 Acurácia dos métodos ST Original, ST Limiar fixo, FlexCon-G e

Flex-Con(s) para cada base de dados utilizando árvore de decisão como

clas-sificador . . . p. 101 9 Acurácia dos métodos FlexCon(v), C1(s), C1(v) e

FlexCon-C2 para cada base de dados utilizando árvore de decisão como classificadorp. 102 10 Acurácia dos métodos ST Original, ST Limiar fixo, FlexCon-G e

Flex-Con(s) para cada base de dados utilizando Ripper como classificador . p. 103 11 Acurácia dos métodos FlexCon(v), C1(s), C1(v) e

FlexCon-C2 para cada base de dados utilizando Ripper como classificador . . . . p. 104 12 Acurácia dos métodos ST Original, ST Limiar fixo, FlexCon-G e

Flex-Con(s) para cada base de dados utilizando k -NN como classificador . . p. 105 13 Acurácia dos métodos FlexCon(v), C1(s), C1(v) e

(14)

Con(s) para cada base de dados utilizando Naive Bayes como classificadorp. 108 15 Acurácia dos métodos FlexCon(v), C1(s), C1(v) e

FlexCon-C2 para cada base de dados utilizando Naive Bayes como classificador . p. 109 16 Acurácia dos métodos CT Original, CT Limiar fixo, FlexCon-G e

Flex-Con(s) para cada base de dados utilizando árvore de decisão como

clas-sificador . . . p. 110 17 Acurácia dos métodos FlexCon(v), C1(s), C1(v) e

FlexCon-C2 para cada base de dados utilizando árvore de decisão como classificadorp. 111 18 Acurácia dos métodos CT Original, CT Limiar fixo, FlexCon-G e

Flex-Con(s) para cada base de dados utilizando Ripper como classificador . p. 112 19 Acurácia dos métodos FlexCon(v), C1(s), C1(v) e

FlexCon-C2 para cada base de dados utilizando Ripper como classificador . . . . p. 113 20 Acurácia dos métodos CT Original, CT Limiar fixo, FlexCon-G e

Flex-Con(s) para cada base de dados utilizando k -NN como classificador . . p. 114 21 Acurácia dos métodos FlexCon(v), C1(s), C1(v) e

FlexCon-C2 para cada base de dados utilizando k -NN como classificador . . . . p. 115 22 Acurácia do método FlexCon(s)-CP (co-training) . . . p. 117

(15)

FlexCon-G – Confiança Flexível com Graduação, do inglês Flexible Confidence with Gra-duation

FlexCon – Confiança flexível, do inglês Flexible Confidence

FlexCon-C – Confiança flexível com classificação, do inglês Flexible Confidence with Clas-sification

AD – Árvore de Decisão NB – Naive Bayes

Ripper – Poda incremental repetida para produzir redução de erro, do inglês Repeated Incremental Pruning to Produce Error Reduction

k -NN – k vizinhos mais próximos, do inglês k Nearest Neighbor SVM – Máquinas de vetores suporte, do inglês Suport Vector Machine

(16)

1 Algoritmo Self-Training . . . p. 31 2 Algoritmo Self-Training Proposto por (RODRIGUES; SANTOS; CANUTO,

2013) . . . p. 31 3 Algoritmo Co-Training . . . p. 34

4 Algoritmo Self-Training com Ajuste da Confiança . . . p. 57 5 Algoritmo Co-Training utilizando limiar fixo . . . p. 59 6 Algoritmo Co-Training com Ajuste da Confiança . . . p. 60

(17)

1 Introdução p. 19 1.1 Motivação . . . p. 20 1.2 Objetivos . . . p. 21 1.3 Principais Contribuições da Tese . . . p. 22 1.4 Organização do Trabalho . . . p. 23 2 Referencial Teórico p. 25 2.1 Introdução . . . p. 25 2.2 Aprendizado Semissupervisionado . . . p. 27 2.2.1 Self-Training . . . p. 29 2.2.2 Co-Training . . . p. 30 2.3 Classificação de dados . . . p. 33 2.4 Tipos de Classificadores . . . p. 34 2.4.1 Naive Bayes . . . p. 35 2.4.2 Árvore de Decisão . . . p. 36 2.4.3 Ripper . . . p. 37 2.4.4 k Vizinhos mais Próximos (k -NN) . . . p. 38 2.5 Comitês de Classificadores . . . p. 39 2.5.1 Métodos de Combinação . . . p. 40 2.5.1.1 Soma . . . p. 41 2.5.1.2 Voto . . . p. 41 2.6 Considerações Finais . . . p. 42

(18)

3.1 Aprendizado Semissupervisionado com

Self-Training . . . p. 44 3.1.1 Extensões do Self-Training . . . p. 45 3.2 Aprendizado Semissupervisionado com

Co-Training . . . p. 46 3.3 Comitês de Classificadores com Aprendizado Semissupervisionado . . . p. 48 3.4 Considerações Finais . . . p. 49

4 Métodos Propostos p. 50

4.1 Métodos para Ajuste da Confiança . . . p. 50 4.1.1 O Método FlexCon-G . . . p. 51 4.1.2 O Método FlexCon . . . p. 51 4.1.3 O Método FlexCon-C . . . p. 53 4.2 Metodologia Experimental . . . p. 55 4.2.1 Metodologia Experimental Usando o self-training . . . p. 56 4.2.2 Metodologia Experimental Usando o co-training . . . p. 57 4.3 Considerações Finais . . . p. 61

5 Design de Experimentos p. 62

5.1 Descrição das Bases de Dados . . . p. 62 5.2 Divisão de Dados . . . p. 68 5.3 Configuração dos Experimentos . . . p. 69 5.4 Considerações Finais . . . p. 70

6 Resultados Experimentais p. 71

6.1 Análise de Desempenho . . . p. 71 6.1.1 Análise de Desempenho com Self-Training . . . p. 72

(19)

6.2 Análise Estatística . . . p. 85 6.2.1 Análise Estatística com o Algoritmo Self-Training . . . p. 85 6.2.2 Análise Estatística com o Algoritmo Co-Training . . . p. 87 6.3 Considerações Finais . . . p. 87

7 Considerações Finais p. 90

7.1 Análise final . . . p. 90 7.2 Trabalhos Futuros . . . p. 91

Referências p. 93

Apêndice A -- Acurácia de todos os métodos utilizando o algoritmo

self-training p. 98

Apêndice B -- Acurácia de todos os métodos utilizando o algoritmo

co-training p. 107

Apêndice C -- Acurácia do método FlexCon(s)-CP para cada base de

(20)

1

Introdução

O progresso tecnológico nos últimos anos impulsionou a disponibilidade de grandes quantidades de dados. Os recursos de armazenamento e comunicação cresceram exponen-cialmente, aumentando a necessidade de ferramentas computacionais mais autônomas. Tais ferramentas devem processar automaticamente todos esses dados, reduzindo assim a intervenção humana e dependência de especialistas (GAMA et al., 2011). Diante do ex-posto, as técnicas de aprendizado de máquina adquiriram considerável relevância, pois são capazes de criar por si próprias, a partir de experiências passadas, uma hipótese ou função apta a resolver o problema que se deseja tratar (HERRERA et al., 2016).

O aprendizado de máquina, a princípio, foi dividido em dois tipos, de acordo com o grau de supervisão utilizado durante o treinamento: supervisionado e não-supervisionado. Em ambos os tipos, a experiência passada é adquirida com o treinamento a partir de bases de dados cujas instâncias podem estar rotuladas ou não. No aprendizado supervisi-onado, durante o treinamento, os algoritmos recebem como entrada instâncias que contém a informação de saída desejada, representando a classe a que cada instância pertence. En-quanto no aprendizado não-supervisionado, a classe à qual as instâncias do conjunto de treinamento pertencem não são conhecidas a priori (SANTOS, 2012).

Na área de aprendizado de máquina, os algoritmos de classificação (indução de hi-pótese) têm sido aplicados em diversos problemas ((FRINKEN et al., 2014; WANG et al., 2008;AGHABABAEI; MAKREHCHI, 2016)). No entanto, uma limitação natural destes algo-ritmos é que eles necessitam de um grande conjunto de instâncias rotuladas para alcançar um bom desempenho. Diante do exposto, surgiu outro tipo de aprendizado que pretende amenizar esta imperfeição, através de um procedimento de treinamento de classificadores com uma pequena quantidade de dados rotulados e uma grande quantidade de dados não rotulados (ZHU; GOLDBERG, 2009). Este tipo de aprendizado é conhecido como semissu-pervisionado e tem se tornado um assunto bastante pesquisado nos últimos anos (GAN et al., 2013; RODRIGUES; SANTOS; CANUTO, 2013; TAO et al., 2016; WU et al., 2017; VALE et al., 2018).

(21)

O aprendizado semissupervisionado usa as instâncias já rotuladas para construir suas hipóteses iniciais e combinar a informação obtida a partir dessas instâncias para rotular as não rotuladas. As novas instâncias rotuladas são inseridas no conjunto de dados rotulados e servirão para classificar as instâncias remanescentes do conjunto de dados não rotulados. Entre os vários algoritmos de aprendizado semissupervisionado encontrados na literatura, esta tese trabalha com os dois mais populares que são o self-training (YAROWSKY, 1995) e o co-training (BLUM; MITCHELL, 1998).

Uma das dificuldades dos algoritmos de aprendizado semissupervisionado está em sele-cionar novas instâncias a serem incluídas no conjunto de dados rotulados. Neste contexto, o trabalho de Rodrigues, Santos e Canuto (2013) propôs controlar a seleção de instâncias no processo de rotulagem através da utilização de um limiar de confiança estático, em vez de usar uma quantidade fixa ou um percentual de instâncias do conjunto de dados rotula-dos. De acordo com os autores, percebe-se que a escolha deste percentual ou quantidade de instâncias a serem incluídas no conjunto de dados rotulados não é uma tarefa trivial, portanto a ideia geral de usar um limiar de confiança no processo de atribuição automá-tica de rótulos é minimizar a inclusão de instâncias classificadas erroneamente (ruídos), melhorando a precisão de classificação geral.

Analisando a proposta de Rodrigues, Santos e Canuto (2013), percebe-se que a chance de que a atribuição dos rótulos esteja correta é maior quando definido um valor alto para o limiar de confiança, pois considera-se que a predição é mais confiável. Por outro lado, a utilização de um limiar muito alto, pode não rotular todas as instâncias e/ou ocasionar a necessidade de um tempo maior (elevado) para atribuição de rótulos, uma vez que a cada iteração um número menor de instâncias possuirão confiança maior ou igual ao limiar de confiança definido inicialmente. Do contrário, se este limiar for muito baixo pode acarretar na inclusão de ruídos no conjunto de treinamento. Diante do exposto, é possível observar a dificuldade em estabelecer um valor a ser utilizado como parâmetro de confiança para seleção de novas instâncias e por isso surge a necessidade da utilização de diferentes mecanismos para definição automática deste valor.

1.1

Motivação

Sabendo-se que o processo de atribuição automática de rótulos não é uma tarefa fácil, principalmente em relação à escolha das instâncias não rotuladas a serem rotuladas, os autores de Rodrigues, Santos e Canuto (2013) propuseram a inclusão de um parâmetro de

(22)

confiança para guiar o processo de rotulagem do algoritmo self-training. De acordo com os autores, a ideia geral de usar a confiança no processo de atribuição automática de rótulos é minimizar a inclusão de ruído, melhorando a precisão geral da classificação.

Ao analisar o trabalho de Rodrigues, Santos e Canuto (2013), é possível observar um problema: a utilização deste parâmetro de confiança de forma estática pode não explorar todo o potencial de uma técnica semissupervisionada e aumentar o custo computacional do processo de rotulagem. Desta forma, podem ser selecionadas instâncias com rótulos incorretos caso o parâmetro tenha valor baixo ou instâncias com rótulos corretos podem ser descartadas caso o parâmetro tenha valor muito alto.

Diante do exposto, pode-se concluir que o uso de um parâmetro de confiança implica na necessidade de ajustá-lo, levando ao difícil processo de ajuste de parâmetros. Além disso, o valor de confiança deve ser capaz de ser alterado durante o processo de rotulagem, pois a dificuldade em selecionar instâncias para rotular pode mudar durante o processo de rotulagem e um valor de confiança estático não captura os diferentes níveis de dificuldade. Desta forma, o problema citado acima foi a principal motivação para o desenvolvimento desta tese, que apresenta três formas distintas de ajustar automaticamente o parâmetro de confiança.

1.2

Objetivos

O objetivo geral deste trabalho é alcançar um desempenho mais eficiente dos algo-ritmos de aprendizado semissupervisionado, self-training e co-training, em relação aos originais e ao método proposto por Rodrigues, Santos e Canuto (2013).

Para tal, os seguintes objetivos específicos deverão ser alcançados:

• Identificar as principais limitações dos algoritmos de aprendizado semissupervisio-nados, self-training e co-training.

• Investigar estratégias para abrandar as limitações identificadas anteriormente.

• Propor modificações na estrutura dos algoritmos de aprendizado semissupervisio-nado, self-training e co-training.

• Realizar uma análise comparativa do desempenho dos algoritmos, originais e pro-postos, em relação à acurácia.

(23)

1.3

Principais Contribuições da Tese

Conforme explicado anteriormente, a área de aprendizado semissupervisionado tem sido alvo de diversas pesquisas (YU, 2013;TANHA; SOMEREN; AFSARMANESH, 2017; KIM et al., 2019;SAMIAPPAN; MOORHEAD, 2015;ARYOYUDANTA; ADJI; HIDAYAH, 2016). Desta forma, observando-se alguns dos trabalhos listados no Capítulo 3 (TAO et al., 2016;WU et al., 2017; QIAO et al., 2018; WANG et al., 2017; GAN et al., 2013; RODRIGUES; SANTOS; CA-NUTO, 2013), é possível perceber que as propostas que alteram a estrutura dos algoritmos self-training e co-training usam um limiar estático para inclusão de novas instâncias no conjunto de treinamento. No entanto, a principal contribuição deste trabalho é melhorar o desempenho, em termos de acurácia, dos algoritmos self-training e co-training utilizando um parâmetro de confiança dinâmico.

Além disso, diversas pesquisas surgiram durante a execução deste trabalho, entre elas, artigos publicados em eventos nacionais e internacionais. A seguir estão listadas as referidas publicações:

• Vale, Karliane M.O.; Canuto, Anne M. P.; Santos, Araken M.; Gorgônio, Flavius L.; Tavares, Alan M.; Gorgônio, Arthur C.; Alves, Cainan. T. . Automatic Adjustment of Confidence Values in Self-training Semi-supervised Method. In: International Joint Conference on Neural Networks (IJCNN 2018), 2018, Rio de Janeiro. Proceedings of International Joint Conference on Neural Networks (IJCNN 2018), 2018. Neste trabalho foram implementadas mudanças no algoritmo self-training para propor uma variação na taxa de inclusão de novas instâncias no conjunto de dados rotulados. Para atingir este objetivo, foram propostos três métodos (FlexCon-G, FlexCon e FlexCon-C), os quais diferem na forma como eles realizam o cálculo de um novo valor para a taxa de confiança mínima para incluisão de novas instâncias no conjunto de dados rotulados.

• Gorgônio, Arthur C.; Alves, Cainan. T.; Lucena, Amarildo. J. F.; Gorgônio, Flavius L.; Vale, Karliane M.O.; Canuto, Anne M. P.. Analysis of the Threshold Variation of the FlexCon-C Algorithm for Semi-supervised Learning In: XV Encontro Nacional de Inteligência Artificial e Computacional (ENIAC), 2018, São Paulo. Proceedings of ENIAC2018, 2018. Esta pesquisa analisa diferentes valores para o fator de variação do algoritmo FlexCon-C proposto em (VALE et al., 2018) e avalia o impacto dessa alteração na acurácia do referido algoritmo.

(24)

J. F.; Alves, Cainan. T.; Gorgônio, Arthur C.; Santos, Araken M.. A Data Stratifica-tion Process for Instances SelecStratifica-tion in Semi-Supervised Learning. In: InternaStratifica-tional Joint Conference on Neural Networks (IJCNN 2019), 2019, Budapest. Proceedings of International Joint Conference on Neural Networks (IJCNN 2019), 2019. Este trabalho propõe mudanças no algoritmo self-training desenvolvendo um método, denominado FlexCon-CS, cujo objetivo é aplicar a estratificação de dados na in-clusão de novas instâncias no conjunto de dados de treinamento. Nesse sentido, a representatividade e distribuição de classes serão mantidas em todo o processo de rotulagem, com as mesmas proporções do conjunto de dados inicialmente rotulado.

1.4

Organização do Trabalho

O restante do trabalho está dividido em 7 capítulos organizados da seguinte maneira:

• No Capítulo 2, inicialmente, são apresentados os principais conceitos associados à área de aprendizado de máquina, os detalhes sobre o aprendizado semissupervisi-onado e o funcionamento dos algoritmos self-training e co-training. Em seguida, são explicados os principais conceitos relacionados com classificação de dados, bem como os tipos de classificadores utilizados nesta tese. Além disso, é descrito o fun-cionamento dos comitês de classificadores e os métodos para combinação das saídas dos classificadores base usados neste trabalho.

• O Capítulo 3 trata dos trabalhos envolvendo a área de aprendizado semissupervi-sionado, mais especificamente, com os algoritmos self-training e co-training. Adici-onalmente, são apresentados trabalhos que utilizam comitês de classificadores com aprendizado semissupervisionado.

• O Capítulo 4 explica os três métodos propostos neste trabalho, bem como a meto-dologia experimental.

• O Capítulo 5 exibe o design utilizado para realização dos experimentos deste traba-lho. Este capítulo engloba a descrição das bases de dados, o pré-processamento dos dados e a configuração dos experimentos.

• No Capítulo 6 são apresentados e analisados os resultados obtidos a partir dos experimentos realizados, divididos em análise de desempenho e análise estatística.

(25)

• O Capítulo 7 expõe as considerações finais deste trabalho, bem como os trabalhos futuros.

(26)

2

Referencial Teórico

Este capítulo tem como objetivo apresentar algumas definições que guiam este tra-balho, visando melhor entendimento teórico dos conceitos relacionados com o mesmo. O capítulo está dividido em 6 subseções. A primeira dedica-se a uma breve introdução so-bre aprendizado de máquina e classificação de dados. A segunda explica detalhadamente o aprendizado semissupervisionado, bem como os algoritmos self-training e co-training. A terceira explana sobre os conceitos relacionados com classificação de dados. A quarta trata sobre os tipos de classificadores utilizados nesta tese. A quinta dispõe de uma breve introdução sobre comitês de classificadores, bem como os métodos de combinação soma e voto, que foram usados neste trabalho. Por fim são apresentadas as considerações finais.

2.1

Introdução

Aprendizado de máquina é uma área da ciência da computação que surgiu do estudo de reconhecimento de padrões e aprendizagem computacional em inteligência artificial. Sendo assim, pode-se afirmar que aprendizado de máquina é um campo de estudo cujo objetivo é o desenvolvimento de técnicas computacionais sobre o aprendizado, bem como a construção de sistemas capazes de adquirir conhecimento de forma automática. Um sistema de aprendizado é um programa de computador que toma decisões baseado em experiências acumuladas por meio da solução bem-sucedida de problemas anteriores ( MO-NARD; BARANAUSKAS, 2003).

Segundo Mitchell (1997), desde que os computadores foram criados já havia a curi-osidade de saber se eles poderiam ser usados para aprender. O autor ainda afirma que, naquela época, já eram desenvolvidas aplicações de aprendizado de máquina, tais como: programas que mineravam dados para detectar transações fraudulentas com cartões de crédito, sistemas que filtravam informações e aprendiam sobre as preferências dos usuá-rios, entre outros. Desta forma, é possível concluir que os estudos na área de aprendizado de máquina não são novidade, no entanto o surgimento de novas aplicações é constante em

(27)

diversas áreas, entre elas saúde (LOFARO et al., 2016;HOLZINGER, 2016;VOCK et al., 2016;

VERNEKAR et al., 2016) e educação (GARAY-GARCELL, 2015; JOSEPH, 2014; STIMPSON; CUMMINGS, 2014). Desta forma, entende-se que aprendizado de máquina é um campo de aplicação interdisciplinar.

O aprendizado de máquina, de maneira genérica, pode ser dividido em dois tipos: dedutivo e indutivo. O aprendizado dedutivo é a análise lógica utilizada para construir argumentos, utilizando premissas para obter uma conclusão. A conclusão torna explícito um conhecimento já existente nas premissas. No indutivo, o processo de aprendizado, é efetuado a partir de raciocínio sobre instâncias fornecidas por um processo externo ao sistema de aprendizado (MONARD; BARANAUSKAS, 2003). Destes dois tipos de apren-dizado, o mais utilizado para derivar conhecimento novo e predizer eventos futuros é o aprendizado indutivo que foi usado neste trabalho e por isto será detalhado a seguir.

O aprendizado indutivo, a princípio, foi dividido em dois tipos: supervisionado e não-supervisionado. A diferença entre eles diz respeito à forma como é realizado o pro-cesso de generalização do conhecimento. Enquanto no aprendizado supervisionado são utilizadas instâncias cujas classes (rótulos) são conhecidas a priori, no aprendizado não-supervisionado estas classes são desconhecidas (MONARD; BARANAUSKAS, 2003). Sendo assim, treinar instâncias de classificação conhecida define a tarefa de aprendizado super-visionado; inversamente, o aprendizado não-supervisionado pode indicar como um agente inteligente pode adquirir conhecimento útil na ausência de classificação correta dos dados treinados (PADHY, 2005).

Com o tempo, a comunidade científica passou a estudar um terceiro grupo de apren-dizado conhecido como semissupervisionado. Como o próprio nome sugere, o método está entre o aprendizado supervisionado e o não-supervisionado, pois trabalha com da-dos parcialmente rotulada-dos (ZHU; GOLDBERG, 2009). A Figura 1 apresenta uma estrutura do aprendizado de máquina indutivo. No topo aparece o aprendizado indutivo, processo pelo qual são realizadas as generalizações a partir dos dados. Em seguida, os tipos de aprendizado: supervisionado, semissupervisionado e não-supervisionado. Como o presente trabalho foi desenvolvido utilizando o aprendizado semissupervisionado, este será descrito com detalhes na próxima seção.

Os diversos tipos de aprendizado de máquina indutivo explicados anteriormente utili-zam classificação de dados para realizar suas predições. A classificação é um dos processos cognitivos fundamentais usados para organizar e aplicar conhecimento sobre o mundo. A tarefa de classificar é comum tanto na vida cotidiana quanto nos negócios, onde é

(28)

possí-Figura 1: Estrutura do aprendizado de máquina (indutivo).

vel agrupar clientes, funcionários, transações, lojas, fábricas, dispositivos, documentos, ou quaisquer outros tipos de instâncias em um conjunto de classes ou categorias significati-vas predefinidas (CICHOSZ, 2015). Classificação de dados é um dos tópicos mais populares da mineração de dados, ela é uma tarefa preditiva normalmente conduzida por meio das técnicas de aprendizado supervisionado ou semissupervisionado. O seu objetivo principal é aprender, de padrões rotulados, um modelo capaz de predizer o rótulo (classe) para ins-tâncias de dados ainda não classificadas (HERRERA et al., 2016). As Seções 2.3, 2.4 e 2.5 explicam detalhadamente sobre classificação de dados, tipos de classificadores e comitês de classificadores, respectivamente.

2.2

Aprendizado Semissupervisionado

Em tarefas de classificação do mundo real, é possível encontrar conjuntos de dados em que apenas uma parte dos dados são rotulados, enquanto o restante não possui rótulo. Sendo assim, o mecanismo de aprendizagem semissupervisionada se propõe a tratar dados com essas características objetivando alcançar melhor classificação (WANG et al., 2016). Desta forma, pode-se dizer que o aprendizado semissupervisionado é um meio termo entre o aprendizado supervisionado e o não-supervisionado e pode ser dividido em dois tipos: indutivo e transdutivo, os quais possuem objetivos distintos (ZHU; GOLDBERG, 2009).

De acordo com as definições de Zhu e Goldberg (2009) e Chapelle, Scholkopf e Zien (2006), dado um conjunto de treinamento formado por dados rotulados e não rotulados, no aprendizado semissupervisionado indutivo, todo o conjunto de treinamento é utilizado para induzir um modelo de classificação que será utilizado para classificar novas instâncias. Já no aprendizado semissupervisionado transdutivo, o objetivo é classificar diretamente as instâncias não rotuladas sem a necessidade de induzir um modelo de classificação.

(29)

O aprendizado semissupervisionado considera o conjunto D de padrões como sendo dividido em dois subconjuntos: 1) os dados rotulados {DL} = {(xi, yi)|i = 1 · · · l} onde x

é o padrão, y é o rótulo do padrão x e l é a quantidade de instâncias rotuladas; 2) os dados não rotulados {DU} = {(xj)|j = l + 1 · · · l + u}, onde x é o padrão e u é a quantidade de

instâncias não rotuladas. Muitas vezes, tem-se que |DU|  |DL|. A Figura 2 representa o

conjunto de dados D, característico do aprendizado semissupervisionado, sendo formado pelos conjuntos {DL} e {DU}.

Figura 2: Conjunto de dados para aprendizado semissupervisionado

Dado que o conjunto de dados rotulados é escasso, para maioria dos casos, faz-se necessário que o aprendizado semissupervisionado seja baseado em algumas premissas ou hipóteses (do inglês assumptions), tais como: premissa de suavidade (smoothness assump-tion), premissa de agrupamento (clustering assumption) e premissa de geração de coleções (manifold assumption).

De acordo com Chapelle, Scholkopf e Zien (2006), a premissa de suavidade analisa a distância entre dois pontos. Se dois pontos x1 e x2 em uma região de alta densidade

estão próximos, ou seja, possuem um pequeno valor de distância entre si, então também estarão próximas suas saídas correspondentes, y1 e y2. Em outras palavras, se dois pontos

estão próximos (por exemplo, a distância euclidiana entre eles é pequena), é provável que eles tenham o mesmo rótulo. Já na premissa de agrupamento, as instâncias em cada classe formam um grupo coerente, ou seja, se os pontos estão em um mesmo agrupamento

(30)

(cluster ), é provável que estejam em uma mesma classe, ou ainda, a fronteira de decisão encontra-se em uma região de baixa densidade. Este é um caso especial da premissa anterior. Por outro lado, na premissa de geração de coleções os dados podem ser mapeados para regiões de menor dimensão evitando o problema da alta dimensionalidade.

Segundo Santos (2012), uma das vantagens do aprendizado semissupervisionado é o potencial de reduzir a necessidade de uma grande quantidade de dados rotulados, em domínios nos quais somente um pequeno conjunto de padrões rotulados está disponível. Outra vantagem desse tipo de aprendizado pode ser verificada quando o especialista não apresenta um total conhecimento sobre o conceito a ser aprendido, ou seja, esse especialista tem apenas o conhecimento de alguns padrões de um determinado conjunto de dados, apresentando assim, grande dificuldade de rotular instâncias para incrementar o conjunto de dados de treinamento.

Na literatura, é possível encontrar vários algoritmos que lidam com bases de dados semissupervisionadas, entre eles self-training, modelos de misturas, co-training, métodos baseados em grafos e máquinas de vetores suporte semissupervisionado (ZHU; GOLDBERG,

2009). No entanto, para o desenvolvimento desta tese foram escolhidos o self-training (YAROWSKY, 1995) por ter sido utilizado no trabalho que serviu como base para esta pesquisa e o co-training (BLUM; MITCHELL, 1998) por ter seu processo de classificação semelhante ao self-training, diferindo na utilização do aprendizado multivisões.

Em relação ao algoritmo de classificação semissupervisionada self-training, diversas pesquisas tem sido realizadas, seja para avaliar seu desempenho (TANHA; SOMEREN; AF-SARMANESH, 2017;YU, 2013) ou para fazer adaptações no seu funcionamento ( AGHABA-BAEI; MAKREHCHI, 2016;FRINKEN et al., 2014;TAO et al., 2016; GAN et al., 2013;WU et al., 2017;WANG et al., 2017). Por outro lado, o co-training vem sendo difundido na literatura, tanto para inspirar novos algoritmos (BAI et al., 2012) quanto para utilizá-lo na resolução de problemas (ARYOYUDANTA; ADJI; HIDAYAH, 2016;HOANG; CHAU; PHUNG, 2016; SAMI-APPAN; MOORHEAD, 2015). Ambos os algoritmos serão detalhados nas próximas seções.

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

(31)

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

(32)

ite-Algoritmo 1: ite-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

(33)

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),

(34)

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,

(35)

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.

2.4

Tipos de Classificadores

Na classificação semissupervisionada é necessário a utilização de classificadores su-pervisionados para treinar instâncias rotuladas, que a partir deste aprendizado fazem a predição das instâncias não rotuladas (ZHU; GOLDBERG, 2009). Foram escolhidos para

(36)

Tabela 1: Conjunto de dados para avaliação de crédito

Clientes Valor solicitado Rendimento Profissão Crédito Ana R$ 2.456,00 R$ 30.000,00 Médico Aprovado José R$ 7.800,00 R$ 9.000,00 Engenheiro Não aprovado Maria R$ 18.000,00 R$ 13.000,00 Contador Não aprovado Josefina R$ 2.310,00 R$19.000,00 Advogado Aprovado

João R$ 2.670,00 R$ 4.400,00 Professor Aprovado

utilização nos experimentos deste trabalho quatro algoritmos – árvore de decisão (AD), Naive Bayes (NB), Ripper e k Vizinhos mais próximos(k -NN) – que são populares na literatura e, por isso, bastante utilizados em trabalhos de aprendizado de máquina ( TA-NHA; SOMEREN; AFSARMANESH, 2017; WU et al., 2017; ZHAO MINLIE HUANG; ZIYU YAO, 2016). Tais algoritmos serão descritos adiante.

2.4.1

Naive Bayes

No algoritmo de aprendizado de máquina Naive Bayes, para cada classe de decisão é calculada a probabilidade condicional de que essa classe seja correta. As probabilida-des envolvidas são calculadas como frequências obtidas sobre os padrões de treinamento (MITCHELL, 1997). Em outras palavras, pode-se dizer que o funcionamento do algoritmo de aprendizado de máquina Naive Bayes é baseado no cálculo da probabilidade de um padrão pertencer à determinada classe. Sendo assim, o classificador Naive Bayes calcula a probabilidade de cada padrão pertencer a cada uma das classes do conjunto de treina-mento, e, analisando esses valores, será atribuída a cada padrão a classe na qual ele tem maior valor da probabilidade.

No classificador Naive Bayes, todos os atributos da base de dados são considerados independentes entre si. Portanto, embora seja admitida a não existência de dependências condicionais entre os atributos, o Naive Bayes, ainda assim, apresenta resultados confiáveis e fiéis à base de dados (KUNCHEVA, 2014). O Naive Bayes se destaca como um dos mais simples e, computacionalmente, mais eficientes entre os métodos de aprendizado existentes, sendo robusto contra ruídos nos dados e atributos irrelevantes (MITCHELL, 1997).

(37)

2.4.2

Árvore de Decisão

A indução de regras de árvores de decisão é um processo de aprendizado de máquina no qual se pode obter a classificação de um conjunto de dados, por meio da geração de um conjunto de regras que podem ser visualizadas num formato de árvore (WITTEN; FRANK; HALL, 2011). Uma forma bastante simples de explicar o funcionamento de uma árvore de decisão é, como uma lista de perguntas e respostas, hierarquicamente arranjadas, que levam a uma decisão. A Figura 6, adaptada de Gama et al. (2011), apresenta um exemplo de uma árvore de decisão que analisa o tempo e indica se está propício para jogar tênis ou não. De acordo com a figura, as condições climáticas apropriadas para jogar tênis são três:

1. Se estiver fazendo sol e com a humidade normal ou

2. Em dias nublados ou

3. Em caso de chuva, mas com vento fraco.

Figura 6: Exemplo de uma árvore de decisão para jogar tênis (adaptado de Gama et al. (2011))

Desse modo, uma árvore de decisão pode ser definida como uma estrutura de dados gerada recursivamente como um nó folha, que corresponde a uma classe, ou um nó de decisão que contém um teste sobre algum atributo. Para cada resultado do teste existe uma aresta para uma subárvore. Cada subárvore tem a mesma estrutura que a árvore. A árvore pode ser representada como um conjunto de regras. Cada regra tem seu início na raiz da árvore e caminha até uma de suas folhas (MONARD; BARANAUSKAS, 2003).

(38)

Entre os diversos algoritmos utilizados na construção de árvores de decisão, o C4.5 é considerado um dos mais populares (KUNCHEVA, 2014). Por essa razão, a implementação utilizada neste trabalho é a C4.5.

Em geral, o procedimento de uma árvore de decisão (AD) é dado como:

1. Apresenta-se um elemento do conjunto de dados ao nó inicial (ou nó raiz) da árvore;

2. Dependendo do resultado do teste lógico usado pelo nó, a árvore se ramifica para um dos nós filhos;

3. Este procedimento é repetido até que um nó terminal (nó folha) seja alcançado.

As árvores de decisão possuem como vantagem, diante de outras técnicas de apren-dizado de máquina, o fato de produzirem modelos que podem ser facilmente interpreta-dos por humanos, possibilitando assim que especialistas possam analisar um conjunto de regras aprendidas por uma árvore de decisão e determinar se o modelo aprendido é acei-tável diante das restrições do mundo real. As árvores de decisão possuem uma estrutura de fácil manipulação e mostram explicitamente como se chegou à conclusão (MONARD; BARANAUSKAS, 2003).

Dentre diversos métodos existentes para construção de classificadores, os indutores de árvores de decisão apresentam vantagens tais como: esforço computacional reduzido, simplicidade na interpretação das regras e seleção automática de atributos relevantes, quando comparados, por exemplo, com redes neurais (WITTEN; FRANK; HALL, 2011).

Apesar das vantagens citadas acima, as árvores de decisão possuem algumas desvan-tagens, tais como: nem sempre o especialista raciocina na forma de um conjunto de regras; as respostas não necessariamente são do tipo "sim"ou "não"e podem não ser mutuamente exclusivas (MONARD; BARANAUSKAS, 2003).

2.4.3

Ripper

O algoritmo Ripper, inicialmente proposto por Cohen (1995), foi desenvolvido a partir da avaliação do algoritmo de aprendizado por regras IREP (do inglês, Incremental Reduced Error Pruning). Sua primeira versão foi uma otimização do algoritmo IREP e denominado, inicialmente, de RIPPERk, atualmente conhecido como RIPPER (do inglês, Repeated Incremental Pruning to Produce Error Reduction ou Poda Incremental Repetida para Produzir Redução de Erro).

(39)

Ripper é um dos mais básicos e populares entre os algoritmos baseados em regras, nele o modelo de aprendizado é representado como um conjunto de regras IF-THEN. Classes são examinadas em tamanho crescente e um conjunto inicial de regras para a classe é gerado usando erro reduzido incremental. O Ripper procede tratando todas as instâncias de um julgamento específico nos dados de treinamento como uma classe e encontrando um conjunto de regras que cobrem todos os membros dessa classe. Depois disso, procede à próxima classe e faz o mesmo, repetindo isso até que todas as classes tenham sido envolvidas (BHAGYASHREE et al., 2018).

De forma mais detalhada, Witten, Frank e Hall (2011) explicam que o Ripper é um acrônimo para poda incremental repetida para produzir redução de erro. As classes são examinadas em tamanho crescente e um conjunto inicial de regras para uma classe é gerado usando a redução incremental de erro reduzido. Uma condição de parada extra é introduzida, dependendo do tamanho da descrição das instâncias e do conjunto de regras. O tamanho da descrição é uma fórmula complexa que leva em conta o número de bits necessários para enviar um conjunto de instâncias com relação a um conjunto de regras, o número de bits necessários para enviar uma regra com k condições e o número de bits necessário para enviar o número inteiro k - multiplicado por um fator de 50% para compensar possível redundância nos atributos.

Adicionalmente os mesmos autores explicam que, tendo produzido um conjunto de regras para a classe, cada regra é reconsiderada e duas novas variantes produzidas, usando a remoção de erros reduzidos. Neste estágio, instâncias cobertas por outras regras para a classe são removidas do conjunto de remoção e taxa de sucesso na classe. As instâncias restantes são usadas como critério de remoção. Se uma das duas variantes produzir um melhor tamanho da descrição, ela substituirá a regra. Em seguida, reativamos a fase de construção original para limpar as novas instâncias descobertas da classe. Uma verificação final é feita para garantir que cada regra contribua para a redução do comprimento da descrição, antes de continuar a gerar regras para a próxima classe. No framework Weka este algoritmo foi implementado com a denominação JRIP que será utilizada neste trabalho.

2.4.4

k

Vizinhos mais Próximos (k -NN)

O k -NN, também chamado de algoritmo do vizinho mais próximo, é um dos mais simples e mais utilizados algoritmos de aprendizado. Esse algoritmo classifica um novo exemplo calculando a distância entre as k instâncias mais próximas a ele. Portanto, o mesmo pode ser descrito da seguinte forma: Suponhamos um conjunto D de tuplas de

(40)

treinamento. Cada elemento de D é uma tupla (x1;x2;...;xn;c), onde c é a classe à qual

essa tupla pertence. Cada tupla (x1;...;xn) pode ser vista como um ponto num espaço

N-dimensional. Seja Y = (y1;...;yn) uma nova tupla, ainda não classificada. A fim de

classificá-la, calculam-se as distâncias de Y a todas as tuplas de treinamento e consideram-se as k tuplas de treinamento mais próximas de Y . Dentre essas k tuplas, verifica-se qual a classe que aparece com maior frequência. Sendo assim, a tupla Y será classificada dentro dessa classe mais frequente. Normalmente, o cálculo da distância entre duas tuplas é realizado utilizando a distância euclidiana (KUNCHEVA, 2014).

O algoritmo k -NN assume que todos os padrões mais similares encontrados são equi-valentemente relevantes. Por esse motivo, a precisão da predição do modelo pode ser deteriorada. Uma solução para esse problema é fazer com que, entre as instâncias mais similares encontradas, as que estiverem mais próximas da nova instância possuam pesos maiores no modelo (DUDA; HART; STORK, 2000). Por basear-se apenas na distância, nor-malmente euclidiana, entre as instâncias de treinamento, pode-se afirmar que o k -NN é um algoritmo conceitualmente muito simples, porém com grande complexidade computa-cional, uma vez que para cada instância são calculadas as distâncias a todas as demais. Assim, se utilizado em grandes bases de dados, pode se tornar inviável devido ao longo tempo de processamento (WITTEN; FRANK; HALL, 2011).

Além disso, o k -NN é bastante sensível a ruídos. Como solução para esse problema, pode-se utilizar a estratégia de escolher alguns números k fixos, pequenos que são aloca-dos e usaaloca-dos juntos para determinar a classe via voto majoritário; no entanto, o tempo computacional, inevitavelmente, aumenta. Outra forma de resolver o mesmo problema é escolher, seletivamente e criteriosamente, as instâncias adicionadas à base de dados (WITTEN; FRANK; HALL, 2011).

2.5

Comitês de Classificadores

O aumento da complexidade e ampla aplicabilidade dos sistemas de classificação leva-ram a investigações de muitas abordagens e metodologias. Mesmo assim, há uma percep-ção de que nenhum classificador é considerado completamente satisfatório para uma tarefa particular; portanto, a ideia de combinar diferentes métodos para melhorar o desempe-nho surgiu como uma possibilidade muito promissora (NASCIMENTO; COELHO; CANUTO, 2014). Esta combinação é denominada comitês de classificadores, também conhecidos como sistemas multiclassificadores ou ensembles.

(41)

Comitês de classificadores é um campo de pesquisa dentro da inteligência artificial, mais especificamente, dentro de aprendizado de máquina e consiste em treinar vários classificadores para realizar conjuntamente uma tarefa comum. Em tarefas de classificação, um ensemble incorpora vários submodelos chamados classificadores base, que geralmente são obtidos treinando um algoritmo de aprendizado básico (árvore de decisão, rede neural, k vizinhos mais próximos, entre outros). Os comitês podem ser contruídos baseados no mesmo algoritmo de aprendizagem produzindo comitês homogêneos ou utilizando vários algoritmos gerando comitês heterogêneos (GHARROUDI, 2017).

A ideia de comitês de classificadores é criar e combinar vários modelos indutivos para o mesmo domínio, obtendo melhor qualidade de previsão. O principal desafio para o sucesso de um comitê é gerar classificadores base diversificados e de bom desempenho. Portanto, para criar cada classificador base é importante observar as seguintes orientações: usar um conjunto de treinamento divergente do mesmo domínio, utilizar algoritmos distintos, no caso dos comitês heterogêneos, escolher diferentes configurações de parâmetros do algo-ritmo, acionar execuções independentes de um algoritmo não determinístico (CICHOSZ, 2015).

Existe uma grande variedade de comitês de classificadores propostos na literatura e que foram aplicados em diversos campos, tais como: medicina (CHOI et al., 2016; HASAN; GHOLAMHOSSEINI; SARKAR, 2017), astronomia (PHAM et al., 2016) e ciências naturais

(NIJHAWAN; RAMAN; DAS, 2018).

2.5.1

Métodos de Combinação

Conforme citado anteriormente, sistemas multiclassificadores são sistemas para clas-sificação de padrões baseados na combinação de saídas de um conjunto de diferentes classificadores, chamados classificadores base. Essa combinação tem como objetivo obter sistema mais eficiente que os classificadores individuais em termos de acurácia.

Um sistema multiclassificador é, portanto, formado por um conjunto de classificadores base e uma função para a combinação das saídas desses classificadores. Assim, após a geração do conjunto de classificadores base, o passo seguinte é a escolha dos métodos para combinação de suas saídas. Há um vasto número de métodos de combinação de classificadores na literatura, podendo ser agrupados em três tipos principais: fusão, seleção e híbrido (Tsymbal et al., 2005).

(42)

classi-ficadores componentes do sistema na construção da resposta final, ou seja, a classificação final resulta da opinião coletiva dos classificadores participantes. Já na combinação de classificadores baseada em seleção, a resposta final do sistema é dada pelo classificador base mais capacitado para o padrão de entrada dado. O método híbrido utiliza tanto a abordagem baseada em fusão quanto em seleção.

Neste trabalho serão utilizados dois métodos de combinação (soma e voto, explicados adiante), ambos baseados em fusão. A escolha de métodos baseados em fusão foi feita devido ao aproveitamento das informações de todos os classificadores. Além disso, os métodos baseados em fusão são mais utilizados do que os baseados em seleção e os híbridos. Os métodos de combinação podem ser ponderados ou não. A diferença básica entre esses métodos é que os ponderados permitem que sejam atribuídos pesos para cada um dos classificadores base, enquanto os não ponderados não permitem. Serão usados neste trabalho, a princípio, dois métodos sem ponderação: soma e voto. Estes métodos serão descritos a seguir.

2.5.1.1 Soma

Soma é um dos métodos de combinação mais simples e mais utilizados. Nesse método, uma vez que os classificadores base tenham gerado as saídas para um padrão, todas as saídas de cada classificador para cada uma das classes são somadas e a classe vencedora é aquela que possuir o maior valor absoluto.

O método da soma permite que sejam atribuídos pesos para cada um dos classifi-cadores base. Quando são utilizados diferentes pesos para cada um dos classificlassifi-cadores, estão sendo atribuídos diferentes graus de influência de cada classificador à saída geral do sistema. Nesse caso, o método é chamado de soma ponderada.

2.5.1.2 Voto

Um método de combinação de classificadores frequentemente utilizado é o método voto, também conhecido por voting ou votação. Ao utilizar esse método sua combinação é feita através da votação dos resultados de cada classificador ao ser apresentado um novo exemplo.

Assim como o método da soma, este método pode atribuir pesos aos classificadores base, sendo então chamado de votação ponderada (Sinoara et al., 2002). A votação sem peso, também chamada de votação por maioria, é um método simples, porém robusto

(43)

(Bernardini, 2002). Neste trabalho, será utilizada a votação por maioria, a votação pon-derada poderá ser utilizada em um trabalho futuro.

2.6

Considerações Finais

Este capítulo iniciou apresentando os principais conceitos associados à área de aprendi-zado de máquina, entre eles, os tipos de aprendiaprendi-zado supervisionado e não supervisionado. No aprendizado supervisionado, os métodos tratam da construção de indutores com o ob-jetivo de realizar inferências a partir de um conjunto de instâncias de treinamento para os quais se conhece a priori as classes às quais essas instâncias pertencem. Enquanto isso, no aprendizado não-supervisionado, os métodos recebem como entrada instâncias das quais não se conhece a priori a classe a que elas pertencem.

Em seguida, apresentou-se as principais características do aprendizado semissuper-visionado, bem como os algoritmos self-training e co-training. O aprendizado semissu-pervisionado representa a junção do aprendizado susemissu-pervisionado e não-susemissu-pervisionado e tem como objetivo reduzir a necessidade de uma grande quantidade de dados rotula-dos, quando somente um pequeno conjunto de instâncias rotuladas está disponível. Sendo assim, a atribuição de rótulos a instâncias não-rotuladas é realizado por meio de um processo automático utilizando algoritmos de apredizado semissupervisionado, tais como self-training e training. A principal diferença entre esses dois algoritmos é que o co-training divide o conjunto de dados em dois subconjuntos com visões distintas.

Dentre as limitações dos algoritmos self-training e co-training, está a definição da quantidade de instâncias a serem incluídas no conjunto de dados rotulados a cada iteração. Sendo assim, este trabalho explora a ideia de criar um limiar de confiança flexível que seleciona, a cada iteração, as instâncias que farão parte do conjunto dos rotulados.

Por conseguinte, foram apresentados os principais conceitos associados à classificação de dados, que é um processo de extração de informações por meio de categorização, a partir de um conjunto de dados bruto. Além disso, foram explicados os quatro tipos de classificadores utilizados neste trabalho, Naive Bayes, árvore de decisão, Ripper e k -NN.

Adicionalmente foi explicado sobre comitês de classificadores, que exploram a ideia de que diferentes classificadores, especialistas ou módulos de reconhecimento podem oferecer informações complementares sobre padrões a serem classificados, melhorando a efetividade do processo de reconhecimento como um todo. Por fim, foram explicados os métodos de combinação usados neste trabalho, soma e voto, que servem para combinar as saídas dos

(44)
(45)

3

Estado da Arte

Este capítulo apresenta a descrição de alguns trabalhos desenvolvidos dentro da mesma linha de pesquisa da presente tese e está organizado em 4 subseções. Nas duas primeiras, serão apresentados os trabalhos que utilizam aprendizado semissupervisionado com os al-goritmos self-training e co-training, respectivamente. Na terceira, serão descritos trabalhos de pesquisa que envolvem comitês de classificadores com aprendizado semissupervisionado. Por fim, serão realizadas as considerações finais.

3.1

Aprendizado Semissupervisionado com

Self-Training

Na literatura, existem diversos trabalhos na área de aprendizado semissupervisionado que tratam do algoritmo self-training. Algumas pesquisas buscam definir formas de ava-liar o algoritmo (YU, 2013; TANHA; SOMEREN; AFSARMANESH, 2017), outras realizam alterações na sua estrutura (TAO et al., 2016; WU et al., 2017; WANG et al., 2017; GAN et al., 2013; RODRIGUES; SANTOS; CANUTO, 2013), e as demais utilizam o self-training em diferentes aplicações (FRINKEN et al., 2014;WANG et al., 2008;AGHABABAEI; MAKREHCHI, 2016). A pesquisa desenvolvida nesta tese se enquadra no grupo de trabalhos que efetuam mudanças na estrutura do self-training, por este motivo serão apresentados na próxima seção.

Em relação a definição de formas para avaliar o método self-training, a pesquisa de Yu (2013) investigou a capacidade do self-training lidar com o problema de transferência de domínio através da aprendizagem de dados não rotulados no domínio alvo e dados rotu-lados em domínio(s) não alvo. Especificamente, o self-training é avaliado pela efetividade em situações de dados escassos e possibilidade de adaptação de domínio na classificação de opinião. Neste mesmo contexto, o objetivo do trabalho de Tanha, Someren e Afsarmanesh (2017) é usar uma árvore de decisão como aprendiz de base para o algoritmo self-training. A pesquisa esclareceu que melhorando a estimativa de probabilidade da árvore de decisão,

(46)

o self-training melhora seu desempenho.

Alguns estudos usam o método self-training em diferentes domínios de aplicações (AGHABABAEI; MAKREHCHI, 2016;FRINKEN et al., 2014;WANG et al., 2008). Por exemplo, em Aghababaei e Makrehchi (2016) é proposto um modelo de aprendizado semissuper-visionado para o problema de análise de sentimento chamado interpolative self-training. Como o próprio nome indica, este modelo é uma extensão do algoritmo self-training, e o seu principal diferencial é a concatenação dos dados de treinamento e teste. No artigo de Frinken et al. (2014), os autores apresentam uma nova versão para o self-training usada no reconhecimento de manuscritos e baseada em redes neurais. Finalmente, Wang et al. (2008) introduziu o self-training para resolver a tarefa de classificação da subjetividade de sentenças.

3.1.1

Extensões do Self-Training

Conforme explicado anteriormente, é possível encontrar na literatura diferentes tra-balhos que realizam alterações na estrutura do algoritmo self-training com o objetivo de criar novos algoritmos ou extensões (TAO et al., 2016; WU et al., 2017; WANG et al., 2017;

GAN et al., 2013; RODRIGUES; SANTOS; CANUTO, 2013). No trabalho de Tao et al. (2016) foi desenvolvido um novo algoritmo no estilo do self-training que explora uma hipótese múltipla para otimizar o processo de autorrotulagem. Esse processo utiliza um método transdutivo baseado em grafos para gerar predições confiáveis. Ao contrário do padrão self-training, o algoritmo proposto utiliza dados rotulados e não rotulados como um todo para rotular e selecionar instâncias não rotuladas para o aumento do conjunto de trei-namento. Segundo o autor, o algoritmo proposto tem várias propriedades interessantes, entre elas: pode gerar rótulos mais confiáveis em dados não rotulados; e tem uma forte tolerância ao ruído no conjunto de treinamento.

Seguindo o contexto anterior, na pesquisa de Wu et al. (2017), foi proposto um fra-mework para classificação semissupervisionada de autotreinamento, cuja estrutura de distribuição do espaço de dados (esférica ou não esférica) foi integrada ao processo do self-training. Este framework consiste de duas partes principais, uma está descobrindo a estrutura real de todo o espaço de dados, pesquisando e localizando picos de densidade de dados; a outra é integrar a estrutura real de todo o espaço de dados no processo de autotreinamento para treinar iterativamente um classificador.

Já Wang et al. (2017), propuseram um framework baseado no self-training para classi-fição de imagens estimando-se a entropia de evidência de fusão de amostras não-rotuladas.

Referências

Documentos relacionados

Na primeira, pesquisa teórica, apresentamos de modo sistematizado a teoria e normas sobre os meios não adversarias de solução de conflitos enfocados pela pesquisa, as características

Este estudo, assim, aproveitou uma estrutura útil (categorização) para organizar dados o que facilitou a sistematização das conclusões. Em se tratando do alinhamento dos

Porém, as narrativas dos diários reflexivos selecionados para essa análise não somente trouxeram a voz do aluno de modo reflexivo para que o professor também possa pensar com

Para disciplinar o processo de desenvolvimento, a Engenharia de Usabilidade, também conceituada e descrita neste capítulo, descreve os métodos estruturados, a

Mineração de conhecimento interativa em níveis diferentes de abstração: Como é  difícil  prever  o  que  exatamente  pode  ser  descoberto  de  um  banco 

Dessa forma, diante das questões apontadas no segundo capítulo, com os entraves enfrentados pela Gerência de Pós-compra da UFJF, como a falta de aplicação de

Como se trata de moléculas apoiares e como os electrões estão sempre em movimento, vai existir, numa determinada altura, maior concentração de electrões num determinado lado, ou

Mas ele é ( verbo ser, no Presente do Indicativo ) apenas um gato e não tinha tido ( verbo ter, no Pretérito Mais-Que-Perfeito Simples do Indicativo ) tempo de aprender (