def sample_with_error(label, error_distribution, null_distribution): """Return label given error probability and null distributions error_distribution must be of form {False: 1.0 - p_err, True: p_err} """ if discrete_sample(error_distribution): # to generate error properly, draw from null distribution return discrete_sample(null_distribution) else: # no error: append actual class label return label
def sample_with_error(label, error_distribution, null_distribution): """Return label given error probability and null distributions error_distribution must be of form {False: 1.0 - p_err, True: p_err} """ if discrete_sample(error_distribution): # to generate error properly, draw from null distribution return discrete_sample(null_distribution) else: # no error: append actual class label return label
def simulate_predictions(n=100, seed=None): """simulate classifier predictions for data size of n """ if seed is None: seed = random_seed() np.random.seed(seed % (2 ** 32)) probas = np.random.random(n) classes = [discrete_sample({0: (1 - p), 1: p}) for p in probas] return classes, probas
def simulate_predictions(n=100, seed=None): """simulate classifier predictions for data size of n """ if seed is None: seed = random_seed() np.random.seed(seed % (2 ** 32)) probas = np.random.random(n) classes = [discrete_sample({0: (1 - p), 1: p}) for p in probas] return classes, probas
def mutate(self, seq): """ :param seq: sequence :type seq: str :returns: mutated sequence :rtype: str """ delimiter = self.delimiter doc_list = list(intersperse(delimiter, seq)) + [delimiter] mutation_site = random.randint(0, len(doc_list) - 1) from_letter = doc_list[mutation_site] prob_dist = self.chain[from_letter] to_letter = discrete_sample(prob_dist) doc_list[mutation_site] = to_letter return ''.join(el for el in doc_list if el != delimiter)
def generate(self, start, length): """Generate a sequence according to a Markov chain""" for _ in xrange(length): prob_dist = self.chain[start] start = discrete_sample(prob_dist) yield start