#Thomson sampling

#Importing the libraries
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd

#Importing the dataset

data=pd.read_csv("Ads_CTR_Optimisation.csv")

#Implementing the thomson sampling
import random
import math
N=1000#No.of trials and we train 1000 times
d=10#No.of ads
ads_selected=[]
numbers_of_rewards_1=[0] * d
numbers_of_rewards_0=[0] * d
total_reward=0
for n in range(0,N):#for loop for no of rounds
    ad=0
    max_random=0
    for i in range(0,d):
        random_beta=random.betavariate(numbers_of_rewards_1[i] + 1,numbers_of_rewards_0[i] + 1)
        if random_beta>max_random:
            max_random=random_beta
            ad=i
    ads_selected.append(ad)
    reward=data.values[n,ad]
    if reward ==1:
        numbers_of_rewards_1[ad]=numbers_of_rewards_1[ad] + 1
    else:
        numbers_of_rewards_0[ad]=numbers_of_rewards_0[ad] + 1
    total_reward=total_reward + reward
    
#Visualising the results
plt.hist(ads_selected)
plt.title("Histogram of ads selections")
plt.xlabel('Ads')
plt.ylabel('Number of times each ad was selected')
plt.show()

