changeset 83:a300b571a0b0 branch-tests

merged
author mpanteli <m.x.panteli@gmail.com>
date Tue, 26 Sep 2017 21:18:54 +0100
parents 4395037087b6 (diff) c3ab85ed1fa7 (current diff)
children 8404ea114e45
files
diffstat 3 files changed, 167 insertions(+), 230 deletions(-) [+]
line wrap: on
line diff
--- a/notebooks/results_for_30_seconds.ipynb	Tue Sep 26 14:39:14 2017 +0100
+++ b/notebooks/results_for_30_seconds.ipynb	Tue Sep 26 21:18:54 2017 +0100
@@ -204,7 +204,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 5,
+   "execution_count": 4,
    "metadata": {
     "scrolled": true
    },
@@ -213,138 +213,127 @@
      "name": "stdout",
      "output_type": "stream",
      "text": [
-      "/import/c4dm-04/mariap/lda_data_melodia_8_30sec.pickle\n",
+      "/import/c4dm-04/mariap/lda_data_melodia_8_30sec.pickle\n"
+     ]
+    },
+    {
+     "name": "stderr",
+     "output_type": "stream",
+     "text": [
+      "/homes/mp305/anaconda/lib/python2.7/site-packages/sklearn/metrics/classification.py:1113: UndefinedMetricWarning: F-score is ill-defined and being set to 0.0 in labels with no predicted samples.\n",
+      "  'precision', 'predicted', average, warn_for)\n",
+      "/homes/mp305/anaconda/lib/python2.7/site-packages/sklearn/discriminant_analysis.py:455: UserWarning: The priors do not sum to 1. Renormalizing\n",
+      "  UserWarning)\n"
+     ]
+    },
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
       "KNN LDA 0.151978449974\n",
       "LDA LDA 0.320669835863\n",
       "SVM LDA 0.0231101788399\n",
-      "RF LDA 0.0707681464082\n",
+      "RF LDA 0.0750711341437\n",
       "KNN LDA 0.0547390436205\n",
       "LDA LDA 0.150312531138\n",
       "SVM LDA 0.0787628988868\n",
-      "RF LDA 0.0311176089141\n",
+      "RF LDA 0.0325169847578\n",
       "KNN LDA 0.0232330458268\n",
       "LDA LDA 0.0702474072041\n",
       "SVM LDA 0.050068706152\n",
-      "RF LDA 0.0168479682586\n",
+      "RF LDA 0.0221962788765\n",
       "KNN LDA 0.281733731607\n",
       "LDA LDA 0.198582742899\n",
       "SVM LDA 0.296355560166\n",
-      "RF LDA 0.150028594255\n",
+      "RF LDA 0.138929482109\n",
       "KNN LDA 0.0857923493684\n",
       "LDA LDA 0.107355289483\n",
       "SVM LDA 0.0896098014444\n",
-      "RF LDA 0.0507616592735\n",
+      "RF LDA 0.0520582564401\n",
       "/import/c4dm-04/mariap/pca_data_melodia_8_30sec.pickle\n",
       "KNN PCA 0.140643930221\n",
       "LDA PCA 0.175099072208\n",
       "SVM PCA 0.0149273059799\n",
-      "RF PCA 0.0456009299668\n",
+      "RF PCA 0.0436883799804\n",
       "KNN PCA 0.052516908106\n",
       "LDA PCA 0.055028942176\n",
       "SVM PCA 0.0479512645907\n",
-      "RF PCA 0.0263226873341\n",
+      "RF PCA 0.0293191117144\n",
       "KNN PCA 0.0268729640269\n",
       "LDA PCA 0.0459303318699\n",
       "SVM PCA 0.0386730267598\n",
-      "RF PCA 0.0186964838343\n",
+      "RF PCA 0.0200505661024\n",
       "KNN PCA 0.220850433533\n",
       "LDA PCA 0.161502657527\n",
       "SVM PCA 0.245790916558\n",
-      "RF PCA 0.139792959142\n",
+      "RF PCA 0.109652967294\n",
       "KNN PCA 0.0814272808267\n",
       "LDA PCA 0.0839732813486\n",
       "SVM PCA 0.0918638232782\n",
-      "RF PCA 0.0445219060784\n",
+      "RF PCA 0.0512694004704\n",
       "/import/c4dm-04/mariap/nmf_data_melodia_8_30sec.pickle\n",
       "KNN NMF 0.114298949339\n",
       "LDA NMF 0.178244078869\n",
       "SVM NMF 0.0164055663008\n",
-      "RF NMF 0.0629920627191\n",
+      "RF NMF 0.0603986437872\n",
       "KNN NMF 0.043057794756\n",
       "LDA NMF 0.0586662842996\n",
       "SVM NMF 0.00781273342686\n",
-      "RF NMF 0.0322137767606\n",
+      "RF NMF 0.0394888564357\n",
       "KNN NMF 0.0285281454673\n",
       "LDA NMF 0.0463659955869\n",
       "SVM NMF 0.00768887594564\n",
-      "RF NMF 0.020364413503\n",
+      "RF NMF 0.0243236536555\n",
       "KNN NMF 0.177819886656\n",
       "LDA NMF 0.166221515627\n",
       "SVM NMF 0.010788613595\n",
-      "RF NMF 0.125503851218\n",
+      "RF NMF 0.125063096463\n",
       "KNN NMF 0.0795454671166\n",
       "LDA NMF 0.0856428557896\n",
       "SVM NMF 0.0116920633048\n",
-      "RF NMF 0.0415516315034\n",
+      "RF NMF 0.0410278341205\n",
       "/import/c4dm-04/mariap/ssnmf_data_melodia_8_30sec.pickle\n",
       "KNN SSNMF 0.14322692821\n",
       "LDA SSNMF 0.18320247367\n",
       "SVM SSNMF 0.0205784326384\n",
-      "RF SSNMF 0.0453718187022\n",
+      "RF SSNMF 0.0459476869017\n",
       "KNN SSNMF 0.0431300683181\n",
       "LDA SSNMF 0.0533449581285\n",
       "SVM SSNMF 0.0106542141335\n",
-      "RF SSNMF 0.031229373819\n",
+      "RF SSNMF 0.0267217709348\n",
       "KNN SSNMF 0.0152235481009\n",
       "LDA SSNMF 0.038872838043\n",
       "SVM SSNMF 0.00536127803533\n",
-      "RF SSNMF 0.0181117619327\n",
+      "RF SSNMF 0.0196169872436\n",
       "KNN SSNMF 0.227101074174\n",
       "LDA SSNMF 0.165382484171\n",
       "SVM SSNMF 0.0184921176111\n",
-      "RF SSNMF 0.115557523856\n",
+      "RF SSNMF 0.0924443700566\n",
       "KNN SSNMF 0.0715413500709\n",
       "LDA SSNMF 0.0819764377219\n",
       "SVM SSNMF 0.0138822224913\n",
-      "RF SSNMF 0.0350133428793\n",
+      "RF SSNMF 0.0347436738199\n",
       "/import/c4dm-04/mariap/na_data_melodia_8_30sec.pickle\n",
       "KNN NA 0.140075287804\n",
       "LDA NA 0.176953549195\n",
       "SVM NA 0.0149485545637\n",
-      "RF NA 0.0826528174744\n",
+      "RF NA 0.0681836566939\n",
       "KNN NA 0.0515315452955\n",
       "LDA NA 0.0599453579616\n",
       "SVM NA 0.0468615478392\n",
-      "RF NA 0.0398757075984\n",
+      "RF NA 0.045878758841\n",
       "KNN NA 0.0273364752119\n",
       "LDA NA 0.0378819151174\n",
       "SVM NA 0.038290667129\n",
-      "RF NA 0.0317183273408\n",
+      "RF NA 0.0207492176709\n",
       "KNN NA 0.221769305159\n",
       "LDA NA 0.191217962613\n",
       "SVM NA 0.250268813953\n",
-      "RF NA 0.113553333212\n",
+      "RF NA 0.117754824997\n",
       "KNN NA 0.0814734970192\n",
       "LDA NA 0.0839348156722\n",
       "SVM NA 0.0881235182136\n",
