Algoritmo Genético para a Descoberta de Regras - Miriam

Propaganda
Algoritmo Genético para a Descoberta de Regras de Predição
Lorena Morais1, Miriam Domingues1, Roberto Limão de Oliveira1
1
Centro Tecnológico – Universidade Federal do Pará (UFPA)
Caixa Postal 8619 – CEP 66.075-900 – Belém – PA – Brasil
[email protected], [email protected], [email protected]
Abstract. Data Mining (MD) refers to extracting knowledge from large
databases. One of its tasks is classification, a prediction task that uses IFTHEN rules for representation of the joined knowledge. These rules must be of
easy understanding to the users of the system. In this context, a Genetic
Algorithm (AG) is proposed that objectives the induction of simple
classification rules having the lesser condition number in its antecedent, what
make them also more interesting to the user. A comparison between the rules
produced with the proposed AG here and the rules produced with usual
algorithms of MD were carried through to verify the accuracy of the system.
The results seem promising and the idea proposed can be deepened in a new
research.
Resumo. A Mineração de Dados (MD) se refere à extração de conhecimento
de grandes bases de dados. Uma de suas tarefas é a classificação, tarefa de
predição que utiliza regras do tipo SE-ENTÃO para representação do
conhecimento encontrado. Estas regras devem ser de fácil entendimento aos
usuários do sistema. Neste contexto, é proposto um Algoritmo Genético (AG)
que objetiva a indução de regras de classificação simples, que possuam o
menor número de condições em seu antecedente, o que as torna também mais
interessantes ao usuário. Uma comparação entre as regras produzidas com o
AG aqui proposto e as regras produzidas por algoritmos usuais de MD foi
realizada para verificar a acurácia do sistema. Os resultados se mostram
promissores e a idéia proposta pode ser aprofundada em uma nova pesquisa.
1. Introdução
A Mineração de Dados (MD) se refere à extração de conhecimento de grandes bases de
dados. O conhecimento obtido é dado pela identificação de padrões válidos, novos,
potencialmente úteis e facilmente compreensíveis ao usuário [Fayyad, 1996].
A MD é realizada por intermédio de tarefas. Cada tarefa determina o tipo de
conhecimento a ser descoberto. Uma das tarefas mais pesquisadas em MD é a
classificação, que está relacionada à descoberta de regras de predição do tipo SEENTÃO.
Para a extração do conhecimento de bases de dados, são utilizadas ferramentas
de exploração que incorporam técnicas estatísticas e/ou de inteligência artificial (IA)
capazes de fornecer respostas a várias questões [Romão et al., 2000].
2
Na área de IA, os Algoritmos Genéticos (AG’s) têm sido cada vez mais
explorados na solução de problemas envolvendo buscas e otimizações, pela robustez e
simplicidade que oferecem [Bueno, 2005].
Os AG’s são empregados em problemas que objetivam encontrar uma ou uma
série de boas soluções entre um número muito grande de possíveis soluções (espaço de
busca) e podem encontrar a solução ótima ou sub-ótima em problemas com espaços de
busca intratáveis ou problemas de difícil modelagem matemática [Lopes, 1999].
Pesquisas recentes têm demonstrado que os AG’s podem ser utilizados com
sucesso em problemas de extração de conhecimento de dados [Romão et al., 2000].
Nesta pesquisa, o objetivo é investigar uma abordagem de algoritmo genético
(AG) para mineração de dados, que realize a tarefa de classificação pela indução de
regras de predição de bases de dados, para avaliar se é possível extrair regras simples,
que facilitem o entendimento pelo usuário do conhecimento obtido, tornando-o dessa
forma mais interessante e útil.
Para verificar a acurácia da técnica proposta, os resultados encontrados com o
algoritmo genético são comparados com os resultados encontrados por algoritmos
disponibilizados em uma conhecida ferramenta de MD, o Weka [Witten, 2005].1
Este artigo está organizado da seguinte forma: a Seção 2 apresenta uma visão
geral de Mineração de Dados e da tarefa de classificação, respectivamente. Na Seção 3,
são apresentados os conceitos básicos de Algoritmos Genéticos. A seguir, na Seção 4
são apresentados os trabalhos correlatos. Na Seção 5, é apresentada a proposta de AG
para a indução de regras. Na Seção 6, os experimentos realizados e, na Seção 7, a
conclusão do trabalho e sugestões para trabalhos futuros.
2. Mineração de Dados
A MD é definida como o processo de extração de conhecimento de grandes bases de
dados. Basicamente, esta tecnologia considera que grandes bases de dados são fontes
potenciais de conhecimento valioso, útil para a tomada de decisões estratégicas.
A mineração de dados é um campo interdisciplinar, uma vez que abrange a
utilização de diversos tipos de algoritmos derivados das mais diversas áreas de pesquisa,
como por exemplo a estatística, o aprendizado de máquina, reconhecimento de padrões,
dentre outras [Han, 2001].
O conhecimento descoberto pelos algoritmos de MD deve ser novo,
compreensível e útil e deverá trazer algum benefício que possa ser compreendido
rapidamente pelo usuário para tomada de decisão [Romão, 2000].
A MD possui dois objetivos: a descrição e a predição. A descrição se concentra
em encontrar padrões que descrevam os dados, caracterizando as propriedades gerais
desses dados em um banco de dados de forma interpretável pelos usuários. A predição
realiza inferência nos dados correntes para construir modelos que serão utilizados para
predições do comportamento de novos dados [Fayyad, 1996], [Han, 2001].
1
Weka – Ferramenta de mineração de dados, de uso livre, que disponibiliza, dentres outras
funcionalidades, diversos algoritmos para realizar as tarefas de classificação, clustering, associação e
seleção de atributos [Witten, 2005].
3
Para realizar a descrição e a predição, as técnicas de MD são aplicadas pela
realização de tarefas como por exemplo: clustering ou agrupamento, sumarização,
associação (tarefas descritivas); classificação, regressão, modelagem de dependência
(tarefas preditivas), sendo a tarefa de classificação a mais empregada. Neste contexto,
cada tarefa determina o tipo de conhecimento a ser descoberto.
Além das tarefas, a MD emprega diversas outras técnicas disponíveis na
literatura para extrair conhecimento, tais como: indução e/ou extração de regras, redes
neurais, algoritmos evolucionários, técnicas estatística (classificadores e redes
Bayesianas), conjuntos difusos, etc.
Para a escolha mais adequada, é importante conhecer o domínio do problema:
quais os atributos da base de dados, o que significam, suas estatísticas, hipóteses prévias
dos usuários e outras informações relevantes.
2.1. A Tarefa de Classificação
A tarefa de classificação tem como objetivo descobrir um relacionamento entre um
atributo meta (predição para um valor ou classe) e um conjunto de atributos de predição.
O sistema deve descobrir este relacionamento a partir de exemplos com uma classe
conhecida. O relacionamento descoberto será usado para prever o valor do atributo meta
(ou a classe) para novos exemplos apresentados ao sistema [Fertig et al., 1999].
Na aplicação deste artigo, no Experimento 2, que utiliza a base de dados Creche,
a classificação pode ser definida como sendo a tarefa de prever corretamente a classe de
pessoas que apresentam determinadas características para que seus filhos sejam aceitos
em uma creche, a partir de atributos de predição, cujos valores são conhecidos. Uma das
possibilidades é a descoberta de regras que representem as correlações entre os atributos
que definem “a qualidade da família da criança” (p. ex., saúde, condição social,
condições de moradia e outros).
Portanto, a classificação constitui um procedimento para ser aplicado em um
banco de dados onde as classes são pré-definidas e cada novo dado deve ser associado a
uma destas classes. Segundo Romão (2000), este processo é conhecido como
reconhecimento de padrões, discriminação, aprendizagem supervisionada ou
classificação. Na literatura de estatística, a aprendizagem supervisionada usualmente é
referenciada como discriminação.
Existem diversas formas de representar o conhecimento em um sistema de
aprendizagem. Na tarefa de classificação, o conhecimento descoberto é expresso como
um conjunto de regras do tipo SE-ENTÃO na forma mostrada abaixo, uma vez que este
tipo de representação do conhecimento é intuitivo para o usuário [Carvalho e Freitas,
2000].
SE
<algumas condições são satisfeitas>
ENTÃO < predizer o valor de alguns atributos metas>.
Regras do tipo SE-ENTÃO são também chamadas regras de produção e
constituem uma forma de representação simbólica. A parte SE é o antecedente da regra
e a parte ENTÃO é o conseqüente. O antecedente é formado por expressões
condicionais envolvendo atributos do domínio da aplicação existentes nos bancos de
dados. O conseqüente é formado por expressões que indicam a previsão de algum valor
4
para um atributo meta, obtido em função dos valores encontrados nos atributos que
compõem o antecedente [Romão, 2000].
As regras SE-ENTÃO deste trabalho, apesar de voltadas para a classificação,
seguem o modelo de regras de associação, que representam o conhecimento na tarefa de
associação de MD. Uma regra de associação é um relacionamento da forma X  Y,
onde X e Y são conjuntos de itens e a interseção deles é o conjunto vazio. As regras de
associação configuram um problema típico conhecido na literatura como “Problema da
Cesta de Compras” e significam que se X ocorre em uma transação do banco de dados,
Y ocorre também. O motivo de serem empregadas na modelagem proposta neste
trabalho está relacionado ao fato de que cada regra está associada a um fator de
confiança ou acurácia, cuja Fórmula 2.1 mostrada abaixo é útil para avaliar cada regra
encontrada.
conf 
NúmeroderegistroscomXeY
NúmeroderegistroscomX
(2.1)
3. Algoritmos Genéticos
Os AG’s são algoritmos de busca ou otimização inspirados na seleção natural e
reprodução genética que combinam processos naturais, necessários à evolução dos mais
aptos, com troca de informação estruturada, porém randômica, para formar um
algoritmo de busca baseado na habilidade inovadora da busca humana [Goldberg,
1989].
Os AG’s vêem o aprendizado como uma competição numa população de
soluções evolutivas, candidatas para o problema. A pressão seletiva, que na natureza é
exercida pelo ambiente, é simulada pela aplicação de uma função objetivo, que avalia a
aptidão de cada solução candidata (cada indivíduo da população) para decidir se esta
contribuirá para a próxima geração de soluções. Então, através de operações análogas à
transferência de genes na reprodução sexual, o algoritmo cria uma nova população de
soluções candidatas [Luger, 2004], [Bueno et al., 2005].
Cada indivíduo ou solução candidata que se encontra no espaço de busca do
problema é representado, univocamente, por uma cadeia de símbolos chamada
cromossomo [Bueno, 2005}. Um cromossomo contém a codificação (genótipo) de uma
possível solução do problema (fenótipo). Estes cromossomos costumam ser
implementados na forma de listas de atributos ou vetores, onde cada atributo é
conhecido como gene. Os possíveis valores que um determinado gene pode assumir são
ditos alelos [Von Zuben, 2005]. Partindo de uma população inicial de indivíduos, são
aplicados os operadores genéticos, que originam novas gerações de indivíduos
artificiais, os quais trazem características dos mais adaptados das gerações anteriores
[Bueno, 2005].
Os AG’s são chamados de adaptativos, pois as futuras possíveis soluções são
influenciadas pelas soluções atuais. Também são ditos paralelos, pois várias soluções
são consideradas a cada momento. Desta forma, exploram novos pontos de busca com a
expectativa de desempenho crescente.
A estrutura de um algoritmo genético pode ter a seguinte forma [Michalewicz,
1996 apud Von Zuben, 2005]:
5

