问题遇到的现象和发生背景
问题相关代码,请勿粘贴截图
N = 10000
numbers_of_selections = [0]*d #初始化 投放的总次数
sums_of_rewards = [0]*d
ads_selected = []
total_reward = 0
# 第一个循环,针对第n轮,第一个用户到最后一个用户,每一个广告计算以下的量
# 第二个循环是包含第一个循环
for n in range(0,N):
ad = 0
max_upper_bound = 0
for i in range(0,d):
if (numbers_of_selections[i]) > 0:
average_reward = sums_of_rewards[i] / numbers_of_selections[i]
# 在最开始的时候,这个是0的,因为还没开始
delta_i = math.sqrt(3/2*math.log(n+1) / numbers_of_selections[i])
upper_bound = average_reward + delta_i
else:
upper_bound = 1e400 # 为什么设置成很大的数字
if upper_bound.any() > max_upper_bound.any(): # 如何选择最大的置信区间
max_upper_bound = upper_bound # 替换成最大值
ad = i
ads_selected.append(ad),
reward = dataset.values[n,ad]
numbers_of_selections[ad] = numbers_of_selections[ad]+1
sums_of_rewards[ad] = sums_of_rewards + reward
total_reward = total_reward + reward
运行结果及报错内容
AttributeError: 'float' object has no attribute 'any'