In [42]:
import matplotlib.pyplot as plt
%matplotlib inline
import numpy as np
import pandas as pd
import seaborn as sns
import MyML.helper.plotting as myPlots

In [41]:
results_path = '/home/chiroptera/workspace/QCThesis/experiments/CUDA/kmeans_results.csv'

In [45]:
res = pd.read_csv(results_path)

In [50]:
for col in res.columns:
    print col


Unnamed: 0
cardinality
dimensionality
number of clusters
number of iterations
label mode
centroid mode
round
total time
label time
centroid time

In [70]:
n_d_groupby = res.groupby(by=['label mode', 'centroid mode', 'cardinality', 'dimensionality', 'number of clusters'])
label_mean = n_d_groupby.apply(np.mean)
#label_mean = label_mean[['cardinality', 'dimensionality', 'number of clusters', 'label time']]

In [71]:
label_mean


Out[71]:
Unnamed: 0 cardinality dimensionality number of clusters number of iterations round total time label time centroid time
label mode centroid mode cardinality dimensionality number of clusters
cuda numba 100 2 2 3 100 2 2 3 0 0.011995 0.011139 0.000352
4 7 100 2 4 3 0 0.012666 0.011739 0.000385
6 11 100 2 6 3 0 0.013879 0.012855 0.000419
8 15 100 2 8 3 0 0.017870 0.016555 0.000546
10 19 100 2 10 3 0 0.007995 0.007371 0.000233
20 23 100 2 20 3 0 0.006135 0.005676 0.000153
40 27 100 2 40 3 0 0.009984 0.009219 0.000298
60 31 100 2 60 3 0 0.013271 0.012287 0.000400
5 2 35 100 5 2 3 0 0.014283 0.013239 0.000442
4 39 100 5 4 3 0 0.011664 0.010782 0.000362
6 43 100 5 6 3 0 0.009152 0.008465 0.000267
8 47 100 5 8 3 0 0.014297 0.013395 0.000368
10 51 100 5 10 3 0 0.009671 0.009035 0.000239
20 55 100 5 20 3 0 0.010918 0.010211 0.000280
40 59 100 5 40 3 0 0.016912 0.015825 0.000453
60 63 100 5 60 3 0 0.017175 0.016121 0.000434
10 2 67 100 10 2 3 0 0.020337 0.019096 0.000537
4 71 100 10 4 3 0 0.011418 0.010693 0.000285
6 75 100 10 6 3 0 0.011333 0.010585 0.000282
8 79 100 10 8 3 0 0.014622 0.013747 0.000355
10 83 100 10 10 3 0 0.012553 0.011717 0.000328
20 87 100 10 20 3 0 0.012325 0.011519 0.000325
40 91 100 10 40 3 0 0.011927 0.011171 0.000305
60 95 100 10 60 3 0 0.012310 0.011545 0.000303
25 2 99 100 25 2 3 0 0.014817 0.013988 0.000340
4 103 100 25 4 3 0 0.013153 0.012333 0.000312
6 107 100 25 6 3 0 0.013062 0.012268 0.000325
8 111 100 25 8 3 0 0.011362 0.010717 0.000248
10 115 100 25 10 3 0 0.013991 0.013072 0.000318
20 119 100 25 20 3 0 0.012055 0.011394 0.000254
... ... ... ... ... ... ... ... ... ... ... ... ... ...
python python 500 10 8 1044 500 10 8 3 0 7.311599 7.134307 0.175753
10 1048 500 10 10 3 0 9.616444 9.376951 0.237646
20 1052 500 10 20 3 0 5.603276 5.471144 0.131037
40 1056 500 10 40 3 0 12.402128 12.097740 0.302143
60 1060 500 10 60 3 0 9.493550 9.265195 0.226577
80 1064 500 10 80 3 0 5.584314 5.450900 0.132282
100 1068 500 10 100 3 0 5.458247 5.327836 0.129215
150 1072 500 10 150 3 0 7.766455 7.583795 0.181206
200 1076 500 10 200 3 0 9.920466 9.668764 0.249762
250 1080 500 10 250 3 0 6.948367 6.778820 0.168151
300 1084 500 10 300 3 0 6.979993 6.808995 0.169624
350 1088 500 10 350 3 0 7.200123 7.026141 0.172593
25 2 1092 500 25 2 3 0 13.711083 13.461041 0.248845
4 1096 500 25 4 3 0 14.727051 14.450709 0.275113
6 1100 500 25 6 3 0 17.004376 16.679020 0.323895
8 1104 500 25 8 3 0 8.278571 8.135228 0.142612
10 1108 500 25 10 3 0 18.008589 17.667770 0.339336
20 1112 500 25 20 3 0 22.335280 21.917839 0.415623
40 1116 500 25 40 3 0 15.306866 15.026106 0.279453
60 1120 500 25 60 3 0 15.714995 15.405649 0.307947
80 1124 500 25 80 3 0 22.656641 22.215715 0.439157
100 1128 500 25 100 3 0 18.839362 18.489321 0.348534
150 1132 500 25 150 3 0 18.682489 18.347858 0.333180
200 1136 500 25 200 3 0 44.436529 43.570647 0.862901
250 1140 500 25 250 3 0 19.185662 18.820189 0.363996
300 1144 500 25 300 3 0 44.808534 43.970533 0.835313
350 1148 500 25 350 3 0 15.183907 14.916370 0.266292
50 2 1152 500 50 2 3 0 27.877170 27.399473 0.476525
4 1156 500 50 4 3 0 31.982898 31.442688 0.538840
6 1160 500 50 6 3 0 34.751787 34.177511 0.572874