Durante a iteração t, um algoritmo genético mantém uma população de
soluções potenciais (indivíduos, cromossomos, lista de atributos ou vetores)
P(t)={xt1, ..., xtn};

cada solução xti é avaliada e produz uma medida de sua adaptação, ou fitness;

uma nova população (iteração t + 1) é então formada privilegiando a
participação dos indivíduos mais adaptados;

alguns membros da nova população passam por alterações, por meio de
crossover e mutação, para formar novas soluções potenciais;

este processo se repete até que um número pré-determinado de iterações seja
atingido, ou até que um nível de adaptação esperado seja alcançado.
Um AG para um problema particular deve ter os seguintes componentes:

Uma representação genética para soluções candidatas ou potenciais
(processo de codificação);

uma maneira de criar uma população inicial de soluções candidatas ou
potenciais;

uma função de avaliação que faz o papel da pressão ambiental, classificando
as soluções em termos de sua adaptação ao ambiente (ou seja, sua
capacidade de resolver o problema);

operadores genéticos;

valores para os diversos parâmetros usados pelo algoritmo genético
(tamanho da população, probabilidades de aplicação dos operadores
genéticos, etc.).
Em um algoritmo genético simples, os principais operadores genéticos são:

Seleção: baseia-se probabilisticamente no valor da aptidão de um gene:
quanto mais alta a aptidão do gene, maior probabilidade este tem de se
reproduzir.

