Пример #1
0
    while 1:

        ini_r, ini_alpha, ini_a, ini_b = np.random.normal(1, 0.05, 4)

        cost_function = CostFunction(sum_data)
        optimizer = Optimizer(sum_data,
                              np.array([ini_r, ini_alpha, ini_a, ini_b]),
                              norm_factor)

        params_gen, score_gen = optimizer.genetics(
            cost_function.neg_log_likelihood, sum_data,
            np.array([ini_r, ini_alpha, ini_a, ini_b]), norm_factor)

        params, score = optimizer.nelder_mead(
            cost_function.neg_log_likelihood, sum_data,
            np.array([ini_r, ini_alpha, ini_a, ini_b]), norm_factor)

        if not is_gen_preffered and score_gen < 4.515:
            params_final.append(params)
            scores.append(score)
            break
        if is_gen_preffered and score < 4.515:
            params_final_gen.append(params_gen)
            scores_gen.append(score_gen)
            break

    if not is_gen_preffered:
        df = pd.DataFrame(params_final, columns=['r', 'alpha', 'a', 'b'])
        df['scores'] = scores
        df.to_csv('input/estimated_parameters.csv')