def aprioriWorker(data_fname, sup, out_fname, conn): try: conn.send(Apriori.Apriori_main(data_fname, sup, out_fname)[1]) conn.close() return except MemoryError: conn.send(-1) conn.close() return except Exception as e: conn.send((-1,e.message,)) conn.close() return
def aprioriWorker(data_fname, sup, conn, flag=True): try: if flag: Apriori.Apriori_main(data_fname, sup) conn.send(0) conn.close() return else: conn.send(Apriori.Apriori_main(data_fname, sup)[1]) conn.close() return except MemoryError: conn.send(-1) conn.close() return except Exception as e: conn.send(( -1, e.message, )) conn.close() return
def metricWorker(fname, sanitized, sens, sup, conn): Apriori_results_init = readLargeData(fname) S = minSet(readSensitiveSet(sens)) SS = supersets(S, Apriori_results_init.keys()) r_fd = list(set(Apriori_results_init) - SS) Apriori_results = Apriori.Apriori_main(sanitized, sup)[0] side_effects = len(r_fd)-len(Apriori_results) if side_effects<0: conn.send((side_effects,0,)) conn.close() return else: ## a1 = 0. ## a2 = 0. ## for itemset in convert2frozen_m(apriori(r_fd, target='m', supp = float(0.0))): ## a1 += 1.0 ## for itemset2 in convert2frozen_m(apriori(Apriori_results.keys(), target='m', supp = float(0.0))): ## if itemset == itemset2: ## a2 += 1.0 ## ## Bd_rate = abs(round(float((a1-a2)/a1),2)) SumAll = 0 AbsDif = 0.0 for itemset in r_fd: SumAll += Apriori_results_init[itemset] if itemset in Apriori_results: AbsDif += float(abs(Apriori_results_init[itemset] - Apriori_results[itemset])) else: AbsDif += float(Apriori_results_init[itemset]) if SumAll == 0: inls = round(float(AbsDif), 3) else: inls = round(float(AbsDif/SumAll), 3) conn.send((side_effects, inls,)) conn.close() return
def metricWorker(fname, sanitized, sens, sup, conn): Apriori_results_init = readLargeData(fname) S = minSet(readSensitiveSet(sens)) SS = supersets(S, Apriori_results_init.keys()) r_fd = list(set(Apriori_results_init) - SS) Apriori_results = Apriori.Apriori_main(sanitized, sup)[0] side_effects = len(r_fd) - len(Apriori_results) if side_effects < 0: conn.send(( side_effects, 0, )) conn.close() return else: SumAll = 0 AbsDif = 0.0 for itemset in r_fd: SumAll += Apriori_results_init[itemset] if itemset in Apriori_results: AbsDif += float( abs(Apriori_results_init[itemset] - Apriori_results[itemset])) else: AbsDif += float(Apriori_results_init[itemset]) if SumAll == 0: inls = round(float(AbsDif), 3) else: inls = round(float(AbsDif / SumAll), 3) conn.send(( side_effects, inls, )) conn.close() return