Reprodução: envolve a seleção dos genes pais da população corrente com
base na aptidão. Para isso, costumam ser utilizados os operadores de:
o Cruzamento ou crossover ou recombinação: combina dois ou mais
indivíduos. O cruzamento é realizado segundo uma probabilidade de
cruzamento fixa que é atribuída aos indivíduos da população. Esta
designa ponto(s) de cruzamento randômico resultando em filhos
construídos pela troca de pedaços dos genes dos pais selecionados.
o Mutação: modifica aleatoriamente um ou mais genes de um cromossomo
de acordo com uma taxa de mutação, com o objetivo de criar uma
variabilidade extra, necessária para a diversidade genética da população.
3.1. Algoritmos Genéticos para Mineração de Dados
Para a tarefa de classificação de registros em MD, os modelos de AG’s geram regras de
fácil interpretação que exprimem uma realidade do domínio da aplicação. Estas regras
6
são modeladas na forma de regras de associação, do tipo SE-ENTÃO, entre os atributos
de predição e o atributo objetivo ou atributo-classe.
Os trabalhos sobre o uso de AG’s para classificação tratam de problemas que
apresentam diferentes formas de representação dos indivíduos, de operadores genéticos
e de funções de aptidão ou definem diferentes objetivos quanto ao tipo de regra que se
deseja encontrar, conforme se exemplifica na Seção 4 de trabalhos correlatos.
Com relação à representação dos indivíduos, algumas abordagens básicas
utilizadas são as abordagens de Pittsburg e Michigan, que receberam os nomes das
universidades onde foram desenvolvidas.
Na abordagem de Pittsburg, a codificação é complexa, conforme o exemplo
mostrado na Figura 1, sendo necessário o uso de operadores mais complexos, visto que
cada indivíduo irá corresponder a um conjunto de regras solução para o problema
[Romão et al., 2000].
Tit = “Dr”
Idade > 40
Sexo = “M”
outras
condições
outras
regras
Figura 1. Cromossomo representando um conjunto de regras
[Romão et al., 2000, p. 6].
Na abordagem de Michigan, a codificação dos indivíduos é facilitada (Figura 2),
permitindo a construção de indivíduos mais simples e pequenos, porém com o problema
de que é mais difícil lidar com interações entre regras [Romão et al., 2005].
Artigos public > 10
Tit = “Mestre”
outras condições
Figura 2. Cromossomo representando uma regra
[Romão et al., 2000, p. 6].
A abordagem de Michigan é utilizada nos trabalhos de Lopes (1999) e Junior
Tenório (2002), em que um cromossomo representa uma regra de associação da forma
SE (A1 e A2 e ... An), ENTÃO P. O conjunto (A1 e A2 e ... An) representa os atributos de
predição e P, o valor da classe meta. Os atributos podem ser categóricos ou
quantitativos. Os primeiros representam um conjunto finito de valores ou valores
mapeados num conjunto de números inteiros (discretos) e só podem assumir um único
valor em um dado registro. Os segundos, também chamados de contínuos, constituem
um subconjunto de números reais. Dessa forma, o cromossomo do modelo desenvolvido
possui a representação mostrada na Figura 3 [Lopes, 1999].
7
Atributo 1
Atributo 2
mín
mín
máx
máx
Atributo N
= = = =
mín
máx
Limite superior
Valor máximo
Limite inferior
Valor mínimo
Figura 3. Representação do cromossomo para a tarefa de classificação
[Lopes, 1999, p. 69].
Conforme se observa na Figura 3, um gene representa um atributo de predição.
Cada gene possui dois campos: um valor mínimo e um valor máximo, que representam
os limites inferiores e superiores da faixa em que um atributo de predição contínuo está
inserido. No caso de atributos categóricos, o valor máximo não tem utilidade. Com essa
representação, as regras têm a seguinte forma:
SE [ (Atributo 1  min 1) e (Atributo 1  máx 1)
e (Atributo 2  min 2) e (Atributo 2  máx 2)
e (Atributo 3 = mín 3) ...
e (Atributo N  min N) e (Atributo N  máx N) ]
ENTÃO Atributo objetivo = P.
O atributo 3 é categórico, por isso não possui limite superior.
4. Trabalhos Correlatos
Os trabalhos envolvendo o uso de AG em MD têm sido voltados para as tarefas de
classificação e descrição de registros em bases de dados, para a seleção de atributos ou
modelagem de dependências e também para melhorar o desempenho em algoritmos de
clustering. A seguir, são relacionados alguns trabalhos que propõem abordagens do uso
de AG’s no processo de classificação em registros de bases de dados:
Lopes (1999) investiga a utilização de AG’s em MD partindo do princípio que o
processo de classificação no contexto de AG’s consiste na evolução de regras de
associação que melhor caracterizem, através da acurácia e abrangência, um determinado
grupo de registros do banco de dados. O autor define um modelo de AG para mineração
de dados e implementa uma ferramenta de MD (o Rule-Evolver) que fornece ao usuário
10 alternativas de funções de avaliação, além da escolha de operadores genéticos, dentre
outras facilidades. Diversos estudos de casos são realizados e são feitas análises
comparativas com outros métodos de extração de regras. A viabilidade da utilização de
AG em MD é comprovada, mas foi verificado que não há uma melhor função de
avaliação para um caso genérico, uma vez que esta é dependente do tipo de dados, isto
é, da aplicação em que se está trabalhando.
Carvalho e Freitas (2000) utilizam uma solução híbrida de AG e árvore de
decisão em um problema de MD, que se refere à presença de pequenas disjunções, isto
8
é, regras que cobrem um pequeno número de exemplos. Essas regras geralmente são
propensas a erros e contribuem para diminuir a acurácia de predição do sistema. Apesar
de cada pequena disjunção cobrir poucos exemplos da base de dados, o conjunto de
todas elas pode cobrir um grande número de exemplos, fato que foi constatado em
várias bases de dados. A solução consiste em classificar exemplos pertencentes a
grandes disjunções por regras produzidas pelo algoritmo de árvores de decisão C4.5,
enquanto que exemplos pertencentes a pequenas disjunções são classificados pelo AG
desenvolvido especificamente para esse fim. Os resultados demonstram que a acurácia
obtida pelo AG foi superior à obtida por três versões do C4.5.
Romão et al. (2004) propõem um AG projetado especificamente para a
descoberta de regras de predição difusas interessantes no sentido de serem novas e
surpreendentes para o usuário. A técnica consiste na adaptação de uma outra técnica
pouco explorada na literatura, baseada nas impressões gerais definidas pelo usuário
(conhecimento subjetivo), de maneira que uma regra de predição é considerada
interessante ou surpreendente não apenas por que é desconhecida ao usuário, mas
também contradiz suas hipóteses originais. Um protótipo implementa o AG proposto, o
qual foi aplicado sobre uma base real de dados de ciência e tecnologia. Este foi avaliado
e comparado com o algoritmo J4.8 de MD, uma variante do C4.5. Os resultados indicam
que a acurácia de predição obtida pelo AG proposto é similar à obtida pelo J4.8, mas no
primeiro caso, em geral, as regras descobertas possuem poucas condições, levando a
uma maior compreensibilidade do conhecimento descoberto. As regras encontradas pelo
AG foram consideradas mais interessantes pelos usuários.
5. Algoritmo Genético Proposto para a Descoberta de Regras em Mineração
de Dados
Nesta Seção, é proposto um AG para a descoberta de regras de predição em bases de
dados. Diferente dos trabalhos citados, em que cada indivíduo representa uma regra de
predição, aqui cada indivíduo representa um registro do banco de dados, de maneira
similar ao que é realizado pelas ferramentas de MD. Um dos problemas que pode
ocorrer neste caso diz respeito ao custo computacional da execução do AG para bases
de dados volumosas.
5.1. Representação do Indivíduo
Em MD, o algoritmo genético aplicado à tarefa de classificação pode ter seus indivíduos
representando apenas os antecedentes das regras de classificação. Neste caso, o AG será
executado para cada atributo meta do problema (o conseqüente da regra). Esta é a opção
adotada neste trabalho.
A Figura 4 ilustra a estrutura do cromossomo projetada nesta pesquisa. A
representação é binária e os atributos são todos categóricos. Se houver atributos
contínuos, estes devem ser discretizados.
9
Atributo 1
Atributo 2
Atributo N
valor1 valor2 valor3 valor1 valor2
1
0
0
0
1
valorN1
valorN2
1
0
= = =
Figura 4. Representação do cromossomo para a tarefa de classificação
pelo AG proposto.
Nessa representação, o alelo de um determinado gene recebe o bit “1” se o
atributo possuir um determinado valor e “0” se não possuir esse valor.
Exemplo 5.1. A base de dados Tempo, que armazena registros com dados
classificados contendo informações das condições do tempo para saber se uma pessoa
joga ou não joga futebol, possui os seguintes atributos de predição e seus respectivos
valores: estado do tempo (ensolarado, nublado, chuvoso), temperatura (quente, média e
fria), umidade (alta, normal), está ventando? (falso, verdadeiro). O atributo classe é:
joga? (sim, não). A codificação dos 14 registros dessa base de dados é mostrada na
Figura 5, sendo que os bits do atributo classe não serão codificados nos experimentos do
problema aqui tratado.
atributo
classe
atributos de predição
estado do tempo
temperatura
ensola- nubla- chuvoquente
rado
do
so
umidade
ventando?
média
fria
alta
normal
falso
verdadeiro
joga?
sim
não
1
0
0
1
0
0
1
0
1
0
0
1
1
0
0
1
0
0
1
0
0
1
0
1
0
1
0
1
0
0
1
0
1
0
1
0
0
0
1
0
1
0
1
0
1
0
1
0
0
0
1
0
0
1
0
1
1
0
1
0
0
0
1
0
0
1
0
1
0
1
0
1
0
1
0
0
0
1
0
1
0
1
1
0
1
0
0
0
1
0
1
0
1
0
0
1
1
0
0
0
0
1
0
1
1
0
1
0
0
0
1
0
1
0
0
1
1
0
1
0
1
0
0
0
1
0
0
1
0
1
1
0
0
1
0
0
1
0
1
0
0
1
1
0
0
1
0
1
0
0
0
1
1
0
1
0
0
0
1
0
1
0
1
0
0
1
0
1
Figura 5. Representação dos cromossomos da base de dados Tempo.
No problema desta pesquisa, parte-se da idéia que, se os registros da base de
dados forem vistos como regras, então, inicialmente, cada atributo representa uma
condição da regra. Desta forma, no Exemplo 5.1, o primeiro registro da base de dados é
lido da seguinte maneira:
10
SE o
e
e
e
tempo está ensolarado
a temperatura está quente
a umidade está alta
não está ventando,
ENTÃO a pessoa não joga.
Porém, nas regras extraídas pelas ferramentas de MD, vê-se que nem todos os
atributos aparecem como condições nas partes SE da regras obtidas, uma vez que nem
todos os atributos contribuem para o poder de predição de uma regra. Por exemplo, uma
regra encontrada por um algoritmo de MD pode ser:
SE o tempo está nublado
ENTÃO a pessoa joga.
Segundo os resultados obtidos no trabalho de Romão (2002), foi constatado que
regras com mais de três condições no antecedente tornam-se difíceis de serem
interpretadas pelos usuários. É o que costuma ocorrer na geração de regras de
decisões/árvores de decisão (produzidas pela tarefa de classificação) em muitos
algoritmos de MD, em que o grande número de regras geradas torna o conhecimento
bastante complexo para ser compreendido pelo usuário final do sistema. Um exemplo
disso é o resultado da mineração de dados mostrada no Anexo deste artigo.
Este fato motivou a modelagem do AG deste trabalho, cuja função de aptidão é
descrita a seguir.
5.2. Função de Aptidão
De acordo com o exposto na Seção 5.1, para obter regras com menos condições no
antecedente, é necessário minimizar esse número de condições, de forma a obter regras
mais simples.
Assim, em um primeiro estágio de pesquisa, este trabalho parte da idéia que a
aptidão de um indivíduo f(x) para o AG proposto é dada simplesmente pela somatória
do número de atributos de predição da base de dados (fórmula 5.1),
f(x) =  no._atributos
(5.1)
significando que no início do processo uma regra possui o número máximo de
condições em seu antecedente. Portanto, todos os indivíduos iniciam com a mesma
aptidão, a qual vai sendo minimizada a cada geração. Dessa forma, os indivíduos, no
decorrer do processo, ao serem submetidos aos operadores do AG, vão apresentar
atributos que não possuem o bit “1” em nenhum valor para um dado atributo,
significando que esse atributo não é relevante para que o conseqüente da regra seja de
determinada classe. O melhor indivíduo do AG será aquele que obtiver o valor mínimo
de aptidão. Este valor mínimo muitas vezes vai chegar a zero, mas só interessa como
regra o indivíduo que obtiver o valor mínimo igual a 1 (um).
Segundo a função de aptidão proposta, no exemplo da base de dados Tempo,
todos os indivíduos têm aptidão igual a 4 e iniciam com a mesma probabilidade de
serem selecionados. No experimento 1, são apresentadas as regras encontradas para
esses dados.
11
5.3. Seleção de Indivíduos
O método de seleção adotado nesta pesquisa foi a seleção estocástica, uma vez que esta
apresentou bons resultados no trabalho de Morais e Domingues (2005), em um AG
desenvolvido para um problema com codificação binária.
No método de seleção estocástico, os indivíduos são mapeados em segmentos
contínuos em uma linha, em que cada indivíduo corresponde a um segmento de
tamanho proporcional à sua aptidão. O número de indivíduos é representado por
ponteiros distribuídos em uma linha e igualmente espaçados. A posição do primeiro é
dada pelo número aleatório gerado na faixa [0,1/Nponteiro] [Thomaz, 2005].
Por exemplo, para selecionar 6 indivíduos, a distância entre os ponteiros é de 1/6
= 0.167. Na Figura 6, observa-se a escolha de um número randômico com valor 0.1 no
intervalo [0, 0.167], indicando o primeiro indivíduo selecionado. A partir daí, verificase os outros indivíduos selecionados: 1, 2, 3, 4, 6 e 8.
Figura 6. Seleção estocástica.
Fonte: Thomaz et al., 2005, p. 9.
5.4. Cruzamento
Nesta etapa, partes de dois cromossomos genitores são trocadas a partir de uma posição
escolhida aleatoriamente (ponto de corte), produzindo dois indivíduos filhos. A
proporção de pais submetidos ao cruzamento durante uma geração é controlada pela
probabilidade de cruzamento, que determina a freqüência que o cruzamento é invocado.
Como técnica de cruzamento, adotou-se o cruzamento de um ponto, ilustrado na
Figura 7.
Antes do cruzamento
ponto de corte
Pai 1
1
0
1
0
0
1
1
1
0
1
Pai 2
0
1
1
1
0
1
0
1
1
0
Após o cruzamento
ponto de corte
Pai 1
0
1
1
1
0
1
1
1
0
1
Pai 2
1
0
1
0
0
1
0
1
1
0
Figura 7. Cruzamento de um ponto.
12
5.5. Mutação
A mutação é o processo randômico, em que um gene é trocado por outro para produzir
um novo indivíduo a partir de um único pai. Costuma ser aplicada com uma taxa de
probabilidade baixa (p. ex., 0.08).
A Figura 8 ilustra o processo de mutação.
ponto de mutação
0
1
1
1
0
1
1
1
0
1
1
0
1
0
1
1
0
1
1
0
Figura 8. Mutação.
5.6. Outras técnicas utilizadas no AG
5.6.1. Normalização linear
Esta técnica é utilizada quando a população está muito achatada, isto é, a média da
população está bem próxima do melhor e do pior indivíduo. Com esta técnica, os
indivíduos são colocados em ordem decrescente de avaliação e depois são numerados de
cima para baixo, da seguinte forma: o indivíduo com a menor aptidão recebe um valor
mínimo que é somado a uma taxa de incremento, crescendo linearmente até o valor
máximo. Depois, os valores que cada indivíduo recebeu são somados. Para o cálculo da
probabilidade de seleção de cada indivíduo, estes valores individuais são divididos pelo
valor da soma destes.
5.6.2. Reprodução por Estado Estacionário
A Reprodução por Estado Estacionário ou Steady State consiste na substituição parcial
de indivíduos a cada geração, resultando em uma técnica mais elitista: os bons
indivíduos são preservados garantindo maiores chances de reprodução. O parâmetro
GAP é utilizado para informar ao algoritmo a fração da população que é trocada.
5.7. Ferramenta utilizada para a construção do AG
Para a fase de programação do algoritmo genético, utilizou-se a ferramenta Matlab 6.5
[The Mathworks, Inc, 2002]. Este software possui diversas funções que facilitam
sobremaneira a programação de AG’s.
Algumas ferramentas (toolboxes) estão disponíveis na Web, implementando uma
variedade de métodos para os AG’s. Dentre estas, foram utilizadas neste trabalho, como
auxílio na geração do código-fonte, as toolboxes: Genetic Algorithm Toolbox
[Chipperfield et al., 2005] e AGBIN [Thomas et al., 2005].
6. Experimentos Realizados
Foram realizados dois experimentos com o AG proposto neste artigo. Ambos utilizaram
dados públicos. O primeiro utiliza os dados do arquivo Weather (aqui chamado de
Tempo), o qual já foi mostrado na Seção 5.1 deste trabalho, que é fornecido como
exemplo didático na ferramenta Weka de mineração de dados. O segundo utiliza a base
13
de dados pública Nursey (aqui chamada de Creche), obtida do repositório de dados
públicos disponível em www.ics.uci.edu/~mlearn/MLSummary.html.
6.1. Experimento 1: Base de dados Tempo
A base de dados Tempo possui as seguintes características: 14 instâncias, 4 atributos de
predição com os seguintes valores: estado do tempo (ensolarado, nublado, chuvoso),
temperatura (quente, média, fria), umidade (alta, normal), está ventando? (falso,
verdadeiro) e um atributo classe ou atributo meta: joga? com as classes: sim, não.
6.1.1. Resultados obtidos com o AG
Este experimento foi realizado para a indução de regras da classe sim. O AG para
minerar a base de dados Tempo foi configurado com os seguintes parâmetros:
Número de indivíduos = 9
Comprimento do cromossomo = 10
Número máximo de gerações (critério de parada) = 30
GAP entre gerações = 0.8
Probabilidade de cruzamento = 0.8
Probabilidade de mutação = 0.01
As regras mais simples encontradas são caracterizadas pelos melhores
indivíduos das 30 gerações de cada experimento realizado. Abaixo, serão listadas as
regras que apareceram com maior freqüência nos experimentos, as quais contém no
máximo duas condições e a classe desejada é a classe sim. A confiança da regra é
calculada com a utilização da fórmula 2.1:
SE estado do tempo=nublado e está ventando?=falso,
ENTÃO joga=sim. (conf = 50%)
SE estado do tempo=nublado, ENTÃO joga=sim. (conf = 100%)
SE estado do tempo=nublado e umidade=normal, ENTÃO joga=sim.
(conf = 50%)
6.1.2. Resultados obtidos com o algoritmo ID3 de MD
A mineração de dados realizada com o algoritmo ID3 na ferramenta Weka, gerou uma
árvore de decisão com as regras abaixo. Nas regras obtidas pelo ID3, aparece a
classificação para as duas classes da base de dados. Nesta mineração, dois registros
foram classificados errados, um de cada classe. Para efeito de comparação com o
resultado do AG, o valor da confiança para a classe sim apresentado é calculado com a
utilização da fórmula 2.1:
SE estado do tempo = ensolarado
| E umidade=alta ENTÃO joga=não
| E umidade=normal ENTÃO joga=sim (conf = 40%)
SE estado do tempo=nublado ENTÃO joga=sim (conf = 100%)
SE estado do tempo=chuvoso
| está ventando?=verdadeiro ENTÃO joga=não
| está ventando?=falso ENTÃO joga=sim (conf = 75%)
14
Os resultados mostram que nas duas situações avaliadas, foi encontrada uma
regra com 100% de confiança ou acurácia. O AG encontrou duas regras com 50% de
confiança e o ID3 encontrou uma regra com confiança de 40% e outra com confiança de
75%. Como a base de dados é muito pequena, é preciso realizar experimentos em uma
base maior, para se obter conclusões mais precisas.
6.2. Experimento 2: Base de dados Creche
A base de dados Creche (Nursery Database) foi criada por Vladislav Rajkovic et al. em
junho de 1997 e pertence a Marko Bohanec e Blaz Zupan [Olave et al. 1989]. Os dados
fazem parte de uma pesquisa que os utilizou para selecionar crianças para serem
admitidas em uma creche nos anos 80, na Ljubljna, Slovenia.
Possui as seguintes características:
 Número de instâncias: 12.960 (estas instâncias cobrem completamente o
espaço de atributos)
 Número de atributos: 8
 Valor dos atributos:
