Exemplo n.º 1
0
def main():
    dataset = 'adult'
    workload = 8
    marginal = 3

    data, workloads = benchmarks.randomKway(dataset, workload, marginal)
    N = data.df.shape[0]

    ######################################################
    ## Get Queries
    ######################################################
    stime = time.time()
    query_manager = QueryManager(data.domain, workloads)
    print("Number of queries = ", len(query_manager.queries))

    W_p = query_manager.get_query_workload([1, 4, 7, 100])
    W_n = query_manager.get_query_workload([2, 5, 10,
                                            11])  # q_neg(D) = 1 - q(D)
    D = W_p.shape[1]
    noise = np.random.exponential(1, D)
    # noise = np.zeros( D)

    print(f'noise.shape = {noise.shape}')

    x = oracle_weighted.solve(W_p, np.ones(4), W_n, np.ones(4), noise,
                              data.domain, 0)
    print(f'best  score = {get_score(x, W_p, W_n, noise, marginal)}')
Exemplo n.º 2
0
Arquivo: fem.py Projeto: giusevtr/fem
                        type=float,
                        default=0.05,
                        help='noise hyperparameter')
    parser.add_argument('--samples',
                        type=int,
                        default=50,
                        help='samples hyperparameter')
    args = parser.parse_args()

    print("=============================================")
    print(vars(args))

    ######################################################
    ## Get dataset
    ######################################################
    data, workloads = benchmarks.randomKway(args.dataset[0], args.workload[0],
                                            args.marginal[0])
    N = data.df.shape[0]
    delta = 1.0 / N**2

    ######################################################
    ## Get Queries
    ######################################################
    stime = time.time()
    query_manager = QueryManager(data.domain, workloads)
    print("Number of queries = ", len(query_manager.queries))

    real_ans = query_manager.get_answer(data)

    res = []

    for eps in args.epsilon: