The raw data for this experiemnt can be downloaded from https://ifcs.boku.ac.at/repository/data/tetragonula_bee/index.html, and is supplied in the DATA/Bees/Tetragonula.csv
, the code load numpy files with the raw data and labels (no pre processing).
Only the vHDPMM and DPMM experiments are included, as GMM was done using sklearn in python.
Note - Here we demonstrate a single iteration, thus not mean or std, this is especialy true for the vHDPMM with missing data, as we took random partitions each time.
using NPZ
using DPMMSubClusters
using LinearAlgebra
using Clustering
using Random
data = copy(npzread("DATA/Bees/bees_x.npy")')
labels = npzread("DATA/Bees/bees_y.npy");
size(data)
(13, 236)
DPMMPrior = DPMMSubClusters.niw_hyperparams(1,zeros(13),16,Matrix{Float64}(I, 13, 13)*0.1)
DPMMResults = DPMMSubClusters.fit(data,DPMMPrior,100.0,iters = 100, gt = labels, verbose = false);
println(mutualinfo(DPMMResults[1], labels; normed =true))
0.7126463125369757
We will partition the data into 4 groups (at random), and create a version where all features exists, and a version where a random count of features are missing
perm = randperm(size(data,2))
mixed_data = data[:,perm]
mixed_labels = labels[perm]
interval = Int(length(mixed_labels)/4)
group_indices = Int.(collect(1:interval:length(mixed_labels)))
labels_dict = Dict()
full_data_dict = Dict()
missing_data_dict = Dict()
features_count = rand(1:7,4)
base_features = collect(1:6)
for (i,v) in enumerate(group_indices)
relevant_data = mixed_data[:,v:v+interval-1]
labels_dict[i] = mixed_labels[v:v+interval-1]
full_data_dict[i] = relevant_data
choosen_features = Int.(vcat(base_features,(randperm(7).+6)[1:features_count[i]]))
missing_data_dict[i] = relevant_data[choosen_features,:]
end
We will now run our model, initially adding process (as it must have atleast 1 worker process)
using Distributed
addprocs(4)
4-element Array{Int64,1}: 2 3 4 5
@everywhere using VersatileHDPMixtureModels
local_priors = [niw_hyperparams(1.0, zeros(i),i+3,Matrix{Float64}(I, i, i)*0.1) for i in features_count]
global_hyper_params = niw_hyperparams(1.0, zeros(6), 9, Matrix{Float64}(I, 6, 6)*0.1)
constant_local_prior = niw_hyperparams(1.0, zeros(7), 10, Matrix{Float64}(I, 7, 7)*0.1)
niw_hyperparams(1.0, [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 10.0, [0.1 0.0 … 0.0 0.0; 0.0 0.1 … 0.0 0.0; … ; 0.0 0.0 … 0.1 0.0; 0.0 0.0 … 0.0 0.1])
missing_data_results = vhdp_fit(missing_data_dict,6,100.0,100.0,100.0,global_hyper_params,local_priors,100);
Iteration: 1|| Global Counts: [6]|| iter time: 0.06101679801940918 Iteration: 2|| Global Counts: [6]|| iter time: 0.008918046951293945 Iteration: 3|| Global Counts: [8]|| iter time: 0.01250600814819336 Iteration: 4|| Global Counts: [9]|| iter time: 0.011228084564208984 Iteration: 5|| Global Counts: [9, 9]|| iter time: 0.010521173477172852 Iteration: 6|| Global Counts: [10, 7]|| iter time: 0.015869855880737305 Iteration: 7|| Global Counts: [10, 8]|| iter time: 0.011442184448242188 Iteration: 8|| Global Counts: [10, 7]|| iter time: 0.012156009674072266 Iteration: 9|| Global Counts: [10, 7]|| iter time: 0.015585899353027344 Iteration: 10|| Global Counts: [10, 7, 7]|| iter time: 0.011366128921508789 Iteration: 11|| Global Counts: [10, 4, 6]|| iter time: 0.013006925582885742 Iteration: 12|| Global Counts: [10, 4, 6, 10]|| iter time: 0.012372016906738281 Iteration: 13|| Global Counts: [6, 4, 8, 7]|| iter time: 0.01441192626953125 Iteration: 14|| Global Counts: [6, 4, 6, 7]|| iter time: 0.013808012008666992 Iteration: 15|| Global Counts: [6, 4, 6, 7, 6]|| iter time: 0.01477193832397461 Iteration: 16|| Global Counts: [6, 4, 4, 7, 5]|| iter time: 0.02161383628845215 Iteration: 17|| Global Counts: [6, 4, 4, 7, 5]|| iter time: 0.015391826629638672 Iteration: 18|| Global Counts: [6, 4, 4, 7, 5]|| iter time: 0.015046834945678711 Iteration: 19|| Global Counts: [6, 4, 4, 7, 5]|| iter time: 0.015200138092041016 Iteration: 20|| Global Counts: [6, 4, 2, 7, 5, 2]|| iter time: 0.0153350830078125 Iteration: 21|| Global Counts: [6, 4, 1, 7, 5, 1]|| iter time: 0.016914844512939453 Iteration: 22|| Global Counts: [6, 4, 1, 7, 5, 1]|| iter time: 0.018200159072875977 Iteration: 23|| Global Counts: [6, 4, 1, 7, 5, 1]|| iter time: 0.015845060348510742 Iteration: 24|| Global Counts: [6, 4, 7, 5, 1]|| iter time: 0.015394926071166992 Iteration: 25|| Global Counts: [6, 4, 7, 5, 1]|| iter time: 0.015168905258178711 Iteration: 26|| Global Counts: [6, 4, 7, 5, 1, 4]|| iter time: 0.026604175567626953 Iteration: 27|| Global Counts: [6, 4, 7, 5, 1, 4]|| iter time: 0.021626949310302734 Iteration: 28|| Global Counts: [6, 4, 6, 5, 1, 4]|| iter time: 0.017210006713867188 Iteration: 29|| Global Counts: [6, 4, 6, 5, 1, 4]|| iter time: 0.01639389991760254 Iteration: 30|| Global Counts: [6, 4, 6, 5, 1, 4]|| iter time: 0.018837928771972656 Iteration: 31|| Global Counts: [6, 4, 6, 5, 1, 4]|| iter time: 0.016417980194091797 Iteration: 32|| Global Counts: [6, 4, 6, 5, 1, 4]|| iter time: 0.0185701847076416 Iteration: 33|| Global Counts: [6, 4, 6, 5, 1, 4]|| iter time: 0.024920940399169922 Iteration: 34|| Global Counts: [6, 4, 6, 5, 1, 4]|| iter time: 0.01614999771118164 Iteration: 35|| Global Counts: [6, 4, 6, 5, 1, 4]|| iter time: 0.015902042388916016 Iteration: 36|| Global Counts: [6, 4, 6, 5, 1, 4]|| iter time: 0.01594090461730957 Iteration: 37|| Global Counts: [6, 4, 6, 5, 1, 4]|| iter time: 0.016433000564575195 Iteration: 38|| Global Counts: [6, 4, 6, 5, 1, 4]|| iter time: 0.017673969268798828 Iteration: 39|| Global Counts: [6, 4, 6, 5, 1, 4]|| iter time: 0.016355037689208984 Iteration: 40|| Global Counts: [6, 4, 6, 5, 1, 4]|| iter time: 0.016785144805908203 Iteration: 41|| Global Counts: [6, 4, 6, 5, 1, 4]|| iter time: 0.04770088195800781 Iteration: 42|| Global Counts: [6, 4, 6, 5, 1, 4, 4]|| iter time: 0.018131017684936523 Iteration: 43|| Global Counts: [6, 4, 6, 5, 1, 4, 4]|| iter time: 0.017380952835083008 Iteration: 44|| Global Counts: [6, 4, 6, 5, 1, 4, 4]|| iter time: 0.016882896423339844 Iteration: 45|| Global Counts: [6, 4, 6, 5, 1, 4, 4]|| iter time: 0.027822017669677734 Iteration: 46|| Global Counts: [6, 4, 6, 5, 1, 4, 4]|| iter time: 0.017902851104736328 Iteration: 47|| Global Counts: [6, 4, 6, 5, 1, 4, 4, 4]|| iter time: 0.03187394142150879 Iteration: 48|| Global Counts: [6, 3, 6, 5, 1, 4, 4, 4]|| iter time: 0.022114992141723633 Iteration: 49|| Global Counts: [6, 2, 6, 5, 1, 4, 5, 4]|| iter time: 0.021331071853637695 Iteration: 50|| Global Counts: [6, 2, 6, 5, 1, 4, 4, 4]|| iter time: 0.02243208885192871 Iteration: 51|| Global Counts: [6, 2, 6, 5, 1, 4, 4, 4]|| iter time: 0.025683164596557617 Iteration: 52|| Global Counts: [6, 1, 6, 5, 1, 4, 5, 4]|| iter time: 0.02354884147644043 Iteration: 53|| Global Counts: [6, 1, 6, 5, 1, 4, 4, 4]|| iter time: 0.028588056564331055 Iteration: 54|| Global Counts: [6, 1, 6, 5, 1, 4, 4, 4]|| iter time: 0.03505992889404297 Iteration: 55|| Global Counts: [6, 1, 6, 5, 1, 4, 4, 4]|| iter time: 0.022140026092529297 Iteration: 56|| Global Counts: [6, 1, 6, 5, 1, 4, 4, 4]|| iter time: 0.029688119888305664 Iteration: 57|| Global Counts: [6, 1, 6, 5, 1, 4, 4, 4]|| iter time: 0.022990942001342773 Iteration: 58|| Global Counts: [6, 1, 6, 5, 1, 3, 4, 4]|| iter time: 0.019846200942993164 Iteration: 59|| Global Counts: [6, 1, 6, 5, 1, 3, 4, 4]|| iter time: 0.024425029754638672 Iteration: 60|| Global Counts: [6, 1, 6, 5, 1, 3, 4, 4]|| iter time: 0.0194549560546875 Iteration: 61|| Global Counts: [6, 1, 6, 5, 1, 3, 4, 4]|| iter time: 0.02863001823425293 Iteration: 62|| Global Counts: [6, 1, 6, 5, 1, 3, 4, 4]|| iter time: 0.01723504066467285 Iteration: 63|| Global Counts: [6, 1, 6, 5, 1, 3, 4, 4]|| iter time: 0.020092010498046875 Iteration: 64|| Global Counts: [6, 1, 6, 5, 1, 3, 4, 4]|| iter time: 0.02017498016357422 Iteration: 65|| Global Counts: [6, 1, 6, 5, 1, 3, 4, 4]|| iter time: 0.02125096321105957 Iteration: 66|| Global Counts: [6, 1, 6, 5, 1, 3, 4, 4]|| iter time: 0.017827987670898438 Iteration: 67|| Global Counts: [6, 1, 6, 5, 1, 3, 4, 4]|| iter time: 0.017678022384643555 Iteration: 68|| Global Counts: [6, 1, 6, 5, 1, 3, 4, 4]|| iter time: 0.01760101318359375 Iteration: 69|| Global Counts: [6, 1, 6, 5, 1, 3, 4, 4]|| iter time: 0.02208089828491211 Iteration: 70|| Global Counts: [6, 1, 6, 5, 1, 3, 4, 4]|| iter time: 0.017980098724365234 Iteration: 71|| Global Counts: [6, 1, 6, 5, 1, 3, 4, 4]|| iter time: 0.018062114715576172 Iteration: 72|| Global Counts: [6, 1, 6, 5, 1, 3, 4, 4]|| iter time: 0.017676830291748047 Iteration: 73|| Global Counts: [6, 1, 6, 5, 1, 3, 4, 4]|| iter time: 0.017932891845703125 Iteration: 74|| Global Counts: [6, 1, 6, 5, 1, 3, 4, 4]|| iter time: 0.021026134490966797 Iteration: 75|| Global Counts: [6, 1, 6, 5, 1, 3, 4, 4]|| iter time: 0.01824808120727539 Iteration: 76|| Global Counts: [6, 1, 6, 5, 1, 3, 4, 4]|| iter time: 0.018121004104614258 Iteration: 77|| Global Counts: [6, 1, 6, 5, 1, 3, 4, 4]|| iter time: 0.02676701545715332 Iteration: 78|| Global Counts: [6, 1, 6, 5, 1, 3, 4, 4]|| iter time: 0.018934965133666992 Iteration: 79|| Global Counts: [6, 1, 6, 5, 1, 3, 4, 4]|| iter time: 0.02027606964111328 Iteration: 80|| Global Counts: [6, 1, 6, 5, 1, 3, 4, 4]|| iter time: 0.017361164093017578 Iteration: 81|| Global Counts: [6, 1, 6, 5, 1, 3, 4, 4]|| iter time: 0.01756596565246582 Iteration: 82|| Global Counts: [6, 1, 6, 5, 1, 3, 4, 4]|| iter time: 0.01708507537841797 Iteration: 83|| Global Counts: [6, 1, 6, 5, 1, 3, 4, 4]|| iter time: 0.017290115356445312 Iteration: 84|| Global Counts: [6, 1, 6, 5, 1, 3, 4, 4]|| iter time: 0.03199195861816406 Iteration: 85|| Global Counts: [6, 1, 6, 5, 1, 3, 4, 4]|| iter time: 0.021153926849365234 Iteration: 86|| Global Counts: [6, 1, 6, 5, 1, 3, 4, 4]|| iter time: 0.02159881591796875 Iteration: 87|| Global Counts: [6, 1, 6, 5, 1, 3, 4, 4]|| iter time: 0.017995119094848633 Iteration: 88|| Global Counts: [6, 1, 6, 5, 1, 3, 4, 4]|| iter time: 0.018545866012573242 Iteration: 89|| Global Counts: [6, 1, 6, 5, 1, 3, 4, 4]|| iter time: 0.02426004409790039 Iteration: 90|| Global Counts: [6, 1, 6, 5, 1, 3, 4, 4]|| iter time: 0.022433042526245117 Iteration: 91|| Global Counts: [6, 1, 6, 5, 1, 3, 4, 4]|| iter time: 0.01817607879638672 Iteration: 92|| Global Counts: [6, 1, 6, 5, 1, 3, 4, 4]|| iter time: 0.0297088623046875 Iteration: 93|| Global Counts: [6, 1, 6, 5, 1, 3, 4, 4]|| iter time: 0.02492499351501465 Iteration: 94|| Global Counts: [6, 1, 6, 5, 1, 3, 4, 4]|| iter time: 0.025380849838256836 Iteration: 95|| Global Counts: [6, 1, 6, 5, 1, 3, 4, 4]|| iter time: 0.028197050094604492 Iteration: 96|| Global Counts: [6, 1, 6, 5, 1, 3, 4, 4]|| iter time: 0.024656057357788086 Iteration: 97|| Global Counts: [6, 1, 6, 5, 1, 3, 4, 4]|| iter time: 0.023577213287353516 Iteration: 98|| Global Counts: [6, 1, 6, 5, 1, 3, 4, 4, 5]|| iter time: 0.022031068801879883 Iteration: 99|| Global Counts: [6, 1, 6, 2, 1, 3, 4, 4, 4]|| iter time: 0.025875091552734375 Iteration: 100|| Global Counts: [6, 1, 6, 2, 1, 3, 4, 4, 4]|| iter time: 0.028740882873535156
NMI = 0.0
for i=1:4
group_labels = create_global_labels(missing_data_results[1].groups_dict[i])
NMI += mutualinfo(group_labels,labels_dict[i])
end
println(NMI/4)
0.8204475661907087
full_data_results = vhdp_fit(full_data_dict,6,100.0,100.0,100.0,global_hyper_params,constant_local_prior,100);
Iteration: 1|| Global Counts: [8]|| iter time: 0.7217671871185303 Iteration: 2|| Global Counts: [9]|| iter time: 0.06853103637695312 Iteration: 3|| Global Counts: [9]|| iter time: 0.009547948837280273 Iteration: 4|| Global Counts: [11]|| iter time: 0.010154962539672852 Iteration: 5|| Global Counts: [14, 14]|| iter time: 0.010442972183227539 Iteration: 6|| Global Counts: [15, 5]|| iter time: 0.06933116912841797 Iteration: 7|| Global Counts: [16, 4]|| iter time: 0.012984991073608398 Iteration: 8|| Global Counts: [16, 4]|| iter time: 0.013051033020019531 Iteration: 9|| Global Counts: [16, 4]|| iter time: 0.013823986053466797 Iteration: 10|| Global Counts: [16, 4, 16, 4]|| iter time: 0.019757986068725586 Iteration: 11|| Global Counts: [19, 4, 12, 4]|| iter time: 0.02441096305847168 Iteration: 12|| Global Counts: [17, 4, 6, 4]|| iter time: 0.01689004898071289 Iteration: 13|| Global Counts: [14, 4, 7, 4]|| iter time: 0.025344133377075195 Iteration: 14|| Global Counts: [15, 4, 6, 4]|| iter time: 0.015172958374023438 Iteration: 15|| Global Counts: [15, 4, 6, 5, 5]|| iter time: 0.01888895034790039 Iteration: 16|| Global Counts: [15, 4, 6, 4, 1, 6]|| iter time: 0.01771402359008789 Iteration: 17|| Global Counts: [15, 4, 6, 4, 1, 1]|| iter time: 0.017457008361816406 Iteration: 18|| Global Counts: [16, 4, 6, 4, 1]|| iter time: 0.016981124877929688 Iteration: 19|| Global Counts: [15, 4, 6, 4, 1]|| iter time: 0.015609979629516602 Iteration: 20|| Global Counts: [15, 4, 6, 4, 1]|| iter time: 0.016476154327392578 Iteration: 21|| Global Counts: [15, 4, 6, 4, 1]|| iter time: 0.019111156463623047 Iteration: 22|| Global Counts: [15, 4, 6, 4, 1, 4]|| iter time: 0.016832828521728516 Iteration: 23|| Global Counts: [15, 4, 6, 4, 1, 4]|| iter time: 0.017582178115844727 Iteration: 24|| Global Counts: [15, 4, 6, 4, 1, 4]|| iter time: 0.018271207809448242 Iteration: 25|| Global Counts: [15, 4, 6, 4, 1, 4]|| iter time: 0.018802165985107422 Iteration: 26|| Global Counts: [15, 4, 6, 4, 1, 4]|| iter time: 0.02192997932434082 Iteration: 27|| Global Counts: [15, 4, 6, 4, 1, 4]|| iter time: 0.018930912017822266 Iteration: 28|| Global Counts: [15, 4, 6, 4, 1, 4]|| iter time: 0.020143985748291016 Iteration: 29|| Global Counts: [15, 4, 6, 4, 1, 4]|| iter time: 0.01783013343811035 Iteration: 30|| Global Counts: [15, 4, 6, 4, 1, 4]|| iter time: 0.027830839157104492 Iteration: 31|| Global Counts: [15, 4, 6, 4, 1, 4]|| iter time: 0.026868820190429688 Iteration: 32|| Global Counts: [15, 4, 6, 4, 1, 4]|| iter time: 0.027545928955078125 Iteration: 33|| Global Counts: [15, 4, 6, 4, 1, 4, 6]|| iter time: 0.02043294906616211 Iteration: 34|| Global Counts: [15, 4, 5, 4, 1, 4, 4]|| iter time: 0.02084493637084961 Iteration: 35|| Global Counts: [15, 4, 3, 4, 1, 4, 4]|| iter time: 0.028548002243041992 Iteration: 36|| Global Counts: [15, 4, 2, 4, 1, 4, 4]|| iter time: 0.020576000213623047 Iteration: 37|| Global Counts: [15, 4, 2, 4, 1, 4, 4]|| iter time: 0.020869016647338867 Iteration: 38|| Global Counts: [15, 4, 2, 4, 1, 4, 4]|| iter time: 0.021111011505126953 Iteration: 39|| Global Counts: [15, 4, 2, 4, 1, 4, 4]|| iter time: 0.039485931396484375 Iteration: 40|| Global Counts: [15, 4, 2, 4, 1, 4, 4]|| iter time: 0.020971059799194336 Iteration: 41|| Global Counts: [15, 4, 2, 4, 1, 4, 4]|| iter time: 0.022268056869506836 Iteration: 42|| Global Counts: [15, 4, 2, 4, 1, 4, 4]|| iter time: 0.01965618133544922 Iteration: 43|| Global Counts: [15, 4, 2, 4, 1, 4, 4]|| iter time: 0.023225069046020508 Iteration: 44|| Global Counts: [15, 4, 2, 4, 1, 4, 4]|| iter time: 0.022043943405151367 Iteration: 45|| Global Counts: [15, 4, 2, 4, 1, 4, 4]|| iter time: 0.028043031692504883 Iteration: 46|| Global Counts: [15, 4, 2, 4, 1, 4, 4, 15]|| iter time: 0.0199129581451416 Iteration: 47|| Global Counts: [10, 4, 2, 4, 1, 4, 4, 9]|| iter time: 0.022053956985473633 Iteration: 48|| Global Counts: [10, 4, 2, 4, 1, 4, 4, 9]|| iter time: 0.02233409881591797 Iteration: 49|| Global Counts: [10, 4, 2, 4, 1, 4, 4, 8]|| iter time: 0.02429986000061035 Iteration: 50|| Global Counts: [10, 4, 2, 4, 1, 4, 4, 8]|| iter time: 0.021201133728027344 Iteration: 51|| Global Counts: [10, 4, 2, 4, 1, 4, 4, 8, 10]|| iter time: 0.02916693687438965 Iteration: 52|| Global Counts: [9, 4, 2, 4, 1, 4, 4, 9, 5]|| iter time: 0.03345084190368652 Iteration: 53|| Global Counts: [9, 4, 2, 4, 1, 4, 4, 8, 3]|| iter time: 0.022926807403564453 Iteration: 54|| Global Counts: [9, 4, 2, 4, 1, 4, 4, 8, 3]|| iter time: 0.022899866104125977 Iteration: 55|| Global Counts: [9, 4, 2, 4, 1, 4, 4, 8, 3]|| iter time: 0.026977062225341797 Iteration: 56|| Global Counts: [10, 4, 2, 4, 1, 4, 4, 8, 3]|| iter time: 0.030147075653076172 Iteration: 57|| Global Counts: [10, 4, 2, 4, 1, 4, 4, 8, 3]|| iter time: 0.0224761962890625 Iteration: 58|| Global Counts: [10, 4, 2, 4, 1, 4, 4, 9, 2]|| iter time: 0.03832697868347168 Iteration: 59|| Global Counts: [10, 4, 2, 4, 1, 4, 4, 8, 2]|| iter time: 0.028855085372924805 Iteration: 60|| Global Counts: [9, 4, 2, 4, 1, 4, 4, 9, 1]|| iter time: 0.02435612678527832 Iteration: 61|| Global Counts: [10, 4, 2, 4, 1, 4, 4, 9, 1]|| iter time: 0.023231983184814453 Iteration: 62|| Global Counts: [10, 4, 2, 4, 1, 4, 4, 9, 1]|| iter time: 0.03128314018249512 Iteration: 63|| Global Counts: [10, 4, 2, 4, 1, 4, 4, 9, 1]|| iter time: 0.027018070220947266 Iteration: 64|| Global Counts: [10, 4, 2, 4, 1, 4, 4, 9, 1]|| iter time: 0.022960901260375977 Iteration: 65|| Global Counts: [10, 4, 2, 4, 1, 4, 4, 8, 1]|| iter time: 0.02344989776611328 Iteration: 66|| Global Counts: [10, 4, 2, 4, 1, 4, 4, 8, 1]|| iter time: 0.02722787857055664 Iteration: 67|| Global Counts: [10, 4, 2, 4, 1, 4, 4, 8, 1]|| iter time: 0.025465965270996094 Iteration: 68|| Global Counts: [10, 4, 2, 4, 1, 4, 4, 8, 1]|| iter time: 0.022193193435668945 Iteration: 69|| Global Counts: [10, 4, 2, 4, 1, 4, 4, 8, 1]|| iter time: 0.022127866744995117 Iteration: 70|| Global Counts: [10, 4, 2, 4, 1, 4, 4, 8, 1]|| iter time: 0.03149104118347168 Iteration: 71|| Global Counts: [10, 4, 2, 4, 1, 4, 4, 8, 1]|| iter time: 0.03358793258666992 Iteration: 72|| Global Counts: [10, 4, 2, 4, 1, 4, 4, 8, 1]|| iter time: 0.020043134689331055 Iteration: 73|| Global Counts: [10, 4, 2, 4, 1, 4, 4, 8, 1]|| iter time: 0.02034306526184082 Iteration: 74|| Global Counts: [10, 4, 2, 4, 1, 4, 4, 8, 1]|| iter time: 0.022263050079345703 Iteration: 75|| Global Counts: [10, 4, 2, 4, 1, 4, 4, 8, 1]|| iter time: 0.021478891372680664 Iteration: 76|| Global Counts: [10, 4, 2, 4, 1, 4, 4, 8, 1]|| iter time: 0.020626068115234375 Iteration: 77|| Global Counts: [10, 4, 2, 4, 1, 4, 4, 8, 1]|| iter time: 0.02090597152709961 Iteration: 78|| Global Counts: [10, 4, 2, 4, 1, 4, 4, 8, 1]|| iter time: 0.0205228328704834 Iteration: 79|| Global Counts: [10, 4, 2, 4, 1, 4, 4, 8, 1]|| iter time: 0.024317026138305664 Iteration: 80|| Global Counts: [10, 4, 2, 4, 1, 4, 4, 8, 1]|| iter time: 0.02331995964050293 Iteration: 81|| Global Counts: [10, 4, 2, 4, 1, 4, 4, 8, 1]|| iter time: 0.020751953125 Iteration: 82|| Global Counts: [10, 4, 2, 4, 1, 4, 4, 8, 1]|| iter time: 0.020190000534057617 Iteration: 83|| Global Counts: [10, 4, 2, 4, 1, 4, 4, 8, 1]|| iter time: 0.029374122619628906 Iteration: 84|| Global Counts: [10, 4, 2, 4, 1, 4, 4, 8, 1]|| iter time: 0.026396989822387695 Iteration: 85|| Global Counts: [10, 4, 2, 4, 1, 4, 4, 8, 1]|| iter time: 0.020873069763183594 Iteration: 86|| Global Counts: [10, 4, 2, 4, 1, 4, 4, 8, 1]|| iter time: 0.020053863525390625 Iteration: 87|| Global Counts: [10, 4, 2, 4, 1, 4, 4, 8, 1]|| iter time: 0.02396988868713379 Iteration: 88|| Global Counts: [10, 4, 2, 4, 1, 4, 4, 8, 1]|| iter time: 0.022778034210205078 Iteration: 89|| Global Counts: [10, 4, 2, 4, 1, 4, 4, 8, 1]|| iter time: 0.023511886596679688 Iteration: 90|| Global Counts: [10, 4, 2, 4, 1, 4, 4, 8, 1]|| iter time: 0.022753000259399414 Iteration: 91|| Global Counts: [10, 4, 2, 4, 1, 4, 4, 8, 1]|| iter time: 0.020154953002929688 Iteration: 92|| Global Counts: [10, 4, 2, 4, 1, 4, 4, 8, 1]|| iter time: 0.02490401268005371 Iteration: 93|| Global Counts: [10, 4, 2, 4, 1, 4, 4, 8, 1]|| iter time: 0.021810054779052734 Iteration: 94|| Global Counts: [10, 4, 2, 4, 1, 4, 4, 8, 1]|| iter time: 0.020869016647338867 Iteration: 95|| Global Counts: [10, 4, 2, 4, 1, 4, 4, 8, 1]|| iter time: 0.02894902229309082 Iteration: 96|| Global Counts: [10, 4, 2, 4, 1, 4, 4, 8, 1]|| iter time: 0.021105051040649414 Iteration: 97|| Global Counts: [10, 4, 2, 4, 1, 4, 4, 8, 1]|| iter time: 0.026546001434326172 Iteration: 98|| Global Counts: [10, 4, 2, 4, 1, 4, 4, 8, 1]|| iter time: 0.021574974060058594 Iteration: 99|| Global Counts: [10, 4, 2, 4, 1, 4, 4, 8, 1]|| iter time: 0.024689912796020508 Iteration: 100|| Global Counts: [10, 4, 2, 4, 1, 4, 4, 8, 1]|| iter time: 0.029198169708251953
NMI = 0.0
for i=1:4
group_labels = create_global_labels(full_data_results[1].groups_dict[i])
NMI += mutualinfo(group_labels,labels_dict[i])
end
println(NMI/4)
0.8395588562022707