if not len(self): return link = list(self)[randrange(0,len(self))] if self.network.check_dag(link.inverse): link.invert() return link def __fitness__(self): return self.scoring_function(self.network) def __mutate__(self): offspring = new_offspring(self) num = rand() if num < float(1) / 3: offspring.add_random_link() elif num < float(2) / 3: offspring.reverse_random_link() else: offspring.delete_random_link() return offspring if __name__ == '__main__': from utility.evolutionary import GeneticAlgorithm data = uci_adult() population = BayesNetPopulation(data , 10) ga = GeneticAlgorithm(population=population) ga.run()
def generate_test_dataset(dataset_size): data = DataObserver() for i in range(dataset_size): data.append(main.uci_adult()) return data