def calculate_initial_centroids_first_run(
baskets, neighbors, no_neighbors, item_baskets, use_neighbors, num_rnd_init, verbose=False):
max_no_nbr = list()
max_no_nbr_index = 0
if use_neighbors:
for b in baskets:
no_nbr_list = no_neighbors[b]
no_nbr_tuple = (b, no_nbr_list)
no_nbr = no_nbr_list.count()
if no_nbr > max_no_nbr_index:
max_no_nbr_index = no_nbr
max_no_nbr = list()
max_no_nbr.append(no_nbr_tuple)
elif no_nbr == max_no_nbr_index:
max_no_nbr.append(no_nbr_tuple)
if max_no_nbr_index == 0 or len(max_no_nbr) == len(baskets):
# print 'rnd'
if verbose:
print datetime.datetime.now(), 'init random'
num_rnd_init = min(num_rnd_init, int(binom(len(baskets), 2)))
m0_index, m1_index = random_init(baskets, neighbors, use_neighbors, num=num_rnd_init)
else:
# print 'no nbr'
if verbose:
print datetime.datetime.now(), 'init no neighbors'
m0_index, m1_index = no_nbr_init(max_no_nbr, baskets, neighbors, use_neighbors)
return m0_index, m1_index
评论列表
文章目录