#!/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()

if __name__ == '__main__':
    
    DEBUG = False
    result_file = 'results/hybrid_classifier.csv'
    try:
        fd = open(result_file, 'w')
    except IOError:
        print "Wrong path for results file"
        sys.exit(1)        
    
    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)
示例#3
0
    DEBUG = False
    result_file = 'results/hybrid_classifier.csv'
    try:
        fd = open(result_file, 'w')
    except IOError:
        print "Wrong path for results file"
        sys.exit(1)

    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)
#!/usr/bin/python
# -*- coding: utf-8 -*- 

from genetic_rough_sets_classifier import GeneticRoughSetsClassifier

if __name__ == '__main__':
    grs = GeneticRoughSetsClassifier(debug=DEBUG)
    filename = 'datasets/thyroid.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=500, mutation_prop=0.3, crossover_prop=0.9)
    grs.create_population(population_size=10, division=7)
    grs.run()
    for pattern in patterns:
        grs.classify(pattern)