Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
debakarr
GitHub Repository: debakarr/machinelearning
Path: blob/master/Part 6 - Reinforcement Learning/Upper Confidence Bound/upper_confidence_bound.R
1009 views
1
# Upper Confidence Bound
2
3
# Importing the dataset
4
dataset = read.csv('Ads_CTR_Optimisation.csv')
5
6
# Implementing UCB
7
N = 10000
8
d = 10
9
ads_selected = integer(0)
10
numbers_of_selections = integer(d)
11
sums_of_rewards = integer(d)
12
total_reward = 0
13
for (n in 1:N) {
14
ad = 0
15
max_upper_bound = 0
16
for (i in 1:d) {
17
if (numbers_of_selections[i] > 0) {
18
average_reward = sums_of_rewards[i] / numbers_of_selections[i]
19
delta_i = sqrt(3/2 * log(n) / numbers_of_selections[i])
20
upper_bound = average_reward + delta_i
21
} else {
22
upper_bound = 1e400
23
}
24
if (upper_bound > max_upper_bound) {
25
max_upper_bound = upper_bound
26
ad = i
27
}
28
}
29
ads_selected = append(ads_selected, ad)
30
numbers_of_selections[ad] = numbers_of_selections[ad] + 1
31
reward = dataset[n, ad]
32
sums_of_rewards[ad] = sums_of_rewards[ad] + reward
33
total_reward = total_reward + reward
34
}
35
36
# Visualising the results
37
hist(ads_selected,
38
col = 'blue',
39
main = 'Histogram of ads selections',
40
xlab = 'Ads',
41
ylab = 'Number of times each ad was selected')
42