def Main(filename, features_file, Algorithms, number_of_features, filter_target, list_features=None): print("\n---------------------------------\n") print("Load Data", end="") DATA = Load_Data.load_data(filename, ALGORITHMS, filter_target=filter_target) print(" [OK]\nLoad ELA Features", end="") P, D, F = Load_Data.load_ELA_features(features_file) print(" [OK]\nLink ELA Features to problems", end="") Problem.link_all_features(DATA, P, D, F) print(" [OK]\nInitialize Empirical Performance Model", end="") model = epm.EmpiricalPerformanceModel( number_of_parameters, number_of_features, len(ALGORITHMS), input_type="parameters", selector=Selector.Random_selector(probability=0.7), list_features=list_features) print(" [OK]\nFix Training and Testing sets", end="") model.build_training_and_testing_sets(DATA) print("\nNumber of problems : " + str(len(model.get_results())) + "\n") ''' print(" [OK]\nTrain EPM",end="") model.train_model() print(" [OK]\nTest EPM",end="") model.test_model() print(" [OK]\n") SBS=Statistic.SingleBestSolver(model) VBS=Statistic.VirtualBestSolver(model) RS=Statistic.RealSolver(model) Merit=Statistic.Merit(SBS,VBS,RS) print("SBS "+str(SBS)) print("VBS "+str(VBS)) print("RS "+str(RS)) print("Merit "+str(Merit)) ''' model.reset_model() model.set_input_type('features') print("Train EPM", end="") model.train_model() print(" [OK]\nTest EPM", end="") model.test_model() print(" [OK]\n") SBS = Statistic.SingleBestSolver(model) VBS = Statistic.VirtualBestSolver(model) RS = Statistic.RealSolver(model) Merit = Statistic.Merit(SBS, VBS, RS) print("SBS " + str(SBS)) print("VBS " + str(VBS)) print("RS " + str(RS)) print("Merit " + str(Merit))
def __init__(self, number_of_parameters, numberOfFeatures, numberOfAlgorithms, input_type="features", learning_method=Learning_method.classical_forestRegression(), selector=Selector.Random_selector(probability=0.2), list_features=None): self.numberOfFeatures = numberOfFeatures self.list_features = list_features self.number_of_parameters = number_of_parameters self.set_input_type(input_type) self.numberOfAlgorithms = numberOfAlgorithms self.input_type = input_type self.selector = selector self.learning_method = learning_method