示例#1
0
                fuzzy_logic_classifier.prepare_data(
                    k_fold_number=K_FOLD_NUMBER)
                rough_set_classifier.prepare_data(k_fold_number=K_FOLD_NUMBER)

                fuzzy_logic_classifier.k_fold_cross_validation(k=k)
                fuzzy_logic_classifier.generate_membership_functions(
                    divisions=DIVISIONS)
                fuzzy_logic_classifier.initialize_genetic(
                    generations=200,
                    mutation=MUTATION_PROP,
                    crossover=CROSS_OVER_PROP)
                fuzzy_logic_classifier.create_population(population_size=20)
                fuzzy_logic_classifier.run()

                rough_set_classifier.k_fold_cross_validation(k=k)
                rough_set_classifier.initialize_genetic(
                    generations=200,
                    mutation_prop=MUTATION_PROP,
                    crossover_prop=CROSS_OVER_PROP)
                rough_set_classifier.create_population(
                    population_size=POPULATION_SIZE, division=MAX_GRANULATION)
                rough_set_classifier.run()

                # classify
                size = len(fuzzy_logic_classifier.testing_data)
                classified = 0
                for i in range(size):
                    ret = rough_set_classifier.classify(
                        fuzzy_logic_classifier.testing_data[i])
                    if ret == PATTERN_REJECTED:
#!/usr/bin/python
# -*- coding: utf-8 -*- 

from genetic_rough_sets_classifier import GeneticRoughSetsClassifier

if __name__ == '__main__':
    K_FOLD_NUMBER = 4
    K = 1
    GENERATIONS = 500
    MUTATION = 0.3
    CROSS_OVER = 0.9
    G = 7
    POPULATION = 10
    grs = GeneticRoughSetsClassifier(debug=DEBUG)
    filename = 'datasets/iris.data.txt'
    grs.read_data(filepath=filename, label_is_last=False)
    grs.prepare_data(k_fold_number=K_FOLD_NUMBER)
    grs.k_fold_cross_validation(k=K)
    grs.initialize_genetic(generations=GENERATIONS, mutation_prop=MUTATION, crossover_prop=CROSS_OVER)
    grs.create_population(population_size=POPULATION, division=G)
    # run genetic algorithm
    grs.run()
    # genetic algorithm found granulation
    # now classify patterns
    classified = 0
    for i in range(len(patterns)):
        if labels[i] == grs.classify(patterns[i]):
            classified += 1
    grs.print_summary()

 result = fuzzy_logic_classifier.read_data(filepath=filename, label_is_last=(bool)(datasets[d][1]))
 result = rough_set_classifier.read_data(filepath=filename, label_is_last=(bool)(datasets[d][1]))
 if not result:
     logging.error("Wrong dataset name")
     sys.exit(1)
             
 fuzzy_logic_classifier.prepare_data(k_fold_number=K_FOLD_NUMBER)
 rough_set_classifier.prepare_data(k_fold_number=K_FOLD_NUMBER)
             
 fuzzy_logic_classifier.k_fold_cross_validation(k=k)
 fuzzy_logic_classifier.generate_membership_functions(divisions=DIVISIONS)
 fuzzy_logic_classifier.initialize_genetic(generations=200, mutation=MUTATION_PROP, crossover=CROSS_OVER_PROP)
 fuzzy_logic_classifier.create_population(population_size=20)
 fuzzy_logic_classifier.run()
                 
 rough_set_classifier.k_fold_cross_validation(k=k)
 rough_set_classifier.initialize_genetic(generations=200, mutation_prop=MUTATION_PROP, crossover_prop=CROSS_OVER_PROP)
 rough_set_classifier.create_population(population_size=POPULATION_SIZE, division=MAX_GRANULATION)
 rough_set_classifier.run()
                 
 # classify
 size = len(fuzzy_logic_classifier.testing_data)
 classified = 0
 for i in range(size):
     ret = rough_set_classifier.classify(fuzzy_logic_classifier.testing_data[i])
     if ret == PATTERN_REJECTED:
         if fuzzy_logic_classifier.testing_label[i] == fuzzy_logic_classifier.classify(fuzzy_logic_classifier.testing_data[i]):
             classified += 1
     elif ret == fuzzy_logic_classifier.testing_label[i]:
         classified += 1
 print "FINISHED iteration %d for %d-fold %s dataset" % (r, k, datasets[d][0])