Sfoglia il codice sorgente

added small 1d plotting program to check visually

Alexander Freytag 11 anni fa
parent
commit
e37edae212
2 ha cambiato i file con 62 aggiunte e 1 eliminazioni
  1. 57 0
      matlab/plot1dExample.m
  2. 5 1
      matlab/testGPHIKClassifier.m

+ 57 - 0
matlab/plot1dExample.m

@@ -0,0 +1,57 @@
+myData = [ 0.2; 0.8];
+% create l1-normalized 'histograms'
+myData = cat(2,myData , 1-myData)';
+myLabels = [1,2];
+
+
+% init new GPHIKClassifier object
+myGPHIKClassifier = GPHIKClassifier ( 'verbose', 'false', ...
+    'optimization_method', 'none', 'varianceApproximation', 'approximate_fine',...
+    'nrOfEigenvaluesToConsiderForVarApprox',2,...
+    'uncertaintyPredictionForClassification', true ...
+    );
+
+% run train method
+myGPHIKClassifier.train( myData, myLabels );
+
+myDataTest = 0:0.01:1;
+% create l1-normalized 'histograms'
+myDataTest = cat(1, myDataTest, 1-myDataTest)';
+
+
+scores = zeros(size(myDataTest,1),1);
+uncertainties = zeros(size(myDataTest,1),1);
+for i=1:size(myDataTest,1)
+    example = myDataTest(i,:);
+    [ classNoEst, score, uncertainties(i)] = myGPHIKClassifier.classify( example );
+    scores(i) = score(1);
+end
+
+
+
+figure;
+hold on;
+
+%#initialize x array
+x=0:0.01:1;
+
+%#create first curve
+uncLower=scores-uncertainties;
+%#create second curve
+uncUpper=scores+uncertainties;
+
+
+%#create polygon-like x values for plotting
+X=[x,fliplr(x)];
+%# concatenate y-values accordingly
+Y=[uncLower',fliplr(uncUpper')]; 
+%#plot filled area
+fill(X,Y,'y');                  
+
+plot ( x,scores,'rx');
+
+
+% clean up and delete object
+myGPHIKClassifier.delete();
+
+clear ( 'myGPHIKClassifier' );

+ 5 - 1
matlab/testGPHIKClassifier.m

@@ -14,7 +14,7 @@ myLabels = [1,1,2,2,3,3];
 
 % init new GPHIKClassifier object
 myGPHIKClassifier = GPHIKClassifier ( 'verbose', 'false', ...
-    'optimization_method', 'none', 'varianceApproximation', 'approximate_rough',...
+    'optimization_method', 'none', 'varianceApproximation', 'approximate_fine',...
     'nrOfEigenvaluesToConsiderForVarApprox',4,...
     'uncertaintyPredictionForClassification', false ...
     );
@@ -22,6 +22,10 @@ myGPHIKClassifier = GPHIKClassifier ( 'verbose', 'false', ...
 % run train method
 myGPHIKClassifier.train( myData, myLabels );
 
+% check the reclassification is working!
+[ arrReCl, confMatReCl, scoresReCl] = myGPHIKClassifier.test( myData, myLabels )
+uncertainty = myGPHIKClassifier.uncertainty( myData(1,:) )
+
 myDataTest = [ 0.3 0.4 0.3
              ];
 myLabelsTest = [1];