示例#1
0
                    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" % (
#!/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()

                 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])
             fd.write("%s,%d,%d,%d,%d\n" % (datasets[d][0], r, k, size, classified))
             fd.flush()
 fd.close()