示例#1
0
    def train_optimzation_model(self, train_daylist, distinct):
        daytest = self.select_test_day(train_daylist)
        y_train = []
        X_train = []

        for day in daytest:
            for slice in range(144):
                dateslice = day + '-' + str(slice + 1)
                #feature, label = self.generateFeatureLabel(dateslice, distinct)
                feature, label = self.feature.generate(dateslice, distinct)
                #print(feature,label)
                #print(feature1,label1)
                #print("-----------")

                if feature != None:
                    X_train.append(feature)
                    y_train.append(label)

        opt = optimization()
        opt.fit(X_train, y_train)
        return opt
if __name__ == '__main__':
    print("Bacterial Foraging Optimization Algorithm")
    print("Dimension: ", dimension)
    # For tracking global minima. ;)
    results = {'c_space': c_space, 'c_prob': c_prob, 'c_tumble': c_tumble}
    res = {}
    for i in range(num):
        best = INF                 # the best solution found during the search
        fe_count = 0               # number of objective function evaluations
        # search space [-100, 100]^dimension
        c_tumble, c_space, c_prob, space = initialize_space(
            space, -100.0, 100.0)
        # random initialization within the search space
        population, c_space, fe_count, best = initialize_population(
            i+1, population, c_space, fe_count, best)
        # minimization of objective function
        best, iteration_values = optimization(
            i+1, population, c_space, fe_count, best, c_prob, c_tumble)
        if best == 0.0:
            results[str(i+1)] = 1.0
        else:
            results[str(i+1)] = best
            res[str(i+1)] = iteration_values

    # with open('data.py', 'a') as f:
    #     f.write(dumps(results, sort_keys=True) + '\n')

    with open('data_graphs.py', 'a') as f:
        f.write(dumps(res, sort_keys=True) + '\n')
    print("Updated!")
        1: "sphere",
        2: "rastrigin",
        3: "rosenbrock",
        4: "schwefel",
        5: "quartic",
        6: "ackley",
        7: "schaffer",
        8: "griewank",
        9: "matyas",
        10: "trid"
    }
    results = {}
    for i in range(num):
        best = INF                 # the best solution found during the search
        fe_count = 0               # number of objective function evaluations
        # search space [-100, 100]^dimension
        space = initialize_space(space, -100.0, 100.0)
        # random initialization within the search space
        population, fe_count, best = initialize_population(
            i+1, population, space, fe_count, best)
        # minimization of objective function
        best = optimization(i+1, population, space, fe_count, best)
        if best == 0.0:
            results[func_dict[i+1]] = 1.0
        else:
            results[func_dict[i+1]] = best

    with open('data.py', 'a') as f:
        f.write(dumps(results, sort_keys=True) + '\n')
    print("Updated!")