• Aucun résultat trouvé

3.2 Acquisition de r`egles monosources caract´erisant des arythmies cardiaques :

3.2.2 Acquisition de r`egles monosources avec ICL

3.2.2.4 Construction de l’espace de recherche

amp_dd(Dias1, Dias2, pos, long)

:-diastole(Dias2, _,_,_,_,_, Dias1, _,_,_,D1),D1 >=20.

amp_dd(Dias1, Dias2, neg, long)

:-diastole(Dias2, _,_,_,_,_, Dias1, _,_,_,D1),D1 < -31.

amp_dd(Dias1, Dias2, nul, normal)

:-diastole(Dias2, _,_,_,_,_, Dias1, _,_,_,D1), D1 >= -31,D1 < 20. ... %relation de succession suc(A,B):- p_I(A,_,_,B,_,_,_,_,_,_). suc(A,B):- qrs_I(A,_,_,B,_,_,_,_,_,_). ...

%codage des valeurs symboliques des intervalles amp(S,short):-integer(S),S<578,!. amp(S,high):-integer(S),S>1382,!. amp(S,normal):-integer(S). .... kk1(D1,short):-integer(D1),D1<600,!. kk1(D1,long):-integer(D1),D1>1000,!. kk1(D1,normal):-integer(D1),D1>600,D1<1000.

Le deuxi`eme argument des pr´edicats diastole et systole dans l’exemple 10 repr´esente la diff´erence d’amplitude entre la systole pr´ec´edente et la diastole (amp_sd) dans le premier cas et entre la diastole pr´ec´edente et la systole dans le second cas (amp_ds). Le pr´edicat amp_dd(Dias1, Dias2, pos, long)signifie que la diff´erence d’amplitude entre deux diastoles Dias1 et Dias2 cons´ecutives est importante (long) et que la seconde diastole a une amplitude sup´erieure `a la premi`ere (l’introduction des valeurs pos et neg permet de visualiser de mani`ere plus intuitive le trac´e de courbe de pression).

3.2.2.4 Construction de l’espace de recherche

Pour biaiser l’espace de recherche avec ICL, deux m´ethodes doivent ˆetre utilis´ees conjointement : le biais syntaxique DLAB et le biais s´emantique d´ecrit dans le fichier d’environnement.

Exemple 11 (Fichier d’environnement d’ICL) classes([rs,bige,esv,doublet,tv, tsv,fa]). language(dnf).

maxbody(30). types(off).

modes(off). heuristic(m_estimate). significance_level(0.0). min_coverage(2). min_accuracy(0.1). beam_size(15).

%cross validation leave-one-out cv_sets(50).

Le fichier d’environnement (cf. Exemple 11) permet de changer les param`etres d’ICL. Nous avons choisi d’utiliser ICL dans son mode DNF permettant d’apprendre des classifieurs. Ce mode a ´et´e choisi empiriquement en raison de la compacit´e des r`egles apprises (contrairement au mode CNF) qui sont alors beaucoup plus ais´ees `a transformer en chroniques CRS. Nous n’avons fait aucune d´eclaration de types ou de modes, nous avons choisi de limiter le nombre de litt´eraux `a l’int´erieur des hypoth`eses `a 30. Le score de chacune des clauses est ´evalu´e par m estimateur compte tenu du faible nombre d’exemples. On impose que les r`egles couvrent au moins deux exemples positifs (pour ´eviter un apprentissage par cœur consistant `a apprendre une r`egle par exemple) et nous imposons une pr´ecision minimale de 0.1 aux r`egles s´electionn´ees dans le faisceau durant la recherche. La taille du faisceau de recherche est fix´ee arbitrairement `a 15. Le nombre de validations crois´ees est fix´e au nombre total d’exemples pour permettre une validation crois´ee de type leave-one-out.

L’espace de recherche doit ˆetre adapt´e au domaine d’application. Le signal ECG pr´esente un caract`ere cyclique, nous avons donc construit le biais DLAB sur le mod`ele des cycles cardiaques.

1 1-1:[

2 len-len:[cycle_I(P0,w_feature ,R0, w_feature),suc(R0,P0),

3 0-1:[pr1(P0,R0, r_feature)]],

4 len-len:[p_wav(P0, w_feature, _), equal(P0,R0)],

5 qrs(R0, w_feature)

6 ],

7 ...

8 dlab_variable(w_feature, 1-1, [normal, anormal]).

Fig. 3.5 – Sp´ecification syntaxique d’un cycle cardiaque en DLAB pour l’ECG Sur l’ECG, un cycle cardiaque est caract´eris´e par l’une des trois possibilit´es suivantes (cf. Figure 3.5) :

– une onde P nomm´ee P0 suivie par un complexe QRS nomm´e R0 (ligne 2 dans le pr´edicat cycle_I) suivi par un pr´edicat optionnel (contrainte 0-1) pr1 (ligne 3); – une onde P seule (ligne 4) suivi d’un pr´edicat equal permettant de maintenir la

chaˆıne temporelle entre les pr´edicats mˆeme en l’absence du QRS; – un QRS (R0) seul (ligne 5).

L’utilisation des variables dlab_variable permet de condenser la repr´esentation du biais : la variable sera substitu´ee, pendant l’apprentissage, par le terme DLAB d´ecrit

Acquisition de r`egles monosources caract´erisant des arythmies cardiaques : deux approches83

