[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

[tor-commits] [metrics-web/release] Compute percentiles in clients module using linear interpolation.



commit 95d091a87c3ebff8a35a57967b4e144898e2e1a5
Author: Karsten Loesing <karsten.loesing@xxxxxxx>
Date:   Sat May 19 21:02:28 2018 +0200

    Compute percentiles in clients module using linear interpolation.
    
    So far we computed percentiles in the censorship detector of the
    clients module using our own formula that picked existing values as
    median or quartiles.
    
    Now we're using numpy.percentile which, by default, uses linear
    interpolation when the desired quantile lies between two data points.
    
    We're also removing unused imports of pylab and matplotlib in this
    commit, which is not directly related.
    
    Implements part of #26035.
---
 src/main/python/clients/detector.py | 12 ++++--------
 1 file changed, 4 insertions(+), 8 deletions(-)

diff --git a/src/main/python/clients/detector.py b/src/main/python/clients/detector.py
index 9944710..b0a98af 100644
--- a/src/main/python/clients/detector.py
+++ b/src/main/python/clients/detector.py
@@ -37,13 +37,9 @@
 ##  This script reads a .csv file of the number of Tor users and finds
 ##  anomalies that might be indicative of censorship.
 
-# Dep: matplotlib
-from pylab import *
-import matplotlib
-
 # Dep: numpy
 import numpy
-from numpy import mean, std
+from numpy import mean, std, percentile
 
 # Dep: scipy
 import scipy.stats
@@ -190,9 +186,9 @@ def make_tendencies_minmax(l, INTERVAL = 1):
       maxx += [None]
     else:
       vals.sort()
-      median = vals[len(vals)/2]
-      q1 = vals[len(vals)/4]
-      q2 = vals[(3*len(vals))/4]
+      median = percentile(vals, 50)
+      q1 = percentile(vals, 25)
+      q2 = percentile(vals, 75)
       qd = q2 - q1
       vals = [v for v in vals if median - qd*4 < v and  v < median + qd*4]
       if len(vals) < 8:



_______________________________________________
tor-commits mailing list
tor-commits@xxxxxxxxxxxxxxxxxxxx
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits