def random_combinations(points_in_class):
n_cl = len(points_in_class)
max_points = 2 * n_cl # as used by by Orriols-Puig et al., 2010
all_combinations = []
for i, j in itertools.combinations(points_in_class, r = 2):
all_combinations.append((i, j))
points_i = 0
n = len(all_combinations)
for i in range(n):
point = np.random.choice(len(all_combinations), 1)[0]
yield all_combinations[point]
del all_combinations[point]
if points_i > max_points or len(all_combinations) == 0:
break
points_i = points_i + 1
评论列表
文章目录