1164 rows × 9 columns


In [65]:
n_d_mean


Out[65]:
Unnamed: 0 cardinality dimensionality number of clusters number of iterations round total time label time centroid time
label mode cardinality dimensionality number of clusters
cuda 100 2 2 3 100 2 2 3 0 0.011995 0.011139 0.000352
4 7 100 2 4 3 0 0.012666 0.011739 0.000385
6 11 100 2 6 3 0 0.013879 0.012855 0.000419
8 15 100 2 8 3 0 0.017870 0.016555 0.000546
10 19 100 2 10 3 0 0.007995 0.007371 0.000233
20 23 100 2 20 3 0 0.006135 0.005676 0.000153
40 27 100 2 40 3 0 0.009984 0.009219 0.000298
60 31 100 2 60 3 0 0.013271 0.012287 0.000400
5 2 35 100 5 2 3 0 0.014283 0.013239 0.000442
4 39 100 5 4 3 0 0.011664 0.010782 0.000362
6 43 100 5 6 3 0 0.009152 0.008465 0.000267
8 47 100 5 8 3 0 0.014297 0.013395 0.000368
10 51 100 5 10 3 0 0.009671 0.009035 0.000239
20 55 100 5 20 3 0 0.010918 0.010211 0.000280
40 59 100 5 40 3 0 0.016912 0.015825 0.000453
60 63 100 5 60 3 0 0.017175 0.016121 0.000434
10 2 67 100 10 2 3 0 0.020337 0.019096 0.000537
4 71 100 10 4 3 0 0.011418 0.010693 0.000285
6 75 100 10 6 3 0 0.011333 0.010585 0.000282
8 79 100 10 8 3 0 0.014622 0.013747 0.000355
10 83 100 10 10 3 0 0.012553 0.011717 0.000328
20 87 100 10 20 3 0 0.012325 0.011519 0.000325
40 91 100 10 40 3 0 0.011927 0.011171 0.000305
60 95 100 10 60 3 0 0.012310 0.011545 0.000303
25 2 99 100 25 2 3 0 0.014817 0.013988 0.000340
4 103 100 25 4 3 0 0.013153 0.012333 0.000312
6 107 100 25 6 3 0 0.013062 0.012268 0.000325
8 111 100 25 8 3 0 0.011362 0.010717 0.000248
10 115 100 25 10 3 0 0.013991 0.013072 0.000318
20 119 100 25 20 3 0 0.012055 0.011394 0.000254
... ... ... ... ... ... ... ... ... ... ... ... ...
python 500 10 8 1044 500 10 8 3 0 7.311599 7.134307 0.175753
10 1048 500 10 10 3 0 9.616444 9.376951 0.237646
20 1052 500 10 20 3 0 5.603276 5.471144 0.131037
40 1056 500 10 40 3 0 12.402128 12.097740 0.302143
60 1060 500 10 60 3 0 9.493550 9.265195 0.226577
80 1064 500 10 80 3 0 5.584314 5.450900 0.132282
100 1068 500 10 100 3 0 5.458247 5.327836 0.129215
150 1072 500 10 150 3 0 7.766455 7.583795 0.181206
200 1076 500 10 200 3 0 9.920466 9.668764 0.249762
250 1080 500 10 250 3 0 6.948367 6.778820 0.168151
300 1084 500 10 300 3 0 6.979993 6.808995 0.169624
350 1088 500 10 350 3 0 7.200123 7.026141 0.172593
25 2 1092 500 25 2 3 0 13.711083 13.461041 0.248845
4 1096 500 25 4 3 0 14.727051 14.450709 0.275113
6 1100 500 25 6 3 0 17.004376 16.679020 0.323895
8 1104 500 25 8 3 0 8.278571 8.135228 0.142612
10 1108 500 25 10 3 0 18.008589 17.667770 0.339336
20 1112 500 25 20 3 0 22.335280 21.917839 0.415623
40 1116 500 25 40 3 0 15.306866 15.026106 0.279453
60 1120 500 25 60 3 0 15.714995 15.405649 0.307947
80 1124 500 25 80 3 0 22.656641 22.215715 0.439157
100 1128 500 25 100 3 0 18.839362 18.489321 0.348534
150 1132 500 25 150 3 0 18.682489 18.347858 0.333180
200 1136 500 25 200 3 0 44.436529 43.570647 0.862901
250 1140 500 25 250 3 0 19.185662 18.820189 0.363996
300 1144 500 25 300 3 0 44.808534 43.970533 0.835313
350 1148 500 25 350 3 0 15.183907 14.916370 0.266292
50 2 1152 500 50 2 3 0 27.877170 27.399473 0.476525
4 1156 500 50 4 3 0 31.982898 31.442688 0.538840
6 1160 500 50 6 3 0 34.751787 34.177511 0.572874

