示例#1
0
                rough_set_classifier = GeneticRoughSetsClassifier()

                filename = 'datasets/%s' % datasets[d][0]
                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,
#!/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()

 for d in range(len(datasets)):
     for k in range(K_FOLD_NUMBER):
         for r in range(1):
             print "STARTED iteration %d for %d-fold %s dataset" % (r, k, datasets[d][0])
             fuzzy_logic_classifier = GeneticFuzzyLogicClassifier()
             rough_set_classifier = GeneticRoughSetsClassifier()
             
             filename = 'datasets/%s' % datasets[d][0]
             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