en deuxi`eme argument. Dans l’exemple pr´ec´edent le terme w_feature est consid´er´e comme une variable qui peut prendre les valeurs normal,anormal.

Les biais construits pour apprendre des r`egles `a partir des donn´ees de la voie I et de la pression art´erielle sont donn´es ci-dessous. Ils sont compos´es d’enchaˆınements de cycles comme celui de la figure 3.5. Cette fois, au lieu d’un pr´edicat optionnel tel que pr1, il y aura plusieurs pr´edicats optionnels pr´ec´ed´es du terme 0-len:[] dont la signification est explicit´ee dans l’exemple 8 de la section 3.1.8.4.

dlab_template(’ false <--len-len:[ 1-1:[len-len:[ 1-1:[ len-len:[cycle_I(P0,w_feature ,R0, w_feature),suc(R0,P0), 0-1:[pr1(P0,R0, r_feature)]],

len-len:[p_wav(P0, w_feature, _), equal(P0,R0)], qrs(R0, w_feature)

],

0-1:[len-len:[ 1-1:[

len-len:[cycle_I(P1,w_feature, R1, w_feature), suc(P1,R0), suc(R1,P1), 0-len:[rr1(R0, R1, r_feature), pr1(P1, R1, r_feature)]],

len-len:[p_wav(P1, w_feature), suc(P1,R0), 0-1:[pp1(P0, P1, r_feature)], equal(P1, R1)], len-len:[qrs(R1, w_feature), suc(R1,R0),

0-1:[rr1(R0, R1, r_feature)]] ],

0-1:[len-len:[ 1-1:[

len-len:[cycle_I(P2, w_feature, R2, w_feature), suc(P2,R1), suc(R2,P2), 0-len:[rythm(R0,R1,R2,rythm_feature),

rr1(1-1:[R1,R0], R2, r_feature), rr2(R0, R2, r_feature),

pr1(P2, R2, r_feature)]],

len-len:[p_wav(P2, w_feature), suc(P2,R1),

0-1:[pp1(1-1:[P1, P0], P2, r_feature)], equal(P2, R2)], len-len:[qrs(R2, w_feature), suc(R2,R1),

0-len:[ rythm(R0,R1,R2,rythm_feature), rr2(R0, R2, r_feature),

rr1(1-1:[R1,R0], R2, r_feature)]] ],

% .... (quatre autres cycles cardiaques)

]] ]] ]] ]] ] ’).

dlab_variable(r_feature, 1-1, [short, normal, long]). dlab_variable(w_feature, 1-1, [normal, anormal]). dlab_variable(rythm_feature, 1-1, [regular,irregular]).

On peut remarquer que les cycles sont imbriqu´es de mani`ere `a ˆetre utilis´es dans l’apprentissage exactement dans l’ordre dans lequel ils ont ´et´e sp´ecifi´es. Cela permet d’´eviter l’apprentissage de clauses non connect´ees, i.e., des r`egles poss´edant des cycles non rattach´es (par le pr´edicat suc) `a un autre cycle. De telles r`egles seraient tr`es difficiles `a interpr´eter. La sp´ecification 0-1:[len-len:[ en d´ebut de chaque cycle permet en outre de sp´ecifier les cycles optionnels ou obligatoires. Par exemple, pour les deux biais pr´esent´es dans cette section, le premier cycle cardiaque est obligatoire et les autres cycles sont optionnels. On peut ainsi g´en´erer des espaces d’hypoth`eses imposant un nombre variable de cycles cardiaques.

dlab_template(’ false <--len-len:[ 1-1:[len-len:[ cycle_ABP(Dias0,_,Sys0,w_feature), suc(Sys0,Dias0), 0-0:[ds1(Dias0,Sys0, r_feature)], 0-1:[len-len:[

cycle_ABP(Dias1, w_feature, Sys1,w_feature), suc(Dias1,Sys0) ,suc(Sys1,Dias1), 0-1:[amp_ss(Sys0, Sys1, amp_featureS, amp_feature)],

0-1:[amp_dd(Dias0, Dias1, amp_featureS, amp_feature)], 0-1:[ss1(Sys0, Sys1, r_feature)],

0-1:[dd1(Dias0, Dias1, r_feature)], 0-1:[ds1(Dias1,Sys1, r_feature)], 0-1:[sd1(Sys0, Dias1, r_feature)], 0-1:[len-len:[

cycle_ABP(Dias2, w_feature, Sys2,w_feature), suc(Dias2,Sys1) ,suc(Sys2,Dias2), 0-1:[amp_ss(Sys1, Sys2, amp_featureS, amp_feature)],

0-1:[amp_dd(Dias1, Dias2, amp_featureS, amp_feature)], 0-1:[ss1(Sys1, Sys2, r_feature)],

0-1:[dd1(Dias1, Dias2, r_feature)], 0-1:[ds1(Dias2, Sys2, r_feature)], 0-1:[sd1(Sys1, Dias2, r_feature)], 0-1:[ss2(Sys0, Sys2, r_feature)], 0-1:[dd2(Dias0, Dias2, r_feature)],

....(trois autres cycles cardiaques) ]]

]] ]] ] ’).

dlab_variable(r_feature, 1-1, [short, normal, long]). dlab_variable(w_feature, 1-1, [short, normal, high]). dlab_variable(amp_feature, 1-1, [normal, long]). dlab_variable(amp_featureS, 1-1, [pos, neg,nul]).

Pour la pression le d´ecoupage des cycle est plus simple que pour l’ECG puisqu’une systole est toujours pr´ec´ed´ee d’une diastole et inversement.

Acquisition de r`egles monosources caract´erisant des arythmies cardiaques : deux approches85