parents
usual, pretentious, great_pret
has_nurs
proper, less_proper, improper, critical, very_crit
form
complete, completed, incomplete, foster
children
1, 2, 3, more
housing
convenient, less_conv, critical
finance
convenient, inconv
social
non-prob, slightly_prob, problematic
health
recommended, priority, not_recom

Atributos ausentes: nenhum

Distribuição dos valores do atributo classe (número de instâncias por classe)
Classe
N
N[%]
---------------------------------------------------------------not_recom
4320
(33.333 %)
recommend
2
( 0.015 %)
very_recom
328
( 2.531 %)
priority
4266
(32.917 %)
spec_prior
4044
(31.204 %)
6.2.1. Resultados obtidos com o AG
Inicialmente, os dados foram separados conforme a classe, para que o AG descobrisse
regras para dados de cada classe, separadamente.
Não foi possível realizar o processamento do AG para as classes com mais de
4.000 registros, dado a lentidão do sistema no Matlab. Assim, procedeu-se o
experimento somente para a classe very_recom que possui 328 registros.
O AG para minerar a base de dados Creche foi configurado com os seguintes
parâmetros:
Número de indivíduos = 328
Comprimento do cromossomo = 27
15
Número máximo de gerações (critério de parada) = 30
GAP entre gerações = 0.8
Probabilidade de cruzamento = 0.8 / 0.65 (foram testados os dois valores)
Probabilidade de mutação = 0.01
As regras mais simples encontradas são as listadas abaixo, que possuem no
máximo três condições no antecedente da regra e a classe desejada é a classe
very_recom. A confiança da regra é calculada com a utilização da fórmula 2.1:
SE has_nurs=less_proper e finance=convenient e health=recommend,
ENTÃO class=very_recom. (conf = 66%)
SE social=non_prob e health=recommend, ENTÃO class=very_recom.
(conf = 100%)
SE form=complete, ENTÃO class=very_recom.( conf = 100%)
SE finance=convenient, ENTÃO class=very_recom. (conf = 100%)
SE housing=critical e finance=inconv e health=recommend, ENTÃO
class=very_recom. (conf = 50%)
SE parents=usual e children=1, ENTÃO class=very_recom. (conf
= 59%)
SE children=1, ENTÃO class=very_recom. (conf = 100%)
SE finance=convenient, ENTÃO class=very_recom. (conf = 100%)
SE parents=usual e social=slightly_prob, ENTÃO class=very_recom.
(conf = 59%)
SE parents=pretentious e social==slightly_prob, ENTÃO
class=very_recom. (conf = 50%)
SE parents=usual, ENTÃO class=very_recom. (conf = 100%)
6.2.2. Resultados obtidos com o algoritmo J48 de MD
Para essa base de dados, a mineração de dados foi realizada com o algoritmo J48 do
Weka, o qual permite informar como parâmetro um grau de confiança maior, de forma a
se obter só as regras de maior acurácia. Mesmo assim, o número de regras geradas foi
enorme, conforme se vê no Anexo deste trabalho. A árvore de decisão encontrada é de
difícil interpretação para um usuário comum.
Para a classe very_recom, 290 registros foram classificados corretamente e 38
registros foram classificados incorretamente. O resultado geral teve uma taxa de erro de
apenas 1.2114 % e uma taxa de acerto de 98.7886 %.
Os resultados deste experimento são mais complexos de se analisar, porém
algumas das regras encontradas com o AG estão de acordo com as da árvore de decisão
gerada pelo J48. Para uma melhor avaliação, é importante que se tenha a opinião do
usuário ou especialista dos dados analisados, pois a avaliação subjetiva muitas vezes
conta mais do que a avaliação objetiva em problemas de mineração de dados.
16
7. Conclusões e Sugestões para Trabalhos Futuros
Esta pesquisa investigou o uso de AG para a indução de regras de predição simples em
problemas de mineração de dados.
O algoritmo proposto pode ser considerado bem sucedido, no sentido de que é
um passo inicial para uma futura pesquisa na área, visto que os resultados encontrados
pelo menos não se revelaram absurdos.
O maior problema encontrado, e que já era esperado, foi o alto custo
computacional requerido pelo AG programado em Matlab que inviabilizou o
processamento de grandes quantidades de dados.
Como sugestões para trabalhos futuros, ficam:

