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