Compararea algoritmilor de clasificare în contextul diagnosticării medicale propusă de Cre ț u Andra-Elena Sesiunea: Iulie, 2018 Coordonator ș tiin [611035]
UNIVERSITATEA “ALEXANDRU IOAN CUZA” DIN IA
Ș
I
FACULTATEA DE INFORMATICĂ
LUCRARE DE LICEN
Ț
Ă
Compararea algoritmilor de clasificare în contextul
diagnosticării medicale
propusă de
Cre
ț
u Andra-Elena
Sesiunea: Iulie, 2018
Coordonator
ș
tiin
ț
ific
Lect. Dr. Arusoaie Andrei
UNIVERSITATEA “ALEXANDRU IOAN CUZA” DIN IA
Ș
I
FACULTATEA DE INFORMATICĂ
Compararea algoritmilor de clasificare
în contextul diagnosticării medicale
Cre
ț
u Andra-Elena
Sesiunea:
Iulie, 2018
Coordonator
ș
tiin
ț
ific
Lect. Dr. Arusoaie Andrei
1
DECLARA
Ț
IE DE CONSIM
Ț
ĂMÂNT
Prin prezenta declar că sunt de acord ca Lucrarea de licen
ț
ă cu titlul
„Compararea algoritmilor de clasificare în contextul diagnosticării medicale”, codul
sursă al programelor
ș
i celelalte con
ț
inuturi (grafice, m ultimedia, date de test etc.) care
înso
ț
esc aceast ă lucrare să fie utilizate în cadrul Facultă
ț
ii de Informatică.
De asemenea, sunt de acord ca Facultatea de Informatică de la Universitatea
„Alexandru Ioan Cuza” din Ia
ș
i, să utilizeze, modifice, reproducă
ș
i să distribuie în
scopuri necomerciale programele-calculator, format executabil
ș
i sursă, realizate de
mine în cadrul prezentei lucrări de licen
ț
ă.
Ia
ș
i,
Absolvent: [anonimizat]
_______________________
(semnătura în original)
2
Cuprins
I.Introducere
5
1.1 Context
5
1.2 Motiva
ț
ia
6
1.3 Contribu
ț
ii
7
4. Structura Lucrării
8
II. Diagnosticarea medicală privită ca problema de clasificare
9
2.1 Diagnosticarea medicală
9
2.2 Solu
ț
ii
10
III.Cercetarea ca punct de reper în diagnosticarea medicală
11
1 Contribu
ț
ii
11
1.1 Construc
ț
ia unui set de date potrivit
11
1.2 Alegerea algoritmi potrivi
ț
i pentru rezolvarea problemei
11
1.3 Implementarea algoritmilor
ș
i antrenarea acestora
12
1.4 Interpretarea rezultatelor
12
2.Diagnosticarea folosind algoritmi de învă
ț
are automată.
13
2.1 Construc
ț
ia unui set de date format din analize medicale specifice diagnosticării
unei boli cronice la rinichi
13
2.2 Utilizarea algoritmilor de clasificare în diagnosticare
13
IV. Experimente
20
4.1 Timpul de răspuns
20
4.2 Rata de eroare ca factor decisiv în luarea unei decizii asupra găsirii solu
ț
iei
22
4.3 Inteligenta umana vs inteligenta artificiala
24
4.4 Interpretarea rezultatelor
25
V. Concluzii
26
Bibliografie
27
Apendix
29
Tehnologiile utilizate
29
Setul de date
30
Eficienta
31
3
I.Introducere
1.1 Context
Diagnosticarea
este
o
etapă
a
actului
medical
care
permite
identificarea
naturii
ș
i
cauzei
afec
ț
iunii
de
care
suferă
un
pacient.
Numărului
mare
de
informa
ț
ii,
posibilitatea
apari
ț
iei
erorile
umane
ș
i
dificultă
ț
ile
ridicate
ale
procesului
de
diagnosticare,
reprezintă
una
dintre
problemele
cu
care
se
confruntă
domeniul
medical
în
prezent.
Apari
ț
ia
ș
i
evolu
ț
ia
rapidă
a
tehnicilor
de
învă
ț
are
automată
a
oferit
posibilitatea
dezvoltării
unor
sisteme
inteligente
care
pot
asista
medicii
în
determinarea
unui
diagnostic
pe
baza
unor
simptome
sau a unui set de analize medicale.
Pentru
a
dezvolta
astfel
de
sisteme
inteligente
care
pot
oferi
un
diagnostic
pe
baza
unor analize medicale pot fi utiliza
ț
i o serie de algoritmi de învă
ț
are automată.
Multitudinea
ș
i
diversitatea
algoritmilor
de
învă
ț
are
automată
constituie
un
important
subiect de cercetare care constă în compararea eficien
ț
ei algoritmilor.
Ca
în
toate
domeniile
în
care
sunt
utiliza
ț
i
algoritmii
de
învă
ț
are
automată,
ș
i
în
domeniul
medical
este
nevoie
de
utilizarea
unor
algoritmi
eficien
ț
i,
atât
din
punct
de
vedere
al timpului de execu
ț
ie cât
ș
i al preciziei cu care clasifica anu mite date de intrare.
1.2 Motiva
ț
ia
În
prezent,
interpretarea
rezultatelor
unui
set
de
analize
medicale
se
poate
realiza
doar
cu
ajutorul
unui
medic
specialist.
În
cadrul
interpretării
unor
analize
medicale
pot
apărea
nenumăra
ț
i
factori
care
pot
duce
la
o
interpretare
eronată
printre
care
se
număra:
numărului
mare de informa
ț
ii sau posibilitatea apari
ț
iei erorile umane.
Posibilitatea
apari
ț
iei
unor
astfel
de
erori
aduce
după
sine
dorin
ț
a
perfec
ț
ionării
sistemului
medical
prin
dezvoltarea
de
sisteme
inteligente
care
pot
veni
în
ajutorul
medicilor
4
prin
oferirea
de
diagnostice
pentru
diferite
seturi
de
analize
medicale.
Posibilitatea
de
a
antrena
un
algoritm
de
învă
ț
are
automată
cu
ajutorul
unor
seturi
de
date
clasificate
anterior
face posibilă dezvoltarea de astfel de sisteme inteligente.
Oferirea
unui
diagnostic
corect
face
ca
alegerea
algoritmilor
de
învă
ț
are
automată,
utiliza
ț
i
în
clasificarea
analizelor
medicale,
să
fie
foarte
importantă.
Acest
lucru
constituie
motivul
pentru
care
cercetarea
eficien
ț
ei
ș
i
compararea
algoritmilor
să
reprezinte
una
din
cele
mai
importante
etape
din
dezvoltarea
unui
astfel
de
sistem
capabil
să
ofere
un
diagnostic
cât
se poate de exact.
1.3 Contribu
ț
ii
Pornind
de
la
motiva
ț
ia
prezentată
mai
sus,
lucrarea
de
fa
ț
ă
urmăre
ș
te
compararea
unor
algoritmilor
de
învă
ț
are
automată
în
contextul
clasificării
unor
seturi
de
date
ș
i
totodată
se dore
ș
te prezentarea diferen
ț
elor din punct de vedere al eficie n
ț
ei
ș
i al preciziei acestora.
Realizarea
lucrării
de
fa
ț
ă
a
constat
în
cercetarea,implementarea,
antrenarea
ș
i
compararea,
prin
execu
ț
ia
de
experimente,
a
trei
tipuri
de
algoritmi
de
învă
ț
are
automată,
atât
între
ei
cât
ș
i
relativ
la
diagnosticul
prezis
.
Algoritmii
utiliza
ț
i
au
fost:
ID3,
AddaBoost
utilizând
ca
algoritm
de
clasificare
slab
Decision
Stump
ș
i
s-a
antrenat
ș
i
o
re
ț
ea
neuronală.
În
cadrul
experimentelor
realizate
s-a
avut
în
vedere
strângerea
de
informa
ț
ii
referitoare
la
timpul
de
execu
ț
ie
necesar
algoritmilor
pentru
învă
ț
are
ș
i
la
rata
de
eroare
rezultată
în
urma
testării
modelelor
învă
ț
ate
de
către
algoritmi.
Pe
lângă
testarea
algoritmilor
în
diferite
situa
ț
ii
s-a
încercat
verificarea
corectitudinii
diagnosticelor
oferite
de
ace
ș
tia
prin
compararea
acestora
cu
diagnosticele
oferite
de
un
medicspecialist
pe
acela
ș
i
set
de
date
format
din
10
instan
ț
e
de
test.
În
urma
experimentelor,
au
fost
colectate
o
serie
de
observa
ț
ii
cu
ajutorul
cărora s-a oferit o solu
ț
ie pentru problema diagnosticării medicale.
1.4. Structura Lucrării
Studiul
de
caz
urmăre
ș
te
oferirea
unei
priviri
de
ansamblu
asupra
modului
în
care
domeniul
informaticii
se
îmbină
cu
cel
medical
pentru
a
ajuta
la
îmbunată
ț
irea
modului
în
care
este
interpretat
un
set
de
analize
medicale.
Se
urmăre
ș
te
monitorizarea
comportamentului
5
a
trei
algoritmi
de
învă
ț
are
automată
ș
i
totodată
se
dore
ș
te
catalogarea
pacien
ț
ilor
ca
suferind
de o boală cronica la rinichi sau nu, pe baza unui set de analize medicale.
Pentru
realizarea
acestor
obiective
s-au
implementat
ș
i
antrenat
trei
algoritmi
diferi
ț
i
de
clasificare
ID3(care
generează
un
arbore
de
decizie
binar),
AddaBoost
utilizând
ca
algoritm
de
clasificare
slab
Decision
Stump(un
arbore
de
decizie
cu
un
nod)
ș
i
s-a
antrenat
ș
i
o
re
ț
ea
neuronală.
Pe
baza
unui
set
de
date,
preluat
din
baza
de
date
de
pe
site-ul
UCI
Machine Learning, s-au antrenat
ș
i testat cei trei algoritmi.
Primul
capitol
oferă
o
perspectivă
de
ansamblu
asupra
modului
în
care
algoritmii
de
învă
ț
are
automată
pot
ajuta
la
rezolvarea
problemei
de
diagnosticare
a
pacien
ț
ilor
cu
o
boală
cronică
la
rinichi.
În
al
doilea
capitol,
vor
fi
prezentate
în
detaliu
componentele
utilizate
în
cadrul
cercetării
asupra
algoritmilor
de
învă
ț
are
automată,
diferen
ț
ele
dintre
acestea
ș
i
cum
au
fost
utiliza
ț
i
ace
ș
tia
în
clasificarea
datelor
primite.
În
cadrul
sec
ț
iunii
destinată
experimentelor
ș
i
evaluării
solu
ț
iilor
se
vor
regăsi
o
serie
de
statistici
legate
de
modul
de
func
ț
ionare
a
celor
trei
algoritmi(rata
de
eroare,
timpul
de
execu
ț
ie)
pe
acela
ș
i
set
de
date,
precum
ș
i
compararea
eficien
ț
ei
acestora
ș
i
a
corectitudinii
diagnosticelor
oferi te.
Urmând
ca
pe
final
sa
fie
prezentat
un
scurt
rezumat
a
celor
prezentare
în
cadrul
lucrării
ș
i
o
serie
de
planurilor
de
îmbunată
ț
ire
ș
i a altor contribu
ț
ii care pot fi aduse lucrării curente.
6
II. Diagnosticarea medicală privită ca problema de
clasificare
2.1 Diagnosticarea medicală
Institutul
de
Medicină
de
la
Academiile
Na
ț
ionale
de
Ș
tiin
ț
ă,
Inginerie
ș
i
Medicină
raportează
că
erorile
de
diagnostic
contribuie
la
aproximativ
10%
din
decesele
pacien
ț
ilor
ș
i
reprezintă
de
asemenea
6-17%
din
complica
ț
iile
spitalului.
Este
important
de
observat
că
performan
ț
a
mediculu i
nu
este
de
obicei
cauză
directă
a
erorilor
de
diagnosticare.
De
fapt,
cercetătorii
atribuie
cauza
erorilor
de
diagnostic
unei
varietă
ț
i
de
factori,
printre
care
se
numără:
●
Colaborarea ineficientă
ș
i integrarea tehnologiilor informa
ț
ionale în domeniul sănătă
ț
ii
●
Lacune în comunicarea dintre medici, pacien
ț
i
ș
i familiile acestora
●
Un
sistem
de
lucru
în
domeniul
sănătă
ț
ii
care,
prin
proiectare,
nu
sprijină
în
mod
adecvat procesul de diagnosticare. [18]
Posibilitatea
apari
ț
iei
unui
diagnostic
eronat
a
fost
ș
i
va
rămâne
o
problemă
vitală
în
domeniul
medical.
Odată
cu
evolu
ț
ia
tehnologiei
s-a
încercat
în
permanen
ț
ă
să
se
îmbunătă
ț
ească
sistem ul
medical
prin
oferirea
de
aparatură
ș
i
sisteme
inteligente
care
pot
veni
în
ajutorul
medicilor.
Însă,
dezvoltarea
unor
sisteme
care
pot
oferi,
cu
o
anumită
preciziei,
un
diagnostic
nu
se
rezumă
doar
la
implementarea
unui
algoritm
capabil
să
clasifice
un
set
de
date,
fiind
nevoi
e
de
o
cercetare
amănun
ț
ită
în
domeniul
învă
ț
ării
automate
pentru
a
putea
oferi
o
solu
ț
ie
cât
mai
eficientă
ș
i
mai
precisă
pentru
aceasta
problemă
de
clasificare
ș
i anume di agnosticarea medicală.
Principala
problemă
care
apare
în
cadrul
dezvoltării
unui
sistem
capabil
să
ofere
un
diagnostic
corect
este
aceea
de
a
compara
diferi
ț
i
algoritmi
din
domeniul
învă
ț
ării
automate
7
ș
i
alegerea
algoritmu l
optim.
Compararea
modului
în
care
algoritmi
lucrează
cu
seturi
de
date
specifice
reprezintă
punctul
central
al
dezvoltării
sistemelor
inteligente
care
sunt
capabile să contribuie la evolu
ț
ia sistemului medical.
2.2 Solu
ț
ii
Diagnosticarea
medicală
reprezintă
o
categorie
de
teste
medicale
destinate
detectării
infec
ț
iilor
sau
a
afec
ț
iunilor
de
care
este
probabil
ca
un
pacient
sa
sufere
.
Astăzi,
învă
ț
area
automată joacă un rol
esen
ț
ial
în evolu
ț
ia diagnosticării medicale.
În
prezent,
diagnosticarea
medicală,
de
cele
mai
multe
ori,
se
realizează
printr-o
vizită
la
medicul
specialist
care
pe
baza
unor
analize
medicale
oferă
un
diagnostic.
În
ultimii
ani,
au
apărut
o
serie
de
inova
ț
ii
ș
i
dispozitive
electronice
în
măsura
să
ajute
medicii
în
diagnosticarea
mai
rapidă
a
diferitelor
afec
ț
iuni.
Odată
cu
introducerea
datelor
unui
pacient
ș
i
a
simptomelor
sale,
aplica
ț
iile
vor
genera
anumite
măsuri
ș
i
decizii
ce
ar
trebui,
în
mod
uzual,
sa
fie
luate
de
către
medic
.
Acestea
pot
oferi
fie
o
lista
de
referin
ț
e
spre
diferite
articole
ș
tiin
ț
ifice în domeniu, fie o serie de posibile diagnostice.
Există,
desigur,
ș
i
o
serie
de
cercetări
în
direc
ț
ia
oferirii
unui
diagnostic
pe
baza
unui
set
de
analize.
Realizarea
unui
asemenea
sistem
se
bazează
pe
o
serie
de
seturi
de
analize
clasificate
în
prealabil
ș
i
verificate
de
către
un
medic
de
specialitate.
Multe
dintre
aplica
ț
iile
de
diagnosticare
medicală
care
au
în
spate
algoritmi
de
învă
ț
are
automată,
se
ghidează
după
acela
ș
i
principiu:
cercetătorii
folosesc
învă
ț
area
automată
pentru
a
antrena
algoritmi
care
să
recunoască
ț
esuturi
canceroase
sau
bolile
rare
prin
analiza
imaginilor
precum
ș
i
diagnosticarea diferitelor afec
ț
iuni pe baza analizelor de laborator.
De
cele
mai
multe
ori
în
realizarea
unor
sisteme
inteligente
care
să
ofere
un
diagnostic
medical,
se
folose
ș
te
învă
ț
area
automată
care
se
preocupă
cu
dezvoltarea
de
algoritmi
ș
i
metode
ce
permit
unui
sistem
informatic
să
înve
ț
e
date,
reguli,
chiar
ș
i
algoritmi.
În
urma
dezvoltării
unor
astfel
de
algoritmi
se
pot
face
diferite
compara
ț
ii
între
ace
ș
tia
ș
i
se
pot
extrage
anumite
informa
ț
ii
care
pot
ajuta
în
procesul
de
alegere
a
celui
mai
potrivit
algoritm
capabil sa ne ajute în rezolvarea unei probleme.
8
Lucrarea
de
fa
ț
ă
dore
ș
te
să
prezinte
o
serie
de
solu
ț
ii
pentru
rezolvarea
problemei
de
diagnosticare
medicală
care
se
afla
în
strânsa
legătură
cu
problema
găsirii
unui
algoritm
optim
care
poate
să
clasifice
corect
un
set
de
analize
primit
ca
date
de
intrare.
Astfel
că,
găsirea
de
solu
ț
ii
pentru
aceste
două
probleme
se
rezumă
la
cercetarea
comportamentului
ș
i
compararea
eficien
ț
ei
ș
i
preciziei
unui
set
de
algoritmi
de
învă
ț
are
automată
capabili
să
clasifice
un
set
de
date.
Modul
principal
de
abordare
al
acestei
probleme
a
fost
acela
de
a
compara
diferi
ț
i
algoritmi
de
învă
ț
are
automată
ș
i
de
a
strânge
cat
mai
multe
informa
ț
ii
despre
modul
în
care
se
comporta
ace
ș
tia
pe
un
set
de
date
comun.
În
acest
mod,
vom
putea
efectua
o
compara
ț
ie
ș
i
vom putea spune cu aproxima
ț
ie care este cel mai potrivit pentru a rezolva problema de fa
ț
ă.
9
III.Cercetarea ca punct de reper în diagnosticarea
medicală
1 Contribu
ț
ii
Pornind
de
la
problema
prezentată
mai
sus,
lucrarea
de
fa
ț
ă
urmăre
ș
te
monitorizarea
ș
i
compararea
unor
algoritmilor
de
învă
ț
are
automată
în
contextul
clasificării
unor
seturi
de
date
ș
i
totodată
se
dore
ș
te
prezentarea
diferen
ț
elor
din
punct
de
vedere
al
eficien
ț
ei
ș
i
al
preciziei
acestora.
Domeniul
medical
depinde,
în
mare
măsură,
de
existen
ț
a
unui
medic
specialist
care
să
î
ș
i
asume
responsabil itatea
oferirii
unui
diagnostic
pacien
ț
ilor.
Implementarea
unui
sistem
inteligent
care
să
fie
capabil
să
ofere
un
diagnostic
poate
aduce
o
contribu
ț
ie
semnificativă
în
medicina
de
astăzi.
Pentru
construirea
unui
astfel
de
sistem
este
necesar
un
studiu
amănun
ț
it
asupra comportamentului algoritmilor de învă
ț
are automată.
Principalul
obiectiv
a
fost
acela
de
a
implementa,
antrena
ș
i
compara
eficien
ț
a
a
trei
tipuri
de
algoritmi
de
învă
ț
are
automată.
Astfel
că,
în
aceasta
direc
ț
ie,
a
fost
efectuată
o
suită
de
teste
pentru
a
determina
durata
de
execu
ț
ie,
precizia
cu
care
se
realizează
clasificarea
unui
set
de
date
precum
ș
i
rata
de
eroare
a
algoritmilor
studia
ț
i
.
Alegerea
algoritmilor
a
fost
făcută
în
urma
studiului
efectuat
asupra
modului
în
care
se
comporta
ace
ș
tia
în
cadrul
rezolvării
unor probleme asemănătoare.
1.1 Construc
ț
ia unui set de date potrivit
Ca
prim
pas
în
realizarea
lucrării,
s-au
efectuat
o
serie
de
cercetări
asupra
problemei
ș
i
a
modului
în
care
aceasta
ar
putea
fi
rezolvată.
Partea
cea
mai
dificila
a
constat
în
găsirea
unei
baze
de
date
suficient
de
consistentă
astfel
încât
să
poată
fi
folosită
pentru
antrenarea
algoritmilor.
Deoarece
problema
diagnosticării
medicale
cuprinde
o
arie
largă
de
afec
ț
iuni
10
care
pot
fi
extrase
dintr-un
set
de
analize
medicale,
s-a
decis
mic
ș
orarea
ariei
de
diagnosticare
pe
o
singură
ramură
pentru
a
putea
fi
mai
u
ș
or
de
gestionat
eficien
ț
a
algoritmilor.
1.2 Alegerea algoritmi potrivi
ț
i pentru rezolvarea problemei
Următorul
pas
a
presupus
alegerea
unor
algoritmi
de
învă
ț
are
automată
care
să
poată
oferi
un
diagnostic
pe
baza
unui
set
de
analize
primit
la
intrare.
În
urma
căutărilor
s-au
ales
trei
algoritmi
de
clasificare
destul
de
cunoscu
ț
i
:
ID3,
AdaBoost
ș
i
o
re
ț
ea
neuronală
artificială.
Algoritmii
ID3
ș
i
AdaBoost
func
ț
ionează
după
acelea
ș
i
principii
ș
i
anume
utilizarea
arborilor
de
decizie
pentru
a
înva
ț
ă
praguri
de
decizie
ș
i
a
prezice
cu
o
anumita
precizie
cărei
clase
apar
ț
ine
setul
de
date
primit
la
intrare.
Pe
când,
utilizarea
unei
re
ț
ele
neuronale
necesită
antrenarea
în
mod
repetat
pentru
a
oferi
o
acurate
ț
e
cât
mai
mare
clasificării.
1.3 Implementarea algoritmilor
ș
i antrenarea acestora
Partea
practică
a
lucrării
a
constat
în
implementarea
celor
trei
algoritmi
ș
i
filtrarea
datelor
necesare
antrenării
acestora.
S-a
ales
implementarea
de
la
zero
a
acestor
algoritmi
din
dorin
ț
a
de
a
în
ț
elege
exact
cum
lucrează
algoritmii,
tipul
de
date
necesar
pentru
antrenare,
calculele
efectuate,
modul
de
memorare
al
informa
ț
iilor
în
pasul
de
antrenare
precum
ș
i
modul
în
care
este
clasificat
un
nou
set
de
date
pe
baza
celor
învă
ț
ate
la
pasul
anterior.
Acest
lucru
a
necesitat
un
studiu
aprofundat
al
no
ț
iunilor
teoretice
de
învă
ț
are
automată
esen
ț
iale
în
implementarea celor trei algoritmi.
1.4 Interpretarea rezultatelor
În
urma
antrenării
celor
trei
algoritmi
s-au
strâns
o
serie
de
statistici
legate
de
timpul
de
execu
ț
ie
ș
i
de
precizia
algoritmilor
în
func
ț
ie
de
diferi
ț
i
parametri
(volumul
de
date,
numărul
de
itera
ț
ii).
Experimentele
efectuate
au
stat
la
baza
realizării
acestei
lucrări
care
are
în
prim
plan
compararea
diferitelor
tipuri
de
algoritmi
de
clasificare
pentru
a
rezolva
problema diagnosticării medicale.
11
2.Diagnosticarea folosind algoritmi de învă
ț
are automată.
2.1 Construc
ț
ia unui set de date format din analize medicale specifice
diagnosticării unei boli cronice la rinichi
Setul
de
date
a
fost
preluat
din
baza
de
date
a
site-ul
UCI
Machine
Learning
[6].
Acesta
con
ț
ine
un
număr
de
400
de
instan
ț
e.
Fiecare
instan
ț
ă
con
ț
ine
24
de
atribute
specifice
ș
i
un
atribut
destinat
clasei
din
care
face
parte.
Din
cele
400
de
instan
ț
e
250
sunt
clasificate
cu
o
boală
cronică
la
rinichi
iar
restul
de
150
nu
sunt
clasificate
cu
aceasta
boală.
Pe
baza
acestui
set
de
date
cei
trei
algoritmi
ș
i-au
dezvoltat
propria
schemă
de
clasificare.
O
mostră
din
datele
examinate este ilustrată în Imaginea 1:
Imaginea 1. Exemple de seturi de analize medicale utilizate la antrenarea algoritmilor
Fiecare
intrare
reprezintă
un
set
de
analize
medicale
care
oferă
informa
ț
ii
despre
existen
ț
a
sau
inexisten
ț
a
unei
boli
cronice
la
rinichi.
Cele
24
de
caracteristici
au
fie
valori
numerice, fie valori nominale.
12
2.2 Utilizarea algoritmilor de clasificare în diagnosticare
După
cum
am
specificat
ș
i
în
sec
ț
iunile
anterioare,
pentru
clasificarea
datelor
s-au
folosit
trei
algoritmi
de
învă
ț
are
automată:
ID3,
AdaBoost
ș
i
o
re
ț
ea
neuronală.
Scopul
acestora
fiind
acela
ș
i
ș
i
anume
oferirea
unui
diagnostic
.
În
func
ț
ie
de
fiecare
algoritm,
datele
de
care
am
dispus
au
suferit
mici
modificări
pentru
a
putea
ajuta
la
efectuarea
calculelor
(pentru
re
ț
eaua
neuron ală
a
trebuit
să
înlocuiesc
valorile
nominale
cu
valori
numerice
de
0
ș
i
1
pentru a putea realiza calculele necesare).
2.2.1 ID3 ca algoritm de clasificare
ID3
este
un
algoritm
de
construire
inductivă
a
unor
arbori
de
decizie
capabil
să
clasifice un set de date primit ca date de intrare.
Un
arbore
de
decizie
are
la
intrare
o
instan
ț
ă
formată
din
valori
pentru
un
set
de
atribute
ș
i
produce
la
ie
ș
ire
o
valoare
de
decizie.
Fiecare
nod
intern
din
arbore
reprezintă
un
test
asupra
valorii
unui
atribut,
iar
arcele
din
arbore
corespund
valorilor
posibile
ale
atributului
testat.
Nodurile
frunză
specifică
decizia
la
care
se
ajunge
pentru
calea
care
duce
la
acel
nod
(în
cazul
nostru
“ckd”
-pacientul
suferă
de
o
boala
cronică
la
nivelul
rinichilor,
”notckd” – pacientul nu suferă suferă de o boala cronică la nivelul rinichilor).
Ideea
de
baza
în
ID3
este
de
a
selecta
ini
ț
ial
cel
mai
important
atribut.
Prin
cel
mai
important
în
ț
elegem,
în
acest
caz,
cel
care
diferen
ț
iază
cel
mai
mult
instan
ț
ele
neclasificate
în
momentul
curent.
După
alegerea
unui
atribut
setul
de
date
se
va
împăr
ț
i
în
instan
ț
e
adevărate
sau false în func
ț
ie de condi
ț
ia din nodul de decizie.
În
cadrul
lucrării,
algoritmul
ID3
a
fost
folosit
pentru
a
genera
un
arbore
de
decizie
utilizând
atributele
din
cadrul
seturilor
de
analize
medicale
cu
ajutorul
căruia
să
se
poată
oferi
un
diagnostic
pentru
un
nou
set
de
date.
Arborele
de
decizie
se
generează
în
urma
antrenării
algoritmului
cu
un
set
de
date
de
intrare,
astfel
că
s-a
împăr
ț
it
baza
de
date
în
două
păr
ț
i,
una
utilizată
la
antrenare,
iar
cealaltă
la
testare.
În
cadrul
antrenării
s-a
folosit
no
ț
iunea
de
entropie
cu rol în alegerea celui mai bun atribut la un moment dat, care are următoarea formula:
13
(
X
)
−
(
x
)
l
o
g
p
(
x
)
H
=
∑
n
i
=
1
p
i
b
i
unde,
variabila discretă, iar
func
ț
ia de probabilitate.
x
x
,
.
.
,
}
X
=
{
1
,
2
.
x
n
p
Algoritmul
ID3
este
un
algoritm
specializat
pe
atribute
cu
valori
nominale
(adevărat/fals,
0/1,
rosu/galben).
Deoarece,
în
valorile
din
seturile
de
analize
apar
ș
i
valori
continue
s-a
folosit
o
extensie
a
algoritmului
ID3
care,
în
loc
să
calculeze
entropia
pentru
fiecare
valoare
continuă
a
unui
atribut,
va
caută
praguri
care
separa
două
instan
ț
e
de
clase
diferite
(după
ce
instan
ț
ele
au
fost
sortate
după
atributul
respectiv)
ș
i
va
fi
folosit
ca
nod
de
decizie.
Imaginea 2. Arborele ob
ț
inut în urma antrenării algoritmului ID3.
După
antrenarea
algoritmului
ș
i
ob
ț
inerea
arborelui
de
decizie
se
poate
observa
faptul
că
în
nodurile
interioare
ale
arborelui
se
află
condi
ț
ii
formate
din
atribute
ș
i
valori
posibile
ale
acestora,
iar
în
nodurile
terminale,
numite
ș
i
frunze,
se
găse
ș
te
diagnosticul
ș
i
numărul
de
instan
ț
e
care
îndeplin esc
condi
ț
iile
din
nodurile
de
decizie
de
la
rădăcina
până
la
o
frunza
(“ckd”,”notckd”).
Astfel,
în
urma
antrenării
algoritmului
clasificarea
unei
noi
instan
ț
e
este
u
ș
or
de
realizat,
deoarece
se
va
porni
din
nodul
rădăcina
ș
i
parcurgând
arborele
în
func
ț
ie
de
valorile
14
condi
ț
iilor
din
noduril e
de
decizie
(“true”
sau
“false”)
se
va
ajunge
la
un
nod
frunză
care
va
oferi un diagnostic.
2.2.2 AdaBoost – algoritm de boosting
Algoritmii
de
boosting
constau
în
metode
bazate
pe
ansambluri
ce
au
ca
scop
crearea
unui
clasificator
puternic
folosind
rezultatele
mai
multor
clasificatori
slabi.
Un
clasificator
slab
generează
rezultate
cu
acurate
ț
e
redusă,
dar,
prin
combinarea
adecvată
a
mai
multor
astfel
de clasificatori, eroarea de clasificare se poate reduce semnificativ.
Ca
ș
i
la
ID3
totul
începe
cu
o
etapă
de
antrenare
în
cadrul
căreia
un
clasificator
slab
se
aplică
în
repetate
rânduri
pe
un
set
de
date
de
antrenare
.
Fiecărei
instan
ț
e
i
se
asociază
o
pondere,
ini
ț
ial,
aceste
ponderi
fiind
egale.
În
cadrul
unei
itera
ț
ii
a
algoritmului
AdaBoost
se
determină
eroarea
clasificatorului
slab
ș
i
se
ajustează
ponderile
astfel
încât
instan
ț
ele
clasificate
gre
ș
it
să
aibă
ponderi
mai
mari.
Astfel,
la
următoarea
itera
ț
ie,
clasificatorul
slab
va
prioritiza instan
ț
ele cla sificate incorect, tendin
ț
a fiind de a reduce eroarea de clasificare.
Pentru
antrenarea
algoritmului
nostru
s-a
folosit
drept
clasificator
slab
un
arbore
de
decizie
un
un
singur
nivel
numit
Decision
Stump.
Acesta
din
urmă
va
genera
un
arbore
de
decizie
cu
un
singur
nod
în
care
se
va
regăsi
atributul
care
reu
ș
e
ș
te
să
diferen
ț
ieze
cel
mai
bine
setul
de
date.
Decision
Stump-ul
fiind
tot
un
arbore
de
decizie,
alegerea
atributului
din
nodul
rădăcina
s-a
făcut
în
acela
ș
i
mod
ca
ș
i
la
ID3
prin
alegerea
atributului
cu
entropia
cea
mai mică.
Prin
antrenarea
în
mod
repetat
a
algoritmului
AdaBoost
s-a
ob
ț
inut
o
combina
ț
ie
liniară
a
rezultatelor
individuale
ale
clasificatorilor
slabi
de
la
fiecare
itera
ț
ie,
ponderate
de
erorile
fiecărui
clasificator
slab
(coeficient
al
itera
ț
iei).
Ca
ș
i
în
cazul
algoritmului
ID3,
clasificatorul
slab
a
fost
extins
pentru
a
putea
lucra
ș
i
cu
valori
continue
ale
atributelor
pentru
a se plia cât mai bine pe setul de date utilizat pentru antrenare/testare.
După
antrenarea
algoritmului
în
5
itera
ț
ii
algoritmul
a
ales
următoarele
5
condi
ț
ii
care
se găsesc în rădăcină ca arbori de decizie pentru fiecare itera
ț
ie:
1
Is hemoglobin < 13.25?
15
2
Is specific gravity < 1.0175?,
3
Is packed cell volume < 47.5?
4
Is serum creatinine < 1.25?
5
Is serum creatinine >= 1.25?
Determinarea clasei pentru o instan
ț
ă de test
se realizează astfel:
x
(
x
)
i
g
n
(
h
(
x
)
)
H
=
s
∑
T
t
=
1
α
t
t
unde
,
reprezintă
un
coeficient
al
itera
ț
iei
t,
iar
este
rezultatul
clasificării
instan
ț
ei
α
t
(
x
)
h
t
folosind
clasificatorul
slab
(se
va
verifica
dacă
pentru
itera
ț
ia
t
condi
ț
ia
din
arborele
de
x
decizie este adevărata sau falsa, iar valoarea lui
va fi 1 sau -1).
(
x
)
h
t
2.2.3 Re
ț
ea neuronală artificială
Domeniul
re
ț
elelor
neuronale
este
unul
foarte
activ
la
ora
actuală,
lucru
oarecum
surprinzător,
ț
inând co nt că unele idei legate de acest concept au o vechime de peste 60 de ani.
Re
ț
elele
neuro nale
artificiale
sunt
sisteme
de
procesare
a
informa
ț
iei
inspirate
din
sistemul
nervos
uman
(creierul
uman).
Sunt
compuse
din
unită
ț
i
simple
de
procesare
(neuroni),
interconectate
între
ele
ș
i
care
ac
ț
ionează
în
paralel.
Ponderile
legăturilor
dintre
neuroni
sunt
cele
care
memorează
informa
ț
ia
învă
ț
ată
de
re
ț
ea
.
Re
ț
eaua
înva
ț
ă
diferite
modele prin ajustarea acestor ponderi, conform unui algoritm.
16
Neuronul
biologic
se
activează
numai
dacă
semnalul
de
intrare
este
de
un
anumit
tip.
În
re
ț
ea
neuronală
artificială
acest
efect
este
simulat
aplicând
sumei
ponderate
a
intrărilor
(n)
o func
ț
ie de transfer (a ctivare)
f,
pentru a ob
ț
ine un date de ie
ș
ire.
În
cadrul
experimentelor
s-a
folosit
o
re
ț
ea
neuronală
artificială
formată
dintr-un
singur
nivel
de
neuroni
ce
va
returna
o
singura
valoare
date
de
ie
ș
ire
cu
valori
cuprinse
intre
0
ș
i 1.
Imagine 3. Structura re
ț
elei neuronale artificiale utilizate
Aici
p
este
un
vector,
în
cazul
nostru
date
de
intrare
care
reprezintă
un
set
de
analize
medicale
format
dintr-un
număr
de
24
de
valori
numerice,
iar
W
este
o
matrice
cu
s
linii
ș
i
r
coloane(
r
=24 iar
s
=3).
Pentru
antrenarea
re
ț
elei
s-a
plecat
de
la
două
matrici
(cu
24
de
linii
ș
i
3
de
W
1
coloane)
ș
i
(cu
3
de
linii
ș
i
o
coloana)
formate
din
valori
alese
aleatoriu.
a
fost
W
2
W
1
utilizată
pentru
valorile
date
de
intrare,
iar
pentru
datele
de
ie
ș
ire.
Func
ț
ia
de
activare
W
2
aleasă
a
fost
cea
sigmoid
care
la
intrare
poate
avea
orice
valoare
între
plus
ș
i
minus
infinit,
iar
răspunsul este în domeniul de la 0 la 1.
17
Calculele
necesare
ob
ț
inerii
unui
diagnostic
sunt
calcule
simple
de
apeluri
de
func
ț
ii
ș
i
de înmul
ț
iri de matrici :
z
2
=
p
*
W
1
(
z
)
a
2
=
f
2
z
3
=
a
2
*
W
2
,
(
z
)
y
=
f
3
unde
reprezinta func
ț
ia de activare folosită în cadrul antrenării re
ț
elei neuronale
f
În
cadrul
antrenării
s-a
folosit
tehnica
back-propagationin
în
cadrul
căreia
se
ini
ț
ializează
aleatoriu
toate
ponderile
dintre
neuroni
(
ș
i
)
ș
i
se
realizează
calculele
W
1
W
2
necesare
până
se
ajunge
la
nivelul
date
de
ie
ș
ire
în
care
vom
avea
o
valoare
corespunzătoare
unei
instan
ț
e.
Se
calcu lează
diferen
ț
a
fa
ț
ă
de
valoarea
corectă
care
trebuie
ob
ț
inută
ș
i
aceasta
este
propagată
înapoi
pe
penultimul
strat,
împăr
ț
ind
eroarea
în
mod
propor
ț
ional
fiecărui
neuron,
în
func
ț
ie
de
ponderea
avută.
Această
propagare
înapoi
se
repetă
până
se
ajunge
la
primul
strat
ș
i
apoi
se
calculează
noile
valori
ob
ț
inute.
Acest
ciclu
de
corectare
se
repetă
de
t
de ori pentru a reduce eroarea de clasificare.
Pe
parcursul
antrenării
ș
i
sunt
modificate,
iar
la
final
valorile
rezultate
vor
fi
W
1
W
2
folosite
la
clasificarea
unei
noi
instan
ț
e
prin
realizarea
calculelor
necesare
până
la
ob
ț
inerea
unui date de ie
ș
ire.
2.2.4 Colectarea informa
ț
iilor statistice
Colectarea
informa
ț
iilor
relativ
la
modul
de
func
ț
ionarea
al
algoritmilor
implementa
ț
i
pe
setul
de
date
construit
reprezintă
partea
cea
mai
importantă
din
întreaga
lucrare.
Pentru
a
putea
realiza
o
compara
ț
ie
între
cei
trei
algoritmi
avem
nevoie
de
date
referitoare
la
timpul
de
execu
ț
ie
ș
i
la
rata
de
eroare
a
acestora.
Aceste
informa
ț
ii
vor
oferi
o
privire
de
ansamblu
asupra
eficien
ț
ei
acesto r
algoritmi
ș
i
se
va
putea
realiza
o
ordonare
a
acestora
care
ne
va
spune
care
din
cei
trei
algoritmi
este
mai
potrivit
pentru
rezolvarea
problemei
diagnosticării
medicale.
18
Timpul
de
execu
ț
ie
s-a
calculat
în
func
ț
ie
de
durată
de
timp
în
care
algoritmii
ș
i-au
creat
modelul
de
clasificare
pe
un
set
de
date
de
antrenament
comun.
Aceste
informa
ț
ii
au
fost
colectate
pentru
intrări
cu
diferite
dimensiuni
sau
pentru
un
număr
diferit
de
itera
ț
ii.
Rata
de
eroare
a
algoritmilor
a
fost
calculată
în
func
ț
ie
de
numărul
de
instan
ț
e
clasificate
gre
ș
it
pentru
anumite
seturi
de
date
de
test
precum
ș
i
monotonia
erorii
în
func
ț
ie
de
numărul
de
itera
ț
ii
aplicat asupra unuia dintre algoritmi.
19
IV. Experimente
Ultima
etapă
necesară
rezolvării
problemei
diagnosticării
a
fost
cea
a
testării
proprietă
ț
ilor
algoritm ilor,
ș
i
anume
timpul
de
execu
ț
ie
necesar
învă
ț
ării
unui
model
de
clasificare
precum
ș
i
rata
de
eroare
a
acestuia.
Pentru
a
verifica
corectitudinea
algoritmilor
s-a
recurs
la
o
serie
de
clasificări
realizate
pe
un
set
de
10
instan
ț
e
de
test
care
au
fost
clasificate
de fiecare algoritm în parte, dar
ș
i de un medic specialist.
4.1 Timpul de răspuns
De
multe
ori,
pentru
rezolvarea
unei
probleme,
trebuie
ales
un
algoritm
optim
dintre
o
multitudine
de
al
ț
i
algoritmi,
ca
ș
i
în
cazul
de
fa
ț
ă,
două
criterii
principale
de
alegere
fiind
contradictorii:
●
algoritmul să fie simplu de în
ț
eles, de codificat
ș
i de depanat;
●
algoritmul
să
folosească
eficient
resursele
calculatorului,
să
aibă
un
timp
de
execu
ț
ie
redus.
Dacă
programul
trebuie
rulat
de
un
număr
mic
de
ori,
prima
cerin
ț
ă
este
mai
importantă;
în
această
situa
ț
ie,
timpul
de
punere
la
punct
a
programului
e
mai
important
decât
timpul lui de rulare, deci trebuie aleasă varianta cea mai simplă a programului.
Dacă
programul
urmează
a
fi
rulat
de
un
număr
mare
de
ori,
având
ș
i
un
număr
mare
de
date
de
prelucrat,
trebuie
ales
algoritmul
care
duce
la
o
execu
ț
ie
mai
rapida.
Chiar
în
aceasta
situa
ț
ie,
ar
trebui
implementat
mai
înainte
algoritmul
mai
simplu
ș
i
calculată
reducerea de timp de execu
ț
ie pe care ar aduce-o implementarea algoritmului complex.
Timpul de rulare al unui program depinde de următorii factori:
●
datele de intrare
●
calitatea codului generat de compilator
20
●
natura
ș
i viteza de execu
ț
ie a instruc
ț
iunilor programului
●
complexitatea algoritmului care stă la baza programului.
Deci,
timpul
de
rulare
e
influen
ț
at
de
volumul
de
date
primit
ca
date
de
intrare,
de
cele
mai multe ori,
depinzând de numărul de date, nu de valorile de la intrare
.
Având
la
dispozi
ț
ie
trei
algoritmi
complec
ș
i
care
sunt
antrena
ț
i
cu
ajutorul
unui
set
de
date
mare,
înclinăm
spre
alegerea
cel
mai
rapid
algoritm.
Însă
este
posibil
ca
rapid
să
nu
însemne
neapărat
corect
sau
optim
.
În
tabelul
de
mai
jos
se
găsesc
informa
ț
ii
despre
timpul
necesar
fiecărui
algoritm
utilizat
în
rezolvarea
problemei
pentru
antrenare
precum
ș
i
timpul
necesar clasificării unei instan
ț
e.
Algoritm
ID3
AdaBoost
Re
ț
ea neuronală
Timpul de execu
ț
ie în
secunde la antrenare
1.03597450256
8.48551249
0.6874566078
Timpul de execu
ț
ie în
secunde pentru
clasificarea unei
instan
ț
e
aproximativ 0.0
aproximativ 0.0
aproximativ 0.0
Tabel 1. Timpii de antrenare
ș
i clasificare
După
cum
se
poate
vedea
există
diferen
ț
e
destul
de
sesizabile
referitor
la
timpul
de
antrenare.
Se
poate
observa
faptul
ca
algoritmul
AdaBoost
este
cel
care
necesită
un
timp
de
antenare
mult
mai
mare
comparativ
cu
ceilal
ț
i
doi
algoritmi.
Acest
fapt
se
datorează
numărului
mare
de
reantrenări
ș
i
parti
ț
ionări
ale
setului
de
date
(30
de
itera
ț
ii
efectuate
în
momentul
calculării
timpului
de
execu
ț
ie).
Algoritmul
AdaBoost,
fiind
o
extensie
optimizată
a
algoritmului
ID3,
are
nevoie
de
generarea
a
30
de
arbori
de
decizie
pentru
a
putea
ajunge
la
o
decizie
(acest
lucru
se
realizează
în
func
ț
ie
de
numărul
de
itera
ț
ii
primite
de
algoritm)
pe
când
ID3
se
rulează
doar
o
dată.
Singura
diferen
ț
a
între
ace
ș
tia
este
aceea
că
ID3
generează
un
arbore
cu
mai
multe
nivele
pe
când
AdaBoostul
generează
de
un
număr
fixat
de
ori
un
arbore
cu un singur nivel.
21
Antrenarea
unei
re
ț
ele
neuronale
este
cea
mai
rapidă
metodă
de
rezolvare
a
problemei
prezentate
în
cadru
lucrării,
însă
acest
lucru
nu
înseamnă
că
este
ș
i
cea
mai
bună
solu
ț
ie.
Vom
vedea
într-o
sec
ț
iune
ulterioara
care
este
motivul
pentru
care
rapid
nu
înseamnă
neapărat
ș
i
corect.
Timpul
reprezintă
un
factor
important
atât
în
domeniul
IT
cât
ș
i
în
cel
medical.
În
domeniul
medical
este
important
timpul
de
efectuare
al
manevrelor,
însă
într-o
măsura
mai
mică în compara
ț
ie cu precizia cu care sunt realizate acestea.
4.2 Rata de eroare ca factor decisiv în luarea unei decizii asupra
găsirii solu
ț
iei
În
cadrul
comparării
eficientei
algoritmilor
s-a
folosit
no
ț
iunea
de
rata
de
eroare
care
reprezinta
numărul
de
instan
ț
e
clasificate
gre
ș
it.
Rata
de
eroare
a
algoritmilor
de
clasificare
a
fost calculată după următoarea formula:
e
r
r
o
r
n
=
n
r
d
e
t
o
t
a
l
d
e
i
n
s
t
a
n
ț
e
n
r
d
e
i
n
s
t
a
n
ț
e
c
l
a
s
i
f
i
c
a
t
e
g
r
e
s
i
t
Rata
de
eroare
a
fost
folosită
cu
scopul
de
a
verifica
cât
de
corect
clasifica
algoritmii
diferite
seturi
de
date.
Acest
lucru
a
ajutat
la
construirea
unei
imagini
de
ansamblu
asupra
corectitudinii
algoritmilor
ș
i
a
eficien
ț
ei
acestora.
În
următoar ele
tabele
se
poate
observa
cum
oscilează
rata
de
eroare
în
func
ț
ie
de
mediul
de
testare.
În
Tabelul
2,
sunt
prezentate
rezultate
ob
ț
inute
în
urma
calcu lării
erorii
la
antrenare
a
algoritmilor.
Eroare
la
antrenare
se
calculează
după
antrenarea
algoritmului
ș
i
se
verifică
câte
instan
ț
e
dintre
cele
utilizate
la
antrenare
sunt
clasificate gre
ș
it.
Algoritm
ID3
AdaBoost(30 itera
ț
ii)
Re
ț
ea neuronală
Eroare la antrenare
0.0
0.00476190
0.090223
Tabel 2. Rate de eroare la antrenare
22
După
cum
se
poate
observa
eroare
cea
mai
mică
la
antrenare
se
ob
ț
ine
pentru
algoritmul
ID3,
acesta
având
o
eroare
la
antrenare
egală
cu
0.
Acest
lucru
se
datorează
fenomenului
de
overfitting
care
apare
atunci
când
în
urma
antrenării
unui
algoritm
rezultă
un
model
extrem
de
complex,
cu
prea
mul
ț
i
parametri.
Model
suprasolicitat
este
inexact,
deoarece
se
pliază
mult
prea
tare
pe
datele
de
antrenament,
iar
în
cazul
testării
pe
un
alt
set
de
date
eroarea
la
testare
va
fi
mult
mai
mare.
În
cazul
algoritmului
AdaBoost,
se
poate
observa
faptul
că
este
eliminat
fenomenul
de
overfitting
într-o
oarecare
măsura.
Pentru
re
ț
eaua
neuronală,
chiar
dacă
este
cel
mai
rapid
algoritm,
se
pare
ca
în
urma
antrenării
rezultă
cea
mai
mare
eroare.
La
începerea
experimentelor
am
presupus
că
re
ț
eaua
neuronală
va
fi
cel
mai
potrivit
algoritm
pentru
rezolvarea
problemei
de
diagnosticare,
însă
după
execu
ț
ia
experimentelor s-a dovedit ca presupunerea ini
ț
ială nu se aplică
ș
i în cazul de fa
ț
ă.
Algoritm
ID3
AdaBoost(30 itera
ț
ii)
Re
ț
ea neuronală
Eroarea la testare
0.042105
0.0210526
0.086491585958
Tabel 3. Rata de eroare la testare
Tabelul
3
con
ț
ine
rata
de
eroare
ob
ț
inută
în
urma
testării
fiecărui
algoritm
cu
un
set
de
date
diferit
de
cel
utilizat
la
antrenare.
În
acest
caz,
algoritmul
cu
rata
de
eroare
cea
mai
mică
este
AdaBoost,
chiar
ș
i
ID3
având
o
rata
de
eroare
mult
mai
mica
decât
cea
a
re
ț
elei
neuronale.
Acest
lucru
se
datorează
setului
de
date
utilizat
atât
la
testare
cât
ș
i
la
antrenare.
Setul
de
date
este
format
atât
din
valori
nominale
cat
ș
i
din
valori
numerice.
Este
posibil
ca
acestă combina
ț
ie de v alori să pună în dificultate antrenarea re
ț
elei.
Folosindu-ne
faptului
că
atât
algoritmul
Adaboost
cât
ș
i
re
ț
eaua
neuronală
înva
ț
ă
propriul
model
de
clasificare
după
un
număr
fixat
de
itera
ț
ii
s-au
realizat
o
serie
de
grafice
care
descriu
tendin
ț
a erorii la antren are în func
ț
ie de numărul de itera
ț
ii.
23
Imaginea 4. Grafic eroare la antrenare pentru AdaBoost
În
cazul
algoritmului
AdaBoost
se
poate
observa
faptul
că
un
număr
mic
de
itera
ț
ii
aduce
după
sine
ș
i
o
rata
de
eroare
mai
mare.
Se
cunoa
ș
te
faptul
ca
algoritmul
AdaBoost
poate
selecta
de
mai
multe
ori
aceea
ș
i
ipoteza
“slabă”
(însă,
niciodată
la
itera
ț
ii
consecutive)
acest
lucru
va
întări
încrederea
în
ipoteza
slaba
ș
i
va
duce
la
mic
ș
orarea
erorii.
Descre
ș
terea
erorii
nu
este
una
constantă,
în
grafic
se
pot
observa
mai
multe
por
ț
iuni
în
care
aceasta
scade,
iar
mai
apoi,
la
următoarea
itera
ț
ie,
cre
ș
te.
Acest
fapt
se
datorează
faptului
ca
la
fiecare
itera
ț
ie
se
alege
ipoteza
cu
cea
mai
mică
eroarea
la
acel
moment,
existând
posibilitatea
ca
la
pasul
următor
ipoteza
aleasa
ca
compas
de
decizie
sa
aibă
o
eroare
mai
mică
sau
chiar
mai
mare
decât cea anterioară.
24
Imaginea 5. Grafic eroare la antrenare pentru re
ț
eaua neuronală
Graficul
ob
ț
inut
în
urma
antrenării
re
ț
elei
neuronale
are
o
descre
ș
tere
aproximativ
continuă,
ceea
ce
scoate
în
eviden
ț
ă
faptul
că
rata
de
eroare
scade
odată
cu
cre
ș
terea
numărului
de
itera
ț
ii
din
cadrul
antrenării
re
ț
elei.
Pentru
un
număr
mai
mare
de
2000
de
itera
ț
ii
se
poate
observ a
faptul
că
rata
de
eroare
scade
destul
de
pu
ț
in.
Acest
lucru
ne
ajută
în
alegerea
numărului
de
itera
ț
ii
necesare
antrenării
re
ț
elei
neuronale,
astfel
încât
să
ob
ț
inem
o
combina
ț
ie
cât
mai
bună
între
timpul
de
execu
ț
ie
ș
i
rata
de
eroare.
Vom
putea
utiliza
astfel,
un
algoritm
eficient
atât
din
punct
de
vedere
al
timpului
de
execu
ț
ie
cât
din
punct
de
vedere
al
corectitudinii.
4.3 Inteligen
ț
a umană vs inteligen
ț
a artificială
În
subsec
ț
iunile
anterioare
din
cadrul
capitolului
de
experimente
s-a
urmărit
compararea
algoritmilor
din
punctul
de
vedere
al
timpului
de
execu
ț
ie,
dar
ș
i
al
preciziei
de
clasificare.
Însă,
în
luarea
unei
decizii
asupra
alegerii
celui
mai
potrivit
algoritm
pentru
rezolvarea
problemei
de
diagnosticare
nu
poate
fi
luat
în
calcul
doar
diagnosticul
oferit
de
un
25
algoritm.
În
dezvoltarea
unui
mecanism
de
diagnosticare
un
factor
foarte
important
îl
reprezintă
ș
i
verificar ea
corectitudinii
algoritmilor
prin
compararea
rezultatelor
ob
ț
inute
de
ace
ș
tia cu diagnosticel e oferite de către un medic specialist.
Setul
de
date
utilizat
în
cadrul
acestui
experiment
a
fost
format
din
zece
instan
ț
e
dintre
care
cinci
clasificate
pozitiv(
pacientul
suferă
de
o
boala
cronică
la
nivelul
rinichilor)
ș
i
cinci
clasificate negativ(pacientul nu suferă de o boala cronică la nivelul rinichilor).
S-a
solicitat
ajutorul
unui
medic
specialist,
care
pe
baza
setului
de
date
a
oferit
lista
cu
diagnosticele
corespunzătoare
fiecărei
instan
ț
e.
Acela
ș
i
set
de
date
a
fost
clasificat
ș
i
cu
ajutorul
celor
trei
algoritmi
iar
în
Tabelul
4
se
găsesc
rezultate
ob
ț
inute
în
urma
clasificării
ș
i
numărul de erori care apar.
Metoda de clasificare
Set
1
Set
2
Set
3
Set
4
Set
5
Set
6
Set
7
Set
8
Set
9
Set
10
Nr.
erori
ID3
1
1
1
1
1
0
0
0
0
0
0
AdaBoost
0
1
1
1
1
0
0
0
0
0
1
Re
ț
ea neuronală
1
1
1
0
1
0
0
0
0
0
1
Medic specialist
1
1
1
1
1
0
0
0
0
0
–
Tabelul 4. Diagnosticarea a zece instan
ț
e comune
Clasificarea
oferită
de
algoritmul
ID3
nu
con
ț
ine
erori
însă
acest
lucru
se
datorează
prezen
ț
ei
fenomenulu i
de
overfitting,
deoarece
ob
ț
inem
un
arbore
complex
care
se
pliază
suficient
de
mult
pe
setul
de
date
utilizat
în
cadrul
experimentului.
În
ceea
ce
prive
ș
te
ceilal
ț
i
doi algoritmi ace
ș
tia cl asifica gre
ș
it o singură instan
ț
ă.
26
4.4 Interpretarea rezultatelor
În
sec
ț
iunea
anterioară
au
fost
prezentate
experimentele
realizate
cu
scopul
rezolvării
problemei
prezentate
în
primul
capitol.
Scopul
experimentelor
a
fost
acela
de
a
compara
algoritmii
ș
i de a-l aleg e pe cel mai bun dintre ei.
Din
primul
experiment
reiese
clar
că
antrenarea
unei
re
ț
ele
neuronale
este
una
din
cele
mai
bune
solu
ț
ii
pentr u
rezolvarea
problemei
diagnosticării
medicale.
Re
ț
eaua
neuronală
are
un
timp
de
antrenare
relativ
mic,
fa
ț
ă
de
celelalte
însă
rata
de
eroare
la
testare
este
mult
mai
care decât în cazul celorlal
ț
i algoritmi de clasificare.
În
ceea
ce
prive
ș
te
ID3-ul
ș
i
Adaboost-ul,
cel
din
urmă
este
mai
precis
decât
ID3,
dar
timpul
de
antrenare
este
mult
mai
mare.
Astfel,
rapiditatea
oferită
de
ID3
este
înlocuită
cu
precizia oferită de extensia acestuia în cadrul algoritmului AdaBoost.
Concluzia
care
reiese
din
analiza
rezultatelor
experimentelor
este
aceea
ca
algoritmul
AdaBoost
este
cel
mai
potrivit
pentru
dezvoltarea
unui
sistem
de
diagnosticare
medicala,
deoarece
el
se
comporta
cel
mai
bine
pe
setul
de
date
utilizat
în
cadrul
experimentelor.
Chiar
dacă
necesita
un
timp
mai
mare
la
antrenare,
precizia
cu
care
este
oferit
un
diagnostic
este
cel
ma important factor în rezolvarea problemei de diagnosticare.
27
V. Concluzii
Diagnosticarea
medicală
reprezintă
o
categorie
de
teste
medicale
destinate
detectării
infec
ț
iilor
sau
a
afec
ț
iunilor
de
care
suferă
un
pacient.
Învă
ț
area
automată
joacă
un
rol
foarte
important în evolu
ț
ia diagnosticării medicale.
În
prezent
diagnosticarea
medicală
de
cele
mai
multe
ori
se
realizează
printr-o
vizita
la
medicul
specialist
care
pe
baza
unor
analize
medicale
oferă
un
diagnostic.
În
ultimii
ani,
au
apărut
o
serie
de
inova
ț
ii
ș
i
dispozitive
electronice
cu
scopul
de
a
facilita
munca
medicilor
în
diagnosticare mai rapidă a diferitelor afec
ț
iuni.
Necesitatea
permanentă
de
a
îmbunătă
ț
i
sistemul
medical
a
ajutat
la
dezvoltarea
de
noi
sisteme
inteligente
mult
mai
precise
ș
i
mai
sigure.
În
spatele
unor
astfel
de
sisteme
inteligente
capabile
să
ofere
un
diagnostic
stau
o
serie
de
cercetări
ș
i
experimente
care
au
drept
scop
alegerea
celor
mai
preci
ș
i
algoritmi
de
învă
ț
are
automată.
Precizia
algoritmului
ales
în
cadrul
sistemului de diagnosticare este cea mai importantă parte din cadrul dezvoltării sistemului.
Studiul
realizat
asupra
eficien
ț
ei
algoritmilor
de
clasificare
a
reprezentat
nucleul
lucrării
de
fa
ț
ă.
Pentru
a
oferi
o
solu
ț
ie
pentru
problema
diagn osticării
medicale
m-am
axat
pe
compararea
eficien
ț
ei
a
trei
algoritmi
de
clasificare(ID3,
AdaBoost
ș
i
o
re
ț
ea
neuronală
artificială).
În
urma
experimentelor
făcute
s-a
ajuns
la
concluzia
că
utilizarea
algoritmului
AdaBoost în cadrul rezolvării problemei reprezintă una cele mai potrivite solu
ț
ii.
În
cadrul
lucrării
s-au
studiat
comportamentul
a
trei
algoritmi
de
învă
ț
are
automată.
Pe
viitor
se
dore
ș
te
imple mentarea
ș
i
realizarea
experimentelor
ș
i
pe
al
ț
i
algoritmi
de
clasificare.
Este
posibil
că
al
ț
i
algoritmi
sa
fie
mult
mai
eficien
ț
i
decât
algoritmul
AdaBoost.
Continuarea
cercetărilor
vor
duce
la
colectarea
de
noi
informa
ț
ii
despre
modul
în
care
se
comporta
ș
i
al
ț
i
algoritmi de învă
ț
are a utomată pe setul de date de care am dispus.
Ca
o
alta
îmbunătă
ț
ire
se
mai
poate
lua
în
considerare
ș
i
modificarea
algoritmilor
pentru
a
putea
fi
capabili
să
lucreze
ș
i
cu
alt
tip
de
date.
Pe
lângă,
oferirea
de
diagnostice
28
pentru
o
boală
cronică
la
nivelul
rinichilor,
se
pot
antrena
algoritmii
ș
i
pentru
alte
boli
dacă
se
dispune de un alt set de date suficient de complet
ș
i corect.
Consider
că
domeniul
medical
are
cea
mai
mare
nevoie
de
implicarea
speciali
ș
tilor
IT
pentru
dezvoltarea
de
sisteme
capabile
să
ajute
sau
să
asiste
medicii
în
diferite
situa
ț
ii,
iar
sistemele
pentru
diagnosticare
medicala
reprezintă
următorul
pas
în
evolu
ț
ia
către
un
sistem
medical
în
care
oferirea
de
diagnostice
să
poată
fi
realizată
de
către
un
sistem
inteligent
care
poate învă
ț
a din experi mente anterioare.
29
Bibliografie
1.
Liviu Ciortuz “Exerci
ț
ii de învă
ț
are automată”,
Editura Universității "Alexandru Ioan
Cuza, 2015
2.
Adrian A. Hopgood (2001), Intelligent system for engineers and scientists, ed.CRP
Press, New York
3.
Tom M. Mitchell- Instance based learning, ed. McGraw-Hill
Science/Engineering/Math, 1997
4.
Florin Leon (2012), Inteligenta atificiala: rationament probabilistic, tehnici de
clasificare, ed Tehnopress, Iasi
5.
Narin Emeksiz Havelsan, Ankara Turke, Application of Machine Learning Techniques
to Differential Diagnosis of Erythemato-Squamous Diseases
6.
Repository :
https://archive.ics.uci.edu/ml/datasets/chronic_kidney_disease
7.
Witten Ian & Frank Eibe- “Data Mining- Practical machine learning tools and
techniques”, editia 2, 2005, ed Elsevier Inc, San Francisco pg-12, 76-79
8.
Tom M. Mitchell- “Machine Learning”,ed. McGraw Hill, 1997
9.
Mitchell, T. M. (2006). The Discipline of Machine Learning. Machine Learning
Department technical report CMU-ML-06-108, Carnegie Mellon University.
10.
Gurney, K.: An introduction to neural networks, UCL Press (1997)
11.
McAllester, D., ”Neural Networks. Backpropagation. General Gradient
Descent”(2007)
12.
Breiman, L. (1984). Classification and Regression Trees. New York: Routledge
30
13.
The Python Tutorial:
https://docs.python.org/3/tutorial/
14.
Numpy Documentation:
https://docs.scipy.org/doc/_static/numpybook.pdf
15.
Matplotlib Documentation:
https://matplotlib.org
16.
GitHub repository:
https://github.com/CretuAndraElena/Medical-Diagnosis
17.
Google Drive folder:
https://drive.google.com/open?id=1m6Ai1TE9cIK7b8nKQga2L_r_BHdCe7tS
18.
“
A review of classification algorithms for EEG-based brain–computer interfaces
”
F.Lotte1, M Congedo2, A Lécuyer1, F Lamarche1 and B Arnaldi1Published 31
January 2007 • 2007 IOP Publishing Ltd,
Journal of Neural Engineering
,
Volume 4
,
Number 2
19.
“
Machine Learning for Medical Diagnostics
“: https://www.techemergence.com
20.
“Principles of Data Mining”
,
Drug Safety, 2007, Volume 30, Number 7, Page 621,
David J. Hand
21.
“
Artificial intelligence in medical diagnosis.
”
Department of Electrical Engineering
and Computer Science, Massachusetts Institute of Technology, Cambridge
22.
“
Machine learning for medical diagnosis: history, state of the art and perspective.
”
Faculty of Computer and Information Science, University of Ljubljana, Trzaska 25,
1001, Ljubljana, Slovenia
21.“
The future of medical diagnostics: review paper.
” Head and Neck Optical
Diagnostics Society Council, International Society of Minimally Invasive Diagnostics,
University College London, London, UK.
22.”
Medical diagnostic decision support systems–past, present, and future: a threaded
bibliography and brief commentary.
“ University of Pittsburgh, Medical Informatics
Section, PA 15261, USA.
31
Apendix
1.
Tehnologiile utilizate
Limbajul
de
programare
utilizat
în
cadrul
implementării
algoritmilor
a
fost
Python
.
Acesta
este
un
limbaj
de
programare
dinamic
ș
i
multifunc
ț
ional,
care
pune
accentul
pe
cură
ț
enia
ș
i
simplitatea
codului
ș
i
le
permite
utilizatorilor
să
realizeze
sarcini
complexe
într-o
manieră
clară
ș
i
conci să.
Faptul
că
este
u
ș
or
de
învă
ț
at
ș
i
utilizat
face
ca
acesta
să
poată
fi
folosit
de
anali
ș
ti
de
date
din
orice
domeniu
pentru
a-
ș
i
u
ș
ura
munca
ș
i
a
ob
ț
ine
rezultate
remarcabile
într-un
timp
scurt.
Suita
de
bibliotecile
scrise
pentru
el
este
extrem
de
folositoare
în
implementarea
de
la
zero
a
algoritmilor
de
învă
ț
are
automată.
Chiar
dacă
exista
o
serie
de
biblioteci
special
create
pentru
lucrul
cu
algoritmi
de
învă
ț
are
automată
la
implementarea
celor trei algoritmi studia
ț
i s-au folosit doar următoarele biblioteci:
●
numpy
Numpy
este
biblioteca
de
bază
pentru
computerele
ș
tiin
ț
ifice
din
Python.
Acesta
oferă
un
obiect
multidimensional
de
înaltă
performan
ț
ă
ș
i
instrumente
pentru
lucrul
cu
aceste
tablouri.
Biblioteca
a
fost
utilizata
pentru
a
lucra
cu
tablouri
de
mari
dimensiuni.
Oferă
nenumărate
func
ț
ional ită
ț
i
care
calculează
rapid
înmul
ț
irea
a
doua
tablouri,
transpusa
unei
matrici sau extragerea minimului sau maximului dintr-un tablou.
●
matplotlib:
Matplotlib
este
probabil
cel
mai
folosit
pachet
Python
pentru
grafica
2D.
Acesta
oferă
o
modalitate
foarte
rapidă
de
a
vizualiza
date
din
Python.
Din
cadrul
bibliotecii
s-a
folosit
modulul
pyplot
cu
ajutorul
căruia
au
fost
realizate
graficele
pentru
vizualizarea
monotoniei
erorii la antrenare a algoritmilor.
●
csv:
Modulul
CSV
este
util
pentru
lucrul
cu
datele
exportate
din
foi
de
calcul
ș
i
baze
de
date
în
fi
ș
iere
text
form atate
cu
câmpuri
ș
i
înregistrări,
denumite
în
mod
obi
ș
nuit
formatul
de
32
valoare
separată
prin
virgulă
(CSV),
deoarece
deseori
se
utilizează
virgule
pentru
separarea
câmpurilor
într-o
înregistrare.
A
fost
utilizat
pentru
a
lucra
cu
seturile
de
date.
Având
la
dispozi
ț
ie
un
număr
mare
de
instan
ț
e,
pentru
memorarea
acestora
s-au
folosit
fi
ș
iere
.cvs
pentru a putea construi mult mai u
ș
or tablourile cu instan
ț
e de antrenament
ș
i test.
2.
Setul de date
Setul
de
date
a
fost
preluat
din
baza
de
date
a
site-ul
UCI
Machine
Learning
[6].
Acesta
con
ț
ine
un
număr
de
400
de
instan
ț
e.
Fiecare
instan
ț
ă
con
ț
ine
24
de
atribute
specifice
ș
i
un
atribut
destinat
clasei
din
care
face
parte.
O
mostră
din
datele
examinate
este
ilustrată
în
Imaginea 1 din cadrul capitolului III, sec
ț
iunea 2.1.
Nume camp
Tip
Unitatea de masura/Valori
nominale
Age
numeric
ani
Blood Pressure
numeric
mm/Hg
Specific Gravity
nominal
1.005,1.010,1.015,1.020,1.025
Albumin
nominal
0,1,2,3,4,5
Sugar
nominal
0,1,2,3,4,5
Red Blood Cells
nominal
normal,abnormal
Pus Cell
nominal
normal,abnormal
Bacteria
nominal
present,notpresent
Blood Glucose Random
numeric
mgs/dl
Blood Urea
numeric
mgs/dl
Serum Creatinine
numeric
mgs/dl
Sodium
numeric
mEq/L
Potassium
numeric
mEq/L
Hemoglobin
numeric
gms
Packed Cell Volume
numeric
–
White Blood Cell Count
numeric
cells/cumm
Red Blood Cell Count
numeric
millions/cmm
Hypertension
nominal
yes,no
33
Diabetes Mellitus
nominal
yes,no
Coronary Artery Disease
nominal
yes,no
Appetite
nominal
good,poor
Pedal Edema
nominal
yes,no
Anemia
nominal
yes,no
Class(diagnostic)
nominal
ckd,notckd
Tabel 5: Prezentarea atributelor setului de date
3.
Eficienta
În urma experimentelor am colectionat o serie de date referitoare la eficienta
algoritmilor
ș
i au fost p rezentate în tabelele de la capitolul trei. Mai jos sunt atasate imagini cu
rezultate obtinute de algoritmi la momentul rularii acestora.
Imagine 6: Rularea algoritm AdaBoost
Imagine 7: Rularea algoritm ID3
34
Imagine 8: Rularea algoritm re
ț
ea neuronala
35
Copyright Notice
© Licențiada.org respectă drepturile de proprietate intelectuală și așteaptă ca toți utilizatorii să facă același lucru. Dacă consideri că un conținut de pe site încalcă drepturile tale de autor, te rugăm să trimiți o notificare DMCA.
Acest articol: Compararea algoritmilor de clasificare în contextul diagnosticării medicale propusă de Cre ț u Andra-Elena Sesiunea: Iulie, 2018 Coordonator ș tiin [611035] (ID: 611035)
Dacă considerați că acest conținut vă încalcă drepturile de autor, vă rugăm să depuneți o cerere pe pagina noastră Copyright Takedown.
