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