mathiasleys commited on
Commit
d35ddb1
โ€ข
1 Parent(s): 154ddfd

Move demo to end

Browse files
Files changed (1) hide show
  1. app.py +35 -35
app.py CHANGED
@@ -13,7 +13,7 @@ eta, a, p, D, profit, var_cost, fixed_cost = sympy.symbols("eta a p D Profit var
13
  np.random.seed(42)
14
 
15
  st.set_page_config(
16
- page_title="๐Ÿ’ธ Dynamic Pricing ๐Ÿ’ธ",
17
  page_icon="๐Ÿ’ธ",
18
  layout="centered",
19
  initial_sidebar_state="auto",
@@ -24,7 +24,7 @@ st.set_page_config(
24
  }
25
  )
26
 
27
- st.title("๐Ÿ’ธ Dynamic Pricing ๐Ÿ’ธ")
28
  st.subheader("Setting optimal prices with Bayesian stats ๐Ÿ“ˆ")
29
 
30
  # (0) Intro
@@ -102,7 +102,7 @@ curve. \nAnd you would be very right! But also very wrong as this leads us nice
102
  next issue.""")
103
 
104
  # (3) Constrained data
105
- st.header("Where are we getting this data anyways? ๐Ÿค”")
106
  st.markdown("""So far, we have assumed that we get (and keep getting) data on demand levels at
107
  different price points. \n
108
  Not only is this assumption **unrealistic**, it is also very **undesirable**""")
@@ -195,37 +195,8 @@ st.image(["assets/images/posterior_demand_sample_2.png", "assets/images/posterio
195
  st.markdown("""And finally we arrive at a price point of โ‚ฌ4.04 which is eerily close to
196
  the actual optimum of โ‚ฌ4.24""")
197
 
198
- # (5) Thompson sampling demo
199
- st.header("Demo time ๐ŸŽฎ")
200
- st.markdown("Now that we have covered the theory, you can go ahead and try it our for yourself!")
201
- st.markdown("""You will notice a few things: \n
202
- ๐Ÿ‘‰ As you increase price elasticity, the demand becomes more sensitive to price changes and thus the
203
- profit-optimizing price becomes lower (& vice versa). \n
204
- ๐Ÿ‘‰ As you decrease price elasticity, our demand observations at โ‚ฌ7.5, โ‚ฌ10 and โ‚ฌ11 become
205
- increasingly larger and increasingly more variable (as their variance is a constant fraction of the
206
- absolute value). This causes our demand posterior to become increasingly wider and thus Thompson
207
- sampling will lead to more exploration.
208
- """)
209
-
210
- thompson_sampler = ThompsonSampler()
211
- demo_button = st.checkbox(
212
- label='Ready for the Demo? ๐Ÿคฏ',
213
- help="Starts interactive Thompson sampling demo"
214
- )
215
- elasticity = st.slider(
216
- "Adjust latent elasticity",
217
- key="latent_elasticity",
218
- min_value=0.05,
219
- max_value=0.95,
220
- value=0.25,
221
- step=0.05,
222
- )
223
- while demo_button:
224
- thompson_sampler.run()
225
- time.sleep(1)
226
-
227
- # (6) Extra topics
228
- st.header("Some final remarks")
229
 
230
  st.markdown("""Because we have purposefully kept the example above quite simple, you may still be
231
  wondering what happens when added complexities show up. \n
@@ -309,4 +280,33 @@ get quite far with limited data, especially if you have an accurate prior belief
309
  likely behaves.""")
310
  st.markdown("""For reference, in our simple example where we showed a Thompson sampling update, we
311
  were already able to gain a lot of confidence in our estimates with just 10 extra demand
312
- observations.""")
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
13
  np.random.seed(42)
14
 
15
  st.set_page_config(
16
+ page_title="Dynamic Pricing",
17
  page_icon="๐Ÿ’ธ",
18
  layout="centered",
19
  initial_sidebar_state="auto",
 
24
  }
25
  )
26
 
27
+ st.title("Dynamic Pricing")
28
  st.subheader("Setting optimal prices with Bayesian stats ๐Ÿ“ˆ")
29
 
30
  # (0) Intro
 
102
  next issue.""")
103
 
104
  # (3) Constrained data
105
+ st.header("Where are we getting this data anyways? ๐Ÿ–ฅ๏ธ")
106
  st.markdown("""So far, we have assumed that we get (and keep getting) data on demand levels at
107
  different price points. \n
108
  Not only is this assumption **unrealistic**, it is also very **undesirable**""")
 
195
  st.markdown("""And finally we arrive at a price point of โ‚ฌ4.04 which is eerily close to
196
  the actual optimum of โ‚ฌ4.24""")
197
 
198
+ # (5) Extra topics
199
+ st.header("Some things to think about ๐Ÿค”")
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
200
 
201
  st.markdown("""Because we have purposefully kept the example above quite simple, you may still be
202
  wondering what happens when added complexities show up. \n
 
280
  likely behaves.""")
281
  st.markdown("""For reference, in our simple example where we showed a Thompson sampling update, we
282
  were already able to gain a lot of confidence in our estimates with just 10 extra demand
283
+ observations.""")
284
+
285
+ # (6) Thompson sampling demo
286
+ st.header("Demo time ๐ŸŽฎ")
287
+ st.markdown("Now that we have covered the theory, you can go ahead and try it our for yourself!")
288
+ st.markdown("""You will notice a few things: \n
289
+ ๐Ÿ‘‰ As you increase price elasticity, the demand becomes more sensitive to price changes and thus the
290
+ profit-optimizing price becomes lower (& vice versa). \n
291
+ ๐Ÿ‘‰ As you decrease price elasticity, our demand observations at โ‚ฌ7.5, โ‚ฌ10 and โ‚ฌ11 become
292
+ increasingly larger and increasingly more variable (as their variance is a constant fraction of the
293
+ absolute value). This causes our demand posterior to become increasingly wider and thus Thompson
294
+ sampling will lead to more exploration.
295
+ """)
296
+
297
+ thompson_sampler = ThompsonSampler()
298
+ demo_button = st.checkbox(
299
+ label='Ready for the Demo? ๐Ÿ•น๏ธ',
300
+ help="Starts interactive Thompson sampling demo"
301
+ )
302
+ elasticity = st.slider(
303
+ "Adjust latent elasticity",
304
+ key="latent_elasticity",
305
+ min_value=0.05,
306
+ max_value=0.95,
307
+ value=0.25,
308
+ step=0.05,
309
+ )
310
+ while demo_button:
311
+ thompson_sampler.run()
312
+ time.sleep(1)