You are on page 1of 12

Aplicao C5.

0 ao Diagnstico de Doena
Renal Crnica
Relatrio Final

Inteligncia Artificial
3 ano do Mestrado Integrado em Engenharia Informtica e Computao

Elementos do Grupo:
Andr Pinto up201303663 up201303663@fe.up.pt
19 de Abril de 2016

ndice
Objetivo ................................................................................................................................ 3
Especificao ........................................................................................................................ 4
Anlise .......................................................................................................................... 4
Detalhes do tema ...................................................................................................... 4
Ilustrao de cenrios .............................................................................................. 4
Explicao de Data sets............................................................................................ 4
Abordagem .................................................................................................................... 5
Tcnicas .................................................................................................................... 5
Algoritmos e sua breve explicao ........................................................................... 5
Mtricas .................................................................................................................... 6
Heursticas ............................................................................................................... 6
Desenvolvimento .................................................................................................................. 7
Ferramentas utilizadas ................................................................................................ 7
Estrutura e Detalhes .................................................................................................... 7
Experincias ......................................................................................................................... 8
Objetivos ....................................................................................................................... 8
Resultados ..................................................................................................................... 9
Execuo por defeito ................................................................................................. 9
Execuo com outras opes ativas .........................................................................10
Concluses ...........................................................................................................................10
Recursos ..............................................................................................................................11
Bibliografia ..................................................................................................................11
Software .......................................................................................................................11
Apndice ..............................................................................................................................12

Objetivo
Este projeto est a ser desenvolvido no mbito da unidade curricular Inteligncia
Artificial e tem como objetivo desenvolver uma aplicao em C, recorrendo a algoritmos de
aprendizagem C5.0, que determina a rvore de deciso que traduza regras especficas no
diagnstico de doena renal crnica. Um conjunto de exemplos usado na aprendizagem dessas
regras de classificao.
Inicialmente estava previsto a utilizao do algoritmo C4.5, mas dadas as vantagens do
algoritmo C5.0 e o facto de se conseguir aprender os mesmo conceitos com este algoritmo levou-me
a optar por o utilizar.

Especificao
Anlise
1. Detalhes do tema
A Doena Renal Crnica uma condio de leso renal acompanhada
geralmente por perda progressiva da funo dos rins. Atualmente conhece-se que
um em cada dez adultos portador desta doena, mas dado que a doena no
costuma ocasionar sintomas (exceto em fases avanadas) a maioria das pessoas
desconhece que sofre desta. Um diagnstico precoce da doena ajuda que esta no
progrida para fases mais avanadas.
As variveis utilizadas na aprendizagem esto relacionadas com fatores de
risco num indivduo, como por exemplo:
o

Diabetes

Presso alta

Idade avanada

Doenas cardiovasculares

Apesar de no apresentar muitos sintomas, algumas reaes podem estar


relacionadas com a presena da doena, e por isso tambm so tomadas em conta
(como por exemplo uma alterao da cor da urina, indicio de presena de sangue). [1]

2. Ilustrao de cenrios
Esta aplicao pode ser usada, por exemplo, por um mdico para corroborar
alguma concluso a que tenha chegado. Tambm poderia ser usada por uma pessoa
para poder verificar por ela prpria se h ou no motivos para preocupao, e se
autodiagnosticar, mas dado necessidade de introduo de muitos dados de difcil
obteno num ambiente comum, para se obter um resultado fivel, o individuo
teria que se deslocar a um hospital de qualquer maneira.

3. Explicao de Data sets


Vo ser usados 2 data sets diferentes. Um para treino e outro para testes.
Ambos data sets so constitudos por amostras fornecidas em UCI Machine
Learning Repository. Os atributos utilizados para classificao so 24, com um
class e podem apresentar valores desconhecidos.