-      "RF NA 0.0586010122134\n",
-      "\\begin{tabular}{lllrrrrr}\n",
-      "\\toprule\n",
-      "{} &      0 &    1 &         2 &         3 &         4 &         5 &         6 \\\\\n",
-      "\\midrule\n",
-      "0  &    LDA &  KNN &  0.151978 &  0.054739 &  0.023233 &  0.281734 &  0.085792 \\\\\n",
-      "1  &    LDA &  LDA &  0.320670 &  0.150313 &  0.070247 &  0.198583 &  0.107355 \\\\\n",
-      "2  &    LDA &  SVM &  0.023110 &  0.078763 &  0.050069 &  0.296356 &  0.089610 \\\\\n",
-      "3  &    LDA &   RF &  0.070768 &  0.031118 &  0.016848 &  0.150029 &  0.050762 \\\\\n",
-      "4  &    PCA &  KNN &  0.140644 &  0.052517 &  0.026873 &  0.220850 &  0.081427 \\\\\n",
-      "5  &    PCA &  LDA &  0.175099 &  0.055029 &  0.045930 &  0.161503 &  0.083973 \\\\\n",
-      "6  &    PCA &  SVM &  0.014927 &  0.047951 &  0.038673 &  0.245791 &  0.091864 \\\\\n",
-      "7  &    PCA &   RF &  0.045601 &  0.026323 &  0.018696 &  0.139793 &  0.044522 \\\\\n",
-      "8  &    NMF &  KNN &  0.114299 &  0.043058 &  0.028528 &  0.177820 &  0.079545 \\\\\n",
-      "9  &    NMF &  LDA &  0.178244 &  0.058666 &  0.046366 &  0.166222 &  0.085643 \\\\\n",
-      "10 &    NMF &  SVM &  0.016406 &  0.007813 &  0.007689 &  0.010789 &  0.011692 \\\\\n",
-      "11 &    NMF &   RF &  0.062992 &  0.032214 &  0.020364 &  0.125504 &  0.041552 \\\\\n",
-      "12 &  SSNMF &  KNN &  0.143227 &  0.043130 &  0.015224 &  0.227101 &  0.071541 \\\\\n",
-      "13 &  SSNMF &  LDA &  0.183202 &  0.053345 &  0.038873 &  0.165382 &  0.081976 \\\\\n",
-      "14 &  SSNMF &  SVM &  0.020578 &  0.010654 &  0.005361 &  0.018492 &  0.013882 \\\\\n",
-      "15 &  SSNMF &   RF &  0.045372 &  0.031229 &  0.018112 &  0.115558 &  0.035013 \\\\\n",
-      "16 &     NA &  KNN &  0.140075 &  0.051532 &  0.027336 &  0.221769 &  0.081473 \\\\\n",
-      "17 &     NA &  LDA &  0.176954 &  0.059945 &  0.037882 &  0.191218 &  0.083935 \\\\\n",
-      "18 &     NA &  SVM &  0.014949 &  0.046862 &  0.038291 &  0.250269 &  0.088124 \\\\\n",
-      "19 &     NA &   RF &  0.082653 &  0.039876 &  0.031718 &  0.113553 &  0.058601 \\\\\n",
-      "\\bottomrule\n",
-      "\\end{tabular}\n",
-      "\n"
+      "RF NA 0.0661199464142\n"
      ]
     }
    ],
