changeset 291:63ae0dfc1767

Adding to tests/pointset_test OCTAVE function to plot LSH retrieval characteristic from test output
author mas01mc
date Tue, 22 Jul 2008 20:09:31 +0000
parents 40dca0cbbffd
children d9a88cfd4ab6
files tests/pointset_test/plotLSHresults.m
diffstat 1 files changed, 61 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/pointset_test/plotLSHresults.m	Tue Jul 22 20:09:31 2008 +0000
@@ -0,0 +1,61 @@
+function plotLSHresults(filename, w, kk, useLog)
+if nargin<4, useLog=0;end
+if nargin<3, kk=1;end
+
+R = load(filename,'ascii'); % Assume 10 radii queries x 10 radii result summaries
+
+for k=1:10
+  RR(k,:)=mean(R(k:10:end,:))./100; % Convert to Probability
+end
+
+c=['r' 'g' 'b' 'c' 'm' 'y' 'k'];
+
+if(useLog)
+     logSym=' Log_{10} ';
+   else
+     logSym='';
+end
+
+figure
+subplot(211)
+hold on
+radii=[0.1 0.2 0.4 0.5 0.7 0.9 1 2 5 10];
+for k=1:10
+  if(useLog)
+    semilogx(radii, kk*log10(lshP(w,radii./radii(k))),[num2str(c(mod(k,length(c))+1)) '-+'],'lineWidth',2)
+  else
+    plot(radii,lshP(w,radii./radii(k)).^kk,[num2str(c(mod(k,length(c))+1)) '-+'],'lineWidth',2)
+  end
+end
+if(useLog)
+  axis([radii(1) radii(end) -kk 0])
+else
+  axis([0 10 0 1])
+end
+grid on
+legend([{"r=.1"},{"r=.2"},{"r=.4"},{"r=.5"},{"r=.7"},{"r=.9"},{"r=1"},{"r=2"},{"r=5"},{"r=10"}])
+title(['Estimated Probability for 10 LSH radii searches: w=' num2str(w) ' , k=' num2str(kk)])
+xlabel('Radius')
+ylabel([logSym 'Probability'])
+
+
+subplot(212)
+hold on
+for k=1:10
+  if(useLog)
+    semilogx(radii,kk*log(RR(k,:)),[num2str(c(mod(k,length(c))+1)) '-+'],'lineWidth',2)
+  else
+    plot(radii,RR(k,:).^kk,[num2str(c(mod(k,length(c))+1)) '-+'],'lineWidth',2)    
+  end
+end
+if(useLog)
+  axis([radii(1) radii(end) -kk 0])
+else
+  axis([0 10 0 1])
+endif
+grid on
+legend([{"r=.1"},{"r=.2"},{"r=.4"},{"r=.5"},{"r=.7"},{"r=.9"},{"r=1"},{"r=2"},{"r=5"},{"r=10"}])
+title(['Observed Probability for 10 LSH radii searches: w=' num2str(w) ' , k=' num2str(kk)])
+xlabel('Radius')
+ylabel([logSym 'Probability'])
+