Professional Documents
Culture Documents
04 Decision Science 05 Communicate
04 Decision Science 05 Communicate
Communicate
Data Cleaning
Code organization
Multivariate Regressions
What's next?
Cost/Benefits analysis
Synthetize
Communicate
1. Why communication?
“ “Tell me about a project where your actually changed the course of action of your business because of
your data"
‘ "What is well understood will be explained clearly, and the words to say it come easily"
https://kitt.lewagon.com/karr/data-lectures.kitt/04-Decision-Science_05-Communicate.html?title=Communicate&program_id=19 1/15
12/12/2020 04-Decision-Science_05-Communicate
https://kitt.lewagon.com/karr/data-lectures.kitt/04-Decision-Science_05-Communicate.html?title=Communicate&program_id=19 2/15
12/12/2020 04-Decision-Science_05-Communicate
https://kitt.lewagon.com/karr/data-lectures.kitt/04-Decision-Science_05-Communicate.html?title=Communicate&program_id=19 3/15
12/12/2020 04-Decision-Science_05-Communicate
3. Insist on trade-offs
👉 You don't know how long it will take to code the feature
👉 You don't know the lift (increase) it can have on conversion rate
❓ How do you inform your product manager?
https://kitt.lewagon.com/karr/data-lectures.kitt/04-Decision-Science_05-Communicate.html?title=Communicate&program_id=19 4/15
12/12/2020 04-Decision-Science_05-Communicate
Out[17]:
lift benefit
0 0.01 20000.0
1 0.02 40000.0
2 0.03 60000.0
3 0.04 80000.0
costs = pd.DataFrame({'mandays':mandays,
'cost': mandays*500*3})
costs
Out[15]:
mandays cost
0 20 30000
1 30 45000
2 40 60000
3 50 75000
https://kitt.lewagon.com/karr/data-lectures.kitt/04-Decision-Science_05-Communicate.html?title=Communicate&program_id=19 5/15
12/12/2020 04-Decision-Science_05-Communicate
We can highlight results in a simple sensivity matrix and help see the trade-off:
https://kitt.lewagon.com/karr/data-lectures.kitt/04-Decision-Science_05-Communicate.html?title=Communicate&program_id=19 6/15
12/12/2020 04-Decision-Science_05-Communicate
First, we have to create the cartesian product of the two costs & benefits DataFrame
In [38]: costs['ones'] = 1
benefits['ones'] = 1
benefits
Out[38]:
lift benefit ones
0 0.01 20000.0 1
1 0.02 40000.0 1
2 0.03 60000.0 1
3 0.04 80000.0 1
https://kitt.lewagon.com/karr/data-lectures.kitt/04-Decision-Science_05-Communicate.html?title=Communicate&program_id=19 7/15
12/12/2020 04-Decision-Science_05-Communicate
Out[25]:
mandays cost lift benefit
Out[26]:
lift mandays ROI
0 0.01 20 -10000.0
1 0.02 20 10000.0
2 0.03 20 30000.0
3 0.04 20 50000.0
4 0.01 30 -25000.0
https://kitt.lewagon.com/karr/data-lectures.kitt/04-Decision-Science_05-Communicate.html?title=Communicate&program_id=19 8/15
12/12/2020 04-Decision-Science_05-Communicate
Out[20]:
mandays 20 30 40 50
lift
Out[35]:
ROI
mandays 20 30 40 50
lift
Out[36]:
ROI
mandays 20 30 40 50
lift
https://kitt.lewagon.com/karr/data-lectures.kitt/04-Decision-Science_05-Communicate.html?title=Communicate&program_id=19 9/15
12/12/2020 04-Decision-Science_05-Communicate
Write the docs (https://www.writethedocs.org/) is a community dedicated to the art and science of technical
documentation
Why good technical documentation?
Your code in 6 months = code of someone else
Your code help others
Detail your methodology, make it easy for others to review.
1
(2, 3)
{'bar': 5}
foo(*a_list, **a_dict)
1
(2, 3)
{'bar': 5}
https://kitt.lewagon.com/karr/data-lectures.kitt/04-Decision-Science_05-Communicate.html?title=Communicate&program_id=19 10/15
12/12/2020 04-Decision-Science_05-Communicate
Out[126]: 'french'
Typing hints
Recent versions of Python allow you to explicitely specify type of data needed for function input/outputs
https://kitt.lewagon.com/karr/data-lectures.kitt/04-Decision-Science_05-Communicate.html?title=Communicate&program_id=19 11/15
12/12/2020 04-Decision-Science_05-Communicate
say_hi('alice')
cost_of_reviews(pd.Series([1,1,5,4]))
Out[46]: 200
Out[50]:
https://kitt.lewagon.com/karr/data-lectures.kitt/04-Decision-Science_05-Communicate.html?title=Communicate&program_id=19 12/15
12/12/2020 04-Decision-Science_05-Communicate
In [113]: @interact
def plot_polynom(a=[0,1,2,3], b=2, add_grid=False):
x = np.arange(-10, 10, 0.1)
y = a*x**3+ b*x**2
Python decorators
def say():
print("hi!")
say = my_decorator(say)
say()
@my_decorator
def say():
print("hi!")
say()
https://kitt.lewagon.com/karr/data-lectures.kitt/04-Decision-Science_05-Communicate.html?title=Communicate&program_id=19 13/15
12/12/2020 04-Decision-Science_05-Communicate
@my_decorator is just an easier way of wrapping some nice features on top of existing methods
https://kitt.lewagon.com/karr/data-lectures.kitt/04-Decision-Science_05-Communicate.html?title=Communicate&program_id=19 14/15
12/12/2020 04-Decision-Science_05-Communicate
Bibliography
📚Thinking Fast and Slow (https://en.wikipedia.org/wiki/Thinking,_Fast_and_Slow)
📚The Pyramid Principle (https://gettingbettereveryday.org/2018/10/05/what-you-could-learn-from-barbra-mintos-
the-pyramid-principle-2009-172-pages/)
Your Turn !
🔥 Presentations tonight at 5pm!
https://kitt.lewagon.com/karr/data-lectures.kitt/04-Decision-Science_05-Communicate.html?title=Communicate&program_id=19 15/15