/statistics.py (fb03eaa1cd8eb0d6c17b2019fe4c877a32bb7059) (2144 bytes) (mode 100644) (type blob)

#statistics.py
import redis as rd
import numpy as np
from scipy.stats import pearsonr

def calculate_statistics(self,metric,redis_key):
  all_values = dict(self.redis.zrange(redis_key, 0, -1, withscores=True, score_cast_func=float)).values()
  min_value = np.min(all_values)
  max_value = np.max(all_values)

  average = np.average(all_values)
  median = np.median(all_values)
  standard_deviation = np.std(all_values)

  self.redis.hset(self.statistics_prefix+metric, 'min', min_value)
  self.redis.hset(self.statistics_prefix+metric, 'max', max_value)
  self.redis.hset(self.statistics_prefix+metric, 'average', average)
  self.redis.hset(self.statistics_prefix+metric, 'median', median)
  self.redis.hset(self.statistics_prefix+metric, 'standard_deviation', standard_deviation)


def calculate_correlations(self):
  m = self.base_metrics.keys()
  c = self.advanced_metrics.keys()

  metrics = m + c

  correlations = {}
  for metric1 in metrics:
    correlations[metric1] = {}
    for metric2 in metrics:
      correlations[metric1][metric2] = (0,0)
      if metric1 == metric2:
        correlations[metric1][metric2] = (1,0)
        continue

      dict_metric1 = dict(self.redis.zrange(self.metric_prefix+metric1, 0, -1, withscores=True, score_cast_func=float))
      dict_metric2 = dict(self.redis.zrange(self.metric_prefix+metric2, 0, -1, withscores=True, score_cast_func=float))
      values_metric1 = []
      values_metric2 = []

      for key in sorted(dict_metric1.iterkeys()):
        values_metric1.append(dict_metric1[key])

      for key in sorted(dict_metric2.iterkeys()):
        values_metric2.append(dict_metric2[key])

      correlations[metric1][metric2] = pearsonr(values_metric1,values_metric2)

  values_metric1 = []
  values_metric2 = []

  for source in correlations:
    for target in correlations[source]:
      self.redis.hset(self.statistics_prefix+"correlations:"+source+":"+target, "correlation", correlations[source][target][0])
      self.redis.hset(self.statistics_prefix+"correlations:"+source+":"+target, "confidence", correlations[source][target][1])

Mode Type Size Ref File
100644 blob 6 0d20b6487c61e7d1bde93acf4a14b7a89083a16d .gitignore
100644 blob 103 924a1df9f7338af770d3cf3d4b0ce2673f10d1b0 README.md
100644 blob 0 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 __init__.py
100644 blob 1256 489636a0073e3dfe2bfd04ee893d609d304a8490 advancedscores.py
100644 blob 4841 c18bb46d148ccb4e04370864e7352cae635f865d config.py
040000 tree - 1eae5e19b1eff05e464e361e3f50f3df23f1b754 data
100644 blob 4728 68b7ae967b6cb349e54a32d6d00528321f1825b3 file_importer.py
100644 blob 2132 b09bec79c503afa1126d86335d1372443e207773 graph tool test.py
100644 blob 716 359eb7179fa58d67044228556f7d9c38b5caec85 indexing.py
100644 blob 33232205 7ca601d1ca32abf3244359ce3ad85ea6a1b60010 log
100644 blob 6361 888c63bb17693deb49d9ae367ed7a3b9cdbeebe0 metric_calculator.py
100644 blob 8308 6673fc89a71f9a87f57997fbd96c7ed3c36fb7ff metrics.py
100644 blob 1665 a959a8cc528f486a80a84e2ab233457870d255a1 normalizations.py
100644 blob 1575 7a6cc1ce0ca8ab13c12325ce4ac45044544ed9a1 pearson.py
100644 blob 1696 26df05e3ec9f549013f400a6f5f5df7fdb617c2e start.py
100644 blob 2144 fb03eaa1cd8eb0d6c17b2019fe4c877a32bb7059 statistics.py
Hints:
Before first commit, do not forget to setup your git environment:
git config --global user.name "your_name_here"
git config --global user.email "your@email_here"

Clone this repository using HTTP(S):
git clone https://rocketgit.com/user/coria/coria-backend

Clone this repository using ssh (do not forget to upload a key first):
git clone ssh://rocketgit@ssh.rocketgit.com/user/coria/coria-backend

Clone this repository using git:
git clone git://git.rocketgit.com/user/coria/coria-backend

You are allowed to anonymously push to this repository.
This means that your pushed commits will automatically be transformed into a merge request:
... clone the repository ...
... make some changes and some commits ...
git push origin main