1164 rows × 9 columns


In [ ]:
by_rule_n = res.groupby(by=["rule","n_samples"])
rule_n_mean = by_rule_n.apply(np.mean)
rule_n_mean = rule_n_mean[['kmin','kmax','t_ensemble','biggest_cluster',
                           't_build','mean_degree','std_degree','min_degree',
                           'max_degree','sparsity','csr_max_row','csr_topped',
                           'samples_per_kmin',
                           'accuracy_CI', 't_sl', 't_accuracy_CI', 'sl_clusts', 'type_mat']]
rule_n_mean = rule_n_mean.reset_index()

In [ ]:


In [57]:
res


Out[57]:
Unnamed: 0 cardinality dimensionality number of clusters number of iterations label mode centroid mode round total time label time centroid time
0 0 100 2 2 3 python python 0 0.214953 0.200148 0.014160
1 1 100 2 2 3 numba numba 0 1.402742 0.304345 1.097989
2 2 100 2 2 3 numpy numpy 0 0.001280 0.000568 0.000555
3 3 100 2 2 3 cuda numba 0 0.011995 0.011139 0.000352
4 4 100 2 4 3 python python 0 0.101200 0.094803 0.006055
5 5 100 2 4 3 numba numba 0 0.001157 0.000433 0.000258
6 6 100 2 4 3 numpy numpy 0 0.001261 0.000572 0.000530
7 7 100 2 4 3 cuda numba 0 0.012666 0.011739 0.000385
8 8 100 2 6 3 python python 0 0.169691 0.157591 0.011579
9 9 100 2 6 3 numba numba 0 0.001571 0.000590 0.000397
10 10 100 2 6 3 numpy numpy 0 0.001269 0.000591 0.000516
11 11 100 2 6 3 cuda numba 0 0.013879 0.012855 0.000419
12 12 100 2 8 3 python python 0 0.165879 0.154879 0.010487
13 13 100 2 8 3 numba numba 0 0.001118 0.000415 0.000267
14 14 100 2 8 3 numpy numpy 0 0.001381 0.000640 0.000558
15 15 100 2 8 3 cuda numba 0 0.017870 0.016555 0.000546
16 16 100 2 10 3 python python 0 0.135362 0.126031 0.008899
17 17 100 2 10 3 numba numba 0 0.000847 0.000316 0.000184
18 18 100 2 10 3 numpy numpy 0 0.001314 0.000617 0.000528
19 19 100 2 10 3 cuda numba 0 0.007995 0.007371 0.000233
20 20 100 2 20 3 python python 0 0.135823 0.126914 0.008467
21 21 100 2 20 3 numba numba 0 0.001038 0.000377 0.000253
22 22 100 2 20 3 numpy numpy 0 0.001346 0.000614 0.000559
23 23 100 2 20 3 cuda numba 0 0.006135 0.005676 0.000153
24 24 100 2 40 3 python python 0 0.188194 0.175412 0.012205
25 25 100 2 40 3 numba numba 0 0.001118 0.000401 0.000219
26 26 100 2 40 3 numpy numpy 0 0.001358 0.000662 0.000529
27 27 100 2 40 3 cuda numba 0 0.009984 0.009219 0.000298
28 28 100 2 60 3 python python 0 0.156070 0.145878 0.009692
29 29 100 2 60 3 numba numba 0 0.000700 0.000259 0.000141
... ... ... ... ... ... ... ... ... ... ... ...
115890 115890 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
115891 115891 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
115892 115892 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
115893 115893 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
115894 115894 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
115895 115895 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
115896 115896 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
115897 115897 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
115898 115898 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
115899 115899 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
115900 115900 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
115901 115901 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
115902 115902 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
115903 115903 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
115904 115904 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
115905 115905 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
115906 115906 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
115907 115907 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
115908 115908 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
115909 115909 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
115910 115910 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
115911 115911 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
115912 115912 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
115913 115913 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
115914 115914 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
115915 115915 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
115916 115916 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
115917 115917 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
115918 115918 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
115919 115919 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN

115920 rows × 11 columns


In [ ]:
for key, grp in n_d_groupby.g