File tree 1 file changed +46
-0
lines changed
part_6-re-inforcement-learning/thompson_sampling
1 file changed +46
-0
lines changed Original file line number Diff line number Diff line change
1
+ # Importing the dataset
2
+ dataset = read.csv(' ../../data_files/Ads_CTR_Optimisation.csv' )
3
+
4
+ # Implementing Thompson Sampling
5
+ N = 10000
6
+ d = 10
7
+ ads_selected = integer()
8
+ numbers_of_rewards_1 = integer(d )
9
+ numbers_of_rewards_0 = integer(d )
10
+ total_reward = 0
11
+
12
+ for (n in 1 : N ) {
13
+ ad = 0
14
+ max_random = 0
15
+
16
+ for (i in 1 : d ) {
17
+ random_beta = rbeta(
18
+ n = 1 ,
19
+ shape1 = numbers_of_rewards_1 [i ]+ 1 ,
20
+ shape2 = numbers_of_rewards_0 [i ]+ 1
21
+ )
22
+
23
+ if (random_beta > max_random ) {
24
+ max_random = random_beta
25
+ ad = i
26
+ }
27
+ }
28
+
29
+ ads_selected = append(ads_selected , ad )
30
+ reward = dataset [n , ad ]
31
+
32
+ if (reward == 1 ) {
33
+ numbers_of_rewards_1 [ad ] = numbers_of_rewards_1 [ad ] + 1
34
+ } else if (reward == 0 ) {
35
+ numbers_of_rewards_0 [ad ] = numbers_of_rewards_0 [ad ] + 1
36
+ }
37
+
38
+ total_reward = total_reward + reward
39
+ }
40
+
41
+ # Visualising the results - Histogram
42
+ hist(ads_selected ,
43
+ col = ' blue' ,
44
+ main = ' Histogram of ads selections' ,
45
+ xlab = ' Ads' ,
46
+ ylab = ' Number of times each ad was selected' )
You can’t perform that action at this time.
0 commit comments