@@ -354,7 +343,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 12,
+   "execution_count": 5,
    "metadata": {},
    "outputs": [
     {
@@ -368,23 +357,23 @@
       "   LDA &  KNN &  0.151978 &  0.054739 &  0.023233 &  0.281734 &  0.085792 \\\\\n",
       "   LDA &  LDA &  0.320670 &  0.150313 &  0.070247 &  0.198583 &  0.107355 \\\\\n",
       "   LDA &  SVM &  0.023110 &  0.078763 &  0.050069 &  0.296356 &  0.089610 \\\\\n",
-      "   LDA &   RF &  0.070768 &  0.031118 &  0.016848 &  0.150029 &  0.050762 \\\\\n",
+      "   LDA &   RF &  0.075071 &  0.032517 &  0.022196 &  0.138929 &  0.052058 \\\\\n",
       "   PCA &  KNN &  0.140644 &  0.052517 &  0.026873 &  0.220850 &  0.081427 \\\\\n",
       "   PCA &  LDA &  0.175099 &  0.055029 &  0.045930 &  0.161503 &  0.083973 \\\\\n",
       "   PCA &  SVM &  0.014927 &  0.047951 &  0.038673 &  0.245791 &  0.091864 \\\\\n",
-      "   PCA &   RF &  0.045601 &  0.026323 &  0.018696 &  0.139793 &  0.044522 \\\\\n",
+      "   PCA &   RF &  0.043688 &  0.029319 &  0.020051 &  0.109653 &  0.051269 \\\\\n",
       "   NMF &  KNN &  0.114299 &  0.043058 &  0.028528 &  0.177820 &  0.079545 \\\\\n",
       "   NMF &  LDA &  0.178244 &  0.058666 &  0.046366 &  0.166222 &  0.085643 \\\\\n",
       "   NMF &  SVM &  0.016406 &  0.007813 &  0.007689 &  0.010789 &  0.011692 \\\\\n",
-      "   NMF &   RF &  0.062992 &  0.032214 &  0.020364 &  0.125504 &  0.041552 \\\\\n",
+      "   NMF &   RF &  0.060399 &  0.039489 &  0.024324 &  0.125063 &  0.041028 \\\\\n",
       " SSNMF &  KNN &  0.143227 &  0.043130 &  0.015224 &  0.227101 &  0.071541 \\\\\n",
       " SSNMF &  LDA &  0.183202 &  0.053345 &  0.038873 &  0.165382 &  0.081976 \\\\\n",
       " SSNMF &  SVM &  0.020578 &  0.010654 &  0.005361 &  0.018492 &  0.013882 \\\\\n",
-      " SSNMF &   RF &  0.045372 &  0.031229 &  0.018112 &  0.115558 &  0.035013 \\\\\n",
+      " SSNMF &   RF &  0.045948 &  0.026722 &  0.019617 &  0.092444 &  0.034744 \\\\\n",
       "    NA &  KNN &  0.140075 &  0.051532 &  0.027336 &  0.221769 &  0.081473 \\\\\n",
       "    NA &  LDA &  0.176954 &  0.059945 &  0.037882 &  0.191218 &  0.083935 \\\\\n",
       "    NA &  SVM &  0.014949 &  0.046862 &  0.038291 &  0.250269 &  0.088124 \\\\\n",
-      "    NA &   RF &  0.082653 &  0.039876 &  0.031718 &  0.113553 &  0.058601 \\\\\n",
+      "    NA &   RF &  0.068184 &  0.045879 &  0.020749 &  0.117755 &  0.066120 \\\\\n",
       "\\bottomrule\n",
       "\\end{tabular}\n",
       "\n",
@@ -402,11 +391,11 @@
       "   PCA &  KNN &  0.140644 &  0.052517 &  0.026873 &  0.220850 &  0.081427 \\\\\n",
       "    NA &  KNN &  0.140075 &  0.051532 &  0.027336 &  0.221769 &  0.081473 \\\\\n",
       "   NMF &  KNN &  0.114299 &  0.043058 &  0.028528 &  0.177820 &  0.079545 \\\\\n",
-      "    NA &   RF &  0.082653 &  0.039876 &  0.031718 &  0.113553 &  0.058601 \\\\\n",
-      "   LDA &   RF &  0.070768 &  0.031118 &  0.016848 &  0.150029 &  0.050762 \\\\\n",
-      "   NMF &   RF &  0.062992 &  0.032214 &  0.020364 &  0.125504 &  0.041552 \\\\\n",
-      "   PCA &   RF &  0.045601 &  0.026323 &  0.018696 &  0.139793 &  0.044522 \\\\\n",
-      " SSNMF &   RF &  0.045372 &  0.031229 &  0.018112 &  0.115558 &  0.035013 \\\\\n",
+      "   LDA &   RF &  0.075071 &  0.032517 &  0.022196 &  0.138929 &  0.052058 \\\\\n",
+      "    NA &   RF &  0.068184 &  0.045879 &  0.020749 &  0.117755 &  0.066120 \\\\\n",
+      "   NMF &   RF &  0.060399 &  0.039489 &  0.024324 &  0.125063 &  0.041028 \\\\\n",
+      " SSNMF &   RF &  0.045948 &  0.026722 &  0.019617 &  0.092444 &  0.034744 \\\\\n",
+      "   PCA &   RF &  0.043688 &  0.029319 &  0.020051 &  0.109653 &  0.051269 \\\\\n",
       "   LDA &  SVM &  0.023110 &  0.078763 &  0.050069 &  0.296356 &  0.089610 \\\\\n",
       " SSNMF &  SVM &  0.020578 &  0.010654 &  0.005361 &  0.018492 &  0.013882 \\\\\n",
       "   NMF &  SVM &  0.016406 &  0.007813 &  0.007689 &  0.010789 &  0.011692 \\\\\n",
--- a/notebooks/sensitivity_experiment.ipynb	Tue Sep 26 14:39:14 2017 +0100
+++ b/notebooks/sensitivity_experiment.ipynb	Tue Sep 26 21:18:54 2017 +0100
@@ -3,11 +3,16 @@
   {
    "cell_type": "code",
    "execution_count": 1,
-   "metadata": {
-    "collapsed": false
-   },
+   "metadata": {},
    "outputs": [
     {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "ERROR! Session/line number was not unique in database. History logging moved to new session 32\n"
+     ]
+    },
+    {
      "name": "stderr",
      "output_type": "stream",
      "text": [
@@ -37,9 +42,7 @@
   {
    "cell_type": "code",
    "execution_count": 2,
-   "metadata": {
-    "collapsed": true
-   },
+   "metadata": {},
    "outputs": [],
    "source": [
     "OUTPUT_FILES = load_dataset.OUTPUT_FILES\n",
@@ -49,9 +52,7 @@
   {
    "cell_type": "code",
    "execution_count": 5,
-   "metadata": {
-    "collapsed": false
-   },
+   "metadata": {},
    "outputs": [
     {
      "data": {
@@ -72,9 +73,7 @@
   {
    "cell_type": "code",
    "execution_count": 48,
-   "metadata": {
-    "collapsed": false
-   },
+   "metadata": {},
    "outputs": [
     {
      "name": "stdout",
@@ -284,9 +283,7 @@
   {
    "cell_type": "code",
    "execution_count": 52,
-   "metadata": {
-    "collapsed": false
-   },
+   "metadata": {},
    "outputs": [
     {
      "name": "stdout",
@@ -455,9 +452,7 @@
   {
    "cell_type": "code",
    "execution_count": 56,
-   "metadata": {
-    "collapsed": false
-   },
+   "metadata": {},
    "outputs": [
     {
      "data": {
@@ -480,9 +475,7 @@
   {
    "cell_type": "code",
    "execution_count": 8,
-   "metadata": {
-    "collapsed": false
-   },
+   "metadata": {},
    "outputs": [
     {
      "data": {
@@ -741,9 +734,7 @@
   {
    "cell_type": "code",
    "execution_count": 47,
-   "metadata": {
-    "collapsed": false
-   },
+   "metadata": {},
    "outputs": [
     {
      "name": "stdout",
@@ -842,9 +833,7 @@
   {
    "cell_type": "code",
    "execution_count": 59,
-   "metadata": {
-    "collapsed": false
-   },
+   "metadata": {},
    "outputs": [
     {
      "name": "stdout",
@@ -4591,9 +4580,7 @@
   {
    "cell_type": "code",
    "execution_count": 21,
-   "metadata": {
-    "collapsed": false
-   },
+   "metadata": {},
    "outputs": [
     {
      "name": "stdout",
@@ -4943,9 +4930,7 @@
   {
    "cell_type": "code",
    "execution_count": 52,
-   "metadata": {
-    "collapsed": false
-   },
+   "metadata": {},
    "outputs": [
     {
      "name": "stdout",
@@ -5271,9 +5256,7 @@
   {
    "cell_type": "code",
    "execution_count": 67,
-   "metadata": {
-    "collapsed": false
-   },
+   "metadata": {},
    "outputs": [
     {
      "name": "stdout",
@@ -5613,7 +5596,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 68,
+   "execution_count": 7,
    "metadata": {
     "collapsed": true
    },
@@ -5630,10 +5613,8 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 69,
-   "metadata": {
-    "collapsed": false
-   },
+   "execution_count": 8,
+   "metadata": {},
    "outputs": [
     {
      "data": {
@@ -5641,7 +5622,7 @@
        "(137, 10)"
       ]
      },
-     "execution_count": 69,
+     "execution_count": 8,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -5659,10 +5640,8 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 70,
-   "metadata": {
-    "collapsed": false
-   },
+   "execution_count": 9,
+   "metadata": {},
    "outputs": [
     {
      "name": "stdout",
@@ -5702,6 +5681,7 @@
     "first_zero_idx = np.min(zero_idx)\n",
     "ranked_countries = ranked_countries.iloc[:first_zero_idx, :]\n",
     "ranked_outliers = ranked_outliers.iloc[:first_zero_idx, :]\n",
+    "ranked_countries_arr = ranked_countries.get_values()\n",
     "\n",
     "print ranked_countries.head()\n",
     "print ranked_outliers.head()"
@@ -5737,9 +5717,7 @@
   {
    "cell_type": "code",
    "execution_count": 72,
-   "metadata": {
-    "collapsed": false
-   },
+   "metadata": {},
    "outputs": [
     {
      "name": "stdout",
@@ -5756,9 +5734,7 @@
   {
    "cell_type": "code",
    "execution_count": 80,
-   "metadata": {
-    "collapsed": false
-   },
+   "metadata": {},
    "outputs": [
     {
      "name": "stdout",
@@ -5787,9 +5763,7 @@
   {
    "cell_type": "code",
    "execution_count": 81,
-   "metadata": {
-    "collapsed": false
-   },
+   "metadata": {},
    "outputs": [
     {
      "name": "stdout",
@@ -5824,9 +5798,7 @@
   {
    "cell_type": "code",
    "execution_count": 76,
-   "metadata": {
-    "collapsed": false
-   },
+   "metadata": {},
    "outputs": [
     {
      "data": {
@@ -5844,11 +5816,16 @@
    ]
   },
   {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## Try precision at K"
+   ]
+  },
+  {
    "cell_type": "code",
-   "execution_count": 97,
-   "metadata": {
-    "collapsed": true
-   },
+   "execution_count": 10,
+   "metadata": {},
    "outputs": [],
    "source": [
     "# majority voting + precision at K (top5?)\n",
@@ -5859,10 +5836,8 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 98,
-   "metadata": {
-    "collapsed": false
-   },
+   "execution_count": 11,
+   "metadata": {},
    "outputs": [
     {
      "data": {
@@ -5915,7 +5890,7 @@
        "4   Bhutan   7"
       ]
      },
-     "execution_count": 98,
+     "execution_count": 11,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -5927,10 +5902,8 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 99,
-   "metadata": {
-    "collapsed": false
-   },
+   "execution_count": 12,
+   "metadata": {},
    "outputs": [
     {
      "data": {
@@ -6067,7 +6040,7 @@
        "9           Malta   1"
       ]
      },
-     "execution_count": 99,
+     "execution_count": 12,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -6078,20 +6051,15 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 102,
-   "metadata": {
-    "collapsed": false
-   },
+   "execution_count": 14,
+   "metadata": {},
    "outputs": [
     {
-     "data": {
-      "text/plain": [
-       "0.51000000000000001"
-      ]
-     },
-     "execution_count": 102,
-     "metadata": {},
-     "output_type": "execute_result"
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "0.51 0.0830662386292\n"
+     ]
     }
    ],
    "source": [
@@ -6104,7 +6072,27 @@
     "for j in range(ranked_countries_arr.shape[1]):\n",
     "    p_.append(precision_at_k(ranked_countries_arr[:, j], ground_truth, k))\n",
     "p_ = np.array(p_)\n",
-    "np.mean(p_)"
+    "print np.mean(p_), np.std(p_)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 15,
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "array([ 0.6,  0.5,  0.5,  0.5,  0.5,  0.5,  0.5,  0.4,  0.7,  0.4])"
+      ]
+     },
+     "execution_count": 15,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "p_"
    ]
   },
   {
@@ -6133,7 +6121,7 @@
    "name": "python",
    "nbconvert_exporter": "python",
    "pygments_lexer": "ipython2",
-   "version": "2.7.11"
+   "version": "2.7.12"
   }
  },
  "nbformat": 4,
--- a/notebooks/test_hubness.ipynb	Tue Sep 26 14:39:14 2017 +0100
+++ b/notebooks/test_hubness.ipynb	Tue Sep 26 21:18:54 2017 +0100
@@ -2,20 +2,9 @@
  "cells": [
   {
    "cell_type": "code",
-   "execution_count": 16,
-   "metadata": {
-    "collapsed": false
-   },
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "The autoreload extension is already loaded. To reload it, use:\n",
-      "  %reload_ext autoreload\n"
-     ]
-    }
-   ],
+   "execution_count": 1,
+   "metadata": {},
+   "outputs": [],
    "source": [
     "import numpy as np\n",
     "import pickle\n",
@@ -37,7 +26,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 17,
+   "execution_count": 2,
    "metadata": {
     "collapsed": true
    },
@@ -55,10 +44,8 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 18,
-   "metadata": {
-    "collapsed": false
-   },
+   "execution_count": 3,
+   "metadata": {},
    "outputs": [
     {
      "data": {
@@ -66,7 +53,7 @@
        "(8200, 380)"
       ]
      },
-     "execution_count": 18,
+     "execution_count": 3,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -96,10 +83,8 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 19,
-   "metadata": {
-    "collapsed": false
-   },
+   "execution_count": 4,
+   "metadata": {},
    "outputs": [
     {
      "data": {
@@ -107,7 +92,7 @@
        "(8200, 8200)"
       ]
      },
-     "execution_count": 19,
+     "execution_count": 4,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -119,16 +104,14 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 6,
-   "metadata": {
-    "collapsed": false
-   },
+   "execution_count": 5,
+   "metadata": {},
    "outputs": [
     {
      "data": {
       "image/png": "iVBORw0KGgoAAAANSUhEUgAAAZUAAAEACAYAAAB78OvLAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAGWtJREFUeJzt3W2sXdV95/HvDwyUPIwd05F5sCFWa6Q4StrADM50WvUy\nJGCiCniRgKsJeBKrL0pnYPqiE8xIYKtRO54KUaoRRGrzYFCDQdASoqBgB7iaSiNwEiClIYzNqJ7B\nl9pEBpO0o05t8Z8XZ128ubm2r303vvccfz/SkddZe6919jpczu/svfbeJ1WFJEl9OGWuN0CSNDoM\nFUlSbwwVSVJvDBVJUm8MFUlSbwwVSVJvZhQqSRYleSjJj5K8mGRVksVJtiXZkWRrkkWd9dcn2Znk\npSSXd+ovTvJCW3ZXp/6MJA+0+qeTXNBZtra9xo4kN3Tqlyd5prXZkuS02b8dkqTZmOmeyl3AY1X1\nIeCjwEvALcC2qroQeKI9J8lK4DpgJbAauDtJWj/3AOuqagWwIsnqVr8O2Nfq7wQ2tb4WA7cBl7TH\n7UkWtjabgDtamzdaH5KkOXTUUGkf4r9WVV8BqKqDVfUmcBWwua22Gbimla8G7q+qA1W1C3gZWJXk\nHOD9VbW9rXdvp023r4eBy1r5CmBrVe2vqv3ANuDKFlKXAg9N8/qSpDkykz2V5cCPk3w1ybNJ/jTJ\ne4ElVbW3rbMXWNLK5wK7O+13A+dNUz/R6mn/vgKD0ALeTHLWEfpaDOyvqrem6UuSNEdmEioLgIuA\nu6vqIuAfaIe6JtXgXi8n6n4v3ldGkuapBTNYZzewu6q+254/BKwH9iQ5u6r2tENbr7XlE8CyTvul\nrY+JVp5aP9nmfODVJAuAhVW1L8kEMNZpswx4EngdWJTklLa3srT18Q5JDCBJOkZVlaOvNb2j7qlU\n1R7glSQXtqpPAD8EvgmsbXVrgUda+VFgTZLTkywHVgDbWz8/aWeOBbge+EanzWRfn2Yw8Q+wFbi8\nnX32AeCTwONtz+gp4DPTvP7U7R/Jx+233z7n2+D4HJ/jG73HbM1kTwXgPwB/nuR04H8BnwNOBR5M\nsg7YBVzbPsRfTPIg8CJwELixDm3pjcDXgDMZnE327Vb/ZeC+JDuBfcCa1tfrSX4fmNxL2liDCXuA\nLwBbknwReLb1IUmaQzMKlar6AfAvp1n0icOs/wfAH0xT/33gI9PU/z9aKE2z7KvAV6ep/1tg1RE3\nXBw6m3ugj28iknQ4XlE/pMbGxo5h7RN5HkU/jm18w8fxDbdRH99sZJS/uSapUR7fTAz2VCbfg7in\nIumIklDv5kS9JEkzNdOJeo2I7hyLey2S+uaeykln+OZXJA0PQ0WS1BtDRZLUG0NFktQbQ0WS1BvP\n/hpBU6+il6QTxT2VkeVZXpJOPENFktQbQ0WS1BtDRZLUG0NFktQbQ0WS1BtDRZLUG0NFktQbQ0WS\n1BuvqD+J+dsqkvrmnspJzavuJfXLUJEk9cZQkST1xlCRJPXGUJEk9cZQkST1xlCRJPXGUJEk9WZG\noZJkV5K/TvJcku2tbnGSbUl2JNmaZFFn/fVJdiZ5KcnlnfqLk7zQlt3VqT8jyQOt/ukkF3SWrW2v\nsSPJDZ365UmeaW22JDlttm+GJGl2ZrqnUsBYVX2sqi5pdbcA26rqQuCJ9pwkK4HrgJXAauDuHLp0\n+x5gXVWtAFYkWd3q1wH7Wv2dwKbW12LgNuCS9rg9ycLWZhNwR2vzRutDkjSHjuXwV6Y8vwrY3Mqb\ngWta+Wrg/qo6UFW7gJeBVUnOAd5fVdvbevd22nT7ehi4rJWvALZW1f6q2g9sA65sIXUp8NA0ry9J\nmiPHsqfynSTfS/JbrW5JVe1t5b3AklY+F9jdabsbOG+a+olWT/v3FYCqOgi8meSsI/S1GNhfVW9N\n05ckaY7M9IaS/7qq/i7JPwe2JXmpu7CqKsmJuomUN6uSpHlqRqFSVX/X/v1xkr9kML+xN8nZVbWn\nHdp6ra0+ASzrNF/KYA9jopWn1k+2OR94NckCYGFV7UsyAYx12iwDngReBxYlOaXtrSxtffyMDRs2\nvF0eGxtjbGxsutWGXveOw5I0U+Pj44yPj/fWX452y/Mk7wFOraqfJnkvsBXYCHyCweT6piS3AIuq\n6pY2Uf91BsFzHvAd4Bfb3swzwE3AduBbwJ9U1beT3Ah8pKp+O8ka4JqqWtMm6r8HXMRgTuf7wEVV\ntT/Jg8DDVfVAki8Bz1fVl6Zse50st3QfhMrkWI+9fLK8T5KOLAlVddzfUmcSKsuBv2xPFwB/XlV/\n2D7wH2Swh7ELuLZNppPkVuDzwEHg5qp6vNVfDHwNOBN4rKpuavVnAPcBHwP2AWvaJD9JPgfc2l7/\ni1W1ubNdWxjMrzwLfLaqDkzZdkPFUJF0DN71UBlmhsrMyyfL+yTpyGYbKl5RL0nqjaEiSeqNoSJJ\n6s1Mr1PRiOuekuz8iqTj5Z6KmsLrSiXNlqEiSeqNoSJJ6o2hIknqjaEiSeqNoSJJ6o2hIknqjaEi\nSeqNoSJJ6o2hIknqjaEiSeqNoSJJ6o2hIknqjaEiSeqNoSJJ6o2hIknqjaEiSeqNoSJJ6o2hIknq\njaEiSeqNoSJJ6o2hIknqjaEiSerNgrneAM0/Sd4uV9UcbomkYeOeiqZR7SFJx2ZGoZLk1CTPJflm\ne744ybYkO5JsTbKos+76JDuTvJTk8k79xUleaMvu6tSfkeSBVv90kgs6y9a219iR5IZO/fIkz7Q2\nW5KcNts3QpI0ezPdU7kZeJFDX19vAbZV1YXAE+05SVYC1wErgdXA3Tl0LOUeYF1VrQBWJFnd6tcB\n+1r9ncCm1tdi4Dbgkva4PcnC1mYTcEdr80brQ5I0x44aKkmWAp8C/gyYDIirgM2tvBm4ppWvBu6v\nqgNVtQt4GViV5Bzg/VW1va13b6dNt6+Hgcta+Qpga1Xtr6r9wDbgyhZSlwIPTfP6kqQ5NJM9lTuB\n3wPe6tQtqaq9rbwXWNLK5wK7O+vtBs6bpn6i1dP+fQWgqg4CbyY56wh9LQb2V9Vb0/R1Ukny9kOS\n5oMjnv2V5DeA16rquSRj061TVZXkRM3qHvPrbNiw4e3y2NgYY2NjPW7OfDD5lhgsko7d+Pg44+Pj\nvfV3tFOKfwW4KsmngJ8D/lmS+4C9Sc6uqj3t0NZrbf0JYFmn/VIGexgTrTy1frLN+cCrSRYAC6tq\nX5IJYKzTZhnwJPA6sCjJKW1vZWnrY1rdUJEkvdPUL9sbN26cVX9HPPxVVbdW1bKqWg6sAZ6squuB\nR4G1bbW1wCOt/CiwJsnpSZYDK4DtVbUH+EmSVW1O5HrgG502k319msHEP8BW4PIki5J8APgk8HgN\nLpx4CvjMNK8vSZpDx3rx4+Sxlv8CPJhkHbALuBagql5M8iCDM8UOAjfWoavnbgS+BpwJPFZV3271\nXwbuS7IT2McgvKiq15P8PvDdtt7GNmEP8AVgS5IvAs+2PiRJcyyjfMV0khrx8fHOOZX+y6P8/kn6\nWUmoquOepPWKeklSbwwVSVJvDBVJUm8MFUlSbwwVSVJvDBVJUm8MFUlSbwwVSVJvDBVJUm8MFUlS\nbwwVSVJvDBVJUm8MFUlSb4711vc6yXR/qtg7Fks6GvdUdBTFcfyKs6STlKEiSeqNoSJJ6o2hIknq\njaEiSeqNoSJJ6o2hIknqjaEiSeqNoSJJ6o2hIknqjaEiSeqNoSJJ6o2hIknqjaEiSerNEUMlyc8l\neSbJ80leTPKHrX5xkm1JdiTZmmRRp836JDuTvJTk8k79xUleaMvu6tSfkeSBVv90kgs6y9a219iR\n5IZO/fK2XTuTbElyWl9viCTp+B0xVKrqH4FLq+qXgY8Clyb5VeAWYFtVXQg80Z6TZCVwHbASWA3c\nnUM/yHEPsK6qVgArkqxu9euAfa3+TmBT62sxcBtwSXvcnmRha7MJuKO1eaP1IUmaY0c9/FVV/7cV\nTwdOZfAhfhWwudVvBq5p5auB+6vqQFXtAl4GViU5B3h/VW1v693badPt62Hgsla+AthaVfuraj+w\nDbiyhdSlwEPTvL4kaQ4dNVSSnJLkeWAv8FRV/RBYUlV72yp7gSWtfC6wu9N8N3DeNPUTrZ727ysA\nVXUQeDPJWUfoazGwv6remqYvSdIcOurPCbcP719uh54eT3LplOWV5ET9NOAxv86GDRveLo+NjTE2\nNtbj5kjScBsfH2d8fLy3/mb8G/VV9WaSbwEXA3uTnF1Ve9qhrdfaahPAsk6zpQz2MCZaeWr9ZJvz\ngVeTLAAWVtW+JBPAWKfNMuBJ4HVgUZJTWuAtbX1MqxsqkqR3mvple+PGjbPq72hnf/385JldSc4E\nPgk8BzwKrG2rrQUeaeVHgTVJTk+yHFgBbK+qPcBPkqxqcyLXA9/otJns69MMJv4BtgKXJ1mU5APt\ntR+vqgKeAj4zzetLkuZQBp/Rh1mYfITBRPgp7XFfVf1ROzPrQQZ7GLuAa9tkOkluBT4PHARurqrH\nW/3FwNeAM4HHquqmVn8GcB/wMWAfsKZN8pPkc8CtbXO+WFWbW/1yYAuD+ZVngc9W1YFptr+ONL5h\ndOhkukmT48sJKHdedcTeV0kDSaiqqR80M28/yh8OoxsqJzJIpi+P2vsqaWC2oeIV9ZKk3hgqkqTe\nGCqSpN4YKpKk3hgqkqTeGCqSpN4YKpKk3hgqkqTeGCqSpN4YKpKk3hgqkqTeGCqSpN4YKpKk3hgq\nkqTeGCqSpN4YKpKk3hgqkqTeLJjrDdBw6v6ssb8CKWmSeyo6TsWhnxeWpAFDRZLUG0NFktQbQ0WS\n1BtDRZLUG0NFktQbQ0WS1BtDRZLUG0NFktQbQ0WS1JujhkqSZUmeSvLDJH+T5KZWvzjJtiQ7kmxN\n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\n",
       "text/plain": [
-       "<matplotlib.figure.Figure at 0x7fb84d839fd0>"
+       "<matplotlib.figure.Figure at 0x7f767464a390>"
       ]
      },
      "metadata": {},
@@ -148,7 +131,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 9,
+   "execution_count": 21,
    "metadata": {
     "collapsed": true
    },
@@ -165,10 +148,8 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 14,
-   "metadata": {
-    "collapsed": false
-   },
+   "execution_count": 27,
+   "metadata": {},
    "outputs": [
     {
      "name": "stdout",
@@ -186,10 +167,10 @@
     {
      "data": {
       "text/plain": [
-       "[<matplotlib.lines.Line2D at 0x7fb823513f90>]"
+       "[<matplotlib.lines.Line2D at 0x7f75aa2cd2d0>]"
       ]
      },
-     "execution_count": 14,
+     "execution_count": 27,
      "metadata": {},
      "output_type": "execute_result"
     },
@@ -197,7 +178,7 @@
      "data": {
       "image/png": "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\n1dGqer61/wr4AXA5cBuwsw3bCdzR2rcDu6rqtao6DBwC1ie5FFhRVfvauEcHjpEkDYHTeqaQ5Crg\neuAZYHVVTbdd08Dq1r4MODJw2BH6ITKzf6r1S5KGxLL5DkzybuAPgI9V1V+eXBGCqqoktXBl3c/x\n41Ps2LGDY8eOMTExsXCnlqQR1+v16PV65+TcqZr7tTzJO4H/AvxhVX2m9R0EJqrqaFsaerqqrkmy\nFaCqHmzj9gL3AT9sY65t/XcDN1XVR2dcq6BYuXKcycntjI+PL9hkJemtKAlVlblHzm0+7z4K8Dng\nwIlAaPYAm1p7E/DYQP/GJOcnWQOMAfuq6ijwapL17Zz3DBwjSRoC81k+ej/w68D3kjzX+rYBDwK7\nk2wGDgN3AlTVgSS7gQPA68CWOnk7sgV4BFgOPFFVexdoHpKkBTBnKFTVt3jzO4pb3uSYB4AHZul/\nFrjudAqUJC0eP9EsSeoYCpKkjqEgSeoYCpKkjqEgSeoYCpKkjqEgSeoYCpKkjqEgSeoYCpKkjqEg\nSeoYCpKkjqEgSeoYCpKkjqEgSeoYCpKkjqEgSeoYCpKkzpyhkOTzSaaT7B/ouzjJZJIXkzyZZNXA\nvm1JXkpyMMmtA/3rkuxv+x5a+KlIks7WfO4UvgBsmNG3FZisqquBp9o2SdYCdwFr2zHbk6Qd8zCw\nuarGgLEkM88pSVpic4ZCVf0x8Bczum8Ddrb2TuCO1r4d2FVVr1XVYeAQsD7JpcCKqtrXxj06cIwk\naUic6TOF1VU13drTwOrWvgw4MjDuCHD5LP1TrV+SNETO+kFzVRVQC1CLJGmJLTvD46aTXFJVR9vS\n0Mutfwq4cmDcFfTvEKZae7B/6s1Pfz/Hj0+xY8cOjh07xsTExBmWKUlvPb1ej16vd07Onf4P+nMM\nSq4CHq+q69r2p4GfVtWnkmwFVlXV1vag+cvAjfSXh74B/EJVVZJngHuBfcDXgc9W1d5ZrlVQrFw5\nzuTkdsbHxxdkopL0VpWEqsrcI+c2551Ckl3ATcB7kvwI+PfAg8DuJJuBw8CdAFV1IMlu4ADwOrCl\nTqbOFuARYDnwxGyBIElaWvO6U1hM3ilI0ulZyDsFP9EsSeoYCpKkjqEgSeoYCpKkjqEgSeoYCpKk\njqEgSeoYCpKkjqEgSeoYCpKkjqEgSeoYCpKkjqEgSeoYCpKkjqEgSeoYCpKkjqEgSeoYCpKkjqEg\nSeoseigk2ZDkYJKXknxisa8vSXpzixoKSc4D/iOwAVgL3J3k2jcbf+ONN5Kk+xp2vV5vqUs4K9a/\ntKx/6Yxy7Qttse8UbgQOVdXhqnoN+D3g9lMfUu1r+I36N5b1Ly3rXzqjXPtCW+xQuBz40cD2kdY3\nL6N01yBJo2jZIl9vXj/yX3TRh/n5z188xeHzD4aq/jFnGiQnjh8081yzjZGkUZTFfEFL8j7g/qra\n0La3AW9U1acGxvgKK0mnqaoWZAllsUNhGfCnwD8B/hzYB9xdVT9YtCIkSW9qUZePqur1JL8F/BFw\nHvA5A0GShsei3ilIkobb0HyieVg/1Jbk80mmk+wf6Ls4yWSSF5M8mWTVwL5tbQ4Hk9w60L8uyf62\n76FFqv3KJE8neSHJ95PcO2L1vyvJM0meT3IgyW+PUv0D1z4vyXNJHh+1+pMcTvK9Vv++Uao/yaok\nX0nyg/b9s36Eav/F9m9+4uuVJPcuSv1VteRf9JeSDgFXAe8EngeuXeq6Wm0fBK4H9g/0fRr4t639\nCeDB1l7ban9nm8shTt6N7QNubO0ngA2LUPslwHtb+930n+dcOyr1t2td0P67DPjvwAdGqf52vX8D\nfAnYM0rfP+1afwZcPKNvJOoHdgL/fOD7Z+Wo1D5jHu8AfgxcuRj1L9rE5pj0rwB7B7a3AluXuq6B\neq7ib4bCQWB1a18CHGztbcAnBsbtBd4HXAr8YKB/I/CflmAejwG3jGL9wAXAt4FfGqX6gSuAbwA3\nA4+P2vcP/VD42zP6hr5++gHwP2fpH/raZ6n5VuCPF6v+YVk+OqsPtS2B1VU13drTwOrWvox+7Sec\nmMfM/ikWeX5JrqJ/x/MMI1R/knckeb7V+XRVvcAI1Q/8DvBx4I2BvlGqv4BvJPlOko+0vlGofw3w\nkyRfSPLdJL+b5EJGo/aZNgK7Wvuc1z8soTCyT7urH79DXX+SdwN/AHysqv5ycN+w119Vb1TVe+n/\nxP2Pktw8Y//Q1p/k14CXq+o5YNb3kA9z/c37q+p64EPAbyb54ODOIa5/GXADsL2qbgCO0V+B6Axx\n7Z0k5wMfBn5/5r5zVf+whMIU/fWyE67kb6bbsJlOcglAkkuBl1v/zHlcQX8eU6092D+1CHWS5J30\nA+GLVfVY6x6Z+k+oqleArwPrGJ36/yFwW5I/o/+T3j9O8kVGp36q6sftvz8Bvkb/95eNQv1HgCNV\n9e22/RX6IXF0BGof9CHg2fbvD4vwbz8sofAdYCzJVS0Z7wL2LHFNp7IH2NTam+iv1Z/o35jk/CRr\ngDFgX1UdBV5t734IcM/AMedMu9bngANV9ZkRrP89J95dkWQ58KvAc6NSf1V9sqqurKo19JcAvllV\n94xK/UkuSLKitS+kv7a9fxTqb9f8UZKrW9ctwAvA48Ne+wx3c3Lp6ESd57b+xXxgMsfDlA/Rf3fM\nIWDbUtczUNcu+p++/r/0n3v8BnAx/YeHLwJPAqsGxn+yzeEg8E8H+tfR/x/qEPDZRar9A/TXsp+n\n/2L6HP1fWz4q9V8HfLfV/z3g461/JOqfMZebOPnuo5Gon/66/PPt6/sn/r8cofr/Pv03J/wJ8FX6\nD59HovZ23QuB/w2sGOg75/X74TVJUmdYlo8kSUPAUJAkdQwFSVLHUJAkdQwFSVLHUJAkdQwFSVLH\nUJAkdf4fQ1xF+tlkFYgAAAAASUVORK5CYII=\n",
       "text/plain": [
-       "<matplotlib.figure.Figure at 0x7fb849123390>"
+       "<matplotlib.figure.Figure at 0x7f761c147050>"
       ]
      },
      "metadata": {},
@@ -207,7 +188,7 @@
      "data": {
       "image/png": "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\n",
       "text/plain": [
-       "<matplotlib.figure.Figure at 0x7fb823a72dd0>"
+       "<matplotlib.figure.Figure at 0x7f75aaa41dd0>"
       ]
      },
      "metadata": {},
@@ -217,7 +198,7 @@
      "data": {
       "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYUAAAEACAYAAABcXmojAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAGbNJREFUeJzt3X+MXeV95/H3x7/wTzBOyPjnBm81JLhJF+IEJwGWS5c4\nbkWARhEYqZabWFFaNw27aUnsaCXGqpTSpqvGVQVblSSYNPGumzSWUcCxIdxu1G4yCdjBZnBt05i1\nB2YMwcHmh8OM57t/nMeHk+nAjGfO3HNn5vOSrua5z33OOd9zx57vfb7PufcqIjAzMwOYVHUAZmbW\nPJwUzMws56RgZmY5JwUzM8s5KZiZWc5JwczMcoMmBUnvkLSncHtR0mckzZO0W9JBSbskzS1ss1HS\nIUkHJK0s9C+XtC89tnm0TsrMzIZH5/I+BUmTgE7gCuCPgOcj4i8kfR64MCI2SFoGfBN4H7AIeAho\njYiQ1A58OiLaJT0A/HVE7Cz5nMzMbJjOtXx0HXA4Io4CNwBbUv8W4KbUvhHYGhE9EXEEOAyskLQA\nmBMR7WncfYVtzMysCZxrUlgNbE3tlojoTu1uoCW1FwLHCtscI5sx9O/vTP1mZtYkhpwUJE0DPgL8\nQ//HIqtB+fMyzMzGuCnnMPa3gEcj4rl0v1vS/IjoSqWh46m/E1hS2G4x2QyhM7WL/Z39DyLJycXM\n7BxFhMrYz7mUj27l9dIRwA5gbWqvBbYX+ldLmiZpKdAKtEdEF3BS0gpJAtYUtvkVEdFUtzvuuKPy\nGBzT+ImpWeNyTGM3pjINaaYgaRbZIvMnC913AtskrQOOADenP+gdkrYBHUAvsD5ej3o9cC8wA3gg\nfOWRmVlTGVJSiIiXgbf263uBLFEMNP6LwBcH6H8UePe5h2lmZo3gdzQPQa1WqzqEf8cxDU0zxgTN\nGZdjGppmjKlM5/TmtUaQFM0Wk5lZM5NEVLDQbGZm45yTgpmZ5ZwUzMws56RgZlaST30KzpypOoqR\n8UKzmVlJJk2Cnh6YPLmxx/VCs5lZE4rIEsNYNsbDNzNrDmcLHCrl9Xp1nBTMzErQ1zf2ZwngpGBm\nVoq+vrE/SwAnBTOzUoyH9QRwUjAzK4XLR2ZmlnP5yMzMci4fmZlZzuUjMzPLOSmYmVnOawpmZpbz\nmoKZmeVcPjIzs5yTgpmZ5bymYGZmuQm1piBprqRvSXpSUoekFZLmSdot6aCkXZLmFsZvlHRI0gFJ\nKwv9yyXtS49tHo0TMjOrwkQrH20GHoiIS4HfAA4AG4DdEXEJ8HC6j6RlwC3AMmAVcJeUT6ruBtZF\nRCvQKmlVaWdiZlahCZMUJF0AXB0RXwWIiN6IeBG4AdiShm0BbkrtG4GtEdETEUeAw8AKSQuAORHR\nnsbdV9jGzGxMm0hrCkuB5yR9TdJjkv5O0iygJSK605huoCW1FwLHCtsfAxYN0N+Z+s3MxrzxsqYw\nZYhj3gN8OiJ+LOnLpFLRWRERkqKsoNra2vJ2rVajVquVtWszs1HRyPJRvV6nXq+Pyr4V8eZ/yyXN\nB/5vRCxN968CNgL/Ebg2IrpSaeiRiHinpA0AEXFnGr8TuAN4Oo25NPXfClwTEb/f73gxWExmZs3m\n8GFYtSr72WiSiIhSileD5rWI6AKOSrokdV0HPAHcD6xNfWuB7am9A1gtaZqkpUAr0J72czJduSRg\nTWEbM7MxbbysKQylfATwR8A3JE0DngI+DkwGtklaBxwBbgaIiA5J24AOoBdYX3jpvx64F5hBdjXT\nzpLOw8ysUuNlTWHQ8lGjuXxkZmPRk0/CRz+a/Wy0hpaPzMxscBPmfQpmZja48bKm4KRgZlaCvj6Y\nPLnqKEbOScHMrAQuH5mZWe7MGScFMzNLXD4yM7Ocy0dmZpZzUjAzs5zXFMzMLOc1BTMzy7l8ZGZm\nOZePzMws5/KRmZnlXD4yM7Ock4KZmeW8pmBmZjmvKZiZWc7lIzMzy7l8ZGZmOZePzMws5/KRmZnl\nXD4yM7PchCofSToi6XFJeyS1p755knZLOihpl6S5hfEbJR2SdEDSykL/ckn70mObyz8dM7NqTLTy\nUQC1iLg8Iq5IfRuA3RFxCfBwuo+kZcAtwDJgFXCXJKVt7gbWRUQr0CppVUnnYWZWqYmWFADU7/4N\nwJbU3gLclNo3AlsjoicijgCHgRWSFgBzIqI9jbuvsI2Z2Zg20dYUAnhI0k8kfTL1tUREd2p3Ay2p\nvRA4Vtj2GLBogP7O1G9mNuaNlzWFKUMcd2VEPCvpImC3pAPFByMiJEVZQbW1teXtWq1GrVYra9dm\nZqOikeWjer1OvV4flX0PKSlExLPp53OSvgNcAXRLmh8RXak0dDwN7wSWFDZfTDZD6EztYn/nQMcr\nJgUzs7GgkeWj/i+WN23aVNq+Bz0FSTMlzUntWcBKYB+wA1ibhq0Ftqf2DmC1pGmSlgKtQHtEdAEn\nJa1IC89rCtuYmY1pE6l81AJ8J11ANAX4RkTskvQTYJukdcAR4GaAiOiQtA3oAHqB9RFxtrS0HrgX\nmAE8EBE7SzwXM7PKjJeFZr3+97o5SIpmi8nMbDBf+hJ0d8Nf/mXjjy2JiOh/heiwjIO8ZmZWvd5e\nmDq16ihGzknBzKwEPT0wZajXczYxJwUzsxL09HimYGZmSW+vZwpmZpZ4pmBmZjkvNJuZWc4LzWZm\nlnP5yMzMci4fmZlZzuUjMzPLuXxkZmY5v0/BzMxynimYmVnOC81mZpbzQrOZmeVcPjIzs5wXms3M\nLHf6NEyfXnUUI+ekYGZWgldfhRkzqo5i5JwUzMxKcPq0k4KZmSWvvurykZmZJV5TMDOz3IQqH0ma\nLGmPpPvT/XmSdks6KGmXpLmFsRslHZJ0QNLKQv9ySfvSY5vLPxUzs+qcPg3nnVd1FCM31JnCbUAH\nEOn+BmB3RFwCPJzuI2kZcAuwDFgF3CVJaZu7gXUR0Qq0SlpVzimYmVUrAvr6YPLkqiMZuUGTgqTF\nwG8D9wBn/8DfAGxJ7S3ATal9I7A1Inoi4ghwGFghaQEwJyLa07j7CtuYmY1pZ87ApEmQvwQew4Yy\nU/gr4Hagr9DXEhHdqd0NtKT2QuBYYdwxYNEA/Z2p38xszDtzZnzMEgDe9E3Zkq4HjkfEHkm1gcZE\nREiKgR4brra2trxdq9Wo1QY8tJlZU2h0UqjX69Tr9VHZtyLe+O+5pC8Ca4BeYDpwPvCPwPuAWkR0\npdLQIxHxTkkbACLizrT9TuAO4Ok05tLUfytwTUT8/gDHjDeLycys2Zw6BQsWwEsvVXN8SUREKcWr\nNy0fRcQXImJJRCwFVgPfj4g1wA5gbRq2Ftie2juA1ZKmSVoKtALtEdEFnJS0Ii08rylsY2Y2pk2Y\n8tEAzr6EvxPYJmkdcAS4GSAiOiRtI7tSqRdYX3jZvx64F5gBPBARO0cWuplZcxhPSeFNy0dVcPnI\nzMaa556DSy+F55+v5vgNKx+ZmdngxtNMwUnBzGyEnBTMzCznpGBmZjknBTMzyzkpmJlZzknBzMxy\nTgpmZpZzUjAzs5yTgpmZ5ZwUzMws56RgZmY5JwUzM8s5KZiZWc5JwczMcidOwOzZVUdRDicFM7MR\nevVVOP/8qqMoh5OCmdkI9fbC1KlVR1EOJwUzsxHq6YEp5/rlxk3KScHMbIQ8UzAzs5xnCmZmlvNM\nwczMcp4pmJlZbsLMFCRNl/QjSXsldUj6s9Q/T9JuSQcl7ZI0t7DNRkmHJB2QtLLQv1zSvvTY5tE7\nJTOzxpowM4WIOA1cGxGXAb8BXCvpKmADsDsiLgEeTveRtAy4BVgGrALukqS0u7uBdRHRCrRKWjUa\nJ2Rm1mgTZqYAEBGvpOY0YDJwArgB2JL6twA3pfaNwNaI6ImII8BhYIWkBcCciGhP4+4rbGNmNqZN\nmJkCgKRJkvYC3cAjEfEE0BIR3WlIN9CS2guBY4XNjwGLBujvTP1mZmPeeJopDJrbIqIPuEzSBcD3\nJF3b7/GQFGUG1dbWlrdrtRq1Wq3M3ZuZlarRM4V6vU69Xh+VfQ/5NCLiRUnfBZYD3ZLmR0RXKg0d\nT8M6gSWFzRaTzRA6U7vY3/lGxyomBTOzZtfomUL/F8ubNm0qbd+DXX301rNXFkmaAXwI2APsANam\nYWuB7am9A1gtaZqkpUAr0B4RXcBJSSvSwvOawjZmZmPaeFpTGOw0FgBbJE0iSyBfj4iHJe0Btkla\nBxwBbgaIiA5J24AOoBdYHxFnS0vrgXuBGcADEbGz7JMxM6tCT8/4WVPQ63+zm4OkaLaYzMzezNq1\ncO218Hu/V83xJRERGnzk4PyOZjOzERpPMwUnBTOzEertHT9rCk4KZmYj5JmCmZnlPFMwM7Pca6/B\ntGlVR1EOJwUzsxHq6XFSMDOz5LXXvKZgZmaJZwpmZpbzTMHMzHKeKZiZWe7ll2HGjKqjKIeTgpnZ\nCB0/DhddVHUU5fAH4pmZjcCZM9l6Qm8vTKroZbY/EM/MrEm8/DLMmlVdQijbODkNM7NqvPRSlhTG\nCycFM7MReOUVmD276ijK46RgZjYCr7wCM2dWHUV5nBTMzEbglVfGz+Wo4KRgZjYip087KZiZWfLL\nX8J551UdRXmcFMzMRuD0aZg+veooyuOkYGY2Ap4pmJlZ7vTpCZYUJC2R9IikJyTtl/SZ1D9P0m5J\nByXtkjS3sM1GSYckHZC0stC/XNK+9Njm0TklM7PG+eUvJ175qAf4bxHx68D7gT+UdCmwAdgdEZcA\nD6f7SFoG3AIsA1YBd0k6+5kcdwPrIqIVaJW0qtSzMTNrsAk3U4iIrojYm9ovAU8Ci4AbgC1p2Bbg\nptS+EdgaET0RcQQ4DKyQtACYExHtadx9hW3MzMakiThTyEm6GLgc+BHQEhHd6aFuoCW1FwLHCpsd\nI0si/fs7U7+Z2Zg13mYKU4Y6UNJs4NvAbRFx6vWKEERESCrt867b2trydq1Wo1arlbVrM7NSVXH1\nUb1ep16vj8q+h5QUJE0lSwhfj4jtqbtb0vyI6EqloeOpvxNYUth8MdkMoTO1i/2dAx2vmBTMzJrZ\n6dON/0C8/i+WN23aVNq+h3L1kYCvAB0R8eXCQzuAtam9Fthe6F8taZqkpUAr0B4RXcBJSSvSPtcU\ntjEzG5NOnYI5c6qOojxDmSlcCfwu8LikPalvI3AnsE3SOuAIcDNARHRI2gZ0AL3A+sJXqa0H7gVm\nAA9ExM6SzsPMrBInTsCFF1YdRXn8dZxmZiOwciV89rOwqsIL7P11nGZmTeKFF2DevKqjKI+TgpnZ\nCBw/Dm97W9VRlMflIzOzYYrIvkvhxIlqv1PB5SMzsyZw8iRMm+Yv2TEzM6C7e3yVjsBJwcxs2Lq7\noaVl8HFjiZOCmdkwHT/upGBmZonLR2ZmlnP5yMzMck4KZmaWe/ppWLiw6ijK5aRgZjZMzzwDb397\n1VGUy0nBzGyYnn0WFiyoOopy+WMuzMyGoacHZs7MvmRn8uRqY/HHXJiZVayrCy66qPqEUDYnBTOz\nYRiPpSNwUjAzGxYnBTMzyzkpmJlZzknBzMxyTgpmZpYbj5+QCk4KZmbDcvIkXHBB1VGUz0nBzGwY\nTp6E88+vOoryDZoUJH1VUrekfYW+eZJ2SzooaZekuYXHNko6JOmApJWF/uWS9qXHNpd/KmZmjXPy\nJMyZU3UU5RvKTOFrwKp+fRuA3RFxCfBwuo+kZcAtwLK0zV2Szr71+m5gXUS0Aq2S+u/TzGzM+MUv\nJmj5KCJ+AJzo130DsCW1twA3pfaNwNaI6ImII8BhYIWkBcCciGhP4+4rbGNmNqb09sKJE9nHXIw3\nw11TaImI7tTuBs6uwS8EjhXGHQMWDdDfmfrNzMaco0ezK4+mTKk6kvKN+JQiIiSV+rGmbW1tebtW\nq1Gr1crcvZnZiDz/PMyfX93x6/U69Xp9VPY93KTQLWl+RHSl0tDx1N8JLCmMW0w2Q+hM7WJ/5xvt\nvJgUzMyazdGj1b5xrf+L5U2bNpW27+GWj3YAa1N7LbC90L9a0jRJS4FWoD0iuoCTklakhec1hW3M\nzMaU738fPvCBqqMYHUO5JHUr8C/AOyQdlfRx4E7gQ5IOAr+Z7hMRHcA2oAN4EFhf+Mac9cA9wCHg\ncETsLPtkzMwa4fHH4YMfrDqK0eFvXjMzO0fvehds3QrvfnfVkWT8zWtmZhX6+c/hLW+pOorR4aRg\nZnYOIrKkMG9e1ZGMDicFM7Nz8MILMH16dhuPnBTMzM7BI4/AVVdVHcXocVIwMzsH7e3j93JUcFIw\nMzsn9Tpcc03VUYweX5JqZjZEfX3ZdygcOwZz5w4+vlF8SaqZWQWeeSb7DoVmSghlc1IwMxuivXth\n2bKqoxhdTgpmZkP04IPw4Q9XHcXo8pqCmdkQRGQfl/3QQ83z8RZneU3BzKzBjh6Fl17KPvdoPHNS\nMDMbgv374corQaW8Hm9eTgpmZkOwf//4nyWAk4KZ2ZDU63D55VVHMfq80GxmNog9e+D66+Gpp5rz\ng/C80Gxm1kB/+qdw++3NmRDK5pmCmdmbeOyxbJZw6BDMmlV1NAPzTMHMrAEi4I//GO64o3kTQtmc\nFMzM3sDf/z08/zx84hNVR9I4U6oOwMysGT34YDZLePBBmDq16mgaxzMFM7N+/vZv4dZb4dvfhuXL\nq46msRqeFCStknRA0iFJn2/08c3M3kh7O3zkI/ClL8EPfgBXX111RI3X0KQgaTLwN8AqYBlwq6RL\nGxnDcNTr9apD+Hcc09A0Y0zQnHFN5JgefRT+4A/gd34n+1a1/fvf+EPvmvF5KlOjZwpXAIcj4khE\n9AD/C7ixwTGcs2b8R+CYhqYZY4LmjGuixNTbC/v2wT33wLp18M53wsc+ln1xzk9/Cn/yJ2/+foRm\nfJ7K1OiF5kXA0cL9Y8CKBsdgZmNQBJw5k/1R7+2Fl1+G1157/fbKK3DyJJw6BS++mN1/4QV47jk4\nfhy6urJPOj16FJYsgfe+F666Cj71KXjf+8b/B90NVaOTwpDelXb99YPsZIjvbStr3KFD8MMfNvaY\ng4156in4539u7DEHG/ezn8E//VNjjznYuKefhocfbuwxhzLm6FH43vcae8zBxnV2wne/O/L99fXB\n6dPZ2LO3vr7B2wM9duoU3HlnlgTOnIHJk7PblCkwc2b2in7atOw2Y0b2/cmzZ8OFF2b3586FRYvg\nssuy70JYvBje/vaJ856D4WjoO5olvR9oi4hV6f5GoC8i/rwwxm9nNjM7R2W9o7nRSWEK8K/AfwGe\nAdqBWyPiyYYFYWZmb6ih5aOI6JX0aeB7wGTgK04IZmbNo+k+EM/MzKrTNO9obuSb2iR9VVK3pH2F\nvnmSdks6KGmXpLmFxzamuA5IWlnoXy5pX3ps8whjWiLpEUlPSNov6TNVxyVpuqQfSdorqUPSn1Ud\nU2F/kyXtkXR/E8V0RNLjKa72ZohL0lxJ35L0ZPodrqj439Q70vNz9vaipM80wfO0Mf3f2yfpm5LO\na4KYbkv72i/pttQ3+jFFROU3slLSYeBiYCqwF7h0FI93NXA5sK/Q9xfA51L788Cdqb0sxTM1xXeY\n12dY7cAVqf0AsGoEMc0HLkvt2WRrL5c2QVwz088pwA+Bq6qOKe3js8A3gB3N8PtL+/gZMK9fX9W/\nvy3AJwq/wwuqjqkQ2yTgWWBJlTGl/f4bcF66/7+BtRXH9C5gHzCd7O/jbuDXGhHTiH6pZd2ADwA7\nC/c3ABtG+ZgX86tJ4QDQktrzgQOpvRH4fGHcTuD9wALgyUL/auB/lhjfduC6ZokLmAn8GPj1qmMC\nFgMPAdcC9zfL748sKbylX19lcZElgH8boL/y5yrtZyXwg6pjAuaRvQi7kCxx3g98qOKYPgbcU7j/\n34HPNSKmZikfDfSmtkUNjqElIrpTuxtoSe2FKZ6zzsbWv7+TkmKWdDHZTOZHVcclaZKkvenYj0TE\nE1XHBPwVcDvQV+irOibI3ofzkKSfSPpkE8S1FHhO0tckPSbp7yTNqjimotXA1tSuLKaIeAH4H8D/\nI7sq8hcRsbvKmID9wNWpXDQT+G2yF0OjHlOzJIWmWu2OLKVWEpOk2cC3gdsi4lTVcUVEX0RcRvYP\n8j9LurbKmCRdDxyPiD3AgNdlV/j7uzIiLgd+C/hDSb/ycWoVxDUFeA9wV0S8B3iZbBZeZUwASJoG\nfAT4h/6PVfBv6teA/0pWPVgIzJb0u1XGFBEHgD8HdgEPkpWGzjQipmZJCp1kdcWzlvCr2a0RuiXN\nB5C0ADj+BrEtTrF1pnaxv3MkAUiaSpYQvh4R25slLoCIeBH4LrC84pg+CNwg6WdkrzJ/U9LXK44J\ngIh4Nv18DvgO2Wd9VRnXMeBYRPw43f8WWZLoqvq5Ikucj6bnCqp9nt4L/EtE/DwieoF/JCtpV/o8\nRcRXI+K9EXENcAI4SAOep2ZJCj8BWiVdnF5B3ALsaHAMO8gWl0g/txf6V0uaJmkp0Aq0R0QXcDJd\nzSFgTWGbc5b28RWgIyK+3AxxSXrr2asbJM0gq7PuqTKmiPhCRCyJiKVk5YfvR8SaKmMCkDRT0pzU\nnkVWL99XZVxpX0clXZK6rgOeIKuZV/ZcJbfyeuno7LGriukA8H5JM9K+rgM6qPh5kvS29PM/AB8F\nvkkjnqfhLIKMxo3slcO/kq2abxzlY20lqx2+RraW8XGyxaaHyLLxLmBuYfwXUlwHgA8X+peT/cc/\nDPz1CGO6iqxGvpfsD+8eso8Yrywu4N3AYymmx4HbU3+lz1Vhn9fw+tVHVf/+lqbnaS9ZPXhjk8T1\nn8guEPgp2SvgC5ogplnA88CcQl/VMX2OLGHuI7tia2oTxPR/Ukx7gWsb9Tz5zWtmZpZrlvKRmZk1\nAScFMzPLOSmYmVnOScHMzHJOCmZmlnNSMDOznJOCmZnlnBTMzCz3/wFsJUIB2cVNtAAAAABJRU5E\nrkJggg==\n",
       "text/plain": [
-       "<matplotlib.figure.Figure at 0x7fb846884750>"
+       "<matplotlib.figure.Figure at 0x7f75aa39ac10>"
       ]
      },
      "metadata": {},
@@ -228,7 +209,8 @@
     "# take k mean of country sample\n",
     "uniq_countries, uniq_counts = np.unique(Y, return_counts=True)\n",
     "k = np.int(np.round(np.mean(uniq_counts)))\n",
-    "#N_k = n_occurrence_from_D(D, k=k)\n",
+    "#k = 200\n",
+    "N_k = n_occurrence_from_D(D, k=k)\n",
     "\n",
     "print k\n",
     "print skew(N_k)\n",
@@ -262,9 +244,7 @@
   {
    "cell_type": "code",
    "execution_count": 17,
-   "metadata": {
-    "collapsed": false
-   },
+   "metadata": {},
    "outputs": [
     {
      "data": {
@@ -289,15 +269,14 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 12,
-   "metadata": {
-    "collapsed": false
-   },
+   "execution_count": 23,
+   "metadata": {},
    "outputs": [
     {
      "name": "stdout",
      "output_type": "stream",
      "text": [
+      "142\n",
       "[ 129  186  261  373  432  468  509  515  552  562  627  655  701  710  740\n",
       "  743  861  913  997 1012 1064 1128 1204 1273 1422 1426 1563 1566 1622 1761\n",
       " 1846 1933 1936 1949 1980 1989 2034 2042 2053 2110 2147 2329 2335 2346 2462\n",
@@ -482,6 +461,7 @@
    ],
    "source": [
     "large_hubs_idx = np.where(N_k>1000)[0]\n",
+    "print len(large_hubs_idx)\n",
     "print large_hubs_idx\n",
     "print Y[large_hubs_idx]\n",
     "print Yaudio[large_hubs_idx]"
@@ -490,9 +470,7 @@
   {
    "cell_type": "code",
    "execution_count": 21,
-   "metadata": {
-    "collapsed": false
-   },
+   "metadata": {},
    "outputs": [
     {
      "data": {
@@ -519,9 +497,7 @@
   {
    "cell_type": "code",
    "execution_count": 12,
-   "metadata": {
-    "collapsed": false
-   },
+   "metadata": {},
    "outputs": [
     {
      "name": "stderr",
@@ -548,9 +524,7 @@
   {
    "cell_type": "code",
    "execution_count": 6,
-   "metadata": {
-    "collapsed": false
-   },
+   "metadata": {},
    "outputs": [
     {
      "data": {
@@ -570,9 +544,7 @@
   {
    "cell_type": "code",
    "execution_count": 7,
-   "metadata": {
-    "collapsed": false
-   },
+   "metadata": {},
    "outputs": [
     {
      "data": {
@@ -599,9 +571,7 @@
   {
    "cell_type": "code",
    "execution_count": 14,
-   "metadata": {
-    "collapsed": false
-   },
+   "metadata": {},
    "outputs": [
     {
      "name": "stderr",
@@ -626,9 +596,7 @@
   {
    "cell_type": "code",
    "execution_count": 10,
-   "metadata": {
-    "collapsed": false
-   },
+   "metadata": {},
    "outputs": [
     {
      "data": {
@@ -660,9 +628,7 @@
   {
    "cell_type": "code",
    "execution_count": 7,
-   "metadata": {
-    "collapsed": false
-   },
+   "metadata": {},
    "outputs": [
     {
      "name": "stdout",
@@ -702,9 +668,7 @@
   {
    "cell_type": "code",
    "execution_count": 15,
-   "metadata": {
-    "collapsed": false
-   },
+   "metadata": {},
    "outputs": [
     {
      "name": "stdout",
@@ -735,9 +699,7 @@
   {
    "cell_type": "code",
    "execution_count": 6,
-   "metadata": {
-    "collapsed": false
-   },
+   "metadata": {},
    "outputs": [
     {
      "data": {
@@ -759,9 +721,7 @@
   {
    "cell_type": "code",
    "execution_count": 7,
-   "metadata": {
-    "collapsed": false
-   },
+   "metadata": {},
    "outputs": [
     {
      "data": {
@@ -806,7 +766,7 @@
    "name": "python",
    "nbconvert_exporter": "python",
    "pygments_lexer": "ipython2",
-   "version": "2.7.11"
+   "version": "2.7.12"
   }
  },
  "nbformat": 4,