Abordagem
1. Tcnicas
Como j foi referido, vai ser utilizado o algoritmo C5.0 para determinar a
rvore de deciso. Ora, com a utilizao deste algoritmo tambm estar envolvida a
utilizao de outra tcnica complementar.
Esta tcnica tem a designao de adaptative boosting (Rob Schapire e Yoav
Freund), e consiste em:
Gerar vrios classificadores em vez de um. Quando um novo caso para
ser classificado, cada classificador vota na sua classe prevista e os votos so
contados para determinar a classe final.
A maneira em que isto se processa a seguinte:
1. Uma primeira rvore de deciso gerada, como se normalmente faz;
2. Dado que, geralmente, esta primeira rvore classifica erradamente
alguns dos casos de treino, criado um novo classificador, que se foca
mais nos casos de erro para que este seja reduzido;
3. Como esse segundo classificador tambm poder cometer erros, o
processo repete-se, at o ltimo classificador ser ou muito preciso ou
muito impreciso (ou ento, at um numero de iteraes previamente
especificado).

2. Algoritmos e sua breve explicao


O algoritmo C5.0:
Input: Exemplo, Atributo alvo, Atributo
Output: rvore de deciso
Algoritmo:

Verifica a classe base;

Constri rvore de deciso a partir dos dados de treino;

Encontra o atributo com o maior ganho de informao;

Para cada ti D, aplica a rvore de deciso para determinar a sua


classe.

Input:

Exemplo: Dados de entrada que se esperam classificar


corretamente.

Atributos: O input para o algoritmo consiste num conjunto de


casos de treino, cada sendo um tuplo de valores para um set de
atributos e um atributo classe.

Atributos Alvo: classe; atributo discreto.

Output:
rvore de deciso que classifica corretamente os dados.

Casos base:

Todos os exemplos dos dados de treino pertencem mesma classe;

Se o set de dados de treino estiver vazio retornada uma folha de


falha;

Se a lista de atributos estiver vazia retornada uma folha


contendo a classe mais frequente ou a disjuno de todas as
classes.

3. Mtricas
O algoritmo utilizado semelhante ao algoritmo C4.5 e este tipo de rvore de
deciso baseia-se em entropia e ganho de informao. Isto consiste em obter o
maior nmero de elementos que balanam todos para a mesma classe (conjuntos
puros). Essa pureza obtida a partir da entropia dos elementos.
Quanto mais alta a Entropia do atributo, mais incerteza h a respeito do
interesse dos seus valores para a classificao. A entropia da propriedade de
classificao de um atributo pode ser calculada com:
Entropy(Ex) = - p(a)*log(p(a)) - p(b)*log(p(b))

Ex subconjunto

p(a)/p(b) percentagem de exemplos com resultado a/b

E mede a impureza (o oposto da pureza) do conjunto. O ganho de


informao, corresponde ao aumento da pureza ao tomar uma certa deciso na
construo da rvore. E mede-se com a diferena entre a entropia antes e depois da
diviso ser tomada. Quando maior o ganho, mais se conseguiu reduzir a incerteza
com essa deciso, logo, uma diviso na rvore com maior ganho representa a
melhor arvore a ser gerada.

4. Heursticas
Por vezes os resultados obtidos com o mtodo referido apresentam resultados
errados. Isto porque pode aparecer um atributo que divida os dados em classes
nicas, que, por serem nicas, possuam sempre um nvel de pureza mximo.
Para contornar o problema foi criado um gain ratio, que, aps o calculo do
ganho utiliza a formula:
GainRatio(Ex,A) = Gain(Ex,A)/IV(Ex,A)

A - atributo

Em que IV(X,A) o valor intrnseco para um teste do atributo e se calcula


com:

Desenvolvimento
Ferramentas utilizadas
O projecto foi desenvolvido em C, usando gedit como editor de texto e a GNU
Compiler Collection para compilar. Foi tambm utilizado uma implementao j
desenvolvida do algoritmo C5.0 em C. Foi tambm usada uma interface grfica que
corre a implementao do algoritmo.

