def PickTopLap(y,MU,mret,epsilon=1.0,sc=[],sens=-1): n=len(y); m=len(sc); deltQ=sens; scDP=[s+us.Lap(0,2*deltQ/epsilon) for s in sc]; return sorted([i for i in range(0,m)],key=lambda i:-scDP[i])[:mret];
def estHerit(filename, num, epsilon, getVar=False, mph=3, direct="Temp"): varEst = divideData(filename, direct, num=num, mph=mph, delet=True) if getVar: return varEst[0] est = sum([v[1] / (sum(v)) for v in varEst]) / float(num) if epsilon < 0: return [sum(varEst[0]), est] print "Averaging and adding noise" est = est + us.Lap(0, epsilon / float(num)) if est < 0: est = 0.0 if est > 1: est = 1.0 print "The Result is " + str(est) return est
def PickTopNeigh(y,MU,mret,epsilon,neighDist=[],randBND=True,bnd=-1): n=len(y); m=len(neighDist); ep1=.1*epsilon; ep2=.9*epsilon; if len(neighDist)==0: sc=np.dot(MU,y);#[abs(sum([y[i]*mu[i] for i in range(0,n)])) for mu in MU]; sc=[abs(s) for s in sc] if bnd<0: bnd=sum(sorted(sc,reverse=True)[mret-1:mret+1])/2.0; if randBND: bnd=bnd+us.Lap(0,np.max(np.abs(MU))/ep1); bnd=abs(bnd); print "Calculating Distance" neighDist=fastNeigh(bnd,MU,y) m=len(MU); sc=[nei*ep2/(2.0*mret) for nei in neighDist]; return expPick(sc,mret);
def estVarY(y, epsilon): vr = np.var(y) n = len(y) return vr + us.Lap(0, epsilon * 3 / float(n))