A realização de novos experimentos em uma ferramenta de AG que seja
mais escalável, como por exemplo o Rule Evolver [Lopes, 1999] ou a
construção de uma nova ferramenta de AG adequada para a questão de
grande quantidade de dados, característica principal dos problemas de
mineração de dados;

a codificação do cromossomo de maneira que todas as classes possam ser
avaliadas ao mesmo tempo, o que facilitará a utilização do sistema;

a realização de novos experimentos que aprofundem a proposta aqui descrita
para que se tenha uma idéia mais clara de sua viabilidade ou não.
Referências
Bueno, R., Traina, A. J. M. e Traina Jr, C. (2005). Algoritmos Genéticos para Consultas
por
Similaridade
Aproximadas.
Disponível
em:
<http://www.sbbdsbes2005.ufu.br/arquivos/artigo-13-BuenoTraina.pdf >.
Carvalho, D.R.; Freitas, A.A. (2000). A hybrid decision tree/genetic algorithm for
coping with the problem of small disjuncts in data mining. Proc. Genetic and
Evolutionary Computation (GECCO-2000), 1061-1068, Las Vegas, NV, USA.
Chipperfield, A., Fleming, P., Pohlheim; H., Fonseca, C. Genetic Algorithm Toolbox –
For Use with Matlab – User’s Guide. Department of Automatic Control and Systems
Engineering
of
The
University
of
Sheffield.
Disponível
em
<http://www.shef.ac.uk/acse/research/ecrg/gat.html>.
Fayyad, Usama M., Piatetsky-Shapiro, Gregory and Smyth, Padhraic. (1996). From
Data Mining to Knowledge Discovery: An Overview. In: Fayyad, Usama M.,
Piatetsky-Shapiro, Gregory, Smyth, Padhraic and Uthurusamy, Ramasamy.
Advances in Knowledge Discovery and Data Mining. MIT Press, 611 p. p. 1-34.
Fertig, C.S., Freitas, A.A., Arruda, L.V.R., Kaestner, C. (1999). A Fuzzy Beam-Search
Rule Induction Algorithm. Principles of Data Mining and Knowledge Discovery:
Proc. 3rd European Conf. (PKDD-99) Lecture Notes in Artificial Intelligence 1704,
341- 347. Springer-Verlag.
Han, Jiawei and Kamber, Micheline. (2001). Data mining: concepts and techniques.
Morgan Kaufmann Publishers.
17
Junior Tenório, N. N. e Barreto, J.M. (2002). Algoritmos Genéticos para extração da
qualidade de serviços prestados por clinicas odontológicas. I2TS’2002 –
International Information Technology Symposium, Florianópolis, SC. Disponível
em: <http://www.inf.ufsc.br/~barreto/artigos/Junior02.pdf>.
Lopes, Carlos Henrique P. (1999). Classificação de Registros em Banco de Dados por
Evolução de Regras de Associação utilizando Algoritmos Genéticos. Dissertação de
Mestrado. PUC /Rio, Rio de Janeiro.
Luger, George F. (2004). Inteligência Artificial: estruturas e estratégias para a solução
de problemas complexos. Bookmann. Porto Alegre.
Morais, L. e Domingues, M. (2005). Algoritmo Genético para maximização da Função
F6. Trabalho apresentado na disciplina de Computação Evolucionária.
PPGEE/UFPA, Belém PA.
Olave, M., Rajkovic, V. e Bohanec, M.(1989). An application for admission in public
school systems. In (I. Th. M. Snellen and W. B. H. J. van de Donk and J.-P.
Baquiast, editors) Expert Systems in Public Administration, pages 145-160. Elsevier
Science Publishers (North Holland)}, 1989.
Romão, W., Freitas, A. A. e Pacheco, R. C. S. (2000). Uma revisão de abordagens
genético-difusas para descoberta de conhecimento em banco de dados. Revista Acta
Scientiarum. ISSN 1415-6814. Pró-Reitoria de Pesquisa e Pós-Graduação,
Universidade Estadual de Maringá. Volume 22, Number 5, 1347-1359. Disponível
em: <http://www.cs.kent.ac.uk/people/staff/aaf/pub_papers.dir/Acta-Scientiarum.pdf
>.
Romão, W., Freitas, A. A. and Gimenes, I. M. S. (2004). Discovering Interesting
Knowledge from a Science & Technology Database with a Genetic Algorithm.
Disponível em: <http://www.cs.kent.ac.uk/people/staff/aaf/pub_papers.dir/AppliedSoft-Comp-J-Wesley-2004.pdf>.
Romão, W., Freitas, A. A. e Pacheco, R. C. S. (2002). Descoberta de Conhecimento
Relevante em Banco de Dados sobre Ciência e Tecnologia. Tese de doutorado.
UFSC/Florianópolis, Santa Catarina.
The Mathworks, Inc. (2002). Matlab. The language of technical computing. Version
6.5.0.1. 18091 3a Release 13.
Thomaz, A., Ferreira, B., Lobo Jr., H., Barbosa, L., Leone Filho, M., Silva, M., Quispe,
N.
(2005).
Tutorial
Toolbox
AGBIN.
Disponível
em
<ftp://ftp.dca.fee.unicamp.br/pub/docs/vonzuben/ia707_1s04/projetos/binario.zip>.
Witten, Ian H. and Frank, Eibe. (2005). Data Mining: Practical machine learning tools
and techniques, 2nd Edition, Morgan Kaufmann, San Francisco.
Anexo
Resultado da mineração dos dados da base Creche com o algoritmo J48 do Weka:
=== Run information ===
Scheme:
Relation:
Instances:
Attributes:
Test mode:
weka.classifiers.trees.J48 -C 0.7 -M 2
nursery
12960
9
parents
has_nurs
form
children
housing
finance
social
health
class
10-fold cross-validation
=== Classifier model (full training set) ===
J48 pruned tree
-----------------health = recommended
|
has_nurs = proper
|
|
parents = usual
|
|
|
social = nonprob
|
|
|
|
housing = convenient
|
|
|
|
|
finance = convenient: very_recom (16.0/1.0)
|
|
|
|
|
finance = inconv
|
|
|
|
|
|
children = 1.0: very_recom (4.0/1.0)
|
|
|
|
|
|
children = 2.0: priority (4.0/2.0)
|
|
|
|
|
|
children = 3.0: priority (4.0)
|
|
|
|
|
|
children = more: priority (4.0)
|
|
|
|
housing = less_conv
|
|
|
|
|
children = 1.0
|
|
|
|
|
|
form = complete: very_recom (2.0)
|
|
|
|
|
|
form = completed: very_recom (2.0)
|
|
|
|
|
|
form = incomplete: very_recom (2.0)
|
|
|
|
|
|
form = foster: priority (2.0)
|
|
|
|
|
children = 2.0
|
|
|
|
|
|
form = complete: very_recom (2.0)
|
|
|
|
|
|
form = completed: very_recom (2.0)
|
|
|
|
|
|
form = incomplete: priority (2.0)
|
|
|
|
|
|
form = foster: priority (2.0)
|
|
|
|
|
children = 3.0: priority (8.0)
|
|
|
|
|
children = more: priority (8.0)
|
|
|
|
housing = critical
|
|
|
|
|
form = complete
|
|
|
|
|
|
children = 1.0: very_recom (2.0)
|
|
|
|
|
|
children = 2.0: priority (2.0)
|
|
|
|
|
|
children = 3.0: priority (2.0)
|
|
|
|
|
|
children = more: priority (2.0)
|
|
|
|
|
form = completed: priority (8.0)
|
|
|
|
|
form = incomplete: priority (8.0)
|
|
|
|
|
form = foster: priority (8.0)
|
|
|
social = slightly_prob
|
|
|
|
housing = convenient
|
|
|
|
|
finance = convenient: very_recom (16.0/1.0)
|
|
|
|
|
finance = inconv
|
|
|
|
|
|
children = 1.0: very_recom (4.0/1.0)
|
|
|
|
|
|
children = 2.0: priority (4.0/2.0)
|
|
|
|
|
|
children = 3.0: priority (4.0)
|
|
|
|
|
|
children = more: priority (4.0)
|
|
|
|
housing = less_conv
|
|
|
|
|
children = 1.0
19
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
form = complete: very_recom (2.0)
|
|
|
|
form = completed: very_recom (2.0)
|
|
|
|
form = incomplete: very_recom (2.0)
|
|
|
|
form = foster: priority (2.0)
|
|
|
children = 2.0
|
|
|
|
form = complete: very_recom (2.0)
|
|
|
|
form = completed: very_recom (2.0)
|
|
|
|
form = incomplete: priority (2.0)
|
|
|
|
form = foster: priority (2.0)
|
|
|
children = 3.0: priority (8.0)
|
|
|
children = more: priority (8.0)
|
|
housing = critical
|
|
|
form = complete
|
|
|
|
children = 1.0: very_recom (2.0)
|
|
|
|
children = 2.0: priority (2.0)
|
|
|
|
children = 3.0: priority (2.0)
|
|
|
|
children = more: priority (2.0)
|
|
|
form = completed: priority (8.0)
|
|
|
form = incomplete: priority (8.0)
|
|
|
form = foster: priority (8.0)
|
social = problematic: priority (96.0)
parents = pretentious
|
social = nonprob
|
|
housing = convenient
|
|
|
finance = convenient: very_recom (16.0)
|
|
|
finance = inconv
|
|
|
|
children = 1.0: very_recom (4.0/1.0)
|
|
|
|
children = 2.0: priority (4.0/2.0)
|
|
|
|
children = 3.0: priority (4.0)
|
|
|
|
children = more: priority (4.0)
|
|
housing = less_conv
|
|
|
children = 1.0
|
|
|
|
form = complete: very_recom (2.0)
|
|
|
|
form = completed: very_recom (2.0)
|
|
|
|
form = incomplete: very_recom (2.0)
|
|
|
|
form = foster: priority (2.0)
|
|
|
children = 2.0
|
|
|
|
form = complete: very_recom (2.0)
|
|
|
|
form = completed: very_recom (2.0)
|
|
|
|
form = incomplete: priority (2.0)
|
|
|
|
form = foster: priority (2.0)
|
|
|
children = 3.0: priority (8.0)
|
|
|
children = more: priority (8.0)
|
|
housing = critical
|
|
|
form = complete
|
|
|
|
children = 1.0: very_recom (2.0)
|
|
|
|
children = 2.0: priority (2.0)
|
|
|
|
children = 3.0: priority (2.0)
|
|
|
|
children = more: priority (2.0)
|
|
|
form = completed: priority (8.0)
|
|
|
form = incomplete: priority (8.0)
|
|
|
form = foster: priority (8.0)
|
social = slightly_prob
|
|
housing = convenient
|
|
|
finance = convenient: very_recom (16.0)
|
|
|
finance = inconv
|
|
|
|
children = 1.0: very_recom (4.0/1.0)
|
|
|
|
children = 2.0: priority (4.0/2.0)
|
|
|
|
children = 3.0: priority (4.0)
|
|
|
|
children = more: priority (4.0)
|
|
housing = less_conv
|
|
|
children = 1.0
|
|
|
|
form = complete: very_recom (2.0)
|
|
|
|
form = completed: very_recom (2.0)
|
|
|
|
form = incomplete: very_recom (2.0)
|
|
|
|
form = foster: priority (2.0)
|
|
|
children = 2.0
|
|
|
|
form = complete: very_recom (2.0)
|
|
|
|
form = completed: very_recom (2.0)
|
|
|
|
form = incomplete: priority (2.0)
|
|
|
|
form = foster: priority (2.0)
|
|
|
children = 3.0: priority (8.0)
|
|
|
children = more: priority (8.0)
|
|
housing = critical
20
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
form = complete
|
|
|
|
|
children = 1.0: very_recom (2.0)
|
|
|
|
|
children = 2.0: priority (2.0)
|
|
|
|
|
children = 3.0: priority (2.0)
|
|
|
|
|
children = more: priority (2.0)
|
|
|
|
form = completed: priority (8.0)
|
|
|
|
form = incomplete: priority (8.0)
|
|
|
|
form = foster: priority (8.0)
|
|
social = problematic: priority (96.0)
|
parents = great_pret
|
|
social = nonprob: priority (96.0)
|
|
social = slightly_prob: priority (96.0)
|
|
social = problematic
|
|
|
housing = convenient
|
|
|
|
finance = convenient: priority (16.0)
|
|
|
|
finance = inconv
|
|
|
|
|
children = 1.0: priority (4.0/1.0)
|
|
|
|
|
children = 2.0: priority (4.0/2.0)
|
|
|
|
|
children = 3.0: spec_prior (4.0)
|
|
|
|
|
children = more: spec_prior (4.0)
|
|
|
housing = less_conv
|
|
|
|
children = 1.0
|
|
|
|
|
form = complete: priority (2.0)
|
|
|
|
|
form = completed: priority (2.0)
|
|
|
|
|
form = incomplete: priority (2.0)
|
|
|
|
|
form = foster: spec_prior (2.0)
|
|
|
|
children = 2.0
|
|
|
|
|
form = complete: priority (2.0)
|
|
|
|
|
form = completed: priority (2.0)
|
|
|
|
|
form = incomplete: spec_prior (2.0)
|
|
|
|
|
form = foster: spec_prior (2.0)
|
|
|
|
children = 3.0: spec_prior (8.0)
|
|
|
|
children = more: spec_prior (8.0)
|
|
|
housing = critical
|
|
|
|
form = complete
|
|
|
|
|
children = 1.0: priority (2.0)
|
|
|
|
|
children = 2.0: spec_prior (2.0)
|
|
|
|
|
children = 3.0: spec_prior (2.0)
|
|
|
|
|
children = more: spec_prior (2.0)
|
|
|
|
form = completed: spec_prior (8.0)
|
|
|
|
form = incomplete: spec_prior (8.0)
|
|
|
|
form = foster: spec_prior (8.0)
has_nurs = less_proper
|
parents = usual
|
|
social = nonprob
|
|
|
housing = convenient
|
|
|
|
finance = convenient: very_recom (16.0)
|
|
|
|
finance = inconv
|
|
|
|
|
children = 1.0: very_recom (4.0/1.0)
|
|
|
|
|
children = 2.0: priority (4.0/2.0)
|
|
|
|
|
children = 3.0: priority (4.0)
|
|
|
|
|
children = more: priority (4.0)
|
|
|
housing = less_conv
|
|
|
|
children = 1.0
|
|
|
|
|
form = complete: very_recom (2.0)
|
|
|
|
|
form = completed: very_recom (2.0)
|
|
|
|
|
form = incomplete: very_recom (2.0)
|
|
|
|
|
form = foster: priority (2.0)
|
|
|
|
children = 2.0
|
|
|
|
|
form = complete: very_recom (2.0)
|
|
|
|
|
form = completed: very_recom (2.0)
|
|
|
|
|
form = incomplete: priority (2.0)
|
|
|
|
|
form = foster: priority (2.0)
|
|
|
|
children = 3.0: priority (8.0)
|
|
|
|
children = more: priority (8.0)
|
|
|
housing = critical
|
|
|
|
form = complete
|
|
|
|
|
children = 1.0: very_recom (2.0)
|
|
|
|
|
children = 2.0: priority (2.0)
|
|
|
|
|
children = 3.0: priority (2.0)
|
|
|
|
|
children = more: priority (2.0)
|
|
|
|
form = completed: priority (8.0)
|
|
|
|
form = incomplete: priority (8.0)
|
|
|
|
form = foster: priority (8.0)
21
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
social = slightly_prob
|
housing = convenient
|
|
finance = convenient: very_recom (16.0)
|
|
finance = inconv
|
|
|
children = 1.0: very_recom (4.0/1.0)
|
|
|
children = 2.0: priority (4.0/2.0)
|
|
|
children = 3.0: priority (4.0)
|
|
|
children = more: priority (4.0)
…………………………seccionado………………………………………
|
has_nurs = very_crit
|
|
form = complete
|
|
|
children = 1.0
|
|
|
|
housing = convenient
|
|
|
|
|
finance = convenient: priority (9.0)
|
|
|
|
|
finance = inconv: spec_prior (9.0)
|
|
|
|
housing = less_conv: spec_prior (18.0)
|
|
|
|
housing = critical: spec_prior (18.0)
|
|
|
children = 2.0: spec_prior (54.0)
|
|
|
children = 3.0: spec_prior (54.0)
|
|
|
children = more: spec_prior (54.0)
|
|
form = completed: spec_prior (216.0)
|
|
form = incomplete: spec_prior (216.0)
|
|
form = foster: spec_prior (216.0)
health = not_recom: not_recom (4320.0)
Number of Leaves
:
Size of the tree :
680
944
Time taken to build model: 6.41 seconds
=== Stratified cross-validation ===
=== Summary ===
Correctly Classified Instances
Incorrectly Classified Instances
Kappa statistic
Mean absolute error
Root mean squared error
Relative absolute error
Root relative squared error
Total Number of Instances
12803
157
0.9823
0.0051
0.0596
1.8847 %
16.1206 %
12960
98.7886 %
1.2114 %
=== Detailed Accuracy By Class ===
TP Rate
0
0.982
1
0.884
0.99
FP Rate
0
0.009
0
0.003
0.004
Precision
0
0.981
1
0.871
0.992
Recall
0
0.982
1
0.884
0.99
F-Measure
0
0.982
1
0.877
0.991
=== Confusion Matrix ===
a
b
c
0
0
0
0 4191
0
0
0 4320
0
38
0
0
42
0
d
e
2
0
41
34
0
0
290
0
0 4002
|
|
|
|
|
<-- classified as
a = recommend
b = priority
c = not_recom
d = very_recom
e = spec_prior
Class
recommend
priority
not_recom
very_recom
spec_prior
Download