Estrutura e Detalhes
A aplicao apenas usada para chamar a ferramenta principal para o
processamento dos dados. Apenas se tem que especificar o diretrio onde se
encontram os ficheiros ckd.names e ckd.data. No mesmo diretrio tambm se
pode incluir um ckd.test para utilizar como teste ao classificador gerado pela
ferramenta.
(Por motivos tcnicos, as experiencias feitas foram realizadas com a interface
para Windows disponibilizada pelos autores da ferramenta. Dado que a ferramenta
a mesma no h motivos para se esperar discrepncias)

Experincias
Objetivos
A ferramenta utilizada tem vrios parmetros que podem variar. Com
estas experincias ser analisado cada mtodo de forma a compreender como a
ferramenta se comporta e de que modo os resultados variam.
Foi decidido dividir as amostras fornecidas em 2 grupos de data sets. Um
para treino, com 300 amostras e outro para teste, com 100 amostras.
As experincias a realizar sero ento:

Execuo por defeito - nenhum parmetro alterado, utilizando


a implementao mais bsica do algoritmo;

Winnowing usar winnowing nos atributos;

Soft Thresholds usar limites suaves;

Boosting usar boosting com 10 tentativas;

Combinao de flags acima referidas.

Resultados
1. Execuo por defeito
Quando feita uma execuo por defeito, obtemos:

Analisando o que a ferramenta retorna:

A rvore de deciso gerada tem tamanho 6;

Existiram 3 erros, em que amostras foram dadas como falsospositivos para a doena, admitindo uma taxa de erro de 1.0%;

A percentagem associada a cada atributo corresponde


percentagem de casos para os quais o valor desse atributo
conhecido e usado para prever uma classe, sendo sc (serum
creatinine) o que mais peso tem.

Para os dados de teste:

2. Execuo com outras opes ativas

-w Winnowing

-p Soft Threshold

-b Boosting w/ 10 trials

-w

-p

-b

-w -p

-w -b

-p -b

-w -p -b

Dados Treino

1.7%

1.0%

0.0%

1.7%

1.0%

0.0%

1.0%

Dados Teste

2.0%

2.0%

0.0%

2.0%

2.0%

0.0%

2.0%

Tamanho DT

9 (4)

6 (10)

9 (4)

6 (10)

Concluses
Conseguimos concluir atravs desta recolha de dados que a funcionalidade de Soft
Thresholds pouco afeta o resultado final em termos de erros e espao ocupado pela rvore. Por
outro lado, winnowing dos atributos consegue gerar uma DT mais pequena, mas custa de
preciso. O que realmente consegue reduzir a quantidade de erros na classificao fazer
boosting, usando mais recursos (tempo e espao).

Recursos
Bibliografia
o

Artificial intelligence - Stuart Russell, Peter Norvig

Apresentao sobre Aprendizagem Simblica Automtica feita pelo


professor Eugnio Oliveira

UCI Machine Learning Repository


http://archive.ics.uci.edu/ml/datasets/Chronic_Kidney_Disease

What is entropy and information gain?

C5.0: An Informal Tutorial

Improved Decision Tree Induction Algorithm with Feature Selection,


Cross Validation, Model Complexity and Reduced Error Pruning

Information gain ratio

Software
o

GNU Compiler Collection

Gedit

Data Mining Tools See5 and C5.0

Office 365

Percentagem de trabalho
Andr Pinto 100%

Apndice
Antes de correr o programa deve-se compilar a ferramenta com o algoritmo, navegando
at pasta C50 no terminal e usando o comando make.
Ferramenta com implementao do algoritmo C5.0:
./ckd <mode>
Onde <mode>:

0 corre por defeito

1 corre com winnowing

2 corre com soft thresholds

3 corre com boosting (10 tentativas)

4 corre com winnowing + soft thresholds

5 corre com winnowing + boosting

6 corre com soft thresholds + boosting

7 corre com winnowing + soft thresholds + boosting

Cada vez que o programa corre gera um ficheiro com os resultados.

You might also like