예제 #1
0
파일: Main.py 프로젝트: engich/ifmo
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))
예제 #2
0
 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