Aplicação C5.0 ao Diagnóstico de Doença Renal Crónica

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=000138137
  • 7/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.