diff options
Diffstat (limited to 'sourcecodes/bnt-master/SLP/misc/discretization.m')
| -rw-r--r-- | sourcecodes/bnt-master/SLP/misc/discretization.m | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/sourcecodes/bnt-master/SLP/misc/discretization.m b/sourcecodes/bnt-master/SLP/misc/discretization.m new file mode 100644 index 00000000..870583af --- /dev/null +++ b/sourcecodes/bnt-master/SLP/misc/discretization.m @@ -0,0 +1,59 @@ +function [appD, testD, bornes] = discretization(critere, continues, miss, app, test) +% [appD, testD, bornes] = discretization(critere, continious, miss, app, test) +% +% Inputs : +% critere = 1, 2, 3 or 4 (see hict_ic for details) +% continious = vector of continious variables to discretize +% miss ~= 0 if it exists missing values coded by 'miss' value +% app = Learning base +% test = Test base (only the learning base is used to make the discretization rules) [optionnal] +% +% Outputs : +% appD = Learning base with discretized entries on 'continious' variables +% testD = Test base with discretized entries on 'continious' variables +% bornes = limits of discretization intervals found by hist_ic +% + +tt=1; +if nargin<5, test=[]; tt=0; end +app = app'; +test = test'; +[ma, Na] = size(app); +[mt, Nt] = size(test); +I = []; +testD = []; + +if miss, + [I J]=find(app==miss); + [I2 J2]=find(test==miss); +end +completes=setdiff(1:ma,I); +donnees_continue=app(completes,continues); + +% echantillonnage +[n,bornes,nbbornes,xx]=hist_ic(donnees_continue,critere); + +% on re-distribue l'ensemble des donnees d'apprentissage continues +[n2,appD_continues]=histc_ic(app(:,continues),bornes); +if tt, [n2test,testD_continues]=histc_ic(test(:,continues),bornes); end + +% on insere les donnees continues discretisees dans les matrices +appD=app; +if tt, testD=test; end +for i=1:length(continues) + appD(:,continues(i))=appD_continues(:,i); + if tt, testD(:,continues(i))=testD_continues(:,i); end +end + +if miss, + for k=1:length(I) + app(I(k),J(k))=miss; + end + if tt, + for l=1:length(I2) + testD(I2(l),J2(l))=miss; + end + end +end +appD = appD'; +testD = testD'; \ No newline at end of file |
