htilde-rt: um algoritmo de aprendizado de árvores de...
TRANSCRIPT
HTILDE-RT: UM ALGORITMO DE APRENDIZADO DE ARVORES DE
REGRESSAO DE LOGICA DE PRIMEIRA ORDEM PARA FLUXOS DE
DADOS RELACIONAIS
Glauber Marcius Cardoso Menezes
Dissertacao de Mestrado apresentada ao
Programa de Pos-graduacao em Engenharia
de Sistemas e Computacao, COPPE, da
Universidade Federal do Rio de Janeiro, como
parte dos requisitos necessarios a obtencao do
tıtulo de Mestre em Engenharia de Sistemas e
Computacao.
Orientador: Gerson Zaverucha
Rio de Janeiro
Dezembro de 2011
HTILDE-RT: UM ALGORITMO DE APRENDIZADO DE ARVORES DE
REGRESSAO DE LOGICA DE PRIMEIRA ORDEM PARA FLUXOS DE
DADOS RELACIONAIS
Glauber Marcius Cardoso Menezes
DISSERTACAO SUBMETIDA AO CORPO DOCENTE DO INSTITUTO
ALBERTO LUIZ COIMBRA DE POS-GRADUACAO E PESQUISA DE
ENGENHARIA (COPPE) DA UNIVERSIDADE FEDERAL DO RIO DE
JANEIRO COMO PARTE DOS REQUISITOS NECESSARIOS PARA A
OBTENCAO DO GRAU DE MESTRE EM CIENCIAS EM ENGENHARIA DE
SISTEMAS E COMPUTACAO.
Examinada por:
Prof. Gerson Zaverucha, Ph.D.
Prof. Valmir Carneiro Barbosa, Ph.D.
Profa. Bianca Zadrozny, Ph.D.
Profa. Marley Maria Bernardes Rebuzzi Vellasco, Ph.D.
Prof. Adriano Alonso Veloso, D.Sc.
RIO DE JANEIRO, RJ – BRASIL
DEZEMBRO DE 2011
Menezes, Glauber Marcius Cardoso
HTILDE-RT: Um algoritmo de aprendizado de arvores
de regressao de logica de primeira ordem para fluxos de
dados relacionais/Glauber Marcius Cardoso Menezes. –
Rio de Janeiro: UFRJ/COPPE, 2011.
XIV, 97 p.: il.; 29, 7cm.
Orientador: Gerson Zaverucha
Dissertacao (mestrado) – UFRJ/COPPE/Programa de
Engenharia de Sistemas e Computacao, 2011.
Referencias Bibliograficas: p. 93 – 97.
1. Aprendizado de maquina. 2. Programacao em logica
indutiva. 3. Regressao. 4. Escalabilidade de algoritmos.
5. Mineracao em grandes bases de dados. 6. Fluxos de
dados. I. Zaverucha, Gerson. II. Universidade Federal
do Rio de Janeiro, COPPE, Programa de Engenharia de
Sistemas e Computacao. III. Tıtulo.
iii
Aos meu pais, Nelson (in
memoriam) e Joana, sem os
quais nenhuma de minhas
realizacoes seria possıvel. Tudo
que ha de bom em mim tem sua
contribuicao.
iv
Agradecimentos
Agradeco primeiramente aos meus pais, Joana D’arc de Oliveira Menezes e Nel-
son Cardoso Menezes, por todo carinho, atencao e dedicacao investidos em minha
criacao e por todos os seus ensinamentos, os quais foram fundamentais para minha
formacao moral e intelectual. Sem eles, eu nada seria.
A minha namorada Sarah Mendes, por todo o carinho e apoio, compartilhando
de perto minhas derrotas e vitorias, meus erros e acertos.
Aos meus amigos de longa data: Andre Lima, Aprıgio Bertholdo, Diego Abran-
tes, Joao Carlos da Rosa, Leandro Lessa, Maximiliano Iabrudi, Rafael Abrantes,
Renan Marcolino, Vinıcius Ferreira, William de Carvalho e Yuri Villar; por estarem
ao meu lado ontem, hoje e sempre.
Aos amigos conquistados gracas a minha passagem pela UFRJ: Alexandre Ra-
belo, Alexandre Sardinha, Carlos Wagner, Douglas Cardoso, Fellipe Duarte, Lucio
Paiva, Paulo Braz, Rafael Espırito Santo e Rodrigo Barbosa; por serem uma ines-
gotavel fonte de sabedoria e companheirismo.
Ao amigo Elias Bareinboim, por ter influenciado positivamente na minha decisao
de adentrar no mestrado desta instituicao.
Ao grande amigo Dr. Celso Lugao da Veiga, por ter acompanhado de perto
esta minha caminhada, zelando por meu bem-estar e transferindo-me conhecimentos
valiosıssimos para o resto de minha vida.
Ao meu recem-amigo Dr. Gustavo Coutinho Medeiros de Andrade, por estar
cuidando de minha saude com maestria, por seus valiosos conhecimentos e sua in-
fluencia impactante em minha vida.
Aos amigos e colegas de orientacao: Cristiano Pitangui e Juliana Bernardes, pela
excelente interacao que tivemos; e, em particular, a Ana Duboc e Aline Paes por
terem me ajudado inumeras vezes mais proximamente.
A Carina Lopes, por ter sido tao solıcita e atenciosa, transmitindo-me seus conhe-
cimentos e esclarecendo-me incontaveis duvidas sobre o sistema ACE e os algoritmos
TILDE e HTILDE.
Ao meu orientador, professor Gerson Zaverucha, pelos conhecimentos a mim
transferidos e por acreditar em mim, dedicando-me seu tempo e paciencia em mo-
mentos em que duvidei de mim mesmo.
v
A Hendrik Blockeel, criador do TILDE, e Jan Ramon, por fornecerem o codigo
fonte do sistema ACE e permitirem que este trabalho pudesse basear-se em seu
sistema.
Agradeco especialmente: a Jan Struyf que, mesmo nao mais estando no ambiente
academico, foi extremamente solıcito, ajudando-me a resolver problemas relaciona-
dos ao sistema ACE; e a Celine Vens, por fornecer informacoes sobre os problemas
Artificial1 e Artificial2, bem como explicacoes pertinentes aos mesmos.
Agradeco ainda a Celine Vens, Daan Fierens, Jan Ramon e Hendrik Blockeel
pela ajuda com duvidas acerca do funcionamento de elementos do sistema.
A equipe de funcionarios do PESC: Claudia, Gutierrez, Roberto Rodrigues, So-
lange, Sonia Regina e demais, por mostrarem-se tao prestativos e atenciosos em
todos os momentos que os solicitei.
Ao excelente corpo docente do PESC e, em particular, aos professores com os
quais cursei as disciplinas que escolhi.
Agradeco a CAPES e ao CNPq pela ajuda financeira.
vi
Resumo da Dissertacao apresentada a COPPE/UFRJ como parte dos requisitos
necessarios para a obtencao do grau de Mestre em Ciencias (M.Sc.)
HTILDE-RT: UM ALGORITMO DE APRENDIZADO DE ARVORES DE
REGRESSAO DE LOGICA DE PRIMEIRA ORDEM PARA FLUXOS DE
DADOS RELACIONAIS
Glauber Marcius Cardoso Menezes
Dezembro/2011
Orientador: Gerson Zaverucha
Programa: Engenharia de Sistemas e Computacao
Atualmente, organizacoes modernas armazenam seus dados sob a forma de ban-
cos de dados relacionais que crescem mais rapidamente que a capacidade de hard-
ware. Entretanto, a extracao de informacao tornou-se uma tarefa crucial para a
sobrevivencia das corporacoes. Neste trabalho, propomos o algoritmo HTILDE-RT,
um algoritmo incremental escalavel para aprender de forma eficiente arvores de re-
gressao de logica de primeira ordem em fluxos de dados relacionais. O HTILDE-RT
e baseado no sistema ILP de regressao TILDE-RT e no sistema proposicional de
aprendizado em fluxos VFDT. O algoritmo proposto utiliza o limitante de Hoeff-
ding para tornar o processo de aprendizado escalavel. O HTILDE-RT foi comparado
com o TILDE-RT em grandes massas de dados, com 2 milhoes de exemplos cada,
acelerando o aprendizado entre 2,4 e 260 vezes, gerando predominantemente mode-
los menores e sem perdas estatisticamente significativas em relacao ao coeficiente de
correlacao de Pearson, porem com discreta perda em relacao ao RMSE, entre 0%
a 2% maior. Esses resultados experimentais sugerem uma boa troca entre escalabi-
lidade (velocidade e tamanho) e acuracia. Adicionalmente, sao apresentados novos
resultados obtidos com o algoritmo ILP de classificacao HTILDE, um dos sistemas
base do HTILDE-RT.
vii
Abstract of Dissertation presented to COPPE/UFRJ as a partial fulfillment of the
requirements for the degree of Master of Science (M.Sc.)
HTILDE-RT: A FIRST ORDER LOGICAL REGRESSION TREE LEARNER
FOR RELATIONAL DATA STREAMS
Glauber Marcius Cardoso Menezes
December/2011
Advisor: Gerson Zaverucha
Department: Systems Engineering and Computer Science
Currently, modern organizations store their data under the form of relational
databases which grow faster than hardware capacities. However, extracting infor-
mation from such databases has become crucial for corporations survival. In this
work we propose HTILDE-RT, a scalable incremental algorithm to learn first-order
logical regression trees efficiently from relational data streams. HTILDE-RT is based
on the regression ILP system TILDE-RT and the propositional data stream learner
VDFT. The proposed algorithm uses the Hoeffding bound to scale up the learning
process. HTILDE-RT was compared with the batch learner TILDE-RT over large
regression datasets, with two million examples each, speeding up the learning time
between 2.4 and 260 times, generating predominantly shorter models and without
showing significant statistical differences with respect to the Pearson coefficient, but
with a small loss in RMSE, between 0% and 2%. These experimental results suggest
a good trade-off between scalability (speed and size) and accuracy. Moreover, we
show new results yielded by the classification ILP system HTILDE, a base system
of HTILDE-RT.
viii
Sumario
Lista de Figuras xi
Lista de Tabelas xiii
1 Introducao 1
2 Conceitos fundamentais 4
2.1 Arvores de Decisao . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.1.1 Representacao do conhecimento . . . . . . . . . . . . . . . . . 4
2.1.2 Ganho de informacao . . . . . . . . . . . . . . . . . . . . . . . 7
2.1.3 Aprendizado (Inducao) . . . . . . . . . . . . . . . . . . . . . . 9
2.2 Arvores de Regressao - O caso contınuo . . . . . . . . . . . . . . . . . 12
2.2.1 Reducao da variancia . . . . . . . . . . . . . . . . . . . . . . . 13
2.2.2 Atributos numericos . . . . . . . . . . . . . . . . . . . . . . . 14
2.2.3 Modelo preditivo . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.2.4 Inducao de arvores de regressao . . . . . . . . . . . . . . . . . 17
2.3 Programacao em Logica Indutiva - ILP . . . . . . . . . . . . . . . . . 19
2.3.1 Regressao em ILP . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.4 Avaliacao do Aprendizado . . . . . . . . . . . . . . . . . . . . . . . . 25
3 Sistemas Relacionados 27
3.1 TILDE - Top-down Induction of Logical Decision Trees . . . . . . . . 27
3.1.1 Introducao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.1.2 Aprendizado por Interpretacao . . . . . . . . . . . . . . . . . 30
3.1.3 Especificacao de um problema . . . . . . . . . . . . . . . . . . 31
3.1.4 Refinamentos . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
3.1.5 Pacotes de clausulas . . . . . . . . . . . . . . . . . . . . . . . 35
3.1.6 Tratamento de Regressao - TILDE-RT . . . . . . . . . . . . . 36
3.1.7 Heurıstica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
3.1.8 Inducao de arvores de decisao de logica de primeira ordem . . 39
3.2 VFDT - Very Fast Decision Tree . . . . . . . . . . . . . . . . . . . . 42
3.2.1 Introducao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
ix
3.2.2 Limitante de Hoeffding . . . . . . . . . . . . . . . . . . . . . . 42
3.2.3 Arvores de Hoeffding . . . . . . . . . . . . . . . . . . . . . . . 43
3.2.4 Propriedades das Arvores de Hoeffding . . . . . . . . . . . . . 46
3.2.5 Tratamento de atributos numericos . . . . . . . . . . . . . . . 49
3.2.6 VFDT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
3.3 HTILDE - Hoeffding TILDE . . . . . . . . . . . . . . . . . . . . . . . 51
3.3.1 Introducao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
3.3.2 Algoritmo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
3.3.3 Especificacao de um problema . . . . . . . . . . . . . . . . . . 56
4 HTILDE: Novos resultados 58
4.1 Propriedades das HTILDE-Trees . . . . . . . . . . . . . . . . . . . . 58
4.2 Resultados com a base de dados CORA . . . . . . . . . . . . . . . . . 60
5 HTILDE-RT 65
5.1 Hoeffding TILDE Regression Trees . . . . . . . . . . . . . . . . . . . 65
5.1.1 Introducao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
5.1.2 Alteracao da heurıstica . . . . . . . . . . . . . . . . . . . . . . 66
5.1.3 Tratamento de atributos numericos . . . . . . . . . . . . . . . 67
5.1.4 Algoritmo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
5.1.5 Especificacao de um problema . . . . . . . . . . . . . . . . . . 73
5.1.6 Aspectos de implementacao . . . . . . . . . . . . . . . . . . . 74
5.2 Resultados Experimentais . . . . . . . . . . . . . . . . . . . . . . . . 74
5.2.1 Metodologia . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
5.2.2 Conjuntos de dados . . . . . . . . . . . . . . . . . . . . . . . . 76
6 Conclusao 91
6.1 Trabalhos Futuros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
Referencias Bibliograficas 93
x
Lista de Figuras
2.1 Exemplo de uma arvore de decisao para o conceito Jogar Tenis. . . . 6
2.2 Conjunto de regras correspondente a arvore da figura 2.1. . . . . . . . 6
2.3 Grafico da entropia relativa a uma classificacao booleana. p⊕ e a
proporcao de exemplos positivos e varia de 0 a 1. . . . . . . . . . . . 8
2.4 Exemplo de calculo de ganho de informacao. . . . . . . . . . . . . . . 9
2.5 Exemplo de uma arvore de regressao para o conceito MPG. . . . . . . 13
2.6 Esquema do aprendizado em programacao em logica indutiva (ILP),
onde B e o conhecimento preliminar, E e o conjunto de exemplos,
formado pelos exemplos positivos (E+) e negativos (E−), e H e a
teoria aprendida pelo sistema. . . . . . . . . . . . . . . . . . . . . . . 19
2.7 Exemplos considerados no problema dos trens. . . . . . . . . . . . . . 20
2.8 Representacao dos exemplos para o problema dos trens . . . . . . . . 21
2.9 Representacao do conhecimento preliminar para o problema dos trens 21
2.10 Exemplo de clausula aprendida pelo FORS . . . . . . . . . . . . . . . 23
2.11 Exemplo do problema fatorial . . . . . . . . . . . . . . . . . . . . . . 24
3.1 Exemplos do problema Bongard. . . . . . . . . . . . . . . . . . . . . . 29
3.2 Exemplo de arvore gerada pelo TILDE. . . . . . . . . . . . . . . . . . 29
3.3 Conteudo do arquivo bongard.kb. . . . . . . . . . . . . . . . . . . . . 32
3.4 Conhecimento preliminar no arquivo bongard.bg. . . . . . . . . . . . 32
3.5 Exemplo de arvore gerada pelo TILDE. . . . . . . . . . . . . . . . . . 33
3.6 Exemplo de possıveis refinamentos para o filho esquerdo da raiz da
arvore da figura 3.5. . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
3.7 Conjunto de clausulas que se deseja saber se provam e . . . . . . . . 35
3.8 Pacote de clausulas da figura 3.7. . . . . . . . . . . . . . . . . . . . . 36
3.9 Arquivo kb do problema Machines . . . . . . . . . . . . . . . . . . . . 36
3.10 Conhecimento preliminar do problema Machines . . . . . . . . . . . . 37
3.11 Arvore gerada para o problema Machines . . . . . . . . . . . . . . . . 37
4.1 CORA: Curvas de aprendizado para a medida-F . . . . . . . . . . . . 63
4.2 CORA: Curvas de aprendizado para a AUC-PR . . . . . . . . . . . . 63
xi
5.1 Predicado alvo para Artificial1 . . . . . . . . . . . . . . . . . . . . . 77
5.2 Artificial1 - Curvas de aprendizado . . . . . . . . . . . . . . . . . . . 79
5.3 Predicado alvo para Artificial2 . . . . . . . . . . . . . . . . . . . . . 80
5.4 Artificial2 - Curvas de aprendizado . . . . . . . . . . . . . . . . . . . 82
5.5 FRIED - Curvas de aprendizado . . . . . . . . . . . . . . . . . . . . . 85
5.6 Gerador do conjunto de dados MV . . . . . . . . . . . . . . . . . . . 86
5.7 MV - Curvas de aprendizado . . . . . . . . . . . . . . . . . . . . . . . 87
5.8 Gerador do conjunto de dados 2D-Planes . . . . . . . . . . . . . . . . 88
5.9 2D-Planes - Curvas de aprendizado . . . . . . . . . . . . . . . . . . . 90
xii
Lista de Tabelas
2.1 Objetos associados ao conceito Jogar Tenis. . . . . . . . . . . . . . . 5
2.2 Objetos associados ao conceito Milhas por Galao. . . . . . . . . . . . 12
2.3 Tratamento do atributo numerico Cilindradas. . . . . . . . . . . . . . 15
3.1 Diferencas entre os algoritmos em alto nıvel do VFDT e do HTILDE. 54
4.1 Resultados para o problema CORA . . . . . . . . . . . . . . . . . . . 61
4.2 CORA - Curvas de aprendizado . . . . . . . . . . . . . . . . . . . . . 62
5.1 Resultados para Artificial1 . . . . . . . . . . . . . . . . . . . . . . . . 77
5.2 Curva de Aprendizado para Artificial1 . . . . . . . . . . . . . . . . . 78
5.3 Curva de Aprendizado para Artificial1* . . . . . . . . . . . . . . . . . 79
5.4 Resultado para Artificial2 . . . . . . . . . . . . . . . . . . . . . . . . 80
5.5 Curva de Aprendizado para Artificial2 . . . . . . . . . . . . . . . . . 81
5.6 Curva de Aprendizado para Artificial2* . . . . . . . . . . . . . . . . . 82
5.7 FRIED : FRIEDMAN . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
5.8 Curva de aprendizado para o problema FRIED . . . . . . . . . . . . . 84
5.9 Resultados para MV . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
5.10 Curva de Aprendizado para MV . . . . . . . . . . . . . . . . . . . . . 87
5.11 Resultados para 2D-Planes . . . . . . . . . . . . . . . . . . . . . . . . 88
5.12 Curva de Aprendizado para 2D-Planes . . . . . . . . . . . . . . . . . 89
xiii
Lista de Algoritmos
2.1 Versao do algoritmo C4.5 para aprender arvores de decisao para pro-
blemas de duas classes [33] . . . . . . . . . . . . . . . . . . . . . . . 11
2.2 Versao do algoritmo C4.5 para aprender arvores de regressao . . . . . 18
3.1 Algoritmo do TILDE, para inducao de arvores de decisao de logica
de primeira ordem, proposto em [5] [4] . . . . . . . . . . . . . . . . . 40
3.2 Algoritmo de classificacao de um exemplo usando um FOLDT (com
um conhecimento preliminar B), proposto em [5] [4] . . . . . . . . . . 41
3.3 Algoritmo de inducao de uma arvore de Hoeffding, proposto em [15] . 44
3.4 Algoritmo de Arvore de Decisao [33] . . . . . . . . . . . . . . . . . . 51
3.5 VFDT [15] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
3.6 Algoritmo do HTILDE, para inducao de uma arvore de decisao de
logica de primeira ordem escalavel para grandes fluxos dados. . . . . . 53
3.7 Funcao FazParticionamento, chamada pelo HTILDE, cujo pseudo-
codigo e exibido no algoritmo 3.6. . . . . . . . . . . . . . . . . . . . . 55
3.8 Algoritmo de classificacao de um exemplo usando o HTILDE (com
um conhecimento preliminar B) . . . . . . . . . . . . . . . . . . . . . 56
5.1 Algoritmo HTILDE-RT, para inducao de uma arvores de regressao
de logica de primeira ordem em fluxos de dados. . . . . . . . . . . . . 71
5.2 Funcao FazParticionamento, chamada pelo HTILDE-RT, cujo
pseudo-codigo e exibido no algoritmo 5.1. . . . . . . . . . . . . . . . . 72
5.3 Algoritmo de predicao de um exemplo usando o HTILDE-RT . . . . . 73
xiv
Capıtulo 1
Introducao
O aprendizado de maquina de maquina e um campo de pesquisa voltado para de-
senvolvimento de algoritmos que melhorem automaticamente a partir da experiencia.
Este envolve a combinacao de diversos outros campos, como algoritmos, inteligencia
artificial, filosofia, estatıstica, dentre outros [33].
Por sua vez, a mineracao de dados e um campo no qual se busca a solucao
de problemas atraves da analise de dados previamente presentes em um banco de
dados. Pode-se ainda definir a mineracao de dados como o processo de descoberta
de padroes nos dados [48]. Desta forma, muitas tecnicas usadas atualmente em
mineracao de dados tiveram suas origens no campo do aprendizado de maquina.
Atualmente, o uso de mineracao de dados tornou-se uma necessidade vital para
a sobrevivencia das corporacoes, bem como serve de poderosa ferramenta para a
descoberta cientıfica. Dessa forma, sua aplicabilidade e ampla, indo desde a deteccao
de fraudes eletronicas, passando pelo monitoramento de dados em redes ate a analise
de dados biomedicos.
Entretanto, tarefas cada vez maiores e mais complexas surgem. No cenario atual,
as bases de dados frequentemente superam a quantidade de memoria fısica. Esta
caracterıstica configura um problema de escalabilidade para os algoritmos tradi-
cionais de mineracao de dados, pois eles precisam carregar toda base de uma so
em memoria para realizar o aprendizado [15]. Uma outra situacao problematica
e quando os dados sao obtidos iterativamente, por exemplo no monitoramento de
transacoes financeiras. Nessa ultima situacao, ha um ‘fluxo de dados’ (data stream)
[1] e o algoritmo deve incrementalmente tratar cada nova informacao que chega.
Alem disso, a estrutura relacional, comumente associada ao uso da linguagem
SQL, frequentemente e a opcao escolhida para armazenamento e representacao de da-
dos. Porem, o representacao relacional e mais expressiva do que a representacao tra-
dicionalmente usada pelos algoritmos de mineracao, conhecida como representacao
atributo-valor ou proposicional. Essa diferenca nas representacoes tambem confi-
gura um problema, pois nao e possıvel aplicar diretamente algoritmos tradicionais
1
em bases relacionais. Alem disso, converter dados relacionas a forma atributo-valor
pode nem sempre ser possıvel.
Domingos e Hulten [15] desenvolveram uma metodologia para tratar fluxos de
dados, que culminou no algoritmo VFDT (Very Fast Decision Trees). O VFDT
e um algoritmo de classificacao proposicional que usa uma tecnica de amostragem
baseada no limitante de Hoeffding [22] para escolher qual e o melhor teste a ser
introduzido no no de uma arvore de decisao, sem a necessidade de analisar todos os
exemplos ao mesmo tempo. O VFDT e o estado da arte para este tipo de problema.
Uma outra area do aprendizado de maquina e conhecida como programacao
em logica indutiva (ILP - Inductive Logic Programming). Ela e definida como a
intersecao de aprendizado indutivo e programacao em logica [34], tendo o objetivo
de aprender teorias em logica de primeira ordem a partir de exemplos e de um
conhecimento preliminar.
A logica de primeira ordem tem a relevante capacidade de representar situacoes
complexas envolvendo varios objetos e as relacoes entre eles de forma elegante. Posto
isso, sistemas ILP tem expressividade superior a de sistemas tradicionais, conhecidos
como sistemas proposicionais, tambem chamados de metodos atributo-valor. Dessa
forma, algoritmos ILP sao capazes de resolver problemas que estes ultimos nao
conseguem [9].
O TILDE (Top-down Induction of Logical Decision Trees) [4] e a versao ILP
do algoritmo de arvores de decisao, o qual e capaz de modelar a grande maioria
dos esquemas relacionais nos bancos de dados modernos. Sua eficiencia e garan-
tida atraves do emprego das tecnicas de pacotes de clausulas (Query Packs) [2] e
aprendizado por interpretacoes (learning from interpretations) [5]. Tal algoritmo
e implementado como parte do sistema ACE [13], o qual e uma plataforma ILP
generica que engloba outros algoritmos de aprendizado. Adicionalmente, o TILDE
tambem e capaz de tratar problemas de regressao, sendo chamado de TILDE-RT
neste caso.
Lopes e Zaverucha em [28] estenderam a metologia utilizada pelo VFDT ao para-
digma da ILP, modificando o algoritmo TILDE. A partir disso, foi criado o HTILDE
(Hoeffding TILDE), um algoritmo de classificacao capaz de tratar eficientemente
problemas de classificacao a partir de fluxos de dados relacionais. O HTILDE alia a
eficiencia do VFDT com a expressividade do TILDE, sendo portanto a versao ILP
do VFDT.
O objetivo deste trabalho e o tratamento eficiente de regressao dentro do pa-
radigma da ILP. Dessa forma, e proposto o algoritmo HTILDE-RT, que e uma
modificacao do HTILDE para o tratamento de regressao a partir de fluxos de dados
relacionais. Da mesma forma que o HTILDE, o HTILDE-RT combina a expres-
sividade do paradigma da logica de primeira ordem e a eficiencia da tecnica de
2
amostragem guiada pelo limitante de Hoeffding. Um importante motivador esta no
fato de que as arvores de regressao sao modelos interessantes, pois sao capazes de
descrever funcoes numericas mantendo a interpretabilidade e eficiencia das arvores
de decisao.
Posto isso, esta dissertacao esta organizada da seguinte forma: no capıtulo 2,
sao apresentados conceitos essenciais para este trabalho, como arvores de decisao e
regressao, programacao em logica indutiva e avaliacao de aprendizado; no capıtulo
3, sao apresentados os seguintes algoritmos relacionados a este trabalho: TILDE na
secao 3.1, VFDT na secao 3.2 e HTILDE na secao 3.3; no capıtulo 4, sao discutidas as
propriedades assintoticas dos modelos aprendidos pelo sistema ILP de classificacao
HTILDE, base do HTILDE-RT, bem como sao apresentados novos resultados ex-
perimentais; no capıtulo 5, esta detalhado o algoritmo HTILDE-RT, bem como os
resultados experimentais obtidos; e no capitulo 6, sao expostas as conclusoes deste
trabalho, bem como desejaveis trabalhos futuros sao enumerados.
3
Capıtulo 2
Conceitos fundamentais
Neste capıtulo, conceitos fundamentais relacionados a este trabalho sao apresen-
tados de acordo com a seguinte organizacao: na secao 2.1, e explicado o aprendizado
de arvores de decisao para problemas de classificacao; na secao 2.2, o aprendizado
de arvores de regressao e discutido; na secao 2.3, e introduzido o conceito de pro-
gramacao em logica indutiva bem como sua aplicacao em problemas de regressao; e
na secao 2.4, conceitos relacionados a avaliacao do aprendizado sao apresentados.
2.1 Arvores de Decisao
Uma arvore de decisao e um modelo capaz de descrever conceitos, de forma
aproximada, atraves de regras que mapeiam um objeto em um valor especıfico. Tais
regras sao representadas atraves de um grafo do tipo arvore, onde a cada no interno
corresponde um teste. O mapeamento de um objeto e feito atravessando-o ao longo
da arvore, partindo-se da raiz ate chegar em uma folha. Ao alcancar um no interno, o
objeto e confrontado com o teste associado aquele no e o resultado do teste determina
o proximo no da travessia. Finalmente, ao chegar em uma folha, o objeto recebe um
valor de acordo com uma funcao associada a mesma. Os algoritmos classicos para
aprendizado de arvores de decisao sao o ID3 [40] e seu sucessor o C4.5 [41].
2.1.1 Representacao do conhecimento
Um ponto fundamental para o aprendizado e inferencia nas arvores de decisao,
bem como em qualquer algoritmo de aprendizado, e a maneira como a informacao
e estruturada e representada nos dados. A representacao mais comum e conhecida
como atributo-valor, ou ainda proposicional, onde todos os objetos na base de dados
sao compostos por um mesmo conjunto fixo de atributos, e cada atributo possui um
conjunto de possıveis valores que pode assumir (seu domınio). Caso um atributo
seja numerico, ou possivelmente contınuo, costuma-se adotar um passo previo de
4
discretizacao, porem existem outras formas para tratar atributos nao categoricos,
conforme e discutido na secao 2.2.2. Essencialmente, dados proposicionais podem
ser representados atraves de uma tabela unica.
Para auxiliar nas explicacoes, o exemplo do conceito Jogar Tenis e usado. Na
tabela 2.1 existem informacoes meteorologicas sobre alguns dias previamente obser-
vados, juntamente com a informacao da decisao que foi tomada, que pode ser jogar
(Sim) ou nao jogar tenis (Nao).
Dia Tempo Temperatura Umidade Vento Jogar TenisD1 Ensolarado Quente Alta Fraco NaoD2 Ensolarado Quente Alta Forte NaoD3 Nublado Quente Alta Fraco SimD4 Chuvoso Amena Alta Fraco SimD5 Chuvoso Fria Normal Fraco SimD6 Chuvoso Fria Normal Forte NaoD7 Nublado Fria Normal Forte SimD8 Ensolarado Amena Alta Fraco NaoD9 Ensolarado Fria Normal Fraco SimD10 Chuvoso Amena Normal Fraco SimD11 Ensolarado Amena Normal Forte SimD12 Nublado Amena Alta Forte SimD13 Nublado Quente Normal Fraco SimD14 Chuvoso Amena Alta Forte Nao
Tabela 2.1: Objetos associados ao conceito Jogar Tenis.
Neste exemplo, os objetos sao os dias, linhas da tabela, os atributos sao as
informacoes meteorologicas, colunas, e o conceito que se deseja representar e o de
quando jogar, ou nao jogar tenis.
No grafo em forma de arvore, cada no e associado a um atributo e cada possıvel
valor deste fica associado a uma aresta. Na figura 2.1 ha um exemplo de arvore
de decisao para o conceito Jogar Tenis. Para saber qual decisao tomar em um
dia especıfico, basta confrontar os atributos deste objeto com os testes ao longo da
arvore, ate que uma folha seja alcancada.
Suponha que fosse necessario saber qual decisao tomar num dia com as seguintes
caracterısticas (atributos): ensolarado, temperatura fria, umidade normal e vento
forte. Suponha, tambem, que foi fornecida a arvore da figura 2.1. De acordo com
esta, a decisao seria “Sim”, isto e, ‘jogar’. Note que, nao ha tal registro na tabela,
logo nao seria possıvel responder tal pergunta apenas consultando a mesma.
Conforme dito, tal representacao codifica um conjunto de regras [4], portanto,
como consequencia da estrutura e do processo para a tomada de decisao, cada folha
e na verdade associada a cabeca de uma regra, cujo corpo e formado pela conjuncao
5
Figura 2.1: Exemplo de uma arvore de decisao para o conceito Jogar Tenis.
dos testes associados ao caminho da raiz ate a folha em questao. Por exemplo, a
arvore da figura 2.1 expressa o seguinte conjunto de regras na figura 2.2.
SE Tempo = Ensolarado E Umidade = Alta ENTAO Classe = NaoSE Tempo = Ensolarado E Umidade = Normal ENTAO Classe = SimSE Tempo = Nublado ENTAO Classe = SimSE Tempo = Chuvoso E V ento = Forte ENTAO Classe = NaoSE Tempo = Chuvoso E V ento = Fraco ENTAO Classe = Sim
Figura 2.2: Conjunto de regras correspondente a arvore da figura 2.1.
6
2.1.2 Ganho de informacao
Antes de discutir o algoritmo de aprendizado de arvores de decisao, nesta secao
esta detalhado como o C4.5 avalia a qualidade dos atributos que sao candidatos a
teste durante a inducao. Embora existam outras funcoes que possam ser usadas
para avaliar a qualidade de um atributo, como o ındice de Gini [10], o ganho de
informacao tem importancia particular neste trabalho e, por isso, e detalhado. Tal
importancia vem do fato de o ganho de informacao ser a funcao usada pelo algoritmo
VFDT, base de nosso trabalho.
O C4.5 utiliza o ganho de informacao para medir a qualidade dos atributos como
candidatos a teste, quando trata problemas de classificacao. O ganho de informacao
utiliza o conceito de entropia, sendo esta uma medida de quao organizado, ou puro, e
um conjunto em relacao ao conceito que se deseja capturar. Portanto, primeiramente
a entropia e definida e, na sequencia, o ganho de informacao.
Para simplificar a explicacao, suponha que haja um problema de classificacao
binaria, i.e., o atributo alvo pode assumir exatamente dois valores, por exemplo:
positivo (pos, compactamente ⊕) ou negativo (neg, compactamente ). Seja S um
conjunto de exemplos de algum conceito a ser aprendido, entao a entropia de S
em relacao ao atributo alvo e dada pela equacao 2.1. Alem disso, p⊕ e a fracao
(proporcao) de exemplos positivos em S e p e a fracao (proporcao) de exemplos
negativos em S. Adicionalmente, define-se 0 log 0 = 0.
Entropia(S) =
|C|∑i=1
−pi log pi (2.1)
onde C e o conjunto das possıveis classes e pi e a probabilidade da classe i ocorrer.
No caso binario, por exemplo, poderia ser: C = {pos, neg} e |C| = 2.
A figura 2.3 mostra o grafico da entropia para o caso binario. Duas constatacoes
notaveis sao: 1) a entropia torna-se 0 caso todos os exemplos pertencam a mesma
classe; e 2) a entropia e maxima, igual a 1 no caso binario, quando cada classe
possuir numero igual de exemplos.
Note que, pela equacao 2.1, pode-se concluir que a entropia e limitada entre 0 e
log |C|. Esta e um constatacao importante para este trabalho conforme e explicado
na secao 3.2.6.
Um exemplo e construıdo baseado no problema Jogar Tenis para auxiliar o
entendimento. Seja S os exemplos mostrados na tabela 2.1. E facil notar que ha 9
exemplos da classe sim e 5 exemplos da classe nao. Portanto, o valor numerico da
entropia deste conjunto e dado pela expressao 2.2:
Entropia(S) = −(9/14) log(9/14)− (5/14) log(5/14) = 0, 940 (2.2)
7
Figura 2.3: Grafico da entropia relativa a uma classificacao booleana. p⊕ e a pro-porcao de exemplos positivos e varia de 0 a 1.
A partir do conceito de entropia, define-se o ganho de informacao como a reducao
causada na entropia quando leva-se em conta a informacao sobre um atributo [33].
Formalmente, sejam: A um atributo presente nos exemplos do conjunto S; dom(A)
o conjunto dos valores que A pode assumir, i.e., seu domınio; e Sv o subconjunto
dos elementos de S em que A possui valor v, com v ∈ dom(A). Entao, o ganho de
informacao do atributo A em relacao ao conjunto S e dado pela equacao 2.3.
Ganho(S,A) = Entropia(S)−∑
v∈dom(A)
|Sv||S|
Entropia(Sv) (2.3)
Continuando o exemplo do conceito Jogar Tenis, o ganho de informacao para o
atributo V ento, cujo domınio e {Fraco, Forte}, e calculado na sequencia.
Como visto anteriormente, S contem 9 exemplos positivos e 5 negativos (deno-
tado pela notacao compacta S = [9+, 5-]). Destes 14 exemplos, 6 positivos e 2
negativos possuem V ento = Fraco; os demais tem V ento = Forte. A figura 2.4
mostra o calculo do ganho de informacao do atributo V ento para este caso.
Quando um atributo e relevante, espera-se que ele particione os dados em subcon-
juntos cujas entropias somadas totalizam menos do que a entropia original, portanto
seu ganho de informacao sera alto. Por exemplo, para separar pessoas gripadas de
nao gripadas e muito mais relevante perguntar se a pessoa tem febre do que seu o
sexo.
O C4.5, quando usa o ganho de informacao, escolhe em cada decisao o atributo,
ainda nao usado, que fornece o maior ganho possıvel. Alem disso, atributos cujos
ganhos sejam baixos sao, possivelmente, filtrados pelo algoritmo, por exemplo: na
arvore da figura 2.1 a temperatura nao participa do processo de classificacao. Isto
8
V alores(V ento) = {Fraco, Forte}S = [9+, 5-]SFraco ← [6+, 2-]SForte ← [3+, 3-]
Ganho(S, V ento) = Entropia(S)−∑
v∈{Fraco,Forte}|Sv ||S| Entropia(Sv)
= Entropia(S)− (8/14)Entropia(SFraco)− (6/14)Entropia(SForte)
Entropia(S) = 0, 940 (calculada anteriormente)Entropia(SFraco) = −(6/8) log(6/8)− (2/8) log(2/8) = 0, 811Entropia(SForte) = −(3/6) log(3/6)− (3/6) log(3/6) = 1, 00
Logo,Ganho(S, V ento) = 0, 940− (8/14)0, 811− (6/14)1, 00 = 0, 048
Figura 2.4: Exemplo de calculo de ganho de informacao.
indica que, no problema Jogar Tenis, a temperatura nao e relevante.
2.1.3 Aprendizado (Inducao)
O C4.5 gera seus modelos a partir de um conjunto de dados, previamente obser-
vado, o qual traz informacoes empıricas sobre o conceito que o modelo deve captar.
Tais dados sao frequentemente chamados de conjunto de treinamento e seus elemen-
tos de exemplos. Utilizando-se de uma estrategia do tipo dividir-para-conquistar,
o C4.5 particiona recursivamente os dados em subconjuntos progressivamente mais
organizados (puros).
O aprendizado inicia com a pergunta: “Qual e o melhor atributo para ser usado
como teste na raiz?”, tal pergunta e respondida avaliando-se cada atributo disponıvel
atraves de alguma heurıstica, entao o melhor atributo e selecionado como o teste
para o no raiz. Um descendente e criado para cada possıvel valor deste atributo e os
exemplos sao, entao, repassados aos filhos de acordo com o valor que possuem em
tal atributo. Este processo e repetido em cada descendente ate que algum criterio
de parada seja satisfeito. Devido aos fatos de: o algoritmo nunca reconsiderar uma
decisao previa e sempre escolher o melhor atributo, pode-se dizer que adota uma
9
estrategia gulosa [33].
Conforme dito na secao 2.1.2, existe mais de uma funcao que pode ser usada
para avaliar a qualidade de um candidato a teste, porem o ganho de informacao
possui importancia particular para este trabalho.
Devido a natureza recursiva do algoritmo, criterios de parada devem ser deter-
minados. Estes podem ser estabelecidos de varias formas, como: numero mınimo de
exemplos em uma folha, inexistencia de mais atributos a serem usados como teste,
todos exemplos da folha pertencem a mesma classe, acuracia mınima, dentre outros.
E importante citar que o algoritmo pode verificar varios criterios de parada durante
o aprendizado, nao estando limitado a apenas um.
A funcao preditiva armazenada nas folhas, para problemas de classificacao, e a
classe majoritaria. Ou seja, quando uma folha classifica um exemplo, ela o atribui
a classe que mais se repetiu nos exemplos que a alcancaram durante o processo de
inducao. Em caso de empate na raiz, pode-se predizer uma classe padrao, que deve
ser previamente especificada, ja nos nos internos, esta classe padrao sera a mesma
do no ancestral imediato.
Uma tecnica frequentemente usada para melhorar a qualidade dos modelos ge-
rados e conhecida como poda e normalmente ocorre apos a construcao da arvore. A
poda consiste num processo de remocao de nos, que parte das folhas em direcao a
raiz. Esse processo tenta eliminar distincoes potencialmente desnecessarias, isto e,
que aumentam o modelo sem melhorar a qualidade preditiva.
E importante citar que modelos excessivamente grandes costumam gerar super-
adaptacao aos dados de treinamento (overfitting). Esta super-adaptacao tem como
efeito boas medidas de avaliacao em relacao ao conjunto de treino, mas costuma ter
o efeito de reduzir a capacidade preditiva em novos objetos, i.e., casos nao foram
observados durante o aprendizado do modelo.
Para finalizar, no algoritmo 2.1 e provido o pseudo-codigo de uma versao simpli-
ficada do C4.5, mostrando-se os procedimentos adotados durante o aprendizado de
uma arvore de decisao.
10
Algoritmo 2.1 Versao do algoritmo C4.5 para aprender arvores de decisao paraproblemas de duas classes [33]
Entrada:Exs e o conjunto de exemplos de treinamento,AtribObjetivo e o atributo cujo valor a arvore devera predizer.Atribs e uma lista dos outros atributos, que podem ser testes de nos internos da
arvore.
Saıda:Uma arvore de decisao que classifica corretamente os exemplos de treinamento.
Procedimento C4.5 (Exs, AtribObjetivo, Atribs)
1: Crie Raiz, que sera o no raiz da arvore.2: Se todos os exemplos de Exs forem positivos, entao3: Faca Raiz.classe = “+”.4: Retorne Raiz, que e o no raiz da arvore de decisao (formada por apenas um
no).5: Se todos os exemplos de Exs forem negativos, entao6: Faca Raiz.classe = “-”.7: Retorne Raiz.8: Se Atribs for uma lista vazia, entao9: Faca Raiz.classe = valor de AtribObjetivo mais frequente entre os exemplos
de Exs (ou seja, a classe majoritaria).10: Retorne Raiz.11: Senao12: Faca A ser o atributo de Atribs que melhor classifica os exemplos de Exs (ou
seja, o atributo com o maior ganho de informacao).13: Faca Raiz.atributo = A.14: Para cada possıvel valor vi do atributo A15: Adicione um novo ramo ao no Raiz, correspondente ao teste A = vi.16: Faca Exsvi ser o subconjunto de Exs formado pelos exemplos que tem o
atributo A com valor vi.17: Se o conjunto Exsvi for vazio, entao18: Crie uma nova folha F .19: Faca F.classe = valor de AtribObjetivo mais frequente entre os exemplos
de Exs (ou seja, a classe majoritaria).20: Adicione F ao ramo.21: Senao22: Crie uma subarvore SubArv.23: Faca SubArv = C4.5(Exsvi , AtribObjetivo, Atribs - {A}).24: Adicione SubArv ao ramo.25: Retorne Raiz, que e o no raiz da arvore de decisao.
11
2.2 Arvores de Regressao - O caso contınuo
O C4.5 tambem e capaz de resolver problemas de regressao [10]. Tais problemas
sao caracterizados pelo fato de o conceito que se deseja aprender ser numerico em
vez de categorico. Inicialmente, um exemplo e provido para facilitar as explicacoes
adiante.
Como exemplo, e utilizado o problema de predizer o consumo de combustıvel
de um carro a partir de outros atributos. Portanto, o atributo alvo sera o atributo
MPG, que representa o consumo de combustıvel de um carro em milhas por galao.
O exemplo aqui mostrado e uma simplificacao do problema Miles-per-gallon, um
conjunto de dados de regressao disponıvel no repositorio UCI [18]. Entao, na tabela
2.2 sao mostrados alguns elementos deste conjunto. Conforme pode ser observado, a
representacao atributo-valor e usada da mesma forma que no problema Jogar Tenis.
Carro Cilindros Cilindradas (in3) Peso (lbs) Acel. (ft/s2) MPGC1 8 429,0 4341,0 10,0 15,0C2 8 454,0 4354,0 9,0 14,0C3 8 455,0 4425,0 10,0 14,0C4 8 390,0 3850,0 8,5 15,0C5 8 383,0 3563,0 10,0 15,0C6 4 140,0 2408,0 19,0 22,0C7 6 250,0 3282,0 15,0 19,0C8 6 250,0 3139,0 14,5 18,0C9 3 70,0 2124,0 13,5 18,0C10 3 80,0 2720,0 13,5 21,5C11 4 90,0 1985,0 21,5 43,1C12 4 98,0 1800,0 14,4 36,1C13 5 131,0 2830,0 15,9 20,3C14 8 400,0 5140,0 12,0 13,0
Tabela 2.2: Objetos associados ao conceito Milhas por Galao.
Duas metas desejaveis do processo de regressao sao: 1) predizer o mais correta-
mente possıvel o atributo alvo (variavel dependente) a partir dos demais atributos
(variaveis independentes/preditivas) observados em um novo exemplo; e 2) explicar
a relacao existente entre as variaveis independentes e o atributo alvo [10].
Um fato importante a ser citado e que as arvores de regressao preservam a inter-
pretabilidade das arvores de decisao. Atraves da estrutura de arvore, que codifica
regras, as relacoes entre as variaveis preditivas e a variavel dependente podem ser
humanamente interpretadas. Um exemplo de arvore de regressao para o problema
MPG pode ser vista na figura 2.5:
Seja um carro com as seguintes caracterısticas: Cilindros = 4, Cilindradas =
121, Peso = 2933 e Aceleracao = 14, 5. Entao, de acordo com a arvore na figura 2.5,
12
Figura 2.5: Exemplo de uma arvore de regressao para o conceito MPG.
a predicao para o seu consumo seria de 23, 37 milhas por galao. No C4.5, este valor
e media do atributo alvo observada nos exemplos que atingiram tal folha durante o
treinamento do modelo.
E importante notar que agora dois tipos de atributos estao envolvidos: cilindros,
que e categorico; e cilindradas e peso, que sao contınuos. O tratamento de atributos
contınuos sera melhor explicado na secao 2.2.2
Conforme detalhado na secao 2.2.4, o processo de construcao de arvores de re-
gressao e bastante similar ao das arvores de classificacao. Porem, alguns itens de-
vem ser devidamente ajustados a natureza numerica do atributo alvo, sao eles: 1)
a heurıstica para avaliar a qualidade de um atributo como candidato a teste; 2) o
modelo preditivo armazenado nas folhas; e 3) as metricas de qualidade do modelo
gerado.
2.2.1 Reducao da variancia
Quando e usado para problemas de regressao, o C4.5 utiliza como heurıstica a
reducao da variancia [10], embora possa usar outras heurısticas. Tais heurısticas
buscam, de uma forma geral, quantificar o grau de organizacao dos dados, para que
o processo de aprendizado, de forma analoga a classificacao, seja capaz de progres-
sivamente gerar particoes mais puras/organizadas.
Da mesma forma que define-se a entropia antes do ganho de informacao, para
definir-se a reducao da variancia, primeiramente deve-se definir o conceito de
13
variancia em um conjunto de exemplos qualquer S, denotado por S2 em [10].
Seja S um conjunto de exemplos com um atributo alvo numerico Y , entao sua
variancia, S2(S), e definida por:
S2(S) =1
|S|∑i∈S
(yi − y)2 (2.4)
onde yi e o valor do atributo alvo no i-esimo exemplo e y e o valor medio do atributo
alvo observado nos exemplos de S, dado por:
y =
∑|S|i=1(yi)
|S|(2.5)
E possıvel observar na equacao 2.4 que a variancia e uma medida de dispersao.
Esta quantifica o quao organizado um conjunto numerico, composto pelos valores
do atributo alvo neste caso, esta em relacao a sua propria media.
Para exemplificar, suponha que S seja o conjunto de exemplos exposto na tabela
2.2, entao o valor numerico de S2(S) e dado por:
S2(S) =(15, 0− 20, 29)2 + (14, 0− 20, 29)2 + ...+ (13, 0− 20, 29)2
14= 71, 64
(2.6)
Seja A um atributo preditivo categorico, cujo domınio e dom(A). Entao, ao
particionar os exemplos de um conjunto S com dom(A), a reducao da variancia em
S causada por S e dada por:
φ(S,A) = S2(S)−∑
v∈dom(S)
|Sv||S|
S2(Sv) (2.7)
onde Sv e o subconjunto de exemplos S que tem valor v no atributo A. Note que a
variancia de cada particao Sv e ponderada pela fracao de exemplos em relacao a S.
Ainda no exemplo, seja dom(Cilindros) = {3, 4, 5, 6, 8}. Entao, a reducao da
variancia de S causada pelo atributo Cilindros deve ser computada conforme a
equacao 2.8,
φ(S,Cilindros) = 71, 64− (2 ∗ 3, 06 + ...+ 6 ∗ 0, 56)
14= 71, 64− 17, 21 = 54, 43
(2.8)
2.2.2 Atributos numericos
O C4.5 e capaz de tratar atributos numericos e este processo e bastante direto.
Dado um atributo contınuo A, o metodo consiste em realizar um particionamento
14
(split) binario, baseado no teste A < c, onde c e um limiar constante. Desta forma,
os exemplos ficam divididos em dois subconjuntos: {x|x < c} e {x|x ≥ c}.Para achar a constante c mais adequada para o particionamento binario, o
C4.5 primeiramente ordena os exemplos de acordo com os valores de A e usa os
pontos medios como candidatos ao limiar de corte. Por exemplo, ao analisar o
exemplo na tabela 2.2 os candidatos a limiar para o atributo cilindradas seriam:
{75, 85, 94, 114.5, 135.5, 195, 250, 316.5, 386.5, 395, 414.5, 441.5, 454.5}. Em seguida,
computa a heurıstica para cada limiar, levando em conta os subconjuntos gerados
por cada corte, e escolhe-se o que tiver a melhor heurıstica. Este processo e feito
para todo atributo numerico.
Para evitar o custo de repetidas ordenacoes, cada uma com custo O(n log(n)),
em [30] e proposto o uso de listas de atributos. Ainda na raiz, antes do processo
de inducao comecar, e construıda uma lista ordenada para cada atributo numerico
com os ındices dos exemplos e uma lista adicional que relaciona cada exemplo a um
no da arvore. A medida que o particionamento dos dados se processa, as listas dos
atributos de novos nos podem ser reconstruıdas a partir da lista do no ancestral, com
complexidade O(n), sem a necessidade de novas ordenacoes. Maiores informacoes
sobre o uso das listas de atributos podem ser obtidas em [30].
E importante notar que este processo, que torna desnecessario outros pre-
processamentos, so e possıvel devido ao fato de o C4.5 carregar todos os dados
de uma so vez.
Para exemplificar como o C4.5 efetivamente trata os atributos contınuos, a tabela
2.3 mostra o resultado do procedimento de escolha do ponto de corte aplicado ao
atributo Cilindradas, usando os registros da tabela 2.2.
Carro Cilindradas MPG Cortes HeurısticaC9 70 18 75 0,4C10 80 21,5 85 0,05C11 90 43,1 94 14,33C12 98 36,1 114,5 35,26C13 131 20,3 135,5 31,37C6 140 22 195 32,15C7 250 19 250 29,47C8 250 18 316,5 26,57C5 383 15 386,5 20,58C4 390 15 395 15,8C14 400 13 414,5 9,66C1 429 15 441,5 6,59C2 454 14 454,5 3,04C3 455 14
Tabela 2.3: Tratamento do atributo numerico Cilindradas.
15
Utilizando os valores da coluna Cilindradas, o algoritmo calcularia a reducao da
variancia, coluna Heurıstica, causada pelo atributo cilindradas para cada possıvel
ponto medio, coluna Cortes. Este processo escolheria como constante c = 114, 5.
Caso o atributo cilindradas fosse o de melhor heurıstica dentre os demais, os dado
seriam particionados em: {C9, C10, C11, C12} e {C1, ..., C8, C13, C14}.E importante observar que um atributo categorico abre uma aresta para cada
valor, esgotando toda informacao que pode fornecer, portanto somente e usado no
maximo uma vez. Ja o numerico, por usar particionamento binario, pode ser usado
varias vezes, porem isso reduz a interpretabilidade da arvore. Uma alternativa seria
tornar o uso do atributo contınuo exaustivo, i.e., semelhante aos dos categoricos.
Duas possibilidades seriam: usar particionamento multiponto (multi-way splits)
ou pre-processamento de discretizacao. Por exemplo, o atributo cilindradas poderia
ser discretizado conforme: [70, 140) = baixa, [140, 250.0) = media, [250, 455) = alta.
Em [20] e proposto o uso de arvores binarias de busca. Nessa proposta, cada folha
guarda uma arvore binaria de busca para cada um dos atributos contınuos candidato
a teste. Nessa estrutura sao armazenados os ındices dos exemplos conforme o valor
do atributo contınuo.
Por exemplo, suponha que durante o aprendizado do conceito MPG uma certa
folha tenha como candidatos a teste os atributos contınuos peso e cilindradas. Caso
o primeiro exemplo a ser analisado em l fosse o carro C5 (tabela 2.2), entao: 1) a
arvore binaria do atributo peso guardaria o ındice 5 e o valor 3563,0 em sua raiz,
e os demais exemplos de peso inferior seriam repassados a esquerda (gerando um
novo no para cada ındice), e o restante a direita; 2) a arvore binaria do atributo
cilindradas guardaria o ındice 5 e o valor 383,0 em sua raiz, e sua estrutura sofreria
evolucao analoga.
Para escolha do melhor candidato, utiliza-se a estrutura da arvore binaria para
ordenar os ındices dos exemplos em ordem crescente de valor do atributo contınuo
ao qual a arvore pertence. Os proprios valores do atributos sao usados como pontos
candidatos a ponto de corte. O ponto de corte com a melhor heurıstica e entao
escolhido para particionar o atributo. Ao final, o algoritmo escolhe, dentre todos os
candidatos, o atributo com a maior heurıstica.
2.2.3 Modelo preditivo
No caso da regressao, as arvores obtidas pelo C4.5 fornecem como saıda o valor
medio do atributo alvo observado nos exemplos de treinamento que alcancaram suas
folhas. Logo, conforme o exemplo MPG, se a arvore sofresse um particionamento
em Cilindradas < 114, 5 e parasse de crescer, entao a folha da esquerda iria associar
o valor 29, 68 a novos exemplos, e a folha da direita 16, 53.
16
Devido ao modelo preditivo e a natureza da propria heurıstica usada, o C4.5
precisa capturar informacoes que ajudem a obter a media e variancia de forma efi-
ciente, tanto para a folha quando para os atributos. Entao, as seguintes estatısticas
sao computadas, para cada atributo e para os exemplos da folha como um todo:
numero de exemplos |S|, soma dos valores∑
i∈S yi e soma dos valores quadrados∑i∈S y
2i para o atributo alvo. Assim, a equacao da variancia, que usa apenas uma
passada nos exemplos, pode ser usada conforme:
S2(S) =
∑i∈S y
2i
|S|−(∑
i∈S yi
|S|)2
(2.9)
Como as tres estatısticas sao coletadas para a folha e para cada atributo can-
didato a teste, se o processo de inducao parar, basta descartar as estatısticas dos
atributos e usar as estatısticas da folha para fornecer a media, atraves de |S| e∑i∈S yi.
Outras estatısticas de resumo podem ser usadas na predicao como moda e me-
diana. E possıvel ainda que as folhas usem outros modelos como as funcoes lineares
das arvores-modelo model trees [39] [38] ou perceptrons [24].
2.2.4 Inducao de arvores de regressao
De forma analoga a classificacao, os modelos de regressao sao construıdos atraves
de um particionamento recursivo dos dados de treinamento, de modo a obter sub-
conjuntos progressivamente mais organizados/puros em relacao ao atributo alvo que
se deseja aprender.
Conforme ja mencionado, o algoritmo tem diferencas em relacao a heurıstica
usada e aos modelos armazenados nas folhas. Alem disso, as metricas de avaliacao
para modelos de regressao devem ser adequadas a este contexto. As metricas usadas
neste trabalho sao mostradas na secao 2.4.
Os criterios de parada podem ser variados, como numero mınimo de exemplos
numa folha, altura maxima da arvore, valor mınimo para alguma medida de quali-
dade de um no. Em geral, os criterios de parada sao passados ao algoritmo atraves
de parametros e de forma adaptada a implementacao sendo usada.
Uma importante melhoria do C4.5 em relacao ao ID3 e a capacidade de tratar
atributos numericos usando o metodo explicado na secao 2.2.2. Isto fica evidente
no pseudo-codigo exibido no algoritmo 2.2 (linhas 12 e 23). Segue, entao, o pseudo
codigo que mostra os principais procedimentos adotados pelo C4.5 no processo de
regressao no algoritmo 2.2.
17
Algoritmo 2.2 Versao do algoritmo C4.5 para aprender arvores de regressao
Entrada:Exs e o conjunto de exemplos de treinamento,AtribAlvo e o atributo cujo valor a arvore devera predizer.Atribs e uma lista dos outros atributos que podem ser testes de nos internos da
arvore.
Saıda:Uma arvore de regressao que resume corretamente os exemplos de treinamento.
Procedimento C4.5 (Exs, AtribAlvo, Atribs)
1: Crie Raiz, que sera o no raiz da arvore.2: Se algum criterio de parada foi alcancado, entao3: Faca Raiz virar uma folha4: seja y o valor medio de AtribAlvo em Exs5: Raiz.predicao = y6: retorne Raiz7: Senao8: Para cada atributo em Atribs computar a heurıstica usando Exs9: Seja A o atributo de Atribs que causa a maior reducao da variancia
10: Faca Raiz.atributo = A11:12: Se A for contınuo, entao13: Seja c a constante obtida para o teste de A14: Adicione dois novos ramos, Esq e Dir, a Raiz,15: Seja Exsesq os exemplos de Exs que passam no teste A < c16: Faca SubArvEsq = C4.5(Exsesq, AtribAlvo, Atribs).17: Adicione SubArvEsq ao ramo Esq.18:19: Seja Exsdir os exemplos de Exs que passam no teste A ≥ c20: Faca SubArvDir = C4.5(Exsdir, AtribAlvo, Atribs).21: Adicione SubArvDir ao ramo Dir.22:23: Senao (A e categorico)24: Para cada possıvel valor vi do atributo A25: Adicione um novo ramo ao no Raiz, correspondente ao teste A = vi.26: Faca Exsvi os exemplos de Exs com o atributo A = vi.27: Crie uma subarvore SubArv.28: Faca SubArv = C4.5(Exsvi , AtribAlvo, (Atribs \ {A}) ).29: Adicione SubArv ao ramo.30:31: Retorne Raiz, que e o no raiz da arvore de decisao.
18
2.3 Programacao em Logica Indutiva - ILP
Programacao em Logica Indutiva (ILP) e definida como a interseccao entre o
aprendizado de maquina indutivo e a programacao logica [17] [34] [37] [42]. Do apren-
dizado de maquina indutivo, herda o objetivo: aprender hipoteses a partir de ob-
servacoes (exemplos) e sintetizar novo conhecimento a partir da experiencia. Atraves
do uso da logica computacional como mecanismo de representacao das hipoteses e
observacoes, ILP pode superar duas grandes limitacoes das tecnicas classicas de
aprendizado de maquina: 1) o uso de uma representacao de conhecimento limi-
tada (essencialmente logica proposicional); e 2) a dificuldade de usar conhecimento
preliminar substancial no processo de aprendizado.
A tarefa mais fundamental e o aprendizado de uma relacao, chamada de predicado
alvo, a partir das observacoes (exemplos) e de relacoes definidas no conhecimento
preliminar e, possivelmente, atraves do proprio predicado alvo (relacoes recursivas).
Na figura 2.6 esta exposto um esquema de aprendizado em ILP.
As observacoes E sao divididas em duas particoes: E+ e E−, respectivamente
aquelas que pertencem a relacao alvo, exemplos positivos, e aquelas que nao perten-
cem, exemplos negativos.
A teoria preliminar B representa o conhecimento generico sobre o problema, isto
e, que nao esta especificamente associado aos exemplos. Este conhecimento pode
ser provido por especialistas.
O que se deseja aprender e uma hipotese H que, juntamente a teoria preliminar
(H ∪ B), seja capaz de explicar (provar) todos os exemplos positivos e nenhum
exemplo negativo.
Figura 2.6: Esquema do aprendizado em programacao em logica indutiva (ILP),onde B e o conhecimento preliminar, E e o conjunto de exemplos, formado pelosexemplos positivos (E+) e negativos (E−), e H e a teoria aprendida pelo sistema.
19
O processo de aprendizado pode ser formalizado de mais de uma maneira [43],
porem a definicao mais tradicional usada em ILP e a chamada de Aprendizado por
Implicacao Logica elaborada conforme a definicao 2.1.
Definicao 2.1 (Aprendizado a partir de implicacao logica). Sejam dados:
• Um conjunto E+ de exemplos positivos e um conjunto E− de exemplos nega-
tivos.
• Uma teoria preliminar B.
Deseja-se achar:
• Uma hipotese H, tal que
– ∀e ∈ E+ : H ∧B � e, e
– ∀e ∈ E− : H ∧B 2 e
E importante mencionar que a teoria preliminar B nao e obrigatoria. Entretanto,
este recurso, permite que conhecimento de especialistas sobre o domınio do problema
possa ser aproveitado, o que potencialmente poupa tempo de processamento durante
o aprendizado. Desta forma, algoritmos ILP possuem a vantagem de nao precisarem
realizar o aprendizado sempre a partir do zero.
Para exemplificar e consolidar a definicao, o exemplo dos trens e descrito. Este
e um problema classico de ILP em que deseja-se separar um conjunto de trens em
dois casos: os que vao para leste e os que vao para oeste. Cada trem e composto de
um ou mais vagoes, e cada vagao tem um conjunto de propriedades como: curto ou
longo, aberto ou fechado, carrega objetos ou nao, dentre outras. Na figura 2.7 ha
10 exemplos de trens, dos quais 5 vao para leste e 5 vao para oeste.
Figura 2.7: Exemplos considerados no problema dos trens.
20
O problema pode ser representado em ILP da seguinte maneira: o predicado
alvo direcao leste(T) sera verdadeiro se o trem T dirigir-se a leste e falso se o trem
T dirigir-se a oeste, portanto os exemplos de 1 a 5 sao os positivos e os demais
negativos, conforme a figura 2.8.
Exemplos positivos: Exemplos negativos:direcao leste(leste1). direcao leste(oeste1).direcao leste(leste2). direcao leste(oeste2).direcao leste(leste3). direcao leste(oeste3).direcao leste(leste4). direcao leste(oeste4).direcao leste(leste5). direcao leste(oeste5).
Figura 2.8: Representacao dos exemplos para o problema dos trens
Parte do conhecimento preliminar B, pode ser, entao, representado conforme a
figura 2.9. O significado dos predicados sao os seguintes:
1. O predicado tem vagao(T,V) representa o fato de do trem T possuir o vagao V,
portanto tem vagao(leste1,vagao 11) atesta que o trem de nome leste1 possui
o vagao de nome vagao 11 (o sufixo 11 e um mnemonico para simbolizar o
vagao 1 do trem 1).
2. O predicado carrega(V,F,N) indica que o vagao V carrega N figuras do tipo F,
portanto carrega(vagao 11,retangulo,3). atesta que o vagao de nome vagao 11
carrega tres triangulos.
3. Os demais predicados tem o significado trivialmente entendido pela leitura dos
seus functores.
tem vagao(leste1,vagao 11). tem vagao(leste1,vagao 12).tem vagao(leste1,vagao 13). tem vagao(leste1,vagao 14).longo(vagao 11). curto(vagao 12).aberto(vagao 11). fechado(vagao 12).carrega(vagao 11,retangulo,3). carrega(vagao 12,triangulo,1)....
Figura 2.9: Representacao do conhecimento preliminar para o problema dos trens
Espera-se que um algoritmo ILP seja capaz de aprender uma regra como:
direcao leste(T) :- tem vagao(T,V), curto(V), fechado(V). que juntamente com o
conhecimento preliminar e capaz de provar os exemplos de 1 a 5 sem provar os
exemplos de 6 a 10.
Note que, por uma caracterıstica particular deste problema, e possıvel concluir
que se um trem nao for coberto pelo predicado direcao leste(T) entao ele vai para
21
oeste. Porem, caso houve outras possibilidades como: leste, oeste, norte e sul; bas-
taria aprender uma regra para cada conceito, de modo que um exemplo provado por
uma teoria pertenceria ao conceito codificado por esta e os demais seriam conside-
rados negativos.
E importante destacar que a algebra relacional, empregada nos bancos de dados
modernos, pode ser entendida como um subconjunto da logica de primeira ordem,
portanto e possıvel modelar dados relacionais sem perdas atraves da logica de pri-
meira ordem. Alem disso, deve-se destacar que domınios relacionais sao esparsos,
ou seja, o numero de instancias realmente observadas de cada relacao e tipicamente
muito menor que a quantidade de todas as possibilidades de instancias. A ILP
consegue explorar tal caracterıstica, codificando em poucas clausulas, relacoes que
no paradigma proposicional necessitariam de uma grande listagem de casos. Por
exemplo:
ancestral(A,C) :- ancestral(A,B),ancestral(B,C).ancestral(o1,o10).ancestral(o1,o11)....ancestral(o10,o100)....ancestral(o10,o199).
No paradigma proposicional, para indicar que o1 e ancestral dos objetos que vao
de o100 a o199, necessitaria-se de muito mais entradas relacionando o1 diretamente
aqueles.
2.3.1 Regressao em ILP
Embora existam outras abordagens que buscam mesclar o tratamento de re-
gressao com ILP, a abordagem usada pelo TILDE, portanto tambem usada neste
trabalho, e mais proxima da utilizada no sistema FORS (First Order Regression
System) [26]. Logo, elementos pertinentes de sua formalizacao estao detalhados
nesta secao.
Ao formular um problema de regressao sob essa abordagem, parte dos argumen-
tos do predicado alvo devem ter domınio numerico, sendo chamados de atributos
contınuos. Adicionalmente, existe um argumento numerico especial, Y , que repre-
senta a variavel dependente que sera aprendida no processo de regressao. E comum
que esta variavel especial seja chamada de atributo alvo.
Uma caracterıstica importante de Y e a de so pode ser usada no lado esquerdo
de equacoes (atribuicoes) que aparecam nas clausulas da teoria a ser aprendida.
Variaveis contınuas, indicadas por Xij, das quais Y depende, aparecem no lado
22
direito. Dado isso, o conjunto de clausulas aprendidas sobre o predicado alvo tem o
formato conforme mostrado na figura 2.10.
f(Y, X1, X2, ...) :-Literal1, Literal2, ...,Y is a1 * Xi1 + a2 * Xi2 + ..., !.
Figura 2.10: Exemplo de clausula aprendida pelo FORS
A regra exposta na figura 2.10 tem o formato de uma clausula de Horn, padrao
usado pelo Prolog. O predicado a esquerda do operador “:-” e chamado de cabeca
da regra e a conjuncao de literais a direita e dita corpo da regra.
Uma consulta sobre o predicado f(Y, X1, X2, ...), o predicado alvo, dispara o
seguinte processo: o interpretador Prolog executara uma subconsulta a cada predi-
cado (subobjetivo) no corpo da regra, partindo da esquerda para a direita. Desta
forma, o sucesso da cabeca depende do sucesso de todos os subobjetivos contidos
em seu corpo.
Para contemplar a regressao, o sistema FORS padroniza a forma das regras
aprendidas da seguinte maneira: na cabeca, o predicado alvo possui uma variavel
numerica especial, Y, tambem chamada de atributo alvo, e demais variaveis, {X1,
X2, ...} com as quais Y mantem alguma relacao; no corpo, pode haver um conjunto
de subobjetivos pertinentes ao problema, {Literal1, Literal2, ...}, e, ao final, uma
equacao que relaciona algumas variaveis numericas e seus pesos, respectivamente Xij
e aj, a variavel Y. A notacao “is” denota atribuicao numerica na linguagem Prolog,
pois o operador “=” possui a funcao de “unificacao”.
Alem disso, na linguem Prolog um predicado pode ter mais de uma definicao.
Ou seja, um predicado pode ser definido pois mais de uma clausula. Por exemplo,
o predicado f(Y, X1, X2, ...) poderia aparecer como cabeca de regras cujos corpos
fossem diferentes. Essa caracterıstica faz com que um fato sobre este predicado possa
ser provado (coberto) por mais de uma regra. Em funcao disso, usa-se o operador
cut (!) ao final da regra, para garantir a exclusividade mutua da cobertura. Pois,
assim que uma regra prove (cubra) o fato, o interpretador Prolog interrompera o
processo de prova e nao tentara executar as demais regras para provar o fato ja
provado.
Quando deseja-se saber o valor associado a um exemplo, cujas caracterısticas
observadas estao representadas por {X1, X2, ...}, executa-se uma consulta ao pre-
dicado alvo. Nesta consulta, a variavel Y e deixada livre, e as demais variaveis sao
atribuıdos os valores, constantes logicas, que figuram no exemplo em questao.
Embora o sistema FORS realize regressao linear usando os atributos contınuos
do predicado alvo, esta abordagem nao impoe limitacoes sobre os tipos de equacoes
23
aprendidas para Y . Alem disso, o conhecimento preliminar pode introduzir novas
variaveis numericas que podem ser usadas nas equacoes aprendidas.
O sistema FORS usa aprendizado por implicacao logica. Desta forma, os exem-
plos sao fatos sobre o predicado alvo e o conhecimento preliminar e representado
atraves de clausulas Prolog. O resultado do aprendizado e uma teoria logica com-
posta por clausulas. O sistema FORS e capaz de aprender predicados recursivos,
controlando a profundidade da recursao atraves de uma profundidade maxima esta-
belecida como parametro.
Cada clausula da teoria aprendida particiona o espaco de exemplos, atraves de
suas regras logicas, associando cada sub-espaco a equacao de regressao da clausula.
Dois fatos importantes a serem notados sao: 1) Nao existe o conceito de exem-
plos negativos, pois os dados de treinamento sao considerados como “medicoes” da
variavel dependente e, portanto, todos os exemplos sao vistos como “positivos”; 2)
A qualidade de uma regra aprendida esta relacionada a quao bem sua equacao de
regressao se ajusta aos exemplos cobertos
Para finalizar, e mostrado como exemplo o aprendizado da funcao fatorial na
figura 2.11. Nela e mostrada a especificacao do predicado alvo, um conjunto de
exemplos, conhecimento preliminar e a saıda obtida pelo sistema.
Entradas:
% Indicacao do predicado alvotarget(f(−integer, +integer)).
% Exemplosf(1, 0). f(1, 1). f(2, 2). f(6, 3). f(24, 4).
% Conhecimento preliminarbkl(decr(−integer, +integer), total).bkl(times(−integer, +integer, +integer), total).decr(N1, N) :- N1 is N − 1.times(R, A, B) :- R is A ∗B.
Teoria aprendida:
f(F,N) :- N ≤ 1, F is 1, !.f(F,N) :- decr(A,N), f(B,A), times(F,N,B), !.
Figura 2.11: Exemplo do problema fatorial
O sistema FORS faz restricoes sobre o espaco de busca atraves do uso de tipos e
modos das variaveis, cujo uso pode ser observado na figura 2.11. Os tipos definem o
24
domınio das variaveis restringindo a unificacao. Os modos indicam se uma variavel
e de entrada (-), saıda (+) ou os dois (+-).
2.4 Avaliacao do Aprendizado
No cenario de regressao nao ha classes, mas um atributo alvo numerico, logo as
medidas usadas em classificacao, como acuracia, medida f, precisao, dentre outras,
nao podem ser usadas. Portanto, metricas mais adequadas devem ser usadas. Nesta
secao, estao definidas as medidas de avaliacao de performance usadas neste trabalho.
Comumente em regressao, usam-se medidas capazes de indicar o quao proxima
a predicao de um modelo esta em relacao ao valor real de um exemplo. Adicional-
mente, no contexto de arvores de regressao, e tambem importante medir o tamanho
do modelo gerado, bem como o tempo do aprendizado.
Desta forma, as medidas de interesse usadas neste trabalho foram: Tempo de
aprendizado (Tempo), tamanho das teorias ou numero de nos na arvore (Nos),
numero total de literais (Literais), coeficiente de correlacao de Pearson (r na equacao
2.10) entre os valores reais e os preditos do predicado alvo e raiz quadrada do erro
quadratico medio (RMSE), equacao 2.11, conforme [13].
r =
∑ni=1(pi − p)(ai − a)√∑n
i=1(pi − p)2∑n
i=1(ai − a)2(2.10)
MSE =
√∑ni=1(pi − ai)2
n(2.11)
Onde, pi e o valor predito para o exemplo i e ai seu valor real. p e a sao as
medias e n o numero de exemplos.
O coeficiente de Pearson e delimitado entre em [1,−1] e indica a existencia de
relacao linear entre o modelo aprendido e o conceito que se deseja captar, resultados
proximos de 1 indicam relacao linear direta, proximos de -1 indicam relacao inversa,
e proximos de 0 indicam ausencia de relacao linear. Ja o RMSE tem valor mınimo
em 0 e maximo indefinido, ele tem seu melhor resultado em 0, que significa que
o modelo conseguiu atribuir o valor exato a cada exemplo. Esta medida cresce
conforme o modelo realiza predicoes que desviam do verdadeiro valor dos exemplos.
Validacao cruzada e um metodo que ajuda a avaliar o quao bem um algoritmo
consegue generalizar um conceito aprendido. Para tal, sorteia-se os conjuntos de
treino e de teste de forma sistematica e repete-se o processo de aprendizado e medicao
de erro para cada modelo aprendido. A media de todos os resultados obtidos e usada
como um estimador para medida especıfica, por exemplo o MSE. Espera-se que a
estabilidade do resultado seja maior conforme o numero de repeticoes aumenta.
Neste trabalho, e usada a validacao cruzada do tipo 5x2, conforme recomendado
25
em [14]. Dessa maneira, o conjunto de exemplos, relativos a um conceito que se
deseja aprender, e divido em 5 particoes (folds). Cada particao, de f1 a f5, tem
aproximadamente o mesmo numero de exemplos e e subdividido em 2 subparticoes
(subfolds), fia e fib, i ∈ [1, 5]. Em cada particao fi, realiza-se o aprendizado usando
fia como teste e fib como treino e depois o inverso. Ao final colhe-se os resultados
de cada um dos 10 classificadores e obtem-se o valor medio da medida de interesse.
Neste trabalho foram comparados dois algoritmos, HTILDE-RT e TILDE-RT,
sendo o primeiro uma modificacao do segundo. Dado isso, foi usado o teste t corri-
gido e pareado, [35] [48], para verificar a significancia estatıstica da diferenca entre
os resultados obtidos por cada algoritmo. Tal teste e uma adaptacao do teste t de
Student, o qual leva em consideracao a razao entre numero de exemplos usado para
treino e teste n2
n1e a variancia da diferenca media obtida nas particoes (folds). O
valor crıtico para t e entao definido conforme a equacao 2.12.
t =d√
( 1k
+ n2
n1)σ2
d
(2.12)
onde: d e a media das diferencas pareadas entre os algoritmos para cada particao
(fold), k e o numero total de particoes/subparticoes usadas, n1 e n2 e o numero de
exemplos usados respectivamente no treino e teste, e σ2d e a variancia das diferencas.
26
Capıtulo 3
Sistemas Relacionados
Neste capıtulo, sao apresentados sistemas que serviram de base para este trabalho
conforme a seguinte organizacao: na secao 3.1, e feita a introducao ao sistema de
programacao em logica indutiva TILDE, bem como elementos pertinentes a este
trabalho sao analisados; na secao 3.2, e apresentado o sistema proposicional de
classificacao VFDT, que e escalavel para aprendizado em grandes massas de dados;
e, na secao 3.3, o sistema HTILDE, que combina a capacidade logica do sistema
TILDE com a eficiencia do sistema VFDT, e apresentado.
3.1 TILDE - Top-down Induction of Logical De-
cision Trees
Nesta secao, e apresentado o sistema TILDE (Top-down Induction of Logical
Decision Trees) [4] e [5], bem como sua aplicacao em problemas de regressao. Na
secao 3.1.1, e feita uma introducao ao metodo. Na secao 3.1.2, e explicado como
um problema e representado no sistema e apresenta-se a definicao de aprendizado
por interpretacoes, que e um conceito fundamental para o TILDE. Na secao 3.1.3, e
mostrado como especificar um problema a ser resolvido pelo TILDE. Na secao 3.1.4,
o conceito de refinamentos da ILP e desenvolvido. Na secao 3.1.5, o conceito de
pacote de clausulas (Query Packs), que melhora a eficiencia do TILDE, e detalhado.
Na secao 3.1.6, e explicado como TILDE trata problemas de regressao. Na secao
3.1.7, a heurıstica usada pelo TILDE em modo de regressao e exposta. Este capıtulo
e finalizado na secao 3.1.8, onde e exposto o algoritmo de aprendizado do TILDE.
3.1.1 Introducao
O algoritmo TILDE e uma extensao do C4.5 para o paradigma da logica de
primeira ordem. As principais diferencas a serem destacadas nesta abordagem sao:
27
a estrutura binaria da arvore gerada, a escolha dos testes atraves do conceito de
refinamento, a cobertura dos exemplos e o uso dos Pacotes de Clausulas (Query
Packs) para melhoria da eficiencia. O TILDE tambem e capaz de resolver problemas
de regressao e quando opera neste modo recebe o nome de TILDE-RT (TILDE -
Regression Tree).
Nas arvores geradas pelo TILDE, cada no interno e associado a uma conjuncao
de literais, de primeira ordem. Os testes nos nos internos nao mais sao realizados
confrontando o valor de um atributo, mas atraves de testes logicos representados
por consultas Prolog. Os modelos gerados pelo TILDE sao chamados de arvores de
decisao de logica de primeira ordem (first order logical decision trees - FOLDT) ou
simplesmente arvores de decisao logicas (Logical Decision Trees - LDT).
Seja N um no interno qualquer, entao o teste associado ao mesmo e representado
pela consulta Prolog “← Q ∧ conj”. A componente Q e chamada de consulta asso-
ciada do no N e a componente conj e a conjuncao de literais que fica armazenada
em N . O sımbolo ← e usado apenas para denotar que a conjuncao sera executada
sob a forma de uma consulta Prolog.
A consulta associada e composta iterativamente da seguinte forma: a consulta
associada do filho esquerdo de um no qualquer e composta de sua consulta associada
e sua conjuncao: no caso de N , ← Q ∧ conj seria a consulta associada de seu filho
esquerdo; a consulta associada do filho direito nao recebe a conjuncao armazenada
no no, sendo portanto igual a consulta associada de seu pai: no caso de N a consulta
associada de seu filho direito seria apenas ← Q, pois neste ramo a parte conj falha.
Este processo comeca na raiz, cuja consulta associada e Q = true.
Em funcao de usar tais testes logicos, as arvores geradas sao binarias, de modo
que: o ramo esquerdo de N e associado ao sucesso no teste Q∧conj e o ramo direito
associado a falha.
Antes de exemplificar uma arvore gerada pelo TILDE, o problema BONGARD
[7] e apresentado. Neste problema deseja-se classificar figuras como positivas (⊕) ou
negativas (). Em cada figura, ha uma quantidade variada de objetos relacionados
entre si atraves de suas posicoes. A figura 3.1 ilustra 4 exemplos positivos e 4
exemplos negativos do problema BONGARD.
Na secao 3.1.2 e discutido como representar este problema, para que o TILDE
possa trata-lo. Na figura 3.2 ha um exemplo de uma arvore gerada pelo TILDE para
o BONGARD.
Segundo a arvore na figura 3.2, se uma figura nao contiver um triangulo sera
classificada como (), seguindo pelo ramo Falso da raiz; se houver um triangulo
que esteja dentro de outro objeto, entao sera considerada (⊕); e se houver um
triangulo que nao esteja dentro de outro objeto, sera considerada ().
Devido ao paradigma da logica de primeira ordem, uma arvore gerada pelo
28
Figura 3.1: Exemplos do problema Bongard.
Figura 3.2: Exemplo de arvore gerada pelo TILDE.
TILDE representa um conjunto de clausulas de Horn. Cada clausula e associada a
uma folha, de modo que seu corpo e formado pelos literais que aparecem no caminho
entre a raiz e a folha, e a cabeca da clausula e composta pelo predicado alvo.
O programa Prolog equivalente a arvore mostrada na figura 3.1.1 pode ser escrito
como:
classe(pos) :- triangulo(X), dentro(X,Y), !.classe(neg) :- triangulo(X), !.classe(neg).
Em funcao dos testes logicos, durante o aprendizado, variaveis introduzidas em
um no nao sao repassadas ao ramo direito deste no, pois este ramo e associado
aos exemplos que falham em seu teste. Isso se reflete no uso do operador, da lin-
guagem Prolog, cut (!), que mantem as clausulas do programa Prolog equivalente
mutuamente exclusivas.
29
3.1.2 Aprendizado por Interpretacao
No paradigma proposicional (sistemas atributo-valor) ha apenas uma relacao
(tabela unica), cujo conjunto de atributos (colunas) e fixo e cada linha equivale a
um exemplo. Por exemplo, com 5 atributos poderia haver as seguintes informacoes
para cada exemplo: {forma-objeto1, aponta-objeto1, forma-objeto2, aponta-objeto2,
classe}, onde forma ∈ {triangulo, cırculo} e aponta ∈ {cima, baixo, esquerda, di-
reita}.Entretanto, os exemplos na figura 3.1 podem ter quantidades arbitrarias de ob-
jetos, alem disso, os objetos podem estar relacionados, por exemplo, um dentro do
outro. Logo, nao seria possıvel representar o problema BONGARD em apenas uma
tabela unica.
Algoritmos ILP superam esta limitacao, entretanto a expressividade da ILP tem
um custo associado, pois em funcao de usar o Aprendizado por Implicacao Logica a
cobertura de cada exemplo e feita de forma global, o que significa que o teste logico
para verificar a cobertura de um unico exemplo leva em conta todo conhecimento
preliminar juntamente com todos os outros exemplos da base de dados. Na cobertura
global existe a suposicao de que os exemplos podem estar relacionados entre si.
Isto nao acontece no paradigma proposicional, onde cada exemplo pode ser testado
individualmente, portanto de forma muito mais rapida.
Para melhorar a eficiencia da cobertura dos exemplos [5], [43], [11], o TILDE
usa o Aprendizado por Interpretacao, onde cada exemplo e representado por um
conjunto de fatos, i.e., uma Interpretacao, conforme a definicao 3.1.
Definicao 3.1 (Aprendizado por Interpretacao). Sejam dados:
• Um conjunto de classes C (cada classe c e um predicado sem termos).
• Um conjunto de exemplos E classificados (cada elemento de E e da forma
(e,c), onde e e um conjunto de fatos e c e uma classe).
• Uma teoria preliminar B.
Deseja-se achar:
• Uma hipotese H (um programa Prolog), tal que para todo (e,c) ∈ E,
– H ∧ e ∧B � c, e
– ∀c′ ∈ C - {c}: H ∧ e ∧B 2 c′
O Aprendizado por Interpretacao e um meio termo entre a representacao
atributo-valor [12] e a representacao usada no Aprendizado por Implicacao Logica,
30
pois possibilita cobertura local e maior capacidade de representacao que o propo-
sicional. Embora nao seja capaz de tratar todos os problemas que o Aprendizado
por Implicacao Logica trata, como problemas recursivos, o Aprendizado por Inter-
pretacao e suficiente para a maioria das aplicacoes praticas [5].
Em [3], e discutida a diferenca, sob o ponto de vista de bancos de dados relaci-
onais, entre o aprendizado proposicional e o aprendizado por interpretacoes. Uma
diferenca fundamental apontada e que o aprendizado proposicional representa cada
exemplo com uma unica tupla de uma unica tabela (relacao), enquanto no outro
cada exemplo pode conter multiplas tuplas de multiplas relacoes e permite o uso de
conhecimento preliminar (background knowledge).
Contudo, na pratica, dados sao armazenados em bancos de dados relacionais,
mas sistemas ILP usam dados representados atraves de logica, entao, em [3], e
provido um algoritmo para converter um banco de dados relacional em um conjunto
de dados usando o formato de interpretacoes.
Uma nocao fundamental usada nesse algoritmo de conversao e a de que: toda
informacao pertinente a um certo exemplo esta contida em uma pequena parte do
banco e que esta informacao pode ser localizada e extraıda. Esta nocao e chamada
de suposicao de localidade e quando nao for satisfeita o processo de conversao pode
gerar duplicacao de informacao.
Para melhor exemplificar, suponha que o problema BONGARD estivesse, de
alguma forma, representado sob um esquema relacional. Entao, este princıpio diz
que para determinar a classe do exemplo 4, mostrado na figura 3.1, basta saber
apenas as informacoes sobre as figuras geometricas pertinentes. Neste caso, apenas
o triangulo e os quatro cırculos que pertencem ao exemplo precisam ser levados
em conta, enquanto que as demais figuras geometricas dos outros exemplos nao sao
necessarias.
Conforme discutido em [25], o uso de amostragem diretamente em dados rela-
cionais pode gerar estimadores enviesados, porem, uma vez que os dados estejam
convertidos (ou construıdo) para o formato de interpretacoes, a suposicao de locali-
dade torna-se valida. Cada interpretacao contem toda informacao necessaria sobre
o exemplo, nao dependendo dos demais. Logo, sortear indivıduos de forma aleatoria
e independente e suficiente para gerar boas amostras [5] [3]. Maiores informacoes
sobre os diferentes tipos de aprendizado podem ser encontradas em [43].
3.1.3 Especificacao de um problema
O TILDE armazena os exemplos num arquivo de extensao “.kb” (knowledge
base), cujo nome e o mesmo do problema que se deseja aprender. Cada exem-
plo e considerado um modelo e tem um identificador (id) associado. Desta forma,
31
begin(model(1)). begin(model(6)).pos. neg.circulo(o1). circulo(o16).triangulo(o2). circulo(o17).aponta(o2,cima). triangulo(o18).dentro(o2,o1). triangulo(o19).end(model(1)). aponta(o18,cima).
aponta(o19,baixo).begin(model(2)). dentro(o16,o18).pos. end(model(6)).... ...
Figura 3.3: Conteudo do arquivo bongard.kb.
os fatos sobre um exemplo sao delimitados por um bloco iniciado com o fato “be-
gin(model(id)).” e terminado pelo fato “end(model(id)).”. Embora um exemplo
possa ser descrito por um numero arbitrario de fatos, cada exemplo fica associado a
apenas uma classe, portanto apenas um fato, por exemplo, “pos” ou “neg”, deve ser
usado em cada exemplo. Para os exemplos da figura 3.1 o arquivo “bongard.kb”,
poderia ter o seguinte conteudo:
O conhecimento preliminar e fornecido em um arquivo opcional, de extensao
“.bg” (background), cujo nome e o mesmo do problema em questao. Tal arquivo
pode conter clausulas auxiliares e fatos adicionais sobre o domınio do problema.
Para o caso do BONGARD, o arquivo “bongard.bg” poderia conter a informacao
de que apenas triangulos tem a propriedade de apontar.
aponta(X,Y) :- triangulo(X), member(Y,[cima,baixo,esquerda,direita]).
Figura 3.4: Conhecimento preliminar no arquivo bongard.bg.
Para testar a cobertura de um exemplo por uma formula, basta acrescentar os
fatos do exemplo a base de conhecimento juntamente com o conhecimento preli-
minar, por exemplo, atraves do predicado “assert/1”, e verificar se o conhecimento
resultante e capaz de satisfazer a formula em questao. Em outras palavras, deseja-se
verificar se uma consulta Prolog ← C e verdadeira em e ∧ B, sendo B o conheci-
mento preliminar e ← apenas uma notacao utilizada para explicitar que C e uma
consulta.
Juntamente com o conhecimento preliminar e a base de dados, um arquivo de
configuracoes, “.s” (settings), deve ser fornecido. Neste arquivo devem estar especifi-
cados diversos parametros do sistema, pertinentes ao problema que se deseja tratar,
e o vies de linguagem, parte que instrui ao TILDE como os refinamentos podem ser
determinados ao longo do processo de inducao.
32
Ainda nas configuracoes, deve-se dizer qual o conceito que se deseja apren-
der. Isto pode ser feito com as seguintes construcoes: 1) Avisar o sistema qual
o tipo de problema: tilde mode(tipo)., onde “tipo” pode ser classify, regression ou
cluster; 2) Fornecer o predicado alvo atributo e a variavel dependente: predict(
predicadoAlvo(+X1,+X2,...,-Y))., onde Y e uma variavel de saıda cujo domınio sao
as possıveis classes; 3) Fornecer a lista de possıveis classes: classes([classe1, classe2,
...])..
Os corpos das clausulas sao construıdos no processo de inducao atraves dos refi-
namentos, que seguem um vies de linguagem determinado pelo usuario, basicamente
atraves do conceito de “modes”. Na secao 3.1.4 mais detalhes sobre os refinamentos
sao fornecidos.
3.1.4 Refinamentos
Conforme dito, em vez de atributos, o TILDE usa testes logicos (consultas Pro-
log) para particionar os dados. Ao decidir que uma folha deve ser particionada
(split), o conceito de refinamento de uma clausula e empregado.
Seja l uma folha a ser particionada, cuja consulta associada e Q, entao os can-
didatos a teste de l sao ρ(← Q). Onde ρ e o operador de refinamento, que, no
caso do TILDE, gera novas conjuncoes adicionando literais a ← Q. Os literais que
podem ser usados nos refinamentos sao especificados pelo usuario, atraves do vies
de linguagem do problema. Tal especificacao deve ser listada em um arquivo de
configuracoes, de extensao “.s”, a ser provido ao sistema.
Figura 3.5: Exemplo de arvore gerada pelo TILDE.
Considere a arvore mostrada na figura 3.5.b. Suponha que se deseja saber quais
testes podem ser colocados no no N1. Uma vez que este no e o filho esquerdo da
raiz, sabe-se que triangulo(X) e verdade em N1 e, portanto, todos os refinamentos
devem conter este literal.
Suponha que o vies de linguagem determina que os literais que podem ser usados
sejam: triangulo(+-X), dentro(+X,-Y ), dentro(-Y,+X), quadrado(-X) e circulo(-
X), onde os sinais + e - indicam se as variaveis sao de entrada ou saıda. Considere
ainda que cada literal pode ser usado apenas uma unica vez no processo inducao.
Tal informacao e descrita com as seguintes declaracoes:
33
rmode(1 : triangulo(+-X)).
rmode(1 : dentro(+X,-Y )).
rmode(1 : dentro(-Y,+Y )).
rmode(1 : quadrado(-X)).
rmode(1 : circulo(-X)).
Aplicando o operador de refinamento ρ em ← triangulo(X), obtem-se:
ρ(← triangulo(X)) = {← triangulo(X), dentro(X, Y );← triangulo(X), dentro(Y,X);← triangulo(X), quadrado(Y );← triangulo(X), circulo(Y )}
Figura 3.6: Exemplo de possıveis refinamentos para o filho esquerdo da raiz daarvore da figura 3.5.
Se o melhor refinamento for o primeiro, entao o literal colocado no no N1 sera
dentro(X, Y ), e seu teste sera ← triangulo(X), dentro(X, Y ). Ao final, a estrutura
da nova arvore sera conforme a figura 3.5.a.
E importante destacar que tais refinamentos sao processados sob a condicao de
θ-subsumption [5]. Tambem sao consideradas restricoes sobre o espaco de busca
escolhidas pelo usuario, que podem ser estabelecidas, principalmente, pelo uso dos
tipos e modos das variaveis. Uma referencia mais completa sobre as configuracoes
dos refinamentos e vies de linguagem do TILDE pode ser encontrada em [13].
Agregacoes
O TILDE/TILDE-RT e capaz de usar refinamentos baseados em funcoes de
agregacao. Estas funcao sao uteis pois em ILP um exemplo pode ter uma quantidade
arbitraria de fatos sobre um mesmo predicado. Atraves das funcoes de agregacao
estes dados podem ser resumidos e a informacao de agregacao usada como refina-
mento.
O sistema ACE possibilita o uso de agregacoes como: mınimo, maximo, media,
soma, moda, dentre outras. Para usar como refinamento um valor agregado, e ne-
cessario acrescentar a informacao de tipo, bem como o padrao da agregacao a ser
usado. Por exemplo, considere um problema em que cada interpretacao contem
a informacao sobre uma unica pessoa e suas varias fontes de renda, sendo esta in-
formacao representada atraves da relacao: pagamento(Pessoa, Fonte, V alor). Caso
fosse desejado usar como refinamento a clausula que separa pessoas com rendimento
total menor que R$5000, 00, uma construcao similar a seguinte deve ser usada:
34
1. type(aggregate(funcDeAgregacao, padrao, variavelAgregada, resultado)).
2. rmode((aggregate(sum, pagamento( +Pessoa, Fonte,−V alor), V alor,
Total), T otal < 5000.00)).
Com a declaracao 1, indica-se o tipo do refinamento e o padrao de seus argumen-
tos: o primeiro argumento e a funcao de agregacao a ser usada; o segundo argumento
e o padrao a ser encontrado para agregacao; o terceiro argumento e a variavel que
sera agregada, e o quarto argumento e o resultado final da agregacao.
Com a declaracao 2, e dito que a conjuncao (aggregate(sum,
pagamento(+Pessoa, Fonte, −V alor), V alor, Total), T otal < 5000.00) pode ser
acrescentada a uma clausula que se deseja refinar. Esta conjuncao soma o total
recebido de todas as fontes de renda por uma pessoa e verifica se o total excede
R$5000, 00.
E possıvel usar agregacoes muito mais complexas, maiores informacoes podem
ser obtidas em [13].
3.1.5 Pacotes de clausulas
Um pacote de clausulas (Query Pack) [2] e um metodo de representar clausulas
sob a forma de disjuncoes a fim de evitarem-se provas identicas de literais. Clausulas
de mesma cabeca tem suas caudas reunidas sob a forma de uma disjuncao, de
tal modo que literais comuns as clausulas diferentes sao devidamente fatorados e
evidenciados.
Este conceito e melhor entendido atraves de um exemplo. Suponha que haja
um conjunto de clausulas e deseja-se saber quais sao verdadeiras ou falsas para um
exemplo e.
1: p(X).2: p(X), q(X, a).3: p(X), q(X, b).4: p(X), q(X, c).5: p(X), q(X, Y ), t(X).6: p(X), q(X, Y ), t(X), r(Y, 1).7: p(X), q(X, Y ), t(X), r(Y, 2).
Figura 3.7: Conjunto de clausulas que se deseja saber se provam e
Tradicionalmente, seria armazenada a assercao sobre e como um fato e cada
clausula seria testada individualmente. Note que, o literal p(X) tem que ser provado
sete vezes e a conjuncao p(X), q(X, Y ), t(X) tres vezes. Para evitar tal desperdıcio,
o TILDE representa tais clausulas como uma disjuncao. Isto e importante no mo-
mento em que o TILDE computa a heurıstica para cada refinamento, onde e comum
35
que dois ou mais refinamentos tenham literais em comum. A arvore na figura 3.8
representa o pacote de clausulas de tal conjunto.
Figura 3.8: Pacote de clausulas da figura 3.7.
3.1.6 Tratamento de Regressao - TILDE-RT
O TILDE tambem e capaz de tratar problemas de regressao, sendo chamado
TILDE-RT (TILDE Regression Trees) neste caso. O modelo de Aprendizado por
Interpretacoes usado na classificacao se mantem, porem, em vez de um fato sobre a
classe do exemplo, deve haver um fato sobre o predicado alvo, e tal predicado deve
ter uma variavel numerica que sera o alvo da regressao.
Para exemplificar a representacao, a versao do problema Machines [13] para
regressao e utilizada Neste problema, deseja-se saber o valor de uma maquina quando
esta possui um componente desgastado/defeituoso (ruim/1). Cada interpretacao
possui a lista dos componentes defeituosos e o valor associado a maquina, conforme
a figura 3.9.
Uma maquina pode ter: roda, motor, corrente, unidade de controle (uc) e engre-
nagem. Adicionalmente, existem componentes que podem ser substituıdos (substi-
begin(model(1)). begin(model(10)).valor(0.0). valor(0.0).ruim(motor). ruim(uc).ruim(engrenagem). end(model(10)).end(model(1)). ...
begin(model(2)).valor(1.0).ruim(roda).ruim(corrente).end(model(2))....
Figura 3.9: Arquivo kb do problema Machines
36
substituivel(roda).substituivel(corrente).substituivel(engrenagem).
insubstituivel(motor).insubstituivel(uc).
Figura 3.10: Conhecimento preliminar do problema Machines
tuivel/1): roda, corrente e engrenagem; e componentes que nao podem (insubstitui-
vel/1): motor e unidade de controle. Esta informacao e representada no conheci-
mento preliminar, figura 3.10.
No arquivo de configuracao do problema, deve-se declarar que o TILDE devera
rodar em modo de regressao, atraves da declaracao “tilde mode(regression).”. E
necessario, tambem, especificar qual e o predicado alvo, bem como a variavel de-
pendente, atraves da declaracao “predict(valor(−)).”. A variavel da regressao deve
ser uma variavel de saıda, identificada atraves do modo −, neste exemplo, o pre-
dicado tem apenas uma variavel. Caso haja outras variaveis, deve-se especificar os
modos de cada uma. Por consequencia desta representacao o TILDE-RT e capaz de
tratar regressao em mais de uma variavel, porem este assunto foge ao escopo deste
trabalho.
As seguintes declaracoes podem ser usadas para especificar os literais da lin-
guagem que podem ser usados nos refinamentos: “rmode(substituivel(+X)).”,
“rmode(insubstituivel(+X)).” e “rmode(ruim(+-X)).”.
Na figura 3.11 ha um exemplo de arvore gerada pelo TILDE-RT para o problema
Machines em modo de regressao.
Figura 3.11: Arvore gerada para o problema Machines
37
3.1.7 Heurıstica
Quando em modo de classificacao, o TILDE usa o Ganho de Informacao de forma
analoga ao C4.5, bem como outras heurısticas. Conforme dito, cada refinamento e
um teste logico que particiona um conjunto original em dois subconjuntos: dos
exemplos que tem sucesso e dos exemplos que falham. Para cada refinamento a
heurıstica e computada levando em conta os dois subconjuntos gerados, e o teste
escolhido e o que obtiver melhor valor para heurıstica.
Em modo de regressao, a heurıstica usada e a Reducao na Soma dos Quadrados
das Distancias. Esta heurıstica tambem pode ser usada pelo C4.5 em vez da reducao
da variancia (padrao no C4.5). Na sequencia define-se a soma dos quadrados das
distancias para um conjunto de numeros reais e, em seguida, a heurıstica em si.
Seja S um conjunto de exemplos, entao a soma dos quadrados das distancias do
conjunto S, SS(S), e dada por:
SS(S) =
|S|∑i=1
(yi − µ(S))2 (3.1)
onde yi e o valor da variavel dependente no atributo alvo do i-esimo exemplo de S
e µ(S) =P|S|i=1 yi|S| .
Adicionalmente, sejam: l uma folha, L o conjunto de valores da variavel regredida
nos exemplos da folha l, r um candidato a refinamento em l, P(r) ⊂ L os valores dos
exemplos que passam no teste de r e N(r) ⊂ L os valores dos exemplos que falham
em r. Entao, o valor da heurıstica do refinamento r na folha l, H(r, l), e dado por:
H(r, l) = SS(L)− (SS(N(r)) + SS(P(r))) (3.2)
Concluindo, e desejado o refinamento ρ que maximiza H na equacao 3.2, i.e., que
cause a maior reducao na soma dos quadrados das distancias quando comparam-se
os subconjuntos gerados ao conjunto original.
Note que, a unica diferenca entre a soma dos quadrados das distancias e a
variancia e a ausencia da divisao pelo numero total de exemplos de S, conforme
3.3. Esta diferenca nao afeta a escolha do algoritmo, isto e, um atributo que gera a
maior reducao na variancia de um conjunto tambem gera a maior reducao na soma
dos quadrados das distancia, o que pode ser constatado pelas equacoes a seguir.
Sejam: ∆S2(S) a reducao da variancia; e ∆SS(S) a reducao na soma dos qua-
drados das distancias. Para simplificar, para um mesmo refinamento r, sera usado:
N = N(r) e P = P (r).
38
∆S2(S) = S2(S)− ((|N |/|S|) ∗ S2(N) + (|P |/|S|) ∗ S2(P ))
= SS(S)/|S| − ((|N |/|S|) ∗ SS(N)/|N |+ (|P |/|S|) ∗ SS(P )/|N |)
= (SS(S)/|S| − ((1/|S|) ∗ SS(N) + (1/|S|) ∗ SS(P )))
= (1/|S|) ∗ (SS(S)− (SS(N) + SS(P )))
= (1/|S|) ∗∆SS(S). (3.3)
3.1.8 Inducao de arvores de decisao de logica de primeira
ordem
Uma vez que os conceitos por tras do algoritmo foram detalhados, este capıtulo
e, entao, finalizado com a exposicao do pseudo-codigo do algoritmo TILDE. Este
algoritmo e, portanto, o que realiza o aprendizado das arvores decisao de logica de
primeira ordem (First Order Logical Decision Trees - FOLDT).
Entretanto, antes de expo-lo, e importante explicar a notacao usada para os
nos da arvore. Um no da arvore pode ser: 1) uma folha, que possui um modelo
preditivo associado (N = folha(modelo preditivo(E))), onde E e o conjunto de
exemplos que passaram pela folha durante o treinamento; ou 2) um no interno (N =
noInterno(conj, esq, dir)), que possui filhos esq e dir, e uma consulta associada
conj.
Novas variaveis introduzidas em um no nao sao repassadas ao ramo direito, pois
tais variaveis nao tem sentido para os exemplos que falham no teste deste no. Este
fato e explicitado na chamada do metodo ConstroiArvore para os ramos que ficam
a direita, no algoritmo 3.1 mostrado a seguir.
O modelo preditivo depende do tipo de problema tratado: na classificacao e a
classe majoritaria em E, na regressao e media da variavel dependente que aparece no
predicado alvo dos exemplos em E. Adicionalmente, os criterios de parada podem
ser verificados na avaliacao dos refinamentos, de modo que caso algum criterio seja
alcancado, nenhum refinamento sera considerado.
A chamada ao metodo recursivo ControiArvore(.), linha 1, da inıcio ao processo
de inducao. A inducao comeca na raiz, cuja consulta associada e definida como
Q = true e um conjunto de exemplos de treino, E, lhe e dado.
Em um no N qualquer os possıveis refinamentos de ← Q sao determinados
aplicando-se o operador de refinamentos, ρ(← Q). Desta forma, calcula-se a
heurıstica para cada refinamento e o melhor refinamento, ← Qb, e escolhido, linha
1.
Caso ← Qb nao seja adequado, apesar de ser o melhor, entao N torna-se uma
folha com um certo modelo preditivo, o qual leva em conta os exemplos em E, linhas
39
Algoritmo 3.1 Algoritmo do TILDE, para inducao de arvores de decisao de logicade primeira ordem, proposto em [5] [4]
Entrada:E e um conjunto de exemplos,Q e uma consulta Prolog.
Saıda:T e uma arvore de decisao de logica de primeira ordem.
Procedimento ConstroiArvore (E, Q)
1: Seja ← Qb o elemento de ρ(← Q) com o melhor valor de heurıstica.2: Se ← Qb nao for bom (por exemplo, tiver ganho nulo), entao3: Faca T = folha(modelo preditivo(E)).4: Senao5: Faca conj = Qb - Q.6: Faca E1 = {e ∈ E| ← Qb e verdadeira em e ∧B}.7: Faca E2 = {e ∈ E| ← Qb e falsa em e ∧B}.8: Faca esq = ConstroiArvore(E1, Qb).9: Faca dir = ConstroiArvore(E2, Q).
10: Faca T = noInterno(conj, esq, dir).11: Retorne T .
Entrada:E e um conjunto de exemplos.
Saıda:T e uma arvore.
Procedimento Tilde (E)
1: Seja T = ConstroiArvore(E, true).2: Retorne T .
40
2 e 3. No caso das arvores do TILDE tal modelo prediz a classe mais frequente em
E.
Caso contrario, isto e,← Qb pode ser usado como teste, entao a conjuncao conj,
a qual foi usada para refinar ← Q, e extraıda de ← Qb e e armazenada no no, linha
5. Portanto, um particionamento acaba de ocorrer no no sendo processado.
Os exemplos de E sao particionados em E1 e E2 de acordo com o teste ← Qb.
Na sequencia, criam-se dois novos ramos: esq (esquerdo) que ficara associado a
subarvore que contempla os exemplos que tem sucesso no teste do no; e dir (direito)
que ficara associado a subarvore que contempla os exemplos que falham no teste,
linhas 6 e 7.
O processo de inducao e recursivamente executado, chamando-se o procedimento
ConstroiArvore para cada novo ramo. Conforme dito, no ramo esquerdo a consulta
associada e ← Qb e no ramo direito a consulta associada e ← (Qb − conj) = Q.
Portanto, cada ramo tornar-se-a uma subarvore, linhas 8 e 9.
No retorno das recursoes, o no N , torna-se um no interno cujos filhos sao esq
e dir e que armazena a conjuncao conj em sua estrutura, de modo que seu teste e
← (Q ∧ conj), linha 10.
Algoritmo 3.2 Algoritmo de classificacao de um exemplo usando um FOLDT (comum conhecimento preliminar B), proposto em [5] [4]
Entrada:e e um exemplo.
Saıda:c e uma classe.
Procedimento Classifica (e)
1: Seja Q a consulta Prolog ← true.2: Seja N o no raiz da arvore.3: Enquanto N 6= folha(c)4: Seja N = noInterno(conj, esq, dir).5: Se Q ∧ conj for verdadeira em e ∧B, entao6: Faca Q = Q ∧ conj.7: Faca N = esq.8: senao9: Faca N = dir.
10: Retorne c (a classe da folha).
O procedimento de classificacao de um exemplo e, algoritmo 3.2 inicia na raiz,
cuja consulta associada Q e ← true, linhas 1 e 2.
Para um no N qualquer, caso nao seja uma folha, entao componha seu teste
usando Q e conj, i.e., ← Q ∧ conj, caso e tenha sucesso no teste, faca N = esq
e Q =← Q ∧ conj, onde esq e seu filho esquerdo, caso contrario faca N = esq e
41
Q = Q, linhas 3 a 9.
Caso contrario, i.e., N e uma folha, entao retorne a classe armazenada pela folha
como predicao para e, linha 10.
3.2 VFDT - Very Fast Decision Tree
Nesta secao, e apresentado o sistema VFDT (Very Fast Decision Tree) [15],
que e um dos sistemas que serviram de base para o nosso trabalho. Na secao
3.2.1, e feita uma descricao geral do metodo; na secao 3.2.2, o resultado estatıstico
conhecido como limitante de Hoeffding e apresentado; na secao 3.2.3, mostra-se
como o limitante de Hoeffding foi aplicado no aprendizado de arvores de decisao; na
secao 3.2.4, o comportamento assintotico do algoritmo e discutido; na secao 3.2.5,
explica-se como o VFDT trata atributos numericos; e na secao 3.2.6, o algoritmo do
VFDT e exposto.
3.2.1 Introducao
O VFDT um e algoritmo escalavel que aprende arvores proposicionais para pro-
blemas de classificacao de forma incremental. Para tal, o VFDT inspeciona o con-
junto de treino de forma sequencial refinando o modelo aprendido progressivamente,
a medida que novos exemplos sao inspecionados. Ao inspecionar uma quantidade
suficiente de exemplos numa certa folha, determinada pelo resultado estatıstico co-
nhecido como limitante de Hoeffding, o algoritmo escolhe um novo atributo para
teste, realizando o particionamento nesta folha, entretanto, o VFDT descarta tais
exemplos em vez de repassa-los aos novos ramos da arvore. Adicionalmente, por
ser incremental, o VFDT pode realizar a tarefa de classificacao antes do processo
de aprendizado ter sido totalmente finalizado, i.e., que os exemplos de treinamento
tenham se esgotado.
3.2.2 Limitante de Hoeffding
Seja r uma variavel aleatoria real cujo domınio tem tamanho R. Considere n
observacoes independentes desta variavel e seja r sua media observada. O limitante
de Hoeffding [22] atesta que P (µr ≥ r − ε) = 1 − δ, onde µr e a verdadeira media
da variavel r, ε e dado pela equacao 3.4 e δ e um numero muito pequeno.
ε =
√R2 ln(1/δ)
2n(3.4)
42
3.2.3 Arvores de Hoeffding
Proposta por Domingos e Hulten [15], a modelagem mostrada a seguir utiliza o
limitante de Hoeffding na escolha dos testes. Em funcao da aplicacao do limitante
de Hoeffding parametrizado por δ, da-se o nome de arvores de Hoeffding para tais
modelos.
Seja G a heurıstica a ser maximizada e sejam Xa e Xb os atributos com os
maiores valores para G. Seja ∆Gr = G(Xa) − G(Xb) a diferenca nos valores das
heurısticas dos atributos quando o algoritmo utiliza todo o conjunto de dados, e seja
∆G = G(Xa) − G(Xb) a diferenca observada quando apenas n exemplos chegaram
a um no.
Entao, dado um valor para δ, atraves do limitante de Hoeffding sabe-se que com
probabilidade 1−δ que ∆Gr ≥ ∆G− ε, onde ε e dado pela equacao 3.4. Se ∆G > ε,
entao e possıvel dizer que com mesma probabilidade ∆Gr > 0, logo G(Xa) > G(Xb),
i.e., com probabilidade 1− δ, Xa e o melhor atributo.
Em termos praticos, para poder afirmar que Xa e a melhor escolha, e necessario
verificar se ∆G ≥ ε. Entao, o que se deve fazer e processar exemplos ate acontecer
que ∆G ≥ ε, para o valor escolhido de δ e o numero corrente de exemplos numa
folha.
Pode acontecer que o melhor atributo, Xa, seja muito melhor que Xb, porem
realizar o particionamento usando Xa pode nao ser tao vantajoso. Para tratar tal
situacao, considera-se um atributo extra, X∅, que na verdade representa o valor da
heurıstica considerando apenas os exemplos na folha. Desta forma pode-se tratar
o caso de um particionamento no melhor atributo nao causar uma diferenciacao
efetivamente boa.
E importante destacar que o limitante de Hoeffding independe da distribuicao
da variavel considerada. Esta independencia vem com o custo de ser necessario pro-
cessar mais exemplos do que em metodos que usam limitantes especıficos. Porem,
dado o cenario das grandes massas de dados, isto nao configura um problema. Alem
disso, para o ganho de informacao tem-se 0 ≤ G ≤ log(|C|), onde C e o conjunto
das possıveis classes, o que satisfaz a condicao de a variavel ter seu domınio de-
limitado por uma faixa de tamanho R. E importante destacar que a distribuicao
das observacoes deve ser a mesma, portanto e feita uma hipotese de distribuicao
estacionaria no fluxo.
Segue, entao, o pseudo-codigo do algoritmo de inducao das arvores de Hoeffding.
O algoritmo de inducao das arvores de Hoeffding comeca na raiz l1, unico no
e folha da arvore sendo construıda. Conforme dito, alem dos possıveis atributos
X, considera-se um atributo extra, X∅. Ele, alem de funcionar como um contador
global na folha, representa o caso de nao se fazer teste algum, linhas 1 e 2. Alem
43
Algoritmo 3.3 Algoritmo de inducao de uma arvore de Hoeffding, proposto em[15]
Entradas:S e uma sequencia de exemplos,X e um conjunto de atributos discretos,G(.) e uma funcao de avaliacao de particionamento,δ e um menos a probabilidade desejada de se escolher o atributo correto em um
dado no.
Saıda:HT e uma arvore de decisao.
Procedimento HoeffdingTree (S, X, G, δ)
1: Seja HT uma arvore com uma unica folha l1 (a raiz).2: Seja X1 = X ∪ {X∅}.3: Seja G1(X∅) o valor de G obtido ao se predizer a classe mais frequente em S.4: Para cada classe yk5: Para cada valor xij de cada atributo Xi ∈ X6: Faca nijk(l1) = 0.7: Para cada exemplo (x, yk) em S8: Desca (x, y) ate uma folha l usando HT .9: Para cada xij em x tal que Xi ∈ Xl
10: Incremente nijk(l).11: Rotule a folha l com a classe majoritaria dos exemplos que chegaram nela
ate agora.12: Se os exemplos que chegaram ate agora em l nao forem todos da mesma
classe, entao13: Calcule Gl(Xi) para cada atributo Xi ∈ Xl - {X∅} usando os contadores
nijk(l).14: Faca Xa ser o atributo com o maior valor de Gl.15: Faca Xb ser o atributo com o segundo maior valor de Gl.16: Calcule ε usando a equacao 3.4.17: Se Gl(Xa) - Gl(Xb) > ε e Xa 6= X∅, entao18: Substitua l por um no interno cujo teste e o atributo Xa (ou seja, faca o
particionamento com o atributo Xa).19: Para cada ramo do particionamento20: Adicione uma nova folha lm, e faca Xm = X - {Xa}.21: Faca Gm(X∅) ser o valor de G obtido ao se predizer a classe mais
frequente em lm.22: Para cada classe yk e cada valor xij de cada atributo Xi ∈ Xm - {X∅}23: Faca nijk(lm) = 0.24: Retorne HT .
44
disso, o valor da heurıstica de X∅ e justamente a entropia do conjunto.
Inicialmente, os contadores do no, identificados pela trinca: i = atributo , j =
j-esima possıvel valoracao do atributo i e k = classe, sao inicializados com valor 0,
linhas 5 e 6.
Apos tal inicializacao, os exemplos de S comecam a ser passados pela arvore
em construcao. Cada exemplo (x, yk) ∈ S a atravessa ate chegar em uma folha l
adequada, linhas 7 e 8.
Uma vez que o exemplo (x, yk) chegue na folha l, cada contador deve ser atu-
alizado, de acordo com as valoracoes dos atributos de x, linhas 9 e 10. l e, entao,
atualizada para predizer a classe que mais se repetiu no exemplos ate entao passados,
linha 11.
Caso todos os exemplos pertencam a mesma classe, entao l deve aguardar que
mais exemplos cheguem, pois nenhum particionamento e possıvel. Caso contrario,
a heurıstica deve ser computada para cada atributo, a fim de determinar os dois
melhores, linhas 12 a 15.
Determinados os dois melhores atributos, candidatos a teste no particionamento,
computa-se o limitante de Hoeffding. Verifica-se, entao, se a diferenca entre ambos
ja e suficiente, para que seja decidido se e possıvel realizar o particionamento usando
o melhor atributo, linhas 16 e 17.
Caso o limitante garanta que atributo Xa e estatisticamente melhor, entao l, que
era uma folha, torna-se um no interno, cujo teste e o proprio Xa. Adicionalmente,
um ramo descendente e criado para cada possıvel valor no domınio de Xa, linhas
18 a 20. Convem observar que os antigos contadores de l sao descartados neste
processo, portanto qualquer resquıcio de informacao sobre os exemplos e perdida.
Para cada novo filho lm, analogamente separa-se um atributo X∅. Os contadores
dos filhos sao analogamente inciados com valor 0, linhas 21 a 23.
Entao, o processo retorna ao ciclo principal, descrito na linha 7. Desta forma,
mais um exemplo sera conduzido ate uma folha, a qual avaliara a pertinencia de um
particionamento. Ao esgotarem-se os exemplos o processo termina.
45
3.2.4 Propriedades das Arvores de Hoeffding
Em [15] foi demostrado que as arvores de Hoeffding sao assintoticamente seme-
lhantes aquelas produzidas por um algoritmo que escolhe os testes para seus nos
inspecionando todo o conjunto de dados de treinamento. Portanto, tal demostracao
e reproduzida a seguir.
Propriedade 3.1. O algoritmo de arvores de Hoeffding produz arvores assintotica-
mente proximas as produzidas pelo algoritmo tradicional.
A demostracao da propriedade em questao depende de conceitos que caracterizem
diferencas entre duas arvores. Para tal, os seguintes conceitos sao definidos:
Definicao 3.2 (Desigualdade entre nos). Dois nos de arvores de decisao sao dife-
rentes nos seguintes casos:
• Dois nos internos sao diferentes quando os seus testes sao diferentes.
• Duas folhas sao diferentes quando predizem classes diferentes.
• Um no interno e diferente de uma folha.
Definicao 3.3 (Desigualdade entre caminhos). Dois caminhos de arvores de decisao
sao diferentes se eles diferem em tamanho ou em pelo menos um no.
A partir desdes dois conceitos, derivam-se as definicoes de discordancia entre
arvores. Sejam:
• P (x) a probabilidade do vetor de atributos x ser observado.
• I(.) uma funcao que retorna 1 se o seu argumento for verdadeiro e 0 em caso
contrario.
Definicao 3.4 (Discordancia Extensional). Seja DTi(x) a classificacao dada pela
arvore DTi para o exemplo x. A discordancia extensional ∆e entre duas arvores de
decisao DT1 e DT2 e a probabilidade de elas predizerem classes diferentes para um
mesmo exemplo:
∆e(DT1, DT2) =∑x
P (x)I[DT1(x) 6= DT2(x)] (3.5)
Definicao 3.5 (Discordancia Intensional). Seja Caminhoi(x) o caminho do exemplo
x pela arvore DTi. A discordancia intensional ∆i entre duas arvores de decisao DT1
e DT2 e a probabilidade do caminho de um exemplo pela arvore DT1 ser diferente
do caminho do mesmo exemplo pela arvore DT2.
46
∆i(DT1, DT2) =∑x
P (x)I[Caminho1(x) 6= Caminho2(x)] (3.6)
Duas arvores concordam de forma intensional em relacao a um exemplo se este
atravessa por cada uma das arvores usando a mesma sequencia de nos e ambas
predizem a mesma classe para ele. Vale notar que discordancia intensional e um
conceito mais forte do que discordancia extensional.
Seja pl a probabilidade de que um exemplo que desca ate o nıvel l em uma
arvore de decisao alcance uma folha neste nıvel. Para simplificar, assume-se que esta
probabilidade seja constante para todas as folhas (∀l pl = p), o que e uma hipotese
realista para arvores de decisao tıpicas. Alem disso, chama-se p de probabilidade de
folha.
Seja HTδ a arvore de Hoeffding gerada com a probabilidade desejada δ, dada
uma sequencia infinita de exemplos S. Seja DT∗ a arvore de decisao assintotica
produzida por um algoritmo tradicional, em que se escolhe em cada no o atributo
com maior valor de G, usando-se para isso infinitos exemplos em cada no. Seja
E[∆i(HTδ,DT∗)] o valor esperado de ∆i(HTδ,DT∗), calculado considerando-se to-
das as infinitas sequencias de treinamento possıveis. E possıvel afirmar o seguinte
resultado:
Teorema 3.1. Se HTδ e a arvore de decisao de Hoeffding produzida com a probabili-
dade desejada δ dados infinitos exemplos, DT∗ e a arvore de decisao assintotica pro-
duzida por um algoritmo tradicional e p e a probabilidade de folha, entao E[∆i(HTδ,
DT∗)] ≤ δ/p.
Prova: Considere um exemplo x que, na arvore HTδ, cai em uma folha no nıvel lh
e, na arvore DT∗, cai em uma folha no nıvel ld. Sejam:
• l = min{lh,ld}.
• CaminhoH(x) = (NH1 (x), NH
2 (x), ..., NHl (x)) o caminho de x pela arvore HTδ
ate o nıvel l, onde NHi (x) e o no em que o exemplo x cai no nıvel i em HTδ.
Analogamente, seja CaminhoD(x) o caminho de x pela arvore DT∗. Se l = lh,
entao NHl (x) e uma folha e, portanto, prediz uma classe; de forma semelhante,
se l = ld, entao NDl (x) e uma folha.
• Ii a proposicao “CaminhoH(x) = CaminhoD(x) ate o nıvel i, inclusive”, e I0
= true. Note que P (NHl (x) 6= ND
l (x)|Il−1) inclui P (lh 6= ld), porque se os dois
caminhos tem tamanhos diferentes, entao uma arvore deve ter uma folha onde
a outra tem um no interno.
47
Entao,
P (CaminhoH(x) 6= CaminhoD(x))
= P ((NH1 6= ND
1 ) ∨ (NH2 6= ND
2 ) ∨ ...(NHl 6= ND
l ))
= P (NH1 6= ND
1 |I0) + P (NH2 6= ND
2 |I1) + ...+ P (NHl 6= ND
l |Il−1)
=l∑
i=1
P (NHi 6= ND
i |Ii−1) ≤l∑
i=1
δ = δl (3.7)
Seja HTδ(S) a arvore de Hoeffding gerada pela sequencia de exemplos de trei-
namento S. Entao E[∆i(HTδ,DT∗)] e a media, considerando-se todas as infinitas
sequencias de treinamento S, da probabilidade do caminho de um exemplo na arvore
HTδ(S) ser diferente do caminho do mesmo exemplo na arvore DT∗:
E[∆i(HTδ, DT∗)]
=∑S
P (S)∑x
P (x)I[CaminhoH(x) 6= CaminhoD(x)]
=∑x
P (x)P (CaminhoH(x) 6= CaminhoD(x))
=∞∑i=1
∑x∈Li
P (x)P (CaminhoH(x) 6= CaminhoD(x)) (3.8)
onde Li e o conjunto de exemplos que caem em uma folha de DT∗ no nıvel i. De
acordo com a equacao 3.7, a probabilidade do caminho de um exemplo na arvore
HTδ(S) ser diferente do caminho do mesmo exemplo na arvore DT∗, dado que este
ultimo tem tamanho i, e no maximo δi (ja que i ≥ l). Entao,
E[∆i(HTδ, DT∗)] ≤∞∑i=1
∑x∈Li
P (x)(δi) =∞∑i=1
(δi)∑x∈Li
P (x) (3.9)
A soma∑
x∈Li P (x) e a probabilidade de um exemplo x cair em uma folha de
DT∗ no nıvel i e e igual a (1− p)i−1p, onde p e a probabilidade de folha. Entao,
E[∆i(HTδ, DT∗)]
≤∞∑i=1
(δi)(1− p)i−1p = δp
∞∑i=1
i(1− p)i−1
= δ
∞∑i=0
(1− p)i =δ
p(3.10)
Isto completa a demonstracao do Teorema 3.1.
48
3.2.5 Tratamento de atributos numericos
Conforme visto na secao 2.2.2, ao tratar um atributo numerico Y , o C4.5 analisa
todos os exemplos e tenta determinar qual o valor constante c, que gera o particio-
namento binario Y < c e Y ≥ c, com o melhor valor de heurıstica.
O VFTD usa um metodo parecido com o do C4.5, entretanto, como nao inspe-
ciona todo os exemplos, ele armazena ate 1000 valores que tenham sido observados
numa folha e usa diretamente estes valores como os candidatos a constante do par-
ticionamento. Vale salientar que, ainda assim, e necessario fazer a ordenacao dos
exemplos no momento de avaliar os candidatos. Como o algoritmo opera em fluxos
de dados, as otimizacoes obtidas pelas listas de atributos [30], para evitar excessivas
ordenacoes, nao podem ser usadas.
Existem outras propostas de melhoria para o VFDT. Destaca-se a abordagem
usada em [24], onde se faz uso das arvores binarias de busca estendidas (Extended
Binary Search Trees - E-BST). Nela, cada atributo numerico em uma folha contem
uma E-BST e cada no de uma E-BST contem um valor chave que guia os exemplos
aos sub-ramos esquerdo ou direito atraves do teste “y < Chave”. Alem disso, cada
no possui dois vetores, um para cada filho, com as estatısticas: Numero de exemplos,
soma dos valores da atributo-alvo e soma dos quadrados dos valores.
Cada vez que um exemplo novo chega, a chave e confrontada, o contador ade-
quado e atualizado e o exemplo e repassado ao ramo adequado. Na hora do particio-
namento, para achar a melhor constante, o algoritmo realiza uma busca em profun-
didade visitando cada no, portanto na ordem correta. Neste processo, acumulam-se
os resultados da heurıstica para cada possıvel valor, para que, no final, seja escolhido
o de melhor heurıstica. Uma descricao mais completa o metodo pode ser encontrada
em [24].
3.2.6 VFDT
Utilizando a modelagem das arvores de Hoeffding, Domingos e Hulten desenvol-
veram o algoritmo VFDT (Very Fast Decision Tree) [15], um algoritmo de aprendi-
zado proposicional e escalavel em grandes bases de dados.
O VFDT pode, ao menos teoricamente, aprender a partir de bases de dados
potencialmente infinitas, por exemplo, minerando transacoes bancarias. Nesta si-
tuacao, mesmo com recursos fısicos ilimitados, nao seria possıvel reunir todo o con-
junto de dados de uma so vez. Devido a esta natureza incremental, o VFDT permite
que o modelo aprendido seja consultado antes do “fim” do aprendizado. Em funcao
disso, o VFDT e dito ser um algoritmo anytime.
O VFDT tem alguns elementos para melhorar ainda mais sua performance. Por
serem os relevantes a este trabalho, estao detalhados dois deles: um parametro
49
para acumulo de exemplos nas folhas emin; e um parametro para desempate entre
atributos τ . Detalhes extras sobre o VFDT podem ser encontrados em [15].
O computo da heurıstica e um processo custoso. O parametro emin reduz o
tempo de inducao, permitindo que o usuario determine que cada novo computo da
heurıstica seja feito somente quando emin novos exemplos chegaram desde a folha
vazia ou o ultimo computo. Isto melhora a performance pois o algoritmo nao precisa
computar a heurıstica para todos os possıveis refinamentos todas as vezes que um
unico exemplo chega a folha. Portanto, no contexto de conjuntos de dados gigantes,
isto tem um grande impacto.
Quando dois ou mais atributos possuem valores de heurısticas muito proximos,
o algoritmo pode necessitar de um numero grande de exemplos ate escolher o me-
lhor atributo, o que e um desperdıcio, uma vez que nao fara grande diferenca qual
atributo seja escolhido, ja que estao muito proximos. Esta situacao e chamada de
empate e para resolve-la o VFDT usa um parametro fornecido pelo usuario que
impoe um limiar de desempate. Caso ∆G < ε < τ , o melhor atributo e escolhido
como o teste para o no.
50
Esta secao e finalizada mostrando-se as diferencas entre o algoritmo tradicional
de arvores de decisao [33] e o VFDT para comparacao.
Algoritmo 3.4 Algoritmo de Arvore de Decisao [33]
1: Raiz: Exs = todos os exemplos de treino.2: Baseado no conjunto de exemplos Exs, selecione o melhor atributo A como teste
do no.3: Crie um ramo para cada valor vi do atributo discreto A, correspondendo ao testeA = vi.
4: Separe os exemplos entre os nos filhos do no corrente de acordo com o valor deA, criando um novo conjunto de exemplos Exs para cada filho.
5: Repita o passo 2 para cada filho.
Algoritmo 3.5 VFDT [15]
1: Raiz: Exs = N primeiros exemplos de treino, onde N e obtido pelo limitantede Hoeffding (∆G > ε ou ∆G < ε < τ).
2: Baseado no conjunto de exemplos Exs, selecione o melhor atributo A como testedo no.
3: Crie um ramo para cada valor vi do atributo discreto A, correspondendo ao testeA = vi.
4: Descarte os exemplos que estavam antes no no. Separe os proximos exemplosentre os filhos do no corrente, de acordo com o valor de A, criando um conjuntode exemplos Exs para cada filho. O numero de exemplos de cada filho seratambem determinado pelo limitante de Hoeffding.
5: Repita o passo 2 para cada filho.
3.3 HTILDE - Hoeffding TILDE
Nesta secao, e apresentado o HTILDE. Este sistema e fundamental para este
trabalho, pois o algoritmo HTILDE-RT e uma extensao do HTILDE para resolver
problemas de regressao. Na secao 3.3.1, e feita uma introducao ao sistema; na secao
3.3.2, o algoritmo do HTILDE e exposto; e,na secao 3.3.3, detalhes relacionados a
especificacao de um problema estao apresentados.
3.3.1 Introducao
O HTILDE, proposto em [28], e um algoritmo baseado no TILDE e no VFDT,
combinando a expressividade da ILP a eficiencia da amostragem atraves do limitante
de Hoeffding. Sendo, portanto, um sistema de programacao em logica indutiva
escalavel para aprendizado em fluxos de dados relacionais.
Por ser baseado no TILDE, o HTILDE tambem utiliza aprendizado por inter-
pretacoes, o que permite a cobertura local dos exemplos, bem como se beneficia dos
51
pacotes de clausulas. Porem, o processo de escolha dos refinamentos para teste se da
de forma analoga a que o VFDT usa para escolher atributos para teste, herdando,
portanto, os tres parametros basicos do VFDT: δ, emin e τ
Varios sistemas proposicionais usaram a metodologia proposta por Domingos e
Hulten [16] para tornar algoritmos de aprendizado de maquinas capazes de tratar
grandes fluxos de dados. Dentre eles, o VFDT [15] e o mais proximo do TILDE,
por ser uma arvore de decisao.
Entretanto, conforme constatado por Srinivasan [44], amostragem (sampling)
em ILP nao tem recebido muita atencao. Eu seu trabalho pioneiro existe uma
metodologia de amostragem aplicada no sistema ILP PROGOL, que usa aprendizado
por implicacao logica. Nesta metodologia, um tamanho fixo para todas as amostras
e determinado por um limitante dependente da suposicao de normalidade [47]. Alem
disso, o tamanho da populacao (numero total de exemplos) deve ser conhecido para
computo dos estimadores envolvidos, porem no contexto de fluxos de dados tal
parametro e potencialmente desconhecido.
O HTILDE e, portanto, um sistema que induz incrementalmente arvores de
decisao de logica de primeira ordem e utiliza o limitante de Hoeffding para tratar
grandes fluxos de dados. Alem disso, da mesma forma que o VFDT, o HTILDE e
tambem um algoritmo anytime. Na secao 3.3.2, estao detalhados os algoritmos de
aprendizado e inferencia do HTILDE.
3.3.2 Algoritmo
O pseudo-codigo do HTILDE e muito parecido com o do VFDT, mostrado no
algoritmo 3.3. A diferenca e que, em cada no, em vez de se avaliar qual e o melhor
atributo que pode ser colocado como teste do mesmo, sao considerados os possıveis
refinamentos.
Na tabela 3.1, sao destacadas as diferencas entre os algoritmos do VFDT e do
HTILDE. Novamente, assim como nos capıtulos 3.1 e 3.2, os pseudo-codigos sao
exibidos. Desta forma, confronta-se como ocorre a escolha de um atributo para
ser colocado como teste de um no interno nos dois algoritmos. Os passos que nao
estao exibidos do HTILDE (1 e 5) sao iguais aos do VFDT. Ja no algoritmo 3.6,
esta detalhado o pseudo-codigo do HTILDE, que utiliza de forma auxiliar a funcao
FazParticionamento, mostrada no algoritmo 3.7.
O processo de inducao do HTILDE e bastante parecido tanto com o VFDT
quanto com o TILDE, pois herda suas caracterısticas de ambos. Comecando por
uma unica folha inicial, a raiz l1, cuja consulta associada e ← true, os possıveis
refinamentos sao determinados pelo operador ρ(.), linhas 1 e 2.
Analogamente ao VFDT, cada folha l possui um conjunto de contadores, n, que
52
Algoritmo 3.6 Algoritmo do HTILDE, para inducao de uma arvore de decisao delogica de primeira ordem escalavel para grandes fluxos dados.
Entradas:S e uma sequencia de exemplos,ρ(.) e o operador de refinamento,Q e um conjunto de refinamentos,G(.) e uma funcao de avaliacao de particionamento,δ e um menos a probabilidade desejada de se escolher o refinamento correto em
um dado no.τ e um valor definido pelo usuario para detectar empates de refinamentos.emin e um numero que indica de quantos em quantos exemplos sera verificado se
a folha deve sofrer um particionamento.
Saıda:HT e uma arvore de decisao de logica de primeira ordem.
Procedimento HTILDE (S, G, δ, τ , emin)
1: Seja HT uma arvore com uma unica folha l1 (a raiz).2: Seja Q1 = ρ(← true).3: Para cada classe c4: Para cada refinamento Qi ∈ Q1
5: Faca n[l1][i][V erdadeiro][c] = 0.6: Faca n[l1][i][Falso][c] = 0.7: Para cada exemplo e em S8: Desca e ate uma folha l usando HT .9: Faca Ql ser a consulta associada de l.
10: Seja Ql = ρ(Ql).11: Para cada refinamento Qi ∈ Ql
12: Se ← Qi for verdadeira em e ∧B, entao13: Incremente n[l][i][V erdadeiro][classe(e)] em 1.14: Senao15: Incremente n[l][i][Falso][classe(e)] em 1.16: Faca El ser o numero de exemplos que chegaram ate agora na folha l.17: Se os exemplos que chegaram ate agora em l nao forem todos da mesma classe
e El modulo emin = 0, entao18: Calcule Gl(Qi) para cada refinamento Qi ∈ Ql usando os contadores n.19: Faca Qa ser o refinamento com o maior valor de Gl.20: Faca Qb ser o refinamento com o segundo maior valor de Gl.21: Calcule ε usando a equacao 3.4.22: Faca ∆Gl = Gl(Qa) - Gl(Qb).23: Se ∆Gl > ε ou ∆Gl ≤ ε < τ , entao24: FazParticionamento(HT , l, Qa, Ql).25: Retorne HT .
53
VFDT HTILDE1. Raiz: Exs = os N primeirosexemplos de treinamento, N dado pelolimite de Hoeffding (∆G > εou ∆G < ε < τ).2. Baseado no conjunto de ⇒ 2. Baseado no conjunto deexemplos Exs, escolha exemplos Exs, escolhao melhor atributo A para o melhor refinamento R paraser colocado como teste do no. ser colocado como teste do no.3. Crie um ramo para cada valor vi ⇒ Crie dois ramos: um correspondentedo atributo A, correspondente ao ao teste R = V erdadeiro eteste A = vi. o outro a R = Falso.4. Descarte os exemplos ja ⇒ Descarte os exemplos jaconsiderados para o particionamento. Divida os considerados para o particionamento. Divida osproximos exemplos entre os nos filhos, proximos exemplos entre os nos filhos,de acordo com o valor do atributo A, de acordo com o valor do refinamento R,gerando os conjuntos de exemplos gerando os conjuntos de exemplosExs de cada filho. Exs de cada filho.O numero de exemplos de cada O numero de exemplos de cadafilho tambem sera determinado filho tambem sera determinadopelo limite de Hoeffding. pelo limite de Hoeffding.5. Repita 2 para cada filho.
Tabela 3.1: Diferencas entre os algoritmos em alto nıvel do VFDT e do HTILDE.
sao identificados pelas seguintes informacoes: 1) o ındice da propria folha, l (l1 no
caso da raiz); 2) pelo ındice do refinamento, i; 3) um campo que pode ser V erdadeiro
ou Falso se o refinamento provar o exemplo ou nao; e 4) o ındice c, que denota a
classe do exemplo. Em todas folhas, estes contadores comecam com valores 0, linhas
3 a 6.
Inicializada a raiz, os exemplos em S comecam a ser entregues ao modelo em
evolucao. Ao percorrer a arvore em construcao, cada exemplo e ∈ S e entao enca-
minhado a uma folha l adequada.
Para cada possıvel refinamento existente em l, atualizam-se seus contadores de
acordo com o resultado do confronto entre o exemplo e e seu teste, linhas 9 a 15. Vale
lembrar que os refinamentos sao determinados aplicando-se ρ(.) a consulta associada
Q de l, quando de sua criacao.
Atualizados os contadores, deve-se verificar se um particionamento ja e possıvel.
Primeiramente, testa-se se um certo numero de exemplos, emin ja chegou em l, linha
17. Em caso negativo, espera-se por mais exemplos; em caso positivo procede-se o
computo da heurıstica para os refinamentos, linha 18.
Feito isso, determinam-se os dois melhores candidatos a teste para o particio-
namento e entao o limitante de Hoeffding e computado, linhas 19 a 21. Caso a
54
diferenca tenha ultrapassado o limitante, ou seja suficientemente pequena, entao l
sofrera um particionamento (procedimento FazParticionamento(.)), linhas 22 e 23.
Caso contrario, espera-se por mais exemplos.
Ao termino do particionamento, l deixa de ser uma folha e passa a ser um no
interno com dois filhos. Conforme dito, o procedimento de particionamento esta
detalhado no algoritmo 3.7, a ser explicado em seguida.
Algoritmo 3.7 Funcao FazParticionamento, chamada pelo HTILDE, cujo pseudo-codigo e exibido no algoritmo 3.6.
Entradas:HT e a arvore logica de primeira ordem que vai ser modificada,l e a folha de HT que vai sofrer o particionamento,Qa e o melhor refinamento para o no l,Ql e a consulta associada do no l.
Saıda:HT , que e a arvore de decisao de logica de primeira ordem, tendo sofrido o
particionamento no no l.
Procedimento FazParticionamento (HT , l, Qa, Ql)
1: Faca conj = Qa −Ql.2: Substitua l por um no interno cujo teste e a conjuncao de literais conj.3: Para cada ramo do particionamento4: Adicione uma nova folha lm.5: Se for o ramo esquerdo, entao6: Faca Qm = ρ(Qa).7: Senao (ou seja, se for o ramo direito)8: Faca Qm = ρ(Ql).9: Para cada classe c
10: Para cada refinamento Qi ∈ Qm
11: Faca n[lm][i][V erdadeiro][c] = 0.12: Faca n[lm][i][Falso][c] = 0.13: Retorne HT .
Dados: o no l, que e uma folha; seu melhor refinamento, Qa; e sua consulta
associada Ql; a conjuncao conj e obtida e armazenada em l, que se torna um no
interno com dois filhos, linhas 1 e 2.
A consulta associada do filho esquerdo e a propria consulta do melhor refina-
mento, Qa, enquanto que a consulta associada do filho direito e Ql, i.e., a consulta
associada de l. Dado isto, os candidatos a refinamentos de cada filho sao determi-
nados por ρ(.), linhas 3 a 8.
Em cada filho, os contadores de cada candidato sao inicializados com valor 0,
linhas linhas 9 e 12. Finalmente, a arvore modificada, HT , e retornada ao processo
que chamou este procedimento.
55
Esta secao e finalizada exibindo o algoritmo 3.8, no qual e mostrado o pseudo-
codigo utilizado para classificar um exemplo usando o HTILDE. Ele e muito parecido
com o algoritmo 3.2, que classifica um exemplo com o TILDE.
Porem, a diferenca agora e que pode ocorrer o caso em que uma folha nao tenha
exemplos, ou seja, ela foi criada por um particionamento do no pai, mas depois
nenhum outro exemplo de treinamento chegou nela. Para contornar estes casos e
poder classificar um exemplo que venha a cair neste tipo de folha, estabelece-se
como classe padrao de uma folha a classe que o seu no pai tinha antes de sofrer o
particionamento. Esta estrategia e semelhante a utilizada pelo VFDT nesses casos.
Algoritmo 3.8 Algoritmo de classificacao de um exemplo usando o HTILDE (comum conhecimento preliminar B)
Entrada:e e um exemplo.
Saıda:c e uma classe.
Procedimento Classifica (e)
1: Seja Q a consulta Prolog V erdadeiro.2: Seja N o no raiz da arvore.3: Enquanto N nao for uma folha4: Seja N = noInterno(conj, esq, dir).5: Se Q ∧ conj for verdadeira em e ∧B, entao6: Faca Q = Q ∧ conj.7: Faca N = esq.8: Senao9: Faca N = dir.
10: Faca n = numero de exemplos de treinamento que caıram na folha N .11: Se n = 0, entao12: Faca c = a classe do no pai de N , antes de sofrer o particionamento.13: Senao14: Faca c = a classe mais frequente entre os exemplos de treinamento que caıram
no N .15: Retorne c.
O processo de predicao do HTILDE e bastante semelhante ao do TILDE. Porem,
como existe a possibilidade de uma folha nao receber exemplo algum apos sua
criacao, deve-se armazenar numa folha recem-criada a predicao de seu pai, ate que
algum exemplo chegue. Esta situacao diferente e contemplada nas linhas 11 e 12.
3.3.3 Especificacao de um problema
Antes de concluir o capıtulo, e interessante fazer um comentario sobre como
um problema e representado no HTILDE. Como ele foi desenvolvido no mesmo
56
ambiente do TILDE, um problema e especificado de maneira muito semelhante nos
dois sistemas: atraves dos arquivos “.kb”, “.bg” e “.s”, que foram explicados no
capıtulo 3.1.
Para utilizar o HTILDE, algumas pequenas mudancas devem ser feita no ar-
quivo “.s”. O usuario deve incluir tres linhas especıficas para definir os parametros
utilizados pelo algoritmo: htilde delta, htilde emin e htilde tau. Estes comandos de-
finem, respectivamente, os parametros δ, emin e τ do algoritmo. Para comecar a
executa-lo, deve-se utilizar o comando “execute(induce(htilde)).”. Finalmente, vale
ressaltar que a heurıstica e a mesma usada como padrao no VFDT, que e o ganho de
informacao. Como esta nao e a medida padrao do TILDE, deve-se colocar mais um
comando, “heuristic(gain).”, para definir que se deseja usar o ganho de informacao
como heurıstica. Um exemplo destes comandos podem ser vistos a seguir:
htilde delta(0.000001).htilde emin(300).htilde tau(0.05).heuristic(gain).execute(induce(htilde)).
Alem das alteracoes no arquivo .s, pode ser necessario incluir novas linhas no
arquivo .bg para informar quais predicados sao simetricos. O tratamento de predi-
cados simetricos e importante pois pode gerar empates inquebraveis, impedindo o
processo de particionamento. O tratamento deste problema e detalhado em [28].
57
Capıtulo 4
HTILDE: Novos resultados
Neste capıtulo, estao listadas contribuicoes complementares ao trabalho de Lopes
e Zaverucha em [28], que sao relacionadas a classificacao. Na secao 4.1, discute-se o
comportamento assintotico dos modelos aprendidos pelo HTILDE e, na secao 4.2,
estao apresentados os resultados complementares obtidos com a base de dados real
CORA [6].
4.1 Propriedades das HTILDE-Trees
Nesta secao e enunciado que as propriedades assintoticas das arvores de Hoeff-
ding proposicionais se preservam nas arvores geradas pelo HTILDE (HTILDE-Trees)
quando o aprendizado por interpretacoes e usado. Portanto, o teorema 4.1, a ser
enunciado, estende a validade do teorema 3.1 para o aprendizado por interpretacoes.
Teorema 4.1. Seja S uma sequencia de infinitos exemplos, onde cada exemplo x e
uma interpretacao I com um numero arbitrario de atomos. Seja HTTδ uma arvore
de Hoeffding de logica de primeira ordem do HTILDE, com parametro δ, treinada
usando S. Seja LDT∗ a arvore de decisao de logica de primeira ordem treinada com
os infinitos exemplos de S. Entao, analogamente ao caso proposicional, e valido que
E[∆i(HTTδ, DT∗)] ≤ δ/p quando o aprendizado por interpretacao e usado.
Prova: A demonstracao e bastante direta e consiste em mostrar que P (NHTTδi 6=
NLDT∗i |Ii−1) ≤ δ, onde δ e determinado pela equacao 3.4, permanece valida. Para tal,
e analisada a inequacao P (NHTTδi 6= NLDT∗
i |Ii−1) ≤ δ′ no contexto do aprendizado
logico por interpretacoes.
Durante o treinamento, esta inequacao do limitante de Hoeffding limita a pro-
babilidade de os modelos terem escolhas diferentes no nıvel i, com ambos possuindo
caminhos/testes iguais ate o nıvel i− 1. Deve-se, entao, argumentar que δ′ = δ.
Alem disso, define-se que duas formulas f1 e f2 sao equivalentes, denotado por
f1 ≡ f2, se diferem apenas pela nomeacao de suas variaveis.
58
Dado o exposto, vem que:
1. Como o vies de linguagem e o mesmo para ambos modelos, todo candidato
a refinamento de HTTδ tera um, e somente um, correspondente equivalente
em LDT∗ no nıvel i, e vice e versa (duas formulas sao equivalentes se diferem
apenas na nomeacao de suas variaveis). Ou seja, existe uma funcao bijetora
que relaciona os candidatos a refinamentos dos modelos num mesmo nıvel.
Portanto, da mesma forma que no caso proposicional os algoritmos escolhiam
seus testes baseados em conjuntos de atributos iguais, na representacao por
interpretacoes, os algoritmos logicos escolhem sobre conjuntos de refinamentos
equivalentes.
2. Como o background knowledge e o mesmo para ambos algoritmos (pois e
especıfico do problema), um refinamento de HTTδ cobre o mesmo espaco de
exemplos que o seu equivalente em LDT∗, e vice e versa. Portanto, ambos
particionam o espaco de exemplos da mesma forma.
3. No aprendizado por interpretacoes, a classe de um exemplo nao e influenci-
ada pela presenca ou ausencia de quaisquer outros exemplos, alem disso, sua
cobertura por uma clausula depende apenas: da clausula, dos fatos em sua
interpretacao e do background knowledge; que sao os mesmos para ambos
modelos. Logo, um exemplo, alem de independente dos demais, e coberto da
mesma forma por ambos os modelos, quando compara-se os pares de clausulas
relacionadas pela bijecao.
4. Permanece a hipotese de distribuicao estacionaria do fluxo, i.e., o fluxo de da-
dos tem distribuicao igual (muito proxima) a da populacao original (ausencia
mudancas na distribuicao durante o tempo - concept drifts). Logo, em qual-
quer segmento do fluxo, com tamanho suficiente, a distribuicao das classes tera
proporcao muito proxima a do conjunto de dados inteiro.
Dado o exposto, concluımos que a probabilidade de haver escolhas diferentes no
nıvel i nao sofre a influencia de elementos adicionais gerados pelo aprendizado por
interpretacao, i.e., elementos que nao estivessem presentes no caso proposicional, e,
portanto, e possıvel computar δ′ usando diretamente a expressao do limitante de
Hoeffding sem alteracoes. Portanto, δ′ = δ, onde δ e dado pela equacao 3.4. Pode-se
afirmar, entao, que a inequacao P (NHTTδi 6= NLDT∗
i |Ii−1) ≤ δ se preserva, da mesma
forma que no paradigma proposicional.
O restante da demonstracao segue da mesma forma que no caso proposicional,
ou seja, conforme o restante do teorema 3.1.
59
4.2 Resultados com a base de dados CORA
O CORA e uma base de dados relacional real introduzido por McCallum em [29]
e esta disponıvel em [6]. Ele contem informacoes sobre publicacoes cientıficas, como
tıtulo, nome do autor, editora, ano de publicacao. O problema proposto consiste em
identificar quando duas referencias estao relacionadas a um mesmo artigo.
Em relacao a sua estrutura, o CORA e uma base desbalanceada cujos exemplos
positivos compoem apenas 4% do total, sendo negativos os 96% restantes. Desta
forma, a medida-F (F-measure) foi levada em consideracao na avaliacao da perfor-
mance. Alem disso, o conjunto total dos dados e composto de 5 particoes (folds),
de modo que cada uma possui aproximadamente 840 mil exemplos e conhecimento
preliminar (background knowledge).
Em [28] executou-se variados experimentos com o CORA visando uma melhor
medida-F, porem os resultados obtidos com o HTILDE nao ultrapassaram 41%.
Dado o exposto, estudou-se sua estrutura, buscando um entendimento que explicasse
a causa dos maus resultados.
Foi, entao, descoberto que a versao distribuıda em [6] apresenta, em cada uma de
suas particoes, a seguinte organizacao: uma sequencia de exemplos de treino com,
aproximadamente, 400000 positivos seguida de 20000 negativos e uma sequencia de
teste com, aproximadamente, 400000 exemplos positivos seguidos de 20000 negati-
vos.
Uma vez que o HTILDE le sequencialmente os dados, tal organizacao estava cau-
sando uma mudanca de distribuicao drastica, o que e um problema para o HTILDE,
bem como o seria para VFDT. Alem disso, este tipo de sequencia dificilmente acon-
teceria em um fluxo real.
A partir desta descoberta, adotou-se a estrategia de reordenar os exemplos do
CORA, antes da execucao de quaisquer experimentos. Tal ordenacao e feita de modo
a garantir distribuicao estacionaria ao fluxo dados a ser analisado pelo HTILDE. Por
fim, este procedimento levou a resultados expressivamente melhores. Antes de expor
os resultados, alguns detalhes sobre como realizam-se os novos experimentos com o
CORA sao discutidos.
Aproveitando o particionamento original, foi realizada validacao cruzada 5x2
[14], desta forma cada particao fornecia duas rodadas de treino/teste: na primeira
rodada a primeira metade serve de treino (e restante de teste) e na segunda rodada a
primeira serve de teste (e o restante de treino). As medidas colhidas foram: tempo
de inducao (em segundos), numero de nos (regras), numero de literais, acuracia,
medida-F, AUC-ROC e AUC-PR.
Cada bateria de 5x2 = 10 experimentos foi realizada 10 vezes, todos com dados
estacionariamente distribuıdos. Adicionalmente, o teste t corrido [35] [48] foi usado
60
para verificar se as diferencas entre os algoritmos eram significativas. Os resultados
numericos seguem na tabela 4.1.
TILDE HTILDETempos 40,5 21,1Nos 23,9 6,2Literais 57,7 18,4Acuracia 0,99 0,99Medida-F 0,94 0,90AUC-PR 0,95 0,93AUC-ROC 0,99 0,99
Tabela 4.1: Resultados para o problema CORA
O HTILDE apresentou um tempo de aprendizado quase 2 vezes mais rapido,
numero de nos (e portanto de regras) 3,8 vezes menor e literais 3,1 vezes menor,
todos com diferenca estatisticamente significativa para p < 0, 001. Adicionalmente,
nao houve diferencas em relacao a acuracia e AUC-ROC. Porem, o TILDE conseguiu
uma medida-F 0,03 melhor e AUC-PR 0,02 melhor, tambem para p < 0, 001.
Dados o tamanho do conjunto de dados do CORA e o comportamento assintotico
esperado do HTILDE, tais resultados mostraram-se coerentes com os obtidos em [28]
com a base BONGARD. A medida que o numero de exemplos cresce, as medidas
de performance melhoraram. As curvas de aprendizado obtidas com o CORA estao
mostradas na tabela 4.2. Para confeccionar tais curvas, subconjuntos de dados com
percentuais dos exemplos originais foram construıdos, e progressivamente aumentou-
se a porcentagem de exemplos para treino. Alem disso, a proporcao de 96% e 4%
entre as classes foi preservada.
61
%exemplos Tempo Nos Lits. Acur. Medida-F AUC-PR AUC-ROCHTILDE
0,004 1,6 0,0 0,0 0,96 0,00 0,03 0,480,008 1,7 1,0 3,0 0,99 0,91 0,83 0,990,016 1,9 1,5 4,5 0,99 0,91 0,80 0,990,031 2,2 1,7 5,1 0,99 0,91 0,80 0,990,063 2,9 2,0 6,0 0,99 0,91 0,80 0,990,125 4,1 2,4 7,2 0,99 0,91 0,80 0,990,250 7,2 3,7 11,1 0,99 0,89 0,96 0,990,500 11,8 4,8 14,2 0,99 0,90 0,97 0,991,000 21,1 6,2 18,4 0,99 0,90 0,93 0,99
TILDE0,004 1,6 3,2 9,6 0,99 0,92 0,93 0,980,008 1,8 4,7 13,7 0,99 0,94 0,94 0,990,016 2,0 5,7 16,9 0,99 0,94 0,97 0,990,031 2,6 7,9 21,7 0,99 0,93 0,94 0,990,063 3,9 10,0 25,6 0,99 0,93 0,93 0,990,125 5,5 11,6 30,6 0,99 0,93 0,95 0,990,250 10,2 15,5 39,3 0,99 0,93 0,95 0,990,500 17,4 20,2 50,0 0,99 0,93 0,95 0,991,000 40,5 23,9 57,7 0,99 0,94 0,95 0,99
Tabela 4.2: CORA - Curvas de aprendizado
E possıvel notar que a acuracia pouco varia em funcao de o conjunto ser desba-
lanceado. A AUC-ROC tambem mostra pouca sensibilidade. Devido a forma como
ambas as medidas sao calculadas, basta predizer a classe mais frequente para um
bom resultado.
A AUC-PR, assim como a medida-F, leva em conta a precisao e a revocacao.
Desta forma, caso um classificador deixe de aprender alguma das classes, influenciado
pelo mal-balanceamento, estas medidas automaticamente tornam-se baixas. Isso
faz com que ambas sejam mais confiaveis. Os graficos relacionados as curvas de
aprendizado para a medida-F e AUC-PR estao mostrados nas figuras 4.1 e 4.2,
respectivamente.
Por essas curvas, e possıvel notar que o HTILDE precisa de mais exemplos do
que o TILDE para o aprendizado. Este resultado e esperado, pois o HTILDE usa
amostragem e, apos uma decisao de particionamento, faz o descarte dos da amostra
usada para tomar tal decisao.
Suponha um conjunto de dados com 1000 exemplos e que o HTILDE esteja com
o parametro emin = 300; caso o limitante de Hoeffding fosse superado na raiz com
os primeiros 300 exemplos, os proximos 700 seriam repassado para seus filhos. Num
caso extremo, se todos os exemplos fossem encaminhados apenas aos sub-ramos da
62
0.0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1.0F-
Mea
sure
0.004 0.008 0.016 0.031 0.063 0.125 0.25 0.5 1.0
%exemplos
Learning Curves
TILDEHTILDE
Figura 4.1: CORA: Curvas de aprendizado para a medida-F
0.0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1.0
AU
C-P
R
0.004 0.008 0.016 0.031 0.063 0.125 0.25 0.5 1.0
%exemplos
Learning Curves
TILDEHTILDE
Figura 4.2: CORA: Curvas de aprendizado para a AUC-PR
63
esquerda, o HTILDE teria apenas 3 oportunidades de evoluir a arvore. Isto gera um
modelo excessivamente geral.
Ja o TILDE, por nao descartar exemplos, tem muito mais oportunidades de
adaptar a arvore aos dados, mesmo com um conjunto menor. Porem, a analise do
comportamento assintotico garante que quando ha um numero grande de exemplos,
ambos algoritmos tendem a aprender classificadores bastante proximos.
E importante destacar que conforme o numero de exemplos aumenta, a diferenca
na qualidade dos modelos aprendidos pelos dois algoritmos torna-se desprezıvel Alem
disso, o HTILDE aprende mais rapido que o TILDE. Essas duas caracterısticas
evidenciam a vantagem do HTILDE nos conjuntos de dados gigantes.
Tambem foi investigado como os parametros emin, τ e δ poderiam melhorar os
modelos aprendidos. Para tal, validacao interna 5x2 foi executada da seguinte forma:
cada parametro foi variado de um valor mınimo a um maximo, seguindo uma certa
forma de atualizacao, enquanto os demais foram mantidos nos valores padrao.
O parametro emin foi testado com 1% e depois variado entre 5% e 100%
dos exemplos, com incrementos de 5%. O parametro τ foi variado entre 0% e
20% com incrementos de 1% e de 20% a 100% com passos de 5%, esta ultima
granularidade foi usada pois o parametro mostrou-se mais sensıvel na faixa de
0% a 20%. E, por fim, o parametro δ foi testado com os seguintes valores:
{10−8, 10−7, 10−6, 10−5, 10−4, 10−3, 10−2, 10−1}. Os valores de cada parametro que
obtiveram os melhores resultados foram combinados com os melhores valores dos
demais e novos experimentos foram executados.
Ao termino dessa bateria de experimentos, foi verificado que a melhor para-
metrizacao foi justamente aquela composta pelos valores padrao do VFDT, i.e.:
emin = 300, τ = 0, 05 e δ = 10−6, os mesmos usados em nossos experimentos. A
melhor parametrizacao foi considerada aquela que obteve menor tempo de inducao,
menor tamanho dos modelos e melhores medidas de qualidade.
64
Capıtulo 5
HTILDE-RT
Neste capıtulo, sao apresentadas as principais contribuicoes deste trabalho: o
algoritmo HTILDE-RT, que e explicado na secao 5.1 e os resultados experimentais,
que sao discutidos na secao 5.2.
5.1 Hoeffding TILDE Regression Trees
Nesta secao, e apresentado o algoritmo HTILDE-RT: um algoritmo escalavel
para o aprendizado de arvores de regressao de logica de primeira ordem em fluxos de
dados. Sua organizacao e a seguinte: na secao 5.1.1, e apresentada a motivacao e faz-
se uma introducao ao metodo; na secao 5.1.2, discute-se a adaptacao da heurıstica
as condicoes do limitante de Hoeffding; na secao 5.1.3, o tratamento de atributos
numericos usado neste trabalho e discutido; na secao 5.1.4, e provido o pseudo-codigo
do algoritmo HTILDE-RT; na secao 5.1.5, detalhes sobre a especificacao de um
problema sao fornecidos; e, na secao 5.1.6, alguns detalhes da atual implementacao
sao apresentados.
5.1.1 Introducao
O HTILDE-RT e uma extensao do HTILDE para os problemas de regressao,
que une o poder do representacao do TILDE-RT a eficiencia do VFTD. O HTILDE-
RT, herda os tres parametros emin, τ e δ do VFDT e realiza o aprendizado de seus
modelos de forma bastante parecida com a do TILDE-RT, conforme e mostrado
adiante.
As arvores de regressao em logica de primeira ordem permitem o tratamento de
problemas de regressao em ILP de forma bastante direta, alem de terem a atraente
propriedade de manterem a interpretabilidade dos modelos, como as arvores de de-
cisao. Alem disso, tais modelos podem ter aplicacoes em diversas outras areas, por
exemplo: na representacao das tabelas de probabilidade condicionais das redes de
65
dependencias relacionais (Relational Dependency Networks) [36]; e na representacao
de funcoes potenciais em campos condicionais aleatorios aplicados a problemas re-
lacionais [21].
Uma vez que os sistemas VFDT e TILDE/TILDE-RT ja foram explicados nos
capıtulos anteriores, o entendimento do HTILDE-RT fica bastante facilitado. Porem,
neste capıtulo, e explicado de forma mais detalhada as principais diferencas, bem
como argumentos teoricos por tras do HTILDE-RT sao providos.
5.1.2 Alteracao da heurıstica
Foi exposto que o TILDE-RT usa como heurıstica a reducao na soma dos qua-
drados das distancias, porem o limitante de Hoeffding precisa que a variavel obser-
vada esteja delimitada em um intervalo. Para tal, foi aplicada uma normalizacao a
heurıstica, dando origem a seguinte heurıstica modificada:
H(r, l) =SS(L)− (SS(N(r)) + SS(P(r))
SS(L)(5.1)
O teorema 5.1 garante que SS(L) ≥ SS(N(r)) + SS(P(r)), entao e valido que
0 ≤ H ≤ 1. Logo, e possıvel usar R = 1 na equacao do limitante de Hoeffding,
resultando em:
ε =
√ln(1/δ)
2n(5.2)
Vale reforcar que o Aprendizado por Interpretacoes garante a cobertura local dos
exemplos. Esta condicao permite o uso de amostragem uma vez que a cobertura de
um exemplo nao depende de outro.
A demonstracao de que a normalizacao delimita a heurıstica usada e provida.
Isto e importante para satisfazer as condicoes necessarias do limitante de Hoeffding.
Seja S ⊂ R e y ∈ R, entao a soma dos quadrados das distancias entre o valor y e os
elementos de S e dado por:
SS(y, S) =
|S|∑i=1
(y − yi)2 (5.3)
Observacao: Para simplificar, e cometida uma sobrecarga do functor SS/2. Porem,
somente no contexto desta demonstracao, o primeiro argumento refere-se a um
numero real, em vez de um refinamento.
Lema 5.1. SS(y, S) tem valor mınimo quando y = µ(S).
66
Prova 5.1. Tomando-se a primeira derivada vem que:
dSS(y, S)
dy=
|S|∑i=1
2(y − yi) = 2(|S|y −|S|∑i
yi)
Igualando a zero, vem:
2(|S|y −|S|∑i=1
yi) = 0→ y =
∑|S|i yi|S|
= µ(S) �
Teorema 5.1. Sejam S1 e S2 subconjuntos de S, tais que: S1∪S2 = S e S1∩S2 = ∅,entao: SS(S) ≥ SS(S1) + SS(S2)
Prova 5.2. Sejam: SS(S) = SS(µ(S), S); SS(S1) = SS(µ(S1), S1); e SS(S2) =
SS(µ(S2), S2).
Ocorre que: SS(µ(S), S) = SS(µ(S), S1) + SS(µ(S), S2).
Mas: SS(µ(S), S1) ≥ SS(µ(S1), S1), pois a media µ(S1) e o ponto que minimiza
SS(S1), e o analogo pode ser dito para SS(S2).
Entao: SS(S) = SS(µ(S), S1) + SS(µ(S), S2) ≥ SS(µ(S1), S1) + SS(µ(S2), S2).
Logo:
SS(S) ≥ SS(S1) + SS(S2) �
5.1.3 Tratamento de atributos numericos
O TILDE/TILDE-RT pode tratar os atributos numericos basicamente de duas
formas: 1) O usuario usa seu conhecimento sobre o domınio e fornece as constantes
candidatas ao particionamento; ou 2) Aplica um pre-processamento para determinar
tais constantes, que pode ser feito atraves de um processo de discretizacao, que pode
ser feito por um algoritmo de agrupamento (clustering), ou de simples coleta de todos
os valores que ocorrem nos dados (semelhante ao C4.5).
Posto isso, neste trabalho, foram fornecidas ao HTILDE-RT as constantes candi-
datas ao particionamento, visto que pre-processamento nao e adequado ao ambiente
de fluxos, pois apenas uma passada dos exemplos e possıvel. Alem disso, como ape-
nas conjuntos de dados sinteticos foram usadas, tais constantes eram conhecidas.
Suponha que o problema Milhas por Galao fosse tratado no HTILDE-RT.
Entao, um predicado aceleracao(Ex,A) poderia ter as constantes candidatas ao
particionamento com as seguintes declaracoes: rmode((aceleracao(+Ex,A), A <
#[10, 15, 20])). e rmode((aceleracao(+Ex,A), A > #[20]))..
A variavel +Ex indica que o identificador do exemplo e uma variavel de en-
trada, a variavel A sera unificada com a aceleracao do exemplo analisado, sendo
comparada atraves do operador < com as constantes 10 e 15 e atraves do operador
67
> com a constante 20. Gerando os seguintes literais, que poderao ser acrescenta-
dos aos refinamentos: aceleracao(+Ex,A), A < 10, aceleracao(+Ex,A), A < 15,
aceleracao(+Ex,A), A < 20 e aceleracao(+Ex,A), A > 20.
E possıvel ainda usar uma forma mais avancada de declaracao dos rmodes. Tal
forma assemelha-se a estrategia do VFDT, em que uma certa quantidade de valores
que ocorrem nos exemplos de uma folha sao usados como limiares (threshold). A
construcao possui o seguinte padrao: “rmode(N : #(n*m*V : conj1, conj2 )).”, onde:
N - e o numero de vezes que a conjuncao conj2 pode ser usada em um caminho
entre a raiz e uma folha;
n - e o numero maximo de exemplos a ser considerado dentre os exemplos da folha;
m - e o numero maximo de ocorrencias do padrao conj1 por exemplos;
V - e uma lista de variaveis que ocorre em conj1, cujas unificacoes com os exemplos
retornam as possıveis constantes;
conj1 - e o padrao a ser procurado nos exemplos;
conj2 - e a conjuncao final, que podera ser acrescentadas aos refinamentos.
Por exemplo, se o problema MPG fosse adaptado ao formato das interpretacoes,
cada exemplo possuiria um fato sobre o atributo cilindradas: “cilindradas(X).”.
Entao, ao tentar refinar a raiz, a declaracao:
“rmode(1 : #(3 ∗ 1 ∗ C : cilindradas(C), (cilindradas(+X), X < C))).”;
implicaria que as conjuncoes: (cilindradas(+X), X < 429)), (cilindradas(+X), X <
454)), (cilindradas(+X), X < 455)); poderiam ser usadas nos refinamentos, cada
uma no maximo N = 1 vezes.
Ainda neste exemplo: o padrao conj1 = cilindradas(C) deve ser procurado nos
exemplos; os n = 3 primeiros exemplos sao usados para retornar possıveis valores de
C; apenas m = 1 ocorrencias por exemplo devem ser consideradas, maiores detalhes
sobre a geracao de constantes podem ser obtidos em [13].
5.1.4 Algoritmo
Antes de apresentar os algoritmos, e importante explicar a seguinte notacao:
cada folha l da arvore tem um contador contador[l], que armazena estatısticas glo-
bais dos exemplos observados no vetor contador[l].estatisticas. Este vetor guarda
as seguintes informacoes: a componente contador[l].estatisticas[0] conta o numero
de exemplos que ja passaram por l; a componente contador[l].estatisticas[1] ar-
mazena a soma dos valores do atributo alvo y nos exemplos de l; e a componente
contador[l].estatisticas[2] armazena a soma dos quadrados dos valores do atributo
alvo, i.e. y2. Portanto, uma vez que o algoritmo preditivo 5.3 usa o valor medio de
y como saıda para uma nova observacao que chegue em l, para computar a media
68
em l basta usar: contador[l].estatisticas[1]/contador[l].estatisticas[0].
Alem disso, cada folha tem contadores adicionais associados a cada um de seus
possıveis refinamentos, denotados conforme a seguinte notacao: cada refinamento i
de uma folha l tem um contador para os exemplos que tem sucesso no teste de i:
contador[l][i][true].estatisticas; e, adicionalmente, um contador para os exemplos
que falham no teste de i: contador[l][i][false].estatisticas. Quando l e criada,
todos os seus contadores sao inicializados com a tripla 〈0, 0, 0〉, que significa: zero
exemplos, soma dos valores de y igual a zero e soma dos quadrados dos valores de y
igual a zero.
O pseudo-codigo do procedimento de inducao e mostrado no algoritmo 5.1.
Comeca-se com uma folha unica l1, a raiz, e sua consulta associada e a consulta
vazia, Q1 = true. Entao, atraves dos literais (ou conjuncoes) providas no vies de
linguagem do problema, todos os possıveis refinamentos sao gerados pelo operador
de refinamento ρ, o qual cria uma nova consulta para cada possibilidade de literal a
ser adicionado, linha 2. Uma vez que nenhum exemplos passou por l1, as estatısticas
globais, e de todos os refinamentos, sao inicializadas com 〈0, 0, 0〉, linhas 3 a 6.
Em seguida, os exemplos no fluxo S comecam a ser entregues, um a um, para o
modelo em aprendizado, linha 7. O exemplo e e levado ate uma folha da arvore, o
que e feito atraves da cobertura dos fatos que compoem sua interpretacao com as
consultas associadas de cada no presente no caminho entre a raiz e a folha adequada,
linha 8. No caso da raiz vazia, qualquer exemplo, inclusive e, tem sucesso na consulta
associada de l1, true.
Entao, as estatısticas globais de l1, contador[l1].estatisticas, sao atualizadas. Se
y e o atributo alvo de e, entao:
contador[l1].estatisticas[0] := contador[l1].estatisticas[0]+1;
contador[l1].estatisticas[1] := contador[l1].estatisticas[1]+y;
contador[l1].estatisticas[2] := contador[l1].estatisticas[2]+y2;
conforme a linha 12. A mesma atualizacao e feita nos contadores de cada refinamento
de acordo com a cobertura de e: Se Qi cobrir e, entao contador[l][i][true].estatisticas
e atualizado de forma semelhante, caso contrario, contador[l][i][false].estatisticas
e atualizado, linhas 13 a 17.
Este processo de cobertura e altamente otimizado pelo uso dos pacotes de
clausulas, pois numa folha todos os refinamentos possuem o mesmo prefixo (sua con-
sulta associada). Conforme a arvore cresce, a profundidade de suas folhas tambem
aumenta e o numero de literais nas respectivas consultas associadas tambem. Por-
tanto, a medida que o processo de aprendizado se desenvolve os, pacotes proporcio-
nam progressivamente mais economia.
Em cada momento que um novo exemplo chega em uma folha l, ela precisa
verificar se emin novos exemplos ja foram observados. Em outras palavras, ela verifica
69
se ja pode recomputar as heurısticas para cada refinamento e verificar se pode haver
particionamento, linha 19. Caso nao tenham chegado exemplos suficientes, entao
simplesmente espera-se por mais, caso contrario, as heurısticas dos refinamentos
sao computadas usando a equacao 5.1. Em funcao do uso dos contadores, toda
informacao necessaria para tal tarefa esta prontamente disponıvel, linha 21.
Finalmente, deve-se verificar se a diferenca entre os dois melhores refinamentos
e maior que o limitante de Hoeffding, ou se e menor que o limiar de desempate τ . O
limitante e computado usando a equacao 5.2, que utiliza δ e o numero de exemplos
|El|, linhas 21 ate 26. Se uma das duas condicoes estiver satisfeita, entao a folha
sofrera particionamento e tornar-se-a um no interno cujo teste e Qa, senao a folha
devera esperar por mais emin novos exemplos ate que o processo de verificacao se
repita. A notacao |El| e usada para tornar a leitura mais clara, pois, na verdade,
basta consultar contador[l].estatisticas[0] para saber o numero de exemplos que
passaram por l.
O algoritmo do HTILDE-RT guarda semelhancas do HTILDE. De fato, as prin-
cipais mudancas no aprendizado estao: na heurıstica usada, que deve ser adequada
ao caso contınuo, e ao passo extra de normalizacao, que acarreta apenas o custo de
uma operacao extra de divisao; e no acumulo das estatısticas em vez de contagem
das classes.
A funcao FazParticionamento esta detalhada no algoritmo 5.2. Provida do me-
lhor refinamento e a consulta associada de l, a funcao primeiramente identifica a
conjuncao de literais que havia sido adicionada em Ql para gerar Qa. Esta e uma
tarefa facil, uma vez que Ql e prefixo de Qa, linha 1.
Em seguida, l e convertida em um no interno, cujo teste e conj, e seus contadores
sao descartados, linha 2.
Duas novas folhas sao criadas para cada ramo: a folha esquerda ficara associada
aos exemplos que tiverem sucesso no teste de seu pai, desta forma sua consulta asso-
ciada sera o melhor refinamento de seu pai (agora o teste do pai) e seus candidatos
a refinamentos sao obtidos atraves de ρ(Qa), linha 6; a folha da direita ficara associ-
ada aos exemplos que falham no teste Qa, porem a antiga consulta associada de l e
valida nestes exemplos (a antiga consulta associada de l, quando era uma folha, era
o teste de seu pai, que agora e avo da nova folha direita de l), portanto a consulta
associada da folha direita sera a mesma do avo Ql e seus refinamentos sao obtidos
por ρ(Ql), linha 8.
Note que este passo garante que novas variaveis que aparecam em Qa nao sao
propagadas ao ramo direito, isto e importante pois elas nao teriam significado para
os exemplos que caıssem nesta folha.
Alem disso, cada nova consulta tem seus contadores inicializados com a tupla
〈0, 0, 0〉, linhas 11 e 12. Finalmente, o novo modelo e retornado ao processo incre-
70
Algoritmo 5.1 Algoritmo HTILDE-RT, para inducao de uma arvores de regressaode logica de primeira ordem em fluxos de dados.Entradas:
S e um fluxo de exemplos (interpretacoes);ρ(.) e um operador de refinamento;Q um conjunto de possıveis refinamentos;H(.) uma funcao de heurıstica para avaliar os refinamentos;δ e um menos a probabilidade desejada de escolher
o teste correto em qualquer no;τ e o limiar de desempate definido pelo usuario;emin e o numero mınimo de exemplos entre cada computo das heurısticas.
Saıda: HTRT , uma arvore de regressao de logica de primeira ordem.Procedimento HTILDERT (S, H, δ, τ , emin)
1: Seja HTRT uma arvore com uma folha unica l1 (a raiz).2: Seja Q1 = ρ(← true).3: Faca contador[l1].estatisticas = 〈0, 0, 0〉.4: Para cada refinamento ← Qi ∈ Q1 {Inicializa raiz}5: Faca contador[l1][i][true].estatisticas = 〈0, 0, 0〉.6: Faca contador[l1][i][false].estatisticas = 〈0, 0, 0〉.7: Para cada exemplo e ∈ S {Entrega os exemplos para as folhas}8: Desca e ate a folha l usando HTRT .9: Seja ← Ql a consulta associada de l.
10: Seja Ql = ρ(← Ql).11: Seja y o atributo alvo de e12: Atualize contador[l].estatisticas com y.13: Para cada refinamento ← Qi ∈ Ql
14: Se ← Qi tem sucesso a partir de e ∧B, entao15: Atualize contador[l][i][true].estatisticas com y.16: Senao17: Atualize contador[l][i][false].estatisticas com y.18: Seja El o conjunto atual dos exemplos de l.19: Se |El| mod emin = 0, entao {Verifica possibilidade do split}20: Para cada refinamento ← Qi ∈ Ql21: Compute H(Qi, l) usando a equacao 5.1 e |El|22: Seja ← Qa o refinamento de maior H.23: Seja ← Qb o refinamento com o segundo maior H.24: Compute ε usando a equacao 5.2.25: Seja ∆H = H(Qa, l)−H(Qb, l).26: Se ∆H > ε ou ∆H ≤ ε < τ , entao27: FazParticionamento(HTRT , l, Qa, Ql).28: Retorne HTRT .
71
mental de inducao.
Algoritmo 5.2 Funcao FazParticionamento, chamada pelo HTILDE-RT, cujopseudo-codigo e exibido no algoritmo 5.1.
Entradas:HTRT e a arvore de regressao de LPO a ser modificada;l e uma folha de HTRT que sofrera particionamento;Qa e o melhor refinamento para o no l;Ql e a consulta associada do no l.
Saıda: HTRT , que e a arvore de regressao de LPO que sofreu particionamento nono l.Funcao FazParticionamento (HTRT , l, Qa, Ql)
1: Seja conj = Qa −Ql.2: Substitua l por um no interno cujo teste e conj. {l vira um no interno}3: Para cada ramo do particionamento {Cria os novas folha}4: Adicione uma nova folha lm.5: Se lm e do ramo esquerdo, entao6: Faca Qm = ρ(← Qa).7: Senao (lm e do ramo direito)8: Faca Qm = ρ(← Ql).9: Seja contador[lm].estatisticas = 〈0, 0, 0〉. {Incializa novos contadores}
10: Para cada refinamento ← Qi ∈ Qm
11: Faca contador[lm][i][true].estatisticas = 〈0, 0, 0〉12: Faca contador[lm][i][false].estatisticas = 〈0, 0, 0〉13: Retorne HTRT .
O processo de predicao de exemplo e, cujo atributo alvo e nao observado,
esta mostrado no algoritmo 5.3. Ele consiste em fazer e percorrer a arvore ate
uma folha adequada l, linha 3, iterativamente testando o exemplo contra a con-
sulta associada de cada no no caminho da raiz a folha, linhas 4 a 9. As es-
tatısticas armazenadas no contador global da folha sao entao usadas para obter
o valor de saıda. O valor predito e o valor medio do atributo alvo observado
nos exemplos de treino que alcancaram l. Desta forma, a saıda e obtida por:
contador[l].estatisticas[1]/contador[l].estatisticas[0], linha 10.
72
Algoritmo 5.3 Algoritmo de predicao de um exemplo usando o HTILDE-RT
Entrada:e e um exemplo.
Saıda:y e a media que ficou guardada na folha alcancada por e.
Procedimento Prediz (e)
1: Seja Q a consulta Prolog true.2: Seja N o no raiz da arvore.3: Enquanto N nao for uma folha {Encaminha ‘e’ a folha adequada}4: Seja N = noInterno(conj, esq, dir).5: Se Q ∧ conj for verdadeira em e ∧B, entao {Monta consulta associada}6: Faca Q = Q ∧ conj.7: Faca N = esq.8: Senao9: Faca N = dir.
10: Faca y = contador[N ].estatisticas[1]/contador[N ].estatisticas[0]11: Retorne y. {Responde conforme o modelo preditivo}
5.1.5 Especificacao de um problema
Para especificar-se um problema a ser resolvido pelo HTILDE-RT, basta usar
os recursos ja explicados nas secoes anteriores. Para tal, deve-se acrescentar as
seguintes declaracoes no arquivo de configuracoes “.s” do problema:
1. Pedir a carga do modulo do HTILDE: load package(htilde).;
2. Determinar o predicado alvo e sua variavel de saıda:
predict(predicadoAlvo(+,...,-)).;
3. Determinar que deve ocorrer uma regressao: tilde mode(regression).;
4. Especificar o vies de linguagem atraves das declaracoes dos “rmodes” e dos
tipos;
5. Especificar os parametros δ, emin e τ , aqui exemplificados com seus
valores padrao:
(a) htilde delta(0.000001).
(b) htilde emin(300).
(c) htilde tau(0.05).
6. Determinar que a inducao deve ser feita com o HTILDE: exe-
cute(induce(htilde)).
Alem disso, deve-se prover o arquivos “.kb” que contem os exemplos, o arquivo
“.bg” com o conhecimento preliminar (opcional).
E possıvel ainda fazer uso de outras funcionalidades do sistema ACE (sistema do
qual tanto o TILDE quanto HTILDE fazem parte), como padroes de saıda para os
73
modelos (formato de arvores C4.5 e/ou clausulas Prolog) uso de validacao cruzada,
dentre outros. Estas e mais funcionalidades estao detalhadas em [13].
5.1.6 Aspectos de implementacao
O HTILDE-RT foi implementado como parte do sistema ILP ACE. Embora
o HTILDE-RT tenha a facilidade de usar funcionalidades providas pelo sistema
ACE, tal sistema e um ambiente ILP generico, que suporta outros algoritmos de
aprendizado, nao sendo verdadeiramente otimizado para tratar dados infinitos. De
fato, o sistema armazena listas de inteiros que indexam os exemplos e muitas outras
informacoes que crescem na memoria conforme o numero de exemplos aumenta.
Portanto, dependendo do numero de exemplos, o sistema pode simplesmente
abortar por falta de memoria. Entao, sob um ponto de vista teorico, o HTILDE-
RT tem a capacidade de aprender de uma massa de dados potencialmente infinita,
porem, em termos praticos, o ambiente em que foi desenvolvido nao suporta tal tipo
de processamento.
Durante as tentativas de contornar tais limitacoes, interagiu-se diversas vezes
com os desenvolvedores do sistema ACE, que, apesar de proporcionarem enorme
ajuda com sistema, concluıram que tais limitacoes somente podem ser rompidas
numa implementacao dos algoritmos HTILDE/HTILDE-RT que seja independe do
sistema ACE.
5.2 Resultados Experimentais
Nesta secao, os resultados experimentais obtidos com o HTILDE-RT sao apre-
sentados. Na secao 5.2.1, e explicada a metodologia aplicada nos experimentos com
todos os problemas (conjuntos de dados). Na secao 5.2.2, cada problema e intro-
duzido e os respectivos resultados sao expostos e analisados. Os problemas sao
expostos na seguinte ordem: nas duas sub-secoes iniciais, sao apresentados dois pro-
blemas relacionais e resultados obtidos; e nas tres ultimas secoes, sao apresentados
os resultados em tres problemas proposicionais complementares.
5.2.1 Metodologia
Conforme constatado em [46], existe uma escassez de problemas de regressao
relacionais publicamente disponıveis. Durante o desenvolvimento deste trabalho,
foi constatado tambem que os conjuntos de dados proposicionais disponıveis nao
possuem uma quantidade de exemplos suficientemente grande que justifique o uso
do HTILDE-RT e tampouco um gerador de exemplos pode ser construıdo para
torna-los maiores.
74
Em funcao do exposto, cinco conjuntos artificiais foram utilizados. Construımos
programas geradores de exemplos para os dois conjuntos sinteticos relacionais intro-
duzidos em [46] e para tres conjuntos proposicionais adicionais: FRIEDMAN, MV
e 2D-Planes; que podem ser obtidos em [45].
Todos os conjuntos de dados foram gerados com 2 milhoes de exemplos. Cada
gerador foi implementado de acordo com as leis de formacao especıficas de cada
problema. Os estimadores das medidas de interesse foram obtidos atraves de va-
lidacao cruzada externa 5x2 [14]. As medidas de interesse coletadas foram: Tempo
de aprendizado em segundos, Tempo; tamanho das arvores em numero de nos, Nos ;
numero de literais na teoria, Literais ; coeficiente de correlacao de Pearson, Pearson;
e a raiz quadrada do erro quadratico medio, RMSE.
Adicionalmente, curvas de aprendizado foram tracadas da seguinte forma: o
conjunto de teste, cujo tamanho foi estabelecido em 100000 exemplos, foi fixado
e separado dos demais; em seguida, as medidas de interesse foram monitoradas
conforme numero de exemplos de treino foi aumentado.
Em relacao aos atributos contınuos, como os conjuntos usados sao sinteticos, os
limiares dos atributos contınuos eram facilmente determinaveis. Portanto, foram
fornecidos no vies de linguagem de cada problema. Alem disso, os valores dos
parametros do HTILDE-RT foram mantidos em configuracao padrao igual a do
VFDT [15]: emin = 300, δ = 10−6 e τ = 0, 05.
O algoritmo TILDE-RT foi usado para comparacao, com todos os seus
parametros deixados com os seus valores padrao. Convem citar que o HTILDE-
RT herda os parametros do TILDE-RT, excetuando criterios de parada e poda.
Adicionalmente, e importante salientar que ambos algoritmos funcionam dentro do
mesmo sistema ILP, ACE, o que torna a comparacao das medidas mais imunes a
elementos externos.
Apos a validacao externa, foi usado o teste t corrigido [35] [48], para verificar
se a diferenca entre as medidas obtidas pelos algoritmos eram estatisticamente sig-
nificativas. O valor de confianca do teste foi p = 0, 001, e as hipoteses alternativas
foram as seguintes:
1. O HTILDE-RT aprende os modelos mais rapido que o TILDE-RT;
2. O HTILDE-RT tem medidas de erro (Pearson/RMSE) melhores que o
TILDE-RT;
3. O HTILDE-RT produz modelos menores que o TILDE-RT;
enquanto que a hipotese nula do teste foi: Ambos algoritmos sao iguais.
Para mostrar que resultados melhores poderiam ser obtidos, foi usada validacao
interna 5x2 nos problemas relacionais Artificial1 e Artificial2. O procedimento ado-
75
tado para validacao cruzada interna variou cada parametro de acordo com a seguinte
estrategia:
• emin foi variado no intervalo [150,Max], dobrando seu valor a cada passo. Max
e o numero maximo de exemplos na validacao interna;
• δ foi variado no intervalo [10−8, 10−1], sendo multiplicado por 10 a cada passo;
• τ foi variado no intervalo [0.1, 0.9], com passos de 0, 05, adicionalmente foram
usados os valores {0.01, 0.05, 0.95, 0.99}. 1
Cada parametro foi variado mantendo os dois restantes com seus valores padrao.
Os valores que obtiveram: baixo tempo de aprendizado e/ou baixo tamanho do
modelo e/ou baixo erro, foram selecionados para mais rodadas de validacao in-
terna. Nestas ultimas rodadas, todos os parametros foram variados de acordo com as
possıveis combinacoes geradas ao cruzar-se os valores promissores de cada parametro.
Convem deixar claro que o objetivo da validacao interna foi apenas demons-
trar que melhores resultados podem ser obtidos com um ajuste dos parametros do
HTILDE-RT. Entretanto, como nao foi realizada validacao interna para aprender os
parametros do TILDE-RT, nao seria justo confrontar os resultados obtidos apos a
validacao interna do HTILDE-RT com os resultados obtidos com os valores padrao
do TILDE-RT.
5.2.2 Conjuntos de dados
Artificial1
Este problema possui dois atributos independentes: x(X) e y(Y ), cujo argumento
e uma variavel real. Cada exemplo contem um fato sobre o predicado x/1 oito fatos
sobre o predicado y/1, que podem ser resumidos atraves de agregacoes. O valores
numericos foram obtidos de forma aleatoria, de uma distribuicao uniforme entre 0
e 10. O predicado alvo, t(T ), tem o valor de seu argumento determinado de acordo
com a funcao descrita na figura 5.1.
Adicionalmente, uma segunda versao deste conjunto de dados foi gerada
acrescentando-se ruıdo gaussiano (Artificial1* ), que consistiu na adicao de um valor
ao predicado alvo, sorteado aleatoriamente de uma distribuicao normal: N ∼ σ(0, 1).
Na tabela 5.1 estao expostos os resultados obtidos.
1Excepcionalmente neste paragrafo, o ponto foi usado como separador decimal para nao haverconfusao com a vırgula, que e usada nas representacoes de conjunto e intervalo
76
x(X), X < 5?+sim : maxY |y(Y ) < 9?|+ sim : 4x(X) + 6avgY |y(Y )|+ nao : 3maxY |y(Y ) + 1+nao : avgY |y(Y ) < 4?|+ sim : 3x(X) + 4|+ nao : x(X)− 2maxY |y(Y ) + 3avgY |y(Y )
Figura 5.1: Predicado alvo para Artificial1
Tempos (s) Nos Literais Pearson RMSEArtificial1
TILDE-RT 2779,2 626,5 1253,0 1,00 1,49HTILDE-RT 533,9 208,5 417,0 1,00 1,53HTILDE-RT† 474,6 144,5 289,0 1,00 1,58
Artificial1*TILDE-RT 2756,6 560,5 1121,0 0,99 2,49
HTILDE-RT 534,3 205,0 410,0 0,99 2,53HTILDE-RT† 456,8 143,5 287,0 0,99 2,58
Tabela 5.1: Resultados para Artificial1
O HTILDE-RT foi cinco vezes mais rapido que o TILDE-RT e gerou um modelo
tres vezes menor, alem de nao demonstrar perda em relacao ao coeficiente de Pear-
son. De acordo com o teste t, estas diferencas foram estatisticamente significativas
para p < 0, 001. Entretanto, o HTILDE-RT obteve um discreto aumento no RMSE
de 2%.
O ruıdo afetou discretamente ambos algoritmos, porem de forma semelhante.
Uma discreta reducao no tamanho dos modelos, ou mesmo dos tempos, era espe-
rada. Este fenomeno se deve ao fato de ambos algoritmos terem que adiar suas
decisoes para melhor ajustarem-se aos dados, consumindo mais exemplos por parti-
cionamento.
Conforme dito, para mostrar que era possıvel melhorar os resultados, foi execu-
tada validacao interna, que obteve os parametros: emin = 2400, δ = 10−8 e τ = 0, 05.
Os resultados obtidos com tal configuracao estao mostrados nas entradas marcada
com HTILDE-RT†. A nova configuracao causou um aumento de 2% no RMSE,
entretanto uma reducao de ao menos 11% no tempo de inducao e 30% no tamanho
dos modelos sem afetar o coeficiente de Pearson.
A curva de aprendizado manteve o padrao apresentado em [28], mostrando que
o HTILDE-RT tem uma curva de aprendizado mais lenta, porem os resultados de
menor qualidade estao presentes nos conjuntos cuja quantidade de exemplos nao
justifica seu uso. Esta situacao pode ser contornada usando a tecnica de bootstrap
mostrada em [15]: treina-se um modelo com o algoritmo convencional usando uma
quantidade de pequena de exemplos, apos certo ponto evolui-se o modelo usando o
77
tecnica de aprendizado para fluxos. Tal padrao de aprendizado foi verificado tanto
no conjunto original quanto no ruidoso. Convem notar que com 1000 exemplos, o
HTILDE-RT nem mesmo chegou a realizar particionamento (Note que o parametro
emin impoe que somente a cada 300 exemplos observados as heurısticas para os
refinamentos sejam recomputadas).
Nas tabelas 5.2 e 5.3 estao as curvas de aprendizado para ambos algoritmos, e
na Figura 5.2 ha um grafico para a evolucao do RMSE.
Tabela 5.2: Curva de Aprendizado para Artificial1#Exemplos Tempo (s) Nos Literais Pearson RMSE
HTILDE-RT1× 103 77,3 3,0 6,0 0,95 19,765× 103 78,1 5,0 10,0 0,96 17,801× 104 79,7 8,0 16,0 0,97 12,065× 104 94,3 47,0 94,0 0,99 2,671× 105 109,5 92,0 184,0 1,00 1,735× 105 298,9 256,0 512,0 1,00 1,531× 106 522,0 338,0 676,0 1,00 1,50
TILDE-RT1× 103 78,5 65,0 130,0 1,00 2,135× 103 83,7 121,0 242,0 1,00 1,641× 104 91,2 153,0 306,0 1,00 1,605× 104 146,1 268,0 536,0 1,00 1,531× 105 224,0 348,0 696,0 1,00 1,515× 105 1039,5 551,0 1102,0 1,00 1,491× 106 2352,2 634,0 1268,0 1,00 1,49
78
Tabela 5.3: Curva de Aprendizado para Artificial1*#Exemplos Tempo (s) Nos Literais Pearson RMSE
HTILDE-RT1× 103 77,8 3,0 6,0 0,95 20,865× 103 78,7 4,9 9,8 0,95 18,811× 104 80,1 8,0 16,0 0,97 13,065× 104 94,6 44,9 89,8 0,99 3,721× 105 108,7 84,3 168,5 0,99 2,765× 105 294,9 253,9 507,8 0,99 2,541× 106 517,1 345,9 691,8 0,99 2,51
TILDE-RT1× 103 78,9 52,1 104,3 0,99 3,345× 103 83,8 104,1 208,3 0,99 2,711× 104 90,3 133,6 267,3 0,99 2,635× 104 144,8 230,6 461,3 0,99 2,541× 105 218,9 294,5 589,0 0,99 2,525× 105 1028,1 477,6 955,3 0,99 2,501× 106 2343,1 563,4 1126,8 0,99 2,49
0
2
4
6
8
10
12
14
16
18
20
RM
SE
1x103
5x103
1x104
5x104
1x105
5x105
1x106
#Exemplos
Curvas de aprendizadoTILDE-RTHTILDE-RT
Figura 5.2: Artificial1 - Curvas de aprendizado
79
Artificial2
Este segundo problema possui tres atributos independentes: x(X), y(C, Y ) e
z(Z). Cada exemplo contem: um fato sobre os predicados x/1 e z/1, cujos ar-
gumentos sao reais e identicamente distribuıdos entre 0 e 10; e quinze fatos sobre
o predicado y/2, cujo primeiro argumento e booleano, gerado com probabilidades
P (C = true) = P (C = false) = 0, 5, e o segundo argumento e real e uniforme-
mente distribuıdo entre 0 e 10. Novamente, os atributos com fatos multiplos foram
tratados com agregacoes. O predicado alvo, t(T ), e gerado de acordo com a funcao
mostrada na figura 5.3.
x(X), X < 6?+sim : minY |y( , Y ) < 1?|+ sim : 2x(X) + 3maxY |y(true, Y ) + 3|+ nao : 2x(X) + 5minY |y( , Y )+nao : −2x(X) + z(Z)?
Figura 5.3: Predicado alvo para Artificial2
De forma semelhante ao Artificial1, gerou-se uma segunda versao do conjunto
de dados com ruıdo gaussiano, com distribuicao N ∼ σ(0, 1), que foi chamada de
Artificial2*. Na tabela 5.4 estao expostos os resultados obtidos.
Tempos (s) Nos Literais Pearson RMSEArtificial2
TILDE-RT 5453,6 302,0 604,0 0,99 1,44HTILDE-RT 974,5 204,5 409,0 0,99 1,46HTILDE-RT† 914,9 137,5 275,0 0,99 1,46
Artificial2*TILDE-RT 5437,3 272,5 544,0 0,99 2,44
HTILDE-RT 979,6 203,5 407,0 0,99 2,46HTILDE-RT† 897,9 138,5 277,0 0,99 2,46
Tabela 5.4: Resultado para Artificial2
Neste problema, o HTILDE-RT conseguiu um aprendizado ate 5, 6 vezes mais
rapido e gerou um modelo 33% menor, sem afetar o coeficiente de Pearson, signi-
ficancia p < 0, 001. Novamente o ruıdo afetou igualmente ambos algoritmos, e de
forma analoga ao exposto no Artificial1. O TILDE-RT foi melhor que o HTILDE-
RT em relacao ao RMSE, com p < 0, 001, porem com diferenca percentual de 1%.
Os valores para o coeficiente de Pearson tiveram o mesmo comportamento que no
Artificial1.
80
O processo de validacao interna obteve os valores: emin = 2400, τ = 0.05 e δ =
10−8; cujo resultado esta indicado por HTILDE-RT†. Desta vez, a nova configuracao
nao causou impactos ao RMSE nem ao Pearson, porem reduziu em ate 8% o tempo
de inducao e em 32% o tamanho das arvores.
As curvas de aprendizado mantiveram padrao semelhante ao do Artificial1. Nas
tabelas 5.5 e 5.6 seguem as curvas das medidas colhidas para ambos conjuntos de
dados e na Figura 5.4 segue a curva de aprendizado do RMSE.
Tabela 5.5: Curva de Aprendizado para Artificial2#Exemplos Tempo (s) Nos Literais Pearson RMSE
HTILDE-RT1× 103 190,2 1,0 2,0 0,92 17,825× 103 192,1 6,0 12,0 0,98 5,721× 104 195,1 12,0 24,0 0,99 3,365× 104 214,4 57,0 114,0 0,99 1,691× 105 261,6 89,0 178,0 0,99 1,565× 105 570,7 249,0 498,0 0,99 1,461× 106 953,2 367,0 734,0 0,99 1,45
TILDE-RT1× 103 192,3 66,0 132,0 0,99 1,735× 103 200,0 100,0 200,0 0,99 1,531× 104 209,1 117,0 234,0 0,99 1,505× 104 292,4 163,0 326,0 0,99 1,451× 105 448,4 189,0 378,0 0,99 1,455× 105 2081,6 249,0 498,0 0,99 1,441× 106 4509,6 308,0 616,0 0,99 1,44
81
Tabela 5.6: Curva de Aprendizado para Artificial2*#Exemplos Tempo (s) Nos Literais Pearson RMSE
HTILDE-RT1× 103 191,3 1,0 2,0 0,92 18,825× 103 192,8 5,4 10,8 0,97 7,231× 104 195,9 11,4 22,8 0,98 4,555× 104 215,2 51,4 102,8 0,99 2,761× 105 262,1 88,5 177,0 0,99 2,565× 105 571,6 243,9 487,8 0,99 2,461× 106 955,9 365,1 730,3 0,99 2,45
TILDE-RT1× 103 192,9 50,0 100,0 0,99 2,925× 103 200,8 92,5 185,0 0,99 2,581× 104 209,6 105,4 210,8 0,99 2,535× 104 290,9 142,6 285,3 0,99 2,461× 105 444,6 168,1 336,3 0,99 2,455× 105 2081,7 239,0 478,0 0,99 2,441× 106 4498,2 286,6 573,1 0,99 2,44
0
2
4
6
8
10
12
14
16
18
RM
SE
1x103
5x103
1x104
5x104
1x105
5x105
1x106
#Exemplos
Curvas de aprendizadoTILDE-RTHTILDE-RT
Figura 5.4: Artificial2 - Curvas de aprendizado
82
FRIED Artificial Domain
Este problema proposicional foi introduzido por Friedman em [19]. Cada exemplo
possui dez atributos (predicados) reais independentes, xi | i ∈ {1, ..., 10}, todos
obtidos com distribuicao uniforme no intervalo [0, 1]. O atributo (predicado) alvo,
y, e obtido atraves da equacao 5.4. Mais informacoes sobre este problema podem
ser obtidas em [45]
y = 10 ∗ sin(πx1x2) + 20(x3 − 0.5)2 + 10x4 + 5x5 + σ(0, 1) (5.4)
A adaptacao da estrutura deste conjunto de dados para interpretacoes de logica
de primeira ordem e bastante direta. Cada atributo xi torna-se um predicado unario
xi(Xi), cujo argumento e o valor numerico do atributo xi, e a mesma conversao e
feita para gerar o atributo alvo y(Y ). Alem disso, nao ha conhecimento preliminar
(background knowledge).
Este problema, embora proposicional, tem a propriedade atrativa de o atributo
alvo ser gerado atraves de uma funcao nao trivial. Alem disso, e considerado um
problema de referencia para testar algoritmos (benchmark). Os resultados para o
conjunto de dados FRIED sao expostos na tabela 5.7
Tempo (s) Nos Literais Pearson RMSETILDE-RT 118850,8 40376,0 80752,0 0,94 1,48
HTILDE-RT 457,5 260,0 520,0 0,94 1,51
Tabela 5.7: FRIED : FRIEDMAN
Neste problema o HTILDE-RT obteve resultados expressivamente melhores, p <
0, 001, chegando a aprender 260 vezes mais rapido com modelos 155 vezes menores,
mantendo o mesmo coeficiente de Pearson e RMSE discretamente aumentado em
2%.
O tamanho excessivo dos modelos do TILDE-RT esta provavelmente relacionado
a super-adaptacao (overfitting), pois os modelos com grandes numeros de literais/nos
sugerem uma tentativa de “memorizacao” dos exemplos de treino. Ja o HTILDE-
RT, por realizar o aprendizado atraves da inspecao de pequenas amostras, torna-se
menos sensıvel a este efeito.
O grande numero de nos/literais tambem manifestou-se nas curvas de aprendi-
zado. Note que a ordem de grandeza do tamanho dos modelos do HTILDE-RT variou
em mesma escala que a variacao do numero de exemplos, enquanto o TILDE-RT
teve um crescimento mais elevado no tamanho de seus modelos. Seguem as curvas
na tabela 5.8 e o grafico do RMSE na Figura 5.5.
83
Tabela 5.8: Curva de aprendizado para o problema FRIED#Exemplos Tempo (s) Nos Literais Pearson RMSE
HTILDE1× 103 64,4 1,0 2,0 0,67 7,695× 103 65,0 3,0 6,0 0,75 5,951× 104 66,3 7,0 14,0 0,82 4,495× 104 76,6 39,6 79,1 0,91 2,401× 105 95,2 79,2 158,4 0,93 1,935× 105 263,0 391,3 782,7 0,95 1,421× 106 487,1 817,0 1634,0 0,95 1,34
TILDE1× 103 71,4 201,7 403,3 0,89 3,065× 103 122,9 877,3 1754,7 0,91 2,371× 104 217,8 1534,9 3069,8 0,92 2,145× 104 1807,5 5507,3 11014,7 0,93 1,831× 105 5009,2 9119,6 18239,1 0,94 1,735× 105 47983,2 26795,4 53590,9 0,94 1,521× 106 114462,3 40999,1 81998,2 0,95 1,45
84
1
2
3
4
5
6
7
8
RM
SE
1x103
5x103
1x104
5x104
1x105
5x105
1x106
#Exemplos
Curvas de aprendizadoTILDE-RTHTILDE-RT
Figura 5.5: FRIED - Curvas de aprendizado
MV Artificial Domain
Este e outro conjunto de dados artificial proposicional. Os exemplos contem
dez atributos, xi | i ∈ {1, ..., 10}, interdependentes. A maneira como os valores do
atributos sao gerados, bem como a atributo alvo, y, esta exposta na figura 5.6. O
processo para conversao deste conjunto para interpretacoes e o mesmo usado no
problema FRIED. Mais informacoes sobre este problema podem ser obtidas em [45].
Embora proposicional, este problema possui duas propriedades atrativas: a pri-
meira e o fato de a funcao que gera o atributo alvo ser um conjunto de regras com
formato proximo ao de uma arvore; e a segunda e o fato de os atributos preditivos
estarem relacionados entre si. Os resultados obtidos para o MV estao expostos na
tabela 5.9.
Tempo (s) Nos Literais Pearson RMSETILDE-RT 1706,1 1230,5 2425,5 0,99 24,76
HTILDE-RT 354,2 230,0 453,0 0,99 24,95
Tabela 5.9: Resultados para MV
O HTILDE-RT conseguiu aprender 4, 8 vezes mais rapido com modelos 5, 3 vezes
menores, p < 0, 001, porem com um discreto aumento de 0, 7% no RMSE.
Em relacao as curvas de aprendizado, o HTILDE-RT obteve uma curva mais
lenta nos conjuntos de dados menores, fato evidenciado principalmente pelo maior
valor no RMSE. Porem, apos 100000 exemplos o padrao de aprendizado seguiu o
85
Geracao dos atributos:x1 : uniformemente distribuıdo em [−5, 5]x2 : uniformemente distribuıdo em [−15,−10]x3 : se (x1 > 0) entao x3 = verde
senao x3 = vermelho com prob. 0, 4 e x4 = marrom com prob. 0, 6x4 : se (x3 = verde) entao x4 = x1 + 2x2
senao x4 = x1/2 com prob. 0, 3, e x4 = x2/2 com prob. 0, 7x5 : uniformemente distribuıdo em [−1, 1]x6 : x6 = x4 ∗ ε, onde ε e uniformemente distribuıdo em [0, 5]x7 : x7 = sim com prob. 0, 3 e x7 = nao com prob. 0, 7x8 : se (x5 < 0.5) entao x8 = normal senao x8 = grandex9 : uniformemente distribuıdo em [100, 500]x10 : inteiro uniformemente distribuıdo em [1000, 1200]
Para obter y, usar as seguintes regras:se (x2 > 2) entao y = 35− 0.5x4
senao se (−2 <= x4 <= 2) entao y = 10− 2x1
senao se (x7 = sim) entao y = 3− x1/x4
senao se (x8 = normal) entao y = x6 + x1
senao y = x1/2
Figura 5.6: Gerador do conjunto de dados MV
mesmo dos demais problemas. Adicionalmente, o coeficiente de Pearson mostrou
evolucao parecida com a obtida no FRIED. A tabela 5.10 mostra, entao, as curvas
de aprendizado para o conceito MV, alem disso o grafico do RMSE esta exposto na
figura 5.7.
86
Tabela 5.10: Curva de Aprendizado para MV#Exemplos Tempo (s) Nos Literais Pearson RMSE
HTILDE1× 103 66,1 1,0 2,0 0,50 708,425× 103 67,1 4,0 6,1 0,73 467,321× 104 67,4 8,5 12,9 0,92 136,325× 104 78,2 39,1 73,0 0,99 27,521× 105 86,4 81,4 155,9 0,99 25,975× 105 219,5 367,9 723,9 0,99 25,121× 106 388,7 704,4 1387,1 0,99 25,03
TILDE1× 103 69,2 126,4 240,1 0,98 33,955× 103 76,4 273,6 530,1 0,99 28,191× 104 82,1 362,0 704,8 0,99 27,075× 104 122,3 654,8 1282,4 0,99 25,691× 105 160,4 810,6 1594,0 0,99 25,325× 105 609,3 1104,4 2169,5 0,99 24,921× 106 1348,5 1205,4 2368,8 0,99 24,84
0
100
200
300
400
500
600
700
800
RM
SE
1x103
5x103
1x104
5x104
1x105
5x105
1x106
#Exemplos
Curvas de aprendizadoTILDE-RTHTILDE-RT
Figura 5.7: MV - Curvas de aprendizado
87
2D-Planes
Este problema e similar, porem nao igual, ao descrito em [10]. Cada exemplo
possui 10 variaveis independentes, Xi | i ∈ {1, ..., 10}, e uma variavel dependente Y .
O valor das variaveis preditivas sao gerados de forma independente de acordo com
as probabilidades na figura 5.2.2.
Formacao dos atributos:P (x1 = 1) = P (x1 = −1) = 1
2;
P (xm = 1) = P (xm = 0) = P (xm = −1) = 13,m ∈ {2, ..., 10};
A variavel dependente, y, e entao formada atraves da equacao:
y =
{3 + 3x2 + 2x3 + x4 + σ(0, 1), se x1 = 1
−3 + 3x5 + 2x6 + x7 + σ(0, 1), se x1 = −1
Figura 5.8: Gerador do conjunto de dados 2D-Planes
Este problema e mais simples em relacao aos demais usados. Esta caracterıstica e
interessante, pois permite verificar se o HTILDE-RT consegue adaptar-se aos dados
tao rapidamente quanto o TILDE-RT. Devido a menor complexidade do conceito,
era esperado que o TILDE-RT adaptar-se-ia rapidamente e que o HTILDE-RT con-
seguisse RMSE bem mais proximo ao do TILDE-RT.
Tempo (s) Nos Literais Pearson RMSETILDE-RT 609,0 144,5 289,0 0,97 1,00
HTILDE-RT 259,1 201,5 402,0 0,97 1,00HTILDE-RT† 199,6 113,0 226,0 0,97 1,00
Tabela 5.11: Resultados para 2D-Planes
O HTILDE-RT conseguiu um aprendizado 2, 5 vezes mais rapido, sem perdas em
relacao ao coeficiente de Pearson e no RMSE, p < 0, 001, conseguindo convergencia
nas duas medidas. Porem, o modelo gerado ficou 40% maior que o TILDE-RT.
A ausencia de perdas no RMSE evidenciou o fato esperado de que o HTILDE-RT
conseguiria maior proximidade com os resultados do TILDE-RT, o que foi alcancado
nos experimentos, com uma convergencia rapida.
Para mostrar que e possıvel melhorar os modelos aprendidos, aplicou-se dire-
tamente a configuracao dos parametros obtida na validacao interna do Artificial2
(resultados indicados por HTILDE-RT†). A nova parametrizacao conseguiu 23%
de reducao no tempo de aprendizado e 43% no tamanho das arvores, sem afetar as
medidas de qualidade (Pearson e RMSE).
88
A intuicao para o uso de tal configuracao foi a mesma no Artificial2 : com
emin maior o algoritmo faria menos computos da heurıstica, logo espera-se alguma
reducao no tempo de inducao; e com δ menor, o algoritmo tornar-se-ia mais rigo-
roso, causando uma reducao na quantidade de particionamentos, levando a modelos
menores. Entretanto, nao foi gerada por validacao interna deste problema, e isto
abre a possibilidade de que melhores resultados ainda podem ser obtidos.
A tabela 5.12 mostra o aprendizado neste problema e a Figura 5.9 expoe a curva
de aprendizado relativa ao RMSE.
Tabela 5.12: Curva de Aprendizado para 2D-Planes#Exemplos Tempo (s) Nos Literais Pearson RMSE
HTILDE-RT1× 103 52,5 1,0 2,0 0,68 10,495× 103 53,2 3,0 6,0 0,84 5,841× 104 53,5 7,0 14,0 0,90 3,685× 104 58,8 37,3 74,5 0,97 1,171× 105 67,1 70,1 140,3 0,97 1,015× 105 156,6 269,1 538,3 0,97 1,001× 106 268,4 479,1 958,3 0,97 1,00
TILDE-RT1× 103 54,4 97,1 194,3 0,96 1,385× 103 56,3 137,1 274,3 0,97 1,101× 104 56,8 133,0 266,0 0,97 1,055× 104 65,1 139,5 279,0 0,97 1,011× 105 75,2 139,5 279,0 0,97 1,015× 105 285,9 140,8 281,5 0,97 1,001× 106 606,3 140,3 280,5 0,97 1,00
89
0
2
4
6
8
10
12
RM
SE
1x103
5x103
1x104
5x104
1x105
5x105
1x106
#Exemplos
Curvas de aprendizadoTILDE-RTHTILDE-RT
Figura 5.9: 2D-Planes - Curvas de aprendizado
90
Capıtulo 6
Conclusao
Neste trabalho, foi desenvolvido e implementado o HTILDE-RT que e um al-
goritmo de programacao em logica indutiva escalavel para grandes bases de dados
relacionais e tratamento de fluxos de dados (streams). Este e uma extensao do
HTILDE para tratar problemas de regressao que utiliza arcabouco da ILP aliado a
eficiencia da amostragem empregando o limitante de Hoeffding em problemas rela-
cionais de regressao representados atraves do formato de interpretacoes.
Adicionalmente, uma alteracao da heurıstica foi utilizada para contemplar as
condicoes necessarias para a validade do limitante de Hoeffding, bem como foi enun-
ciado um corolario que estende a validade do comportamento assintotico das arvores
de Hoeffding para o aprendizado por interpretacoes. Complementarmente, resulta-
dos obtidos com a base de dados real CORA foram melhorados.
Experimentos em cinco grandes bases de dados artificiais foram realizados, onde
duas bases sao relacionais e as demais proposicionais, porem com propriedades inte-
ressantes para analise do comportamento do algoritmo. Os resultados sugerem uma
boa troca entre eficiencia e acuracia, pois o HTILDE-RT conseguiu aprendizado de
2.4 ate 260 vezes mais rapido, com uma perda maxima de 2% na medida RMSE e
sem perdas no coeficiente de Pearson. Alem disso, na grande maioria dos problemas
o HTILDE-RT foi capaz de aprender modelos menores e, mesmo quando modelos
maiores foram gerados, uma alteracao intuitiva dos parametros conseguiu reduzir os
tamanhos dos modelos sem causar grande perda nas demais medidas.
Com os resultados obtidos nos problemas Artificial1 e Artificial2, este trabalho
deu origem a um artigo publicado no XX Encontro Nacional de Inteligencia Artificial
(ENIA 2011) [31]. Em sequencia, dispondo de todos os resultados com os demais
problemas, um novo artigo foi confeccionado, para ser submetido a uma conferencia
internacional [32].
91
6.1 Trabalhos Futuros
Nesta secao esta enumerada uma lista de trabalhos futuros potencialmente de-
sejaveis. Segue:
1. Aprimorar o tratamento de atributos contınuos para fluxos de dados, atraves
da aplicacao das arvores binarias de busca estendidas conforme [24];
2. Embora aproveite muitas das funcionalidades do sistema ACE, tal sistema e
generico e comporta varios algoritmos de aprendizado ILP, nao sendo adequa-
damente preparado para o tratamento de fluxos. Deste modo, o HTILDE-RT
sofre limitacoes em funcao de certos gargalos que o sistema apresenta. Entao,
e desejada elaboracao uma implementacao do HTILDE-RT de forma indepen-
dente do sistema ACE;
3. Obter bases de dados relacionais reais, com potenciais problemas de regressao,
a fim de realizar experimentos com o HTILDE-RT em tais bases;
4. O HTILDE-RT possui aplicacao potencial para a area de aprendizado relaci-
onal estatıstico (SRL - Statistical Relational Learning), como no aprendizado
das funcoes potenciais quando campos aleatorios condicionais sao usados em
problemas relacionais (TILDE-CRF [21]), ou mesmo no aprendizado das dis-
tribuicoes condicionais nas redes de dependencia relacionais (RDN - Relational
Dependency Networks [36]);
5. Comparar diretamente outros sistemas propostos para fluxos de dados com o
HTILDE-RT, como o VFDT e o FIMT, em bases de dados relacionais;
6. Adaptar o HTILDE-RT para o aprendizado de arvores-modelo (model trees)
[24] [38] [46];
7. Prover suporte a fluxos com mudanca da distribuicao (concept drifts) [23].
92
Referencias Bibliograficas
[1] AGGARWAL, C., 2007, “An Introduction to Data Streams”. In: Aggarwal,
C. C., Elmagarmid, A. K. (Eds.), Data Streams: Models and Algorithms,
v. 31, The Kluwer International Series on Advances in Database Systems,
Springer US, pp. 1–8.
[2] BLOCKEEL, H., DEHASPE, L., DEMOEN, B., et al., 2002, “Improving the
efficiency of inductive logic programming through the use of query packs”,
Journal of Artificial Intelligence Research, v. 16, pp. 135–166.
[3] BLOCKEEL, H., 1998, Top-down Induction of First Order Logical Decision
Trees. Tese de Doutorado, Katholieke Universiteit Leuven, December.
[4] BLOCKEEL, H., RAEDT, L. D., 1998, “Top-Down Induction of First-Order
Logical Decision Trees”, Artificial Intelligence, v. 101, n. 1-2, pp. 285–
297.
[5] BLOCKEEL, H., RAEDT, L. D., JACOBS, N., et al., 1999, “Scaling Up Induc-
tive Logic Programming by Learning from Interpretations”, Data Mining
and Knowledge Discovery, v. 3, n. 1, pp. 59–93.
[6] BLOCKEEL, H., DEHASPE, L., RAMON, J., et al., 2009. “Cora data set”.
http://dtai.cs.kuleuven.be/ACE/data/cora.zip.
[7] BONGARD, M. M., 1970, Pattern Recognition. Spartan Books.
[8] BOSTROM, H., 1995, “Covering vs. Divide-and-Conquer for Top-Down Induc-
tion of Logic Programs”. In: Proceedings of the Fourteenth International
Joint Conference on Artificial Intelligence, pp. 1194–1200. Morgan Kauf-
mann.
[9] BRATKO, I., MUGGLETON, S., 1995, “Applications of inductive logic pro-
gramming”, Communications of the ACM, v. 38, n. 11, pp. 65–70. ISSN:
0001-0782. doi: http://doi.acm.org/10.1145/219717.219771.
[10] BREIMAN, L., FRIEDMAN, J. H., OLSHEN, R. A., et al., 1984, Classification
and Regression Trees. Chapman & Hall, New York, NY.
93
[11] DE RAEDT, L., DZEROSKI, S., 1994, “First order jk-clausal theories are
PAC-learnable”, Artificial Intelligence, v. 70, pp. 375–392.
[12] DE RAEDT, L., 1998, “Attribute-value learning versus inductive logic pro-
gramming: The missing links”. In: Page, D. (Ed.), Inductive Logic Pro-
gramming, v. 1446, Lecture Notes in Computer Science, Springer Ber-
lin / Heidelberg, pp. 1–8. ISBN: 978-3-540-64738-6. Disponıvel em:
<http://dx.doi.org/10.1007/BFb0027304>. 10.1007/BFb0027304.
[13] DEHASPE, L., RAMON, J., STRUYF, J., et al., 2005, The ACE Data Mining
System - User’s Manual, December.
[14] DIETTERICH, T. G., 1998, “Approximate Statistical Test For Comparing Su-
pervised Classification Learning Algorithms”, Neural Computation, v. 10,
n. 7, pp. 1895–1923.
[15] DOMINGOS, P., HULTEN, G., 2000, “Mining high-speed data streams”. In:
Knowledge Discovery and Data Mining, pp. 71–80.
[16] DOMINGOS, P., HULTEN, G., 2003, “A General Framework for Mining
Massive Data Stream”, Journal of Computational and Graphical Sta-
tistics, v. 12, pp. 945–949. Disponıvel em: <citeseer.ist.psu.edu/
hulten02mining.html>.
[17] Dzeroski, Lavrac (Eds.), 2001, Relational Data Mining. Berlin, SV. ISBN:
3-540-42289-7.
[18] FRANK, A., ASUNCION, A., 2010. “UCI Machine Learning Repository”.
Disponıvel em: <http://archive.ics.uci.edu/ml>.
[19] FRIEDMAN, J. H., 1991, “Multivariate Adaptive Regression Splines”, Annals
of Statistics, v. 19, pp. 1–67. doi: 10.1214/aos/1176347963.
[20] GAMA, J., 2003, “Accurate decision trees for mining high-speed data streams”.
In: In Proc. SIGKDD, pp. 523–528. ACM Press.
[21] GUTMANN, B., KERSTING, K., 2006, “TildeCRF: Conditional random fields
for logical sequences”. In: In Proceedings of the 15th European Conference
on Machine Learning (ECML-06, pp. 174–185. Springer.
[22] HOEFFDING, W., 1963, “Probability inequalities for sums of bounded random
variables”, v. 58, pp. 13–30.
94
[23] HULTEN, G., SPENCER, L., DOMINGOS, P., 2001, “Mining Time-Changing
Data Streams”. In: Proceedings of the Seventh ACM SIGKDD Internati-
onal Conference on Knowledge Discovery and Data Mining, pp. 97–106,
San Francisco, CA. ACM Press.
[24] IKONOMOVSKA, E., , GAMA, J., et al., 2011, “Learning model trees from
evolving data streams”, Data Mining and Knowledge Discovery, v. 23,
n. 1, pp. 128–168. ISSN: 1384-5810.
[25] JENSEN, D., NEVILLE, J., 2002, “Autocorrelation and linkage cause bias
in evaluation of relational learners”. In: In Proceedings of the Twelfth
International Conference on Inductive Logic Programming, pp. 101–116.
Springer.
[26] KARALIC, A., BRATKO, I., 1997, “First Order Regression”, Machine Lear-
ning, v. 26, n. 2-3, pp. 147–176.
[27] KRAMER, S., 1996, “Structural Regression Trees”. In: Proceedings of the Thir-
teenth National Conference on Artificial Intelligence (AAAI-96), pp. 812–
819, Cambridge/Menlo Park. AAAI Press/MIT Press.
[28] LOPES, C., ZAVERUCHA, G., 2009, “HTILDE: scaling up relational deci-
sion trees for very large databases”. In: Proceedings of the 2009 ACM
Symposium on Applied Computing (SAC), Honolulu, Hawaii, USA, pp.
1475–1479.
[29] MCCALLUM, A., NIGAM, K., RENNIE, J., et al., 1999, “Building domain-
specific search engines with machine learning techniques”. In: Proc.
AAAI-99 Spring Symposium on Intelligent Agents in Cyberspace, 1999.
[30] MEHTA, M., AGRAWAL, R., RISSANEN, J., 1996, “SLIQ: A Fast Scalable
Classifier for Data Mining”. In: Apers, P. M. G., Bouzeghoub, M., Gar-
darin, G. (Eds.), Advances in Database Technology - EDBT 96, 5th Inter-
national Conference on Extending Database Technology, Avignon, France,
March 25-29, 1996, Proceedings, v. 1057, Lecture Notes in Computer Sci-
ence, pp. 18–32. Springer. ISBN: 3-540-61057-X.
[31] MENEZES, G., ZAVERUCHA, G., 2011, “HTILDE-RT: Um algoritmo para
aprender Arvores de Regressao Relacionais em grandes conjuntos de da-
dos”, VIII Encontro Nacional de Inteligencia Artificial, pp. 430–442.
[32] MENEZES, G., ZAVERUCHA, G., 2011, “HTILDE-RT: A first order logic
regression tree learner for relational data streams”, a ser submetido.
95
[33] MITCHELL, T., 1997, Machine Learning. New York, McGraw-Hill.
[34] MUGGLETON, S., RAEDT, L. D., 1994, “Inductive Logic Programming: The-
ory and Methods”, Journal of Logic Programming, v. 19/20, pp. 629–679.
[35] NADEAU, C., BENGIO, Y., 2003, “Inference for the Generalization Error”,
Machine Learning, v. 52, n. 3, pp. 239–281.
[36] NEVILLE, J., JENSEN, D., CHICKERING, M., 2007, “Relational dependency
networks”, Journal of Machine Learning Research, v. 8, pp. 2007.
[37] NIENHUYS-CHENG, S.-H., DE WOLF, R., 1997, Foundations of Induc-
tive Logic Programming, v. 1228, LNAI. SV. ISBN: 3-540-62927-0.
Disponıvel em: <http://www.springer.de/cgi-bin/search_book.pl?
isbn=3-540-62927-0>.
[38] POTTS, D., SAMMUT, C., 2005, “Incremental Learning of Linear Model
Trees.” Machine Learning, pp. 5–48.
[39] QUINLAN, J. R., 1992, “Learning With Continuous Classes”. In: 5th Austra-
lian Joint Conference on Artificial Intelligence, pp. 343–348, Singapore.
World Scientific.
[40] QUINLAN, J. R., 1986, “Induction of Decision Trees”, Machine Learning, v. 1,
n. 1, pp. 81–106.
[41] QUINLAN, J. R., 1993, C4.5: Programs for Machine Learning. Morgan Kauf-
mann.
[42] RAEDT, L., 2008, Logical and relational learning. Cognitive Technologies.
Springer. ISBN: 978-3-540-20040-6.
[43] RAEDT, L. D., 1997, “Logical settings for concept-learning”, Artificial In-
telligence, v. 95, n. 1, pp. 187–201. ISSN: 0004-3702. doi: http:
//dx.doi.org/10.1016/S0004-3702(97)00041-6.
[44] SRINIVASAN, A., 1999, “A study of two sampling methods for analysing large
datasets with ILP”, Data Mining and Knowledge Discovery, v. 3, n. 1,
pp. 95–123.
[45] TORGO, L. “Regression Datasets”. http://www.liaad.up.pt/~ltorgo/
Regression/DataSets.html.
[46] VENS, C., RAMON, J., BLOCKEEL, H., 2006, “ReMauve: A Relational Mo-
del Tree Learner.” In: Muggleton, S., Otero, R. P., Tamaddoni-Nezhad,
96
A. (Eds.), ILP, v. 4455, Lecture Notes in Computer Science, pp. 424–438.
Springer. ISBN: 978-3-540-73846-6.
[47] WIRTH, J., CATLETT, J., 1988, “Experiments on the Costs and Benefits of
Windowing in ID3”. In: ML, pp. 87–99.
[48] WITTEN, I. H., FRANK, E., 2005, Data Mining: Practical Machine Learning
Tools and Techniques. Morgan Kaufmann Series in Data Management
Sys. Morgan Kaufmann. ISBN: 0120884070.
97