Upload
andre-fontoura-pinto
View
216
Download
0
Embed Size (px)
Citation preview
7/25/2019 Aplicao C5.0 ao Diagnstico de Doena Renal Crnica
1/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 [email protected]
19 de Abril de 2016
7/25/2019 Aplicao C5.0 ao Diagnstico de Doena Renal Crnica
2/12
ndiceObjetivo ................................................................................................................................ 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 ............................................................................................................... 6Desenvolvimento .................................................................................................................. 7
Ferramentas utilizadas ................................................................................................ 7
Estrutura e Detalhes .................................................................................................... 7
Experincias ......................................................................................................................... 8
Objetivos ....................................................................................................................... 8
Resultados ..................................................................................................................... 9
Execuo por defeito ................................................................................................. 9
Execuo com outras opes ativas .........................................................................10Concluses ...........................................................................................................................10
Recursos ..............................................................................................................................11
Bibliografia ..................................................................................................................11
Software .......................................................................................................................11
Apndice ..............................................................................................................................12
7/25/2019 Aplicao C5.0 ao Diagnstico de Doena Renal Crnica
3/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 deaprendizagem 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.
7/25/2019 Aplicao C5.0 ao Diagnstico de Doena Renal Crnica
4/12
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
o Presso alta
o Idade avanada
o Doenas cardiovasculares
o
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 individuoteria 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.
7/25/2019 Aplicao C5.0 ao Diagnstico de Doena Renal Crnica
5/12
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 tiD, 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.
7/25/2019 Aplicao C5.0 ao Diagnstico de Doena Renal Crnica
6/12
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 folhacontendo 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))
Exsubconjunto
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 umgain 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:
7/25/2019 Aplicao C5.0 ao Diagnstico de Doena Renal Crnica
7/12
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)
7/25/2019 Aplicao C5.0 ao Diagnstico de Doena Renal Crnica
8/12
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, utilizandoa implementao mais bsica do algoritmo;
Winnowingusar winnowing nos atributos;
Soft Thresholdsusar limites suaves;
Boostingusar boosting com 10 tentativas;
Combinao de flags acima referidas.
7/25/2019 Aplicao C5.0 ao Diagnstico de Doena Renal Crnica
9/12
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 falsos-
positivos 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:
7/25/2019 Aplicao C5.0 ao Diagnstico de Doena Renal Crnica
10/12
2. Execuo com outras opes ativas
-wWinnowing
-pSoft Threshold
-bBoosting 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 4 6 9 (4) 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).
7/25/2019 Aplicao C5.0 ao Diagnstico de Doena Renal Crnica
11/12
Recursos
Bibliografia
o Artificial intelligence - Stuart Russell, Peter Norvig
o Apresentao sobre Aprendizagem Simblica Automtica feita pelo
professor Eugnio Oliveira
o UCI Machine Learning Repository
http://archive.ics.uci.edu/ml/datasets/Chronic_Kidney_Disease
o What is entropy and information gain?
o C5.0: An Informal Tutorial
o Improved Decision Tree Induction Algorithm with Feature Selection,
Cross Validation, Model Complexity and Reduced Error Pruning
o Information gain ratio
Software
o GNU Compiler Collection
o Gedit
o
Data Mining Tools See5 and C5.0
o Office 365
Percentagem de trabalho
Andr Pinto100%
http://aleph.fe.up.pt/F/-?func=find-b&find_code=SYS&request=000138137https://paginas.fe.up.pt/~eol/IA/1516/ia_.htmlhttps://paginas.fe.up.pt/~eol/IA/1516/ia_.htmlhttps://paginas.fe.up.pt/~eol/IA/1516/ia_.htmlhttps://paginas.fe.up.pt/~eol/IA/1516/ia_.htmlhttps://paginas.fe.up.pt/~eol/IA/1516/ia_.htmlhttp://stackoverflow.com/questions/1859554/what-is-entropy-and-information-gainhttp://stackoverflow.com/questions/1859554/what-is-entropy-and-information-gainhttps://www.rulequest.com/see5-unix.htmlhttps://www.rulequest.com/see5-unix.htmlhttps://www.rulequest.com/see5-unix.htmlhttp://www.ijcsit.com/docs/Volume%203/Vol3Issue2/ijcsit2012030227.pdfhttp://www.ijcsit.com/docs/Volume%203/Vol3Issue2/ijcsit2012030227.pdfhttp://www.ijcsit.com/docs/Volume%203/Vol3Issue2/ijcsit2012030227.pdfhttps://en.wikipedia.org/wiki/Information_gain_ratiohttps://en.wikipedia.org/wiki/Information_gain_ratiohttps://gcc.gnu.org/https://gcc.gnu.org/https://wiki.gnome.org/Apps/Gedithttps://wiki.gnome.org/Apps/Gedithttps://www.rulequest.com/see5-info.htmlhttps://www.rulequest.com/see5-info.htmlhttps://products.office.com/pt-PT/https://products.office.com/pt-PT/https://products.office.com/pt-PT/https://www.rulequest.com/see5-info.htmlhttps://wiki.gnome.org/Apps/Gedithttps://gcc.gnu.org/https://en.wikipedia.org/wiki/Information_gain_ratiohttp://www.ijcsit.com/docs/Volume%203/Vol3Issue2/ijcsit2012030227.pdfhttp://www.ijcsit.com/docs/Volume%203/Vol3Issue2/ijcsit2012030227.pdfhttps://www.rulequest.com/see5-unix.htmlhttp://stackoverflow.com/questions/1859554/what-is-entropy-and-information-gainhttps://paginas.fe.up.pt/~eol/IA/1516/ia_.htmlhttps://paginas.fe.up.pt/~eol/IA/1516/ia_.htmlhttp://aleph.fe.up.pt/F/-?func=find-b&find_code=SYS&request=0001381377/25/2019 Aplicao C5.0 ao Diagnstico de Doena Renal Crnica
12/12
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
Onde :
0corre por defeito
1corre com winnowing
2corre com soft thresholds
3corre com boosting (10 tentativas)
4corre com winnowing + soft thresholds
5corre com winnowing + boosting
6corre com soft thresholds + boosting
7corre com winnowing + soft thresholds + boosting
Cada vez que o programa corre gera um ficheiro com os resultados.