<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="4.1.1">Jekyll</generator><link href="https://georg.io/feed.xml" rel="self" type="application/atom+xml" /><link href="https://georg.io/" rel="alternate" type="text/html" /><updated>2022-02-08T14:13:01-06:00</updated><id>https://georg.io/feed.xml</id><title type="html">georg.io</title><subtitle>My personal blog on tech and data</subtitle><entry><title type="html">The Machine Learning Toolbox</title><link href="https://georg.io/mltoolbox" rel="alternate" type="text/html" title="The Machine Learning Toolbox" /><published>2022-02-06T00:00:00-06:00</published><updated>2022-02-06T00:00:00-06:00</updated><id>https://georg.io/The_machine_learning_toolbox</id><content type="html" xml:base="https://georg.io/mltoolbox">&lt;h2 id=&quot;communities&quot;&gt;Communities&lt;/h2&gt;

&lt;h3 id=&quot;ml-collective&quot;&gt;ML Collective&lt;/h3&gt;

&lt;p&gt;The ML Collective is a nonprofit organization that connects you with other machine learning practicioners.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://mlcollective.org/&quot;&gt;Link to ML Collective&lt;/a&gt;&lt;/p&gt;

&lt;h3 id=&quot;kaggle&quot;&gt;Kaggle&lt;/h3&gt;

&lt;p&gt;The primary supervised learning machine learning competition platform&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.kaggle.com/&quot;&gt;Link to Kaggle&lt;/a&gt;&lt;/p&gt;

&lt;h2 id=&quot;concepts&quot;&gt;Concepts&lt;/h2&gt;

&lt;h3 id=&quot;degenerate-feedback-loops&quot;&gt;Degenerate feedback loops&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;Predictions influence feedback, where the feedback is used to extract labels (e.g. recommender systems that propose popular items based on how often they’re clicked),&lt;/li&gt;
  &lt;li&gt;Detect degenerate feedback loops using aggregate diversity or average coverage of long tail items,&lt;/li&gt;
  &lt;li&gt;Introduce randomization into recommendations / predictions to gather more realistic feedback (downside user experience),&lt;/li&gt;
  &lt;li&gt;Capture features of popularity (e.g. position in recommendation list) for prediction model,&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&quot;further-reading&quot;&gt;Further reading&lt;/h4&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://docs.google.com/document/d/14uX2m9q7BUn_mgnM3h6if-s-r0MZrvDb-ZHNjgA1Uyo/edit?usp=sharing&quot;&gt;Write-up by Chip Huyen&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;data-distribution-shift&quot;&gt;Data distribution shift&lt;/h3&gt;

&lt;p&gt;For our machine learning model we call the inputs X and the outouts Y.
The training data in supervised learning is a sample of the (unknown) joint distribution P(X, Y).
In machine learning we usually model P(Y|X) - i.e. the conditional probability of the output given some observed input.&lt;/p&gt;

&lt;table&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td&gt;P(X, Y) = P(X&lt;/td&gt;
      &lt;td&gt;Y) P(Y) = P(Y&lt;/td&gt;
      &lt;td&gt;X) P(X)&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;table&gt;
      &lt;tbody&gt;
        &lt;tr&gt;
          &lt;td&gt;Covariate shift: P(X) changes while P(Y&lt;/td&gt;
          &lt;td&gt;X) is unchanged (distribution of the input changes but the distribution of the output given the input is unchanged)&lt;/td&gt;
        &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;table&gt;
      &lt;tbody&gt;
        &lt;tr&gt;
          &lt;td&gt;Label shift: P(Y) changes while P(X&lt;/td&gt;
          &lt;td&gt;Y) is unchanged&lt;/td&gt;
        &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;table&gt;
      &lt;tbody&gt;
        &lt;tr&gt;
          &lt;td&gt;Concept drift: P(Y&lt;/td&gt;
          &lt;td&gt;X) changes while P(X) is unchanged&lt;/td&gt;
        &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&quot;further-reading-1&quot;&gt;Further reading&lt;/h4&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://docs.google.com/document/d/14uX2m9q7BUn_mgnM3h6if-s-r0MZrvDb-ZHNjgA1Uyo/edit?usp=sharing&quot;&gt;Write-up by Chip Huyen&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;frameworks&quot;&gt;Frameworks&lt;/h2&gt;

&lt;h3 id=&quot;pandas&quot;&gt;Pandas&lt;/h3&gt;

&lt;p&gt;Pandas is the primary data manipulation framework for data scientists in Python.
It entails and operates on two primary data models: Series, one-dimensional data / table columns, and dataframes, two-dimensional data akin to tables.&lt;/p&gt;

&lt;h4 id=&quot;when-not-to-use-it&quot;&gt;When (not) to use it&lt;/h4&gt;

&lt;ul&gt;
  &lt;li&gt;Use when the data you’re manipulating fit in memory&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&quot;further-reading-2&quot;&gt;Further reading&lt;/h4&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://pandas.pydata.org/&quot;&gt;Link to pandas documentation&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://wesmckinney.com/book/&quot;&gt;Python for Data Analysis, 3rd edition&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</content><author><name>Georg Walther</name></author><category term="machine learning" /><category term="data science" /><summary type="html">Communities</summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://georg.io/images/code_and_glasses.jpg" /><media:content medium="image" url="https://georg.io/images/code_and_glasses.jpg" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Causal inference for decision-making in growth hacking and upselling in Python</title><link href="https://georg.io/2021/08/18/Causal_inference_for_decision_making_in_growth_hacking_and_upselling_in_Python" rel="alternate" type="text/html" title="Causal inference for decision-making in growth hacking and upselling in Python" /><published>2021-08-18T00:00:00-05:00</published><updated>2021-08-18T00:00:00-05:00</updated><id>https://georg.io/2021/08/18/Causal_inference_for_decision_making_in_growth_hacking_and_upselling_in_Python</id><content type="html" xml:base="https://georg.io/2021/08/18/Causal_inference_for_decision_making_in_growth_hacking_and_upselling_in_Python">&lt;!--
#################################################
### THIS FILE WAS AUTOGENERATED! DO NOT EDIT! ###
#################################################
# file to edit: _notebooks/2021-08-18-Causal_inference_for_decision_making_in_growth_hacking_and_upselling_in_Python.ipynb
--&gt;

&lt;div class=&quot;container&quot; id=&quot;notebook-container&quot;&gt;
        
&lt;div class=&quot;cell border-box-sizing text_cell rendered&quot;&gt;&lt;div class=&quot;inner_cell&quot;&gt;
&lt;div class=&quot;text_cell_render border-box-sizing rendered_html&quot;&gt;
&lt;h2 id=&quot;Introduction&quot;&gt;Introduction&lt;a class=&quot;anchor-link&quot; href=&quot;#Introduction&quot;&gt; &lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Wow, growth hacking &lt;em&gt;and&lt;/em&gt; upselling all in the same article? Also Python.&lt;/p&gt;
&lt;p&gt;Okay, let's start at the beginning. Imagine the following scenario: You're responsible for increasing the amount of money users spend on your e-commerce platform.&lt;/p&gt;
&lt;p&gt;You and your team come up with different measures you could implement to achieve your goal. Two of these measures could be:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Provide a discount on your best-selling items,&lt;/li&gt;
&lt;li&gt;Implement a rewards program that incentivices repeat purchases.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Both of these measures are fairly complex with each incurring a certain, probably known, amount of cost and an unknown effect on your customers' spending behaviour.&lt;/p&gt;
&lt;p&gt;To decide which of these two possible measures is worth both the effort and incurred cost you need to estimate their effect on customer spend.&lt;/p&gt;
&lt;p&gt;A natural way of estimating this effect is computing the following:&lt;/p&gt;
&lt;p&gt;$\textrm{avg}(\textrm{spend} | \textrm{treatment} = 1) - \textrm{avg}(\textrm{spend} | \textrm{treatment} = 0) = \textrm{ATE}$.&lt;/p&gt;
&lt;p&gt;Essentially you would compute the average spend of users who received the treatment (received a discount or signed up for rewards) and subtract from that the average spend of users who didn't receive the treatment.&lt;/p&gt;
&lt;p&gt;Without discussing the details of the underlying potential outcomes framework, the above expression is called the average treatment effect (ATE).&lt;/p&gt;
&lt;h2 id=&quot;Let's-estimate-the-average-treatment-effect-and-make-a-decision!&quot;&gt;Let's estimate the average treatment effect and make a decision!&lt;a class=&quot;anchor-link&quot; href=&quot;#Let's-estimate-the-average-treatment-effect-and-make-a-decision!&quot;&gt; &lt;/a&gt;&lt;/h2&gt;&lt;p&gt;So now we'll just analyze our e-commerce data of treated and untreated customers and compute the average treatment effect (ATE) for each proposed measure, right? Right?&lt;/p&gt;
&lt;p&gt;Before you rush ahead with your ATE computations - now is a good time to take a step back and contemplate how your data was generated in the first place(data-generating process).&lt;/p&gt;
&lt;h2 id=&quot;References-and-further-material-...&quot;&gt;References and further material ...&lt;a class=&quot;anchor-link&quot; href=&quot;#References-and-further-material-...&quot;&gt; &lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Before we continue: My example here is based on a tutorial by the authors of the excellent DoWhy library. You can find the original tutorial here:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/microsoft/dowhy/blob/master/docs/source/example_notebooks/dowhy_example_effect_of_memberrewards_program.ipynb&quot;&gt;https://github.com/microsoft/dowhy/blob/master/docs/source/example_notebooks/dowhy_example_effect_of_memberrewards_program.ipynb&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;And more on DoWhy here: &lt;a href=&quot;https://microsoft.github.io/dowhy/&quot;&gt;https://microsoft.github.io/dowhy/&lt;/a&gt;&lt;/p&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;cell border-box-sizing text_cell rendered&quot;&gt;&lt;div class=&quot;inner_cell&quot;&gt;
&lt;div class=&quot;text_cell_render border-box-sizing rendered_html&quot;&gt;
&lt;h2 id=&quot;Install-and-load-libraries&quot;&gt;Install and load libraries&lt;a class=&quot;anchor-link&quot; href=&quot;#Install-and-load-libraries&quot;&gt; &lt;/a&gt;&lt;/h2&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;
&lt;div class=&quot;input&quot;&gt;

&lt;div class=&quot;inner_cell&quot;&gt;
    &lt;div class=&quot;input_area&quot;&gt;
&lt;div class=&quot; highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;!&lt;/span&gt;pip install dowhy --quiet
&lt;/pre&gt;&lt;/div&gt;

    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
    

    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;
&lt;div class=&quot;input&quot;&gt;

&lt;div class=&quot;inner_cell&quot;&gt;
    &lt;div class=&quot;input_area&quot;&gt;
&lt;div class=&quot; highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;kn&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;random&lt;/span&gt;

&lt;span class=&quot;kn&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;pandas&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;as&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;pd&lt;/span&gt;
&lt;span class=&quot;kn&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;numpy&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;as&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;np&lt;/span&gt;

&lt;span class=&quot;n&quot;&gt;np&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;random&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;seed&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;42&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;random&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;seed&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;42&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
    

&lt;div class=&quot;cell border-box-sizing text_cell rendered&quot;&gt;&lt;div class=&quot;inner_cell&quot;&gt;
&lt;div class=&quot;text_cell_render border-box-sizing rendered_html&quot;&gt;
&lt;h2 id=&quot;Randomized-controlled-trial-/-experimental-data&quot;&gt;Randomized controlled trial / experimental data&lt;a class=&quot;anchor-link&quot; href=&quot;#Randomized-controlled-trial-/-experimental-data&quot;&gt; &lt;/a&gt;&lt;/h2&gt;&lt;p&gt;So where were we ... ah right! Where does our e-commerece data come from?&lt;/p&gt;
&lt;p&gt;Since we don't actually run an e-commerce operation here we will have to simulate our data (remember: these ideas are based on the above DoWhy tutorial).&lt;/p&gt;
&lt;p&gt;Imagine we observe the monthly spend of each of our 10,000 users over the course of a year. Each user will spend with a certain distribution (here, a Poisson distribution) and there are both high and low spenders with different mean spends.&lt;/p&gt;
&lt;p&gt;Over the course of the year, each user can sign up to our rewards program in any month and once they have signed up their spend goes up by 50% relative to what they would've spent without signing up.&lt;/p&gt;
&lt;p&gt;So far so mundane: Different customers show different spending behaviour and signing up to our rewards program increases their spend.&lt;/p&gt;
&lt;p&gt;Now the big question is: How are treatment assignment (rewards program signup) and outcome (spending behaviour) related?&lt;/p&gt;
&lt;p&gt;If treatment and outcome, interpreted as random variables, are independent of one another then according to the potential outcome framework we can compute the ATE as easily as shown above:&lt;/p&gt;
&lt;p&gt;$\textrm{ATE} = \textrm{avg}(\textrm{spend} | \textrm{treatment} = 1) - \textrm{avg}(\textrm{spend} | \textrm{treatment} = 0)$&lt;/p&gt;
&lt;p&gt;When are treatment and outcome independent? The gold standard for achieving their independence in a data set is the randomized controlled trial (RCT).&lt;/p&gt;
&lt;p&gt;In our scenario what an RCT would look like is randomly signing up our users to our rewards program - indepndent of their spending behaviour or any other characteristic.&lt;/p&gt;
&lt;p&gt;So we would go through our list of 10,000 users and flip a coin for each of them, sign them up to our program in a random month of the year based on our coin, and send them on their merry way to continue buying stuff in our online shop.&lt;/p&gt;
&lt;p&gt;Let's put all of this into a bit of code that simulates the spending behaviour of our users according to our thought experiment:&lt;/p&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;
&lt;div class=&quot;input&quot;&gt;

&lt;div class=&quot;inner_cell&quot;&gt;
    &lt;div class=&quot;input_area&quot;&gt;
&lt;div class=&quot; highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;num_users&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;10000&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;num_months&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;12&lt;/span&gt;

&lt;span class=&quot;n&quot;&gt;df&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;pd&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;DataFrame&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;({&lt;/span&gt;
    &lt;span class=&quot;s1&quot;&gt;&amp;#39;user_id&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;np&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;repeat&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;np&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;arange&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;num_users&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;),&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;num_months&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;),&lt;/span&gt;
    &lt;span class=&quot;s1&quot;&gt;&amp;#39;month&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;np&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;tile&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;np&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;arange&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;num_months&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;+&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;),&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;num_users&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;),&lt;/span&gt; &lt;span class=&quot;c1&quot;&gt;# months are from 1 to 12&lt;/span&gt;
    &lt;span class=&quot;s1&quot;&gt;&amp;#39;high_spender&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;np&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;repeat&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;np&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;random&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;randint&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;size&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;num_users&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;),&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;num_months&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;),&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;})&lt;/span&gt;

&lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;spend&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kc&quot;&gt;None&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;loc&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;high_spender&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&amp;#39;spend&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;np&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;random&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;poisson&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;250&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;loc&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;high_spender&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;shape&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;])&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;loc&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;high_spender&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&amp;#39;spend&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;np&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;random&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;poisson&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;750&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;loc&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;high_spender&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;shape&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;])&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&amp;quot;spend&amp;quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&amp;quot;spend&amp;quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&amp;quot;month&amp;quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;*&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;10&lt;/span&gt;

&lt;span class=&quot;n&quot;&gt;signup_months&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;np&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;random&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;choice&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;np&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;arange&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;num_months&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;),&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;num_users&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;*&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;np&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;random&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;randint&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;size&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;num_users&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;  &lt;span class=&quot;c1&quot;&gt;# signup_months == 0 means customer did not sign up&lt;/span&gt;

&lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;signup_month&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;np&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;repeat&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;signup_months&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;num_months&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;

&lt;span class=&quot;c1&quot;&gt;# A customer is in the treatment group if and only if they signed up&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&amp;quot;treatment&amp;quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&amp;quot;signup_month&amp;quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;

&lt;span class=&quot;c1&quot;&gt;# Simulating a simple treatment effect of 50%&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;after_signup&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&amp;quot;signup_month&amp;quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&amp;quot;month&amp;quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;])&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;amp;&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&amp;quot;treatment&amp;quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;])&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;loc&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;after_signup&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&amp;quot;spend&amp;quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;after_signup&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;][&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&amp;quot;spend&amp;quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;*&lt;/span&gt; &lt;span class=&quot;mf&quot;&gt;1.5&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
    

&lt;div class=&quot;cell border-box-sizing text_cell rendered&quot;&gt;&lt;div class=&quot;inner_cell&quot;&gt;
&lt;div class=&quot;text_cell_render border-box-sizing rendered_html&quot;&gt;
&lt;p&gt;Let's look at user &lt;code&gt;0&lt;/code&gt; and their treatment assignment as well as spend (since we're sampling random variables here you'll see something different from me):&lt;/p&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;
&lt;div class=&quot;input&quot;&gt;

&lt;div class=&quot;inner_cell&quot;&gt;
    &lt;div class=&quot;input_area&quot;&gt;
&lt;div class=&quot; highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;loc&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;user_id&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;div class=&quot;output_wrapper&quot;&gt;
&lt;div class=&quot;output&quot;&gt;

&lt;div class=&quot;output_area&quot;&gt;


&lt;div class=&quot;output_html rendered_html output_subarea output_execute_result&quot;&gt;
&lt;div&gt;
&lt;style scoped=&quot;&quot;&gt;
    .dataframe tbody tr th:only-of-type {
        vertical-align: middle;
    }

    .dataframe tbody tr th {
        vertical-align: top;
    }

    .dataframe thead th {
        text-align: right;
    }
&lt;/style&gt;
&lt;table border=&quot;1&quot; class=&quot;dataframe&quot;&gt;
  &lt;thead&gt;
    &lt;tr style=&quot;text-align: right;&quot;&gt;
      &lt;th&gt;&lt;/th&gt;
      &lt;th&gt;user_id&lt;/th&gt;
      &lt;th&gt;month&lt;/th&gt;
      &lt;th&gt;high_spender&lt;/th&gt;
      &lt;th&gt;spend&lt;/th&gt;
      &lt;th&gt;signup_month&lt;/th&gt;
      &lt;th&gt;treatment&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;th&gt;0&lt;/th&gt;
      &lt;td&gt;0&lt;/td&gt;
      &lt;td&gt;1&lt;/td&gt;
      &lt;td&gt;0&lt;/td&gt;
      &lt;td&gt;235&lt;/td&gt;
      &lt;td&gt;0&lt;/td&gt;
      &lt;td&gt;False&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;1&lt;/th&gt;
      &lt;td&gt;0&lt;/td&gt;
      &lt;td&gt;2&lt;/td&gt;
      &lt;td&gt;0&lt;/td&gt;
      &lt;td&gt;249&lt;/td&gt;
      &lt;td&gt;0&lt;/td&gt;
      &lt;td&gt;False&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;2&lt;/th&gt;
      &lt;td&gt;0&lt;/td&gt;
      &lt;td&gt;3&lt;/td&gt;
      &lt;td&gt;0&lt;/td&gt;
      &lt;td&gt;240&lt;/td&gt;
      &lt;td&gt;0&lt;/td&gt;
      &lt;td&gt;False&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;3&lt;/th&gt;
      &lt;td&gt;0&lt;/td&gt;
      &lt;td&gt;4&lt;/td&gt;
      &lt;td&gt;0&lt;/td&gt;
      &lt;td&gt;224&lt;/td&gt;
      &lt;td&gt;0&lt;/td&gt;
      &lt;td&gt;False&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;4&lt;/th&gt;
      &lt;td&gt;0&lt;/td&gt;
      &lt;td&gt;5&lt;/td&gt;
      &lt;td&gt;0&lt;/td&gt;
      &lt;td&gt;184&lt;/td&gt;
      &lt;td&gt;0&lt;/td&gt;
      &lt;td&gt;False&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;5&lt;/th&gt;
      &lt;td&gt;0&lt;/td&gt;
      &lt;td&gt;6&lt;/td&gt;
      &lt;td&gt;0&lt;/td&gt;
      &lt;td&gt;172&lt;/td&gt;
      &lt;td&gt;0&lt;/td&gt;
      &lt;td&gt;False&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;6&lt;/th&gt;
      &lt;td&gt;0&lt;/td&gt;
      &lt;td&gt;7&lt;/td&gt;
      &lt;td&gt;0&lt;/td&gt;
      &lt;td&gt;182&lt;/td&gt;
      &lt;td&gt;0&lt;/td&gt;
      &lt;td&gt;False&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;7&lt;/th&gt;
      &lt;td&gt;0&lt;/td&gt;
      &lt;td&gt;8&lt;/td&gt;
      &lt;td&gt;0&lt;/td&gt;
      &lt;td&gt;155&lt;/td&gt;
      &lt;td&gt;0&lt;/td&gt;
      &lt;td&gt;False&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;8&lt;/th&gt;
      &lt;td&gt;0&lt;/td&gt;
      &lt;td&gt;9&lt;/td&gt;
      &lt;td&gt;0&lt;/td&gt;
      &lt;td&gt;120&lt;/td&gt;
      &lt;td&gt;0&lt;/td&gt;
      &lt;td&gt;False&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;9&lt;/th&gt;
      &lt;td&gt;0&lt;/td&gt;
      &lt;td&gt;10&lt;/td&gt;
      &lt;td&gt;0&lt;/td&gt;
      &lt;td&gt;153&lt;/td&gt;
      &lt;td&gt;0&lt;/td&gt;
      &lt;td&gt;False&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;10&lt;/th&gt;
      &lt;td&gt;0&lt;/td&gt;
      &lt;td&gt;11&lt;/td&gt;
      &lt;td&gt;0&lt;/td&gt;
      &lt;td&gt;148&lt;/td&gt;
      &lt;td&gt;0&lt;/td&gt;
      &lt;td&gt;False&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;11&lt;/th&gt;
      &lt;td&gt;0&lt;/td&gt;
      &lt;td&gt;12&lt;/td&gt;
      &lt;td&gt;0&lt;/td&gt;
      &lt;td&gt;159&lt;/td&gt;
      &lt;td&gt;0&lt;/td&gt;
      &lt;td&gt;False&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
    

&lt;div class=&quot;cell border-box-sizing text_cell rendered&quot;&gt;&lt;div class=&quot;inner_cell&quot;&gt;
&lt;div class=&quot;text_cell_render border-box-sizing rendered_html&quot;&gt;
&lt;h2 id=&quot;Average-treatment-effect-on-post-signup-spend-for-experimental-data&quot;&gt;Average treatment effect on post-signup spend for experimental data&lt;a class=&quot;anchor-link&quot; href=&quot;#Average-treatment-effect-on-post-signup-spend-for-experimental-data&quot;&gt; &lt;/a&gt;&lt;/h2&gt;&lt;p&gt;The effect we're interested in is the impact of rewards signup on spending behaviour - i.e. the effect on post-signup spend.&lt;/p&gt;
&lt;p&gt;Since customers can sign up any month of the year, we'll choose one month at random and compute the effect with respect to that one month.&lt;/p&gt;
&lt;p&gt;So let's create a new table from our time series where we collect post-signup spend for those customers that signed up in &lt;code&gt;month = 6&lt;/code&gt; alongside the spend of customers who never signed up.&lt;/p&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;
&lt;div class=&quot;input&quot;&gt;

&lt;div class=&quot;inner_cell&quot;&gt;
    &lt;div class=&quot;input_area&quot;&gt;
&lt;div class=&quot; highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;month&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;6&lt;/span&gt;

&lt;span class=&quot;n&quot;&gt;post_signup_spend&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;signup_month&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;isin&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;([&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;month&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;])]&lt;/span&gt;
    &lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;groupby&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;([&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&amp;quot;user_id&amp;quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&amp;quot;signup_month&amp;quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&amp;quot;treatment&amp;quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;])&lt;/span&gt;
    &lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;apply&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;
        &lt;span class=&quot;k&quot;&gt;lambda&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;x&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;pd&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;Series&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;
            &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
                &lt;span class=&quot;s2&quot;&gt;&amp;quot;post_spend&amp;quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;x&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;loc&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;x&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;month&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;month&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&amp;quot;spend&amp;quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;mean&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(),&lt;/span&gt;
            &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
        &lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
    &lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
    &lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;reset_index&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;nb&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;post_signup_spend&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;div class=&quot;output_wrapper&quot;&gt;
&lt;div class=&quot;output&quot;&gt;

&lt;div class=&quot;output_area&quot;&gt;

&lt;div class=&quot;output_subarea output_stream output_stdout output_text&quot;&gt;
&lt;pre&gt;      user_id  signup_month  treatment  post_spend
0           0             0      False  152.833333
1           3             0      False  162.166667
2           4             0      False  146.333333
3           6             0      False  153.666667
4           7             6       True  240.750000
...       ...           ...        ...         ...
5451     9990             0      False  629.833333
5452     9993             0      False  674.500000
5453     9994             0      False  681.000000
5454     9995             0      False  641.333333
5455     9998             0      False  658.833333

[5456 rows x 4 columns]
&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
    

&lt;div class=&quot;cell border-box-sizing text_cell rendered&quot;&gt;&lt;div class=&quot;inner_cell&quot;&gt;
&lt;div class=&quot;text_cell_render border-box-sizing rendered_html&quot;&gt;
&lt;p&gt;To get the average treatment effect (ATE) of our rewards signup treatment we now compute the average post-signup spend of the customers who signed up and subtract from that the average spend of users who didn't sign up:&lt;/p&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;
&lt;div class=&quot;input&quot;&gt;

&lt;div class=&quot;inner_cell&quot;&gt;
    &lt;div class=&quot;input_area&quot;&gt;
&lt;div class=&quot; highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;post_spend&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;post_signup_spend&lt;/span&gt;\
  &lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;groupby&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;treatment&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;\
  &lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;agg&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;({&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;post_spend&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&amp;#39;mean&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;})&lt;/span&gt;

&lt;span class=&quot;n&quot;&gt;post_spend&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;div class=&quot;output_wrapper&quot;&gt;
&lt;div class=&quot;output&quot;&gt;

&lt;div class=&quot;output_area&quot;&gt;


&lt;div class=&quot;output_html rendered_html output_subarea output_execute_result&quot;&gt;
&lt;div&gt;
&lt;style scoped=&quot;&quot;&gt;
    .dataframe tbody tr th:only-of-type {
        vertical-align: middle;
    }

    .dataframe tbody tr th {
        vertical-align: top;
    }

    .dataframe thead th {
        text-align: right;
    }
&lt;/style&gt;
&lt;table border=&quot;1&quot; class=&quot;dataframe&quot;&gt;
  &lt;thead&gt;
    &lt;tr style=&quot;text-align: right;&quot;&gt;
      &lt;th&gt;&lt;/th&gt;
      &lt;th&gt;post_spend&lt;/th&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;treatment&lt;/th&gt;
      &lt;th&gt;&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;th&gt;False&lt;/th&gt;
      &lt;td&gt;403.512239&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;True&lt;/th&gt;
      &lt;td&gt;610.140371&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
    

&lt;div class=&quot;cell border-box-sizing text_cell rendered&quot;&gt;&lt;div class=&quot;inner_cell&quot;&gt;
&lt;div class=&quot;text_cell_render border-box-sizing rendered_html&quot;&gt;
&lt;p&gt;So the ATE of rewards signup on post-signup spend is:&lt;/p&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;
&lt;div class=&quot;input&quot;&gt;

&lt;div class=&quot;inner_cell&quot;&gt;
    &lt;div class=&quot;input_area&quot;&gt;
&lt;div class=&quot; highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;post_spend&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;loc&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;kc&quot;&gt;True&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&amp;#39;post_spend&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;post_spend&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;loc&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;kc&quot;&gt;False&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&amp;#39;post_spend&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;div class=&quot;output_wrapper&quot;&gt;
&lt;div class=&quot;output&quot;&gt;

&lt;div class=&quot;output_area&quot;&gt;



&lt;div class=&quot;output_text output_subarea output_execute_result&quot;&gt;
&lt;pre&gt;206.62813242372852&lt;/pre&gt;
&lt;/div&gt;

&lt;/div&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
    

&lt;div class=&quot;cell border-box-sizing text_cell rendered&quot;&gt;&lt;div class=&quot;inner_cell&quot;&gt;
&lt;div class=&quot;text_cell_render border-box-sizing rendered_html&quot;&gt;
&lt;p&gt;Since we simulated the treatment effect ourselves (50% post-signup spend increase) let's see if we can recover this effect from our data:&lt;/p&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;
&lt;div class=&quot;input&quot;&gt;

&lt;div class=&quot;inner_cell&quot;&gt;
    &lt;div class=&quot;input_area&quot;&gt;
&lt;div class=&quot; highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;post_spend&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;loc&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;kc&quot;&gt;True&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&amp;#39;post_spend&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;/&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;post_spend&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;loc&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;kc&quot;&gt;False&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&amp;#39;post_spend&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;div class=&quot;output_wrapper&quot;&gt;
&lt;div class=&quot;output&quot;&gt;

&lt;div class=&quot;output_area&quot;&gt;



&lt;div class=&quot;output_text output_subarea output_execute_result&quot;&gt;
&lt;pre&gt;1.5120740154875112&lt;/pre&gt;
&lt;/div&gt;

&lt;/div&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
    

&lt;div class=&quot;cell border-box-sizing text_cell rendered&quot;&gt;&lt;div class=&quot;inner_cell&quot;&gt;
&lt;div class=&quot;text_cell_render border-box-sizing rendered_html&quot;&gt;
&lt;p&gt;The post-signup spend for treated customers is roughly 50% greater than the spend for untreated customers - exactly the treatment effect we simulated!&lt;/p&gt;
&lt;p&gt;Remember, however, that we are dealing with clean experimental data from a randomized controlled trial (RCT) here! The potential outcome framework tells us that for data from an RCT the simple ATE formula we used here yields the correct treatment effect due to independence of treatment assignment and outcome.&lt;/p&gt;
&lt;p&gt;So the fact that we recovered the actual (simulated) treatment effect is nice to see but not surprising.&lt;/p&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;cell border-box-sizing text_cell rendered&quot;&gt;&lt;div class=&quot;inner_cell&quot;&gt;
&lt;div class=&quot;text_cell_render border-box-sizing rendered_html&quot;&gt;
&lt;h2 id=&quot;The-issue-with-randomized-controlled-trials-and-observational-data&quot;&gt;The issue with randomized controlled trials and observational data&lt;a class=&quot;anchor-link&quot; href=&quot;#The-issue-with-randomized-controlled-trials-and-observational-data&quot;&gt; &lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Our above thought experiment where we randomly assigned our customers to our rewards program isn't very realistic.&lt;/p&gt;
&lt;p&gt;Randomly signing up paying customers to rewards programs without their consent may upset some and may not even be permissible. The same issue with randomized treatment assignment pops up everywhere - clean randomized controlled trials are oftentimes too expensive, infeasible to implement, unethical, or not permitted.&lt;/p&gt;
&lt;p&gt;But since we still need to experiment with our shop to drive spending behaviour we'll still go ahead and implement our rewards program. Only that this time we'll place a regular signup page in our shop where our customers can decide for themselves if they want to sign up or not.&lt;/p&gt;
&lt;p&gt;Activating our signup page and simply observing how users and their spend behaves gives us &lt;strong&gt;observational data&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;We usually call &quot;observational data&quot; just &quot;data&quot; without giving much thought to where they came from. I mean we've all dealt with lots of different kinds of data (marketing data, R&amp;amp;D measurements, HR data, etc.) and all these data were simply &quot;observed&quot; and didn't come out of a carefully set up experiment.&lt;/p&gt;
&lt;p&gt;Simulating our observational data we've got the same 10,000 customers over a span of a year. We still have the same high and low spenders.&lt;/p&gt;
&lt;p&gt;Only that now our high spenders are far more likely to sign up to our rewards program than our low spenders. My reasoning for this is that customers who spend more are also more likely to show greater brand loyalty towards us and our rewards program. Further, they visit our shop more frequently hence are more likely to notice our new rewards program and the signup page. We could also add this behaviour as random variables to our simulation below but just take a shortcut and give low spenders a 5% chance of signing up and high spenders a 95% chance.&lt;/p&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;
&lt;div class=&quot;input&quot;&gt;

&lt;div class=&quot;inner_cell&quot;&gt;
    &lt;div class=&quot;input_area&quot;&gt;
&lt;div class=&quot; highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;num_users&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;10000&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;num_months&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;12&lt;/span&gt;

&lt;span class=&quot;n&quot;&gt;df&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;pd&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;DataFrame&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;({&lt;/span&gt;
    &lt;span class=&quot;s1&quot;&gt;&amp;#39;user_id&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;np&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;repeat&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;np&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;arange&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;num_users&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;),&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;num_months&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;),&lt;/span&gt;
    &lt;span class=&quot;s1&quot;&gt;&amp;#39;month&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;np&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;tile&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;np&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;arange&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;num_months&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;+&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;),&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;num_users&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;),&lt;/span&gt; &lt;span class=&quot;c1&quot;&gt;# months are from 1 to 12&lt;/span&gt;
    &lt;span class=&quot;s1&quot;&gt;&amp;#39;high_spender&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;np&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;repeat&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;np&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;random&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;randint&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;size&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;num_users&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;),&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;num_months&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;),&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;})&lt;/span&gt;

&lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;spend&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kc&quot;&gt;None&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;loc&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;high_spender&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&amp;#39;spend&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;np&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;random&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;poisson&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;250&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;loc&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;high_spender&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;shape&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;])&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;loc&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;high_spender&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&amp;#39;spend&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;np&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;random&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;poisson&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;750&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;loc&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;high_spender&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;shape&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;])&lt;/span&gt;

&lt;span class=&quot;n&quot;&gt;signup_months&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[[&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;user_id&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&amp;#39;high_spender&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]]&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;drop_duplicates&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;copy&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;signup_months&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;signup_month&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kc&quot;&gt;None&lt;/span&gt;

&lt;span class=&quot;n&quot;&gt;signup_months&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;loc&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;signup_months&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;high_spender&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&amp;#39;signup_month&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;np&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;random&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;choice&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;np&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;arange&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;num_months&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;),&lt;/span&gt;
    &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;signup_months&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;high_spender&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;sum&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;*&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;np&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;random&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;binomial&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;05&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;size&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;signup_months&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;high_spender&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;sum&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;())&lt;/span&gt;

&lt;span class=&quot;n&quot;&gt;signup_months&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;loc&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;signup_months&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;high_spender&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&amp;#39;signup_month&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;np&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;random&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;choice&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;np&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;arange&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;num_months&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;),&lt;/span&gt;
    &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;signup_months&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;high_spender&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;sum&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;*&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;np&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;random&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;binomial&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;95&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;size&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;signup_months&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;high_spender&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;sum&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;())&lt;/span&gt;

&lt;span class=&quot;n&quot;&gt;df&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;merge&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;signup_months&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;

&lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&amp;quot;treatment&amp;quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&amp;quot;signup_month&amp;quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;

&lt;span class=&quot;n&quot;&gt;after_signup&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&amp;quot;signup_month&amp;quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&amp;quot;month&amp;quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;])&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;amp;&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&amp;quot;treatment&amp;quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;])&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;loc&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;after_signup&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&amp;quot;spend&amp;quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;after_signup&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;][&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&amp;quot;spend&amp;quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;*&lt;/span&gt; &lt;span class=&quot;mf&quot;&gt;1.5&lt;/span&gt;

&lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;div class=&quot;output_wrapper&quot;&gt;
&lt;div class=&quot;output&quot;&gt;

&lt;div class=&quot;output_area&quot;&gt;


&lt;div class=&quot;output_html rendered_html output_subarea output_execute_result&quot;&gt;
&lt;div&gt;
&lt;style scoped=&quot;&quot;&gt;
    .dataframe tbody tr th:only-of-type {
        vertical-align: middle;
    }

    .dataframe tbody tr th {
        vertical-align: top;
    }

    .dataframe thead th {
        text-align: right;
    }
&lt;/style&gt;
&lt;table border=&quot;1&quot; class=&quot;dataframe&quot;&gt;
  &lt;thead&gt;
    &lt;tr style=&quot;text-align: right;&quot;&gt;
      &lt;th&gt;&lt;/th&gt;
      &lt;th&gt;user_id&lt;/th&gt;
      &lt;th&gt;month&lt;/th&gt;
      &lt;th&gt;high_spender&lt;/th&gt;
      &lt;th&gt;spend&lt;/th&gt;
      &lt;th&gt;signup_month&lt;/th&gt;
      &lt;th&gt;treatment&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;th&gt;0&lt;/th&gt;
      &lt;td&gt;0&lt;/td&gt;
      &lt;td&gt;1&lt;/td&gt;
      &lt;td&gt;1&lt;/td&gt;
      &lt;td&gt;778&lt;/td&gt;
      &lt;td&gt;11&lt;/td&gt;
      &lt;td&gt;True&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;1&lt;/th&gt;
      &lt;td&gt;0&lt;/td&gt;
      &lt;td&gt;2&lt;/td&gt;
      &lt;td&gt;1&lt;/td&gt;
      &lt;td&gt;726&lt;/td&gt;
      &lt;td&gt;11&lt;/td&gt;
      &lt;td&gt;True&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;2&lt;/th&gt;
      &lt;td&gt;0&lt;/td&gt;
      &lt;td&gt;3&lt;/td&gt;
      &lt;td&gt;1&lt;/td&gt;
      &lt;td&gt;704&lt;/td&gt;
      &lt;td&gt;11&lt;/td&gt;
      &lt;td&gt;True&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;3&lt;/th&gt;
      &lt;td&gt;0&lt;/td&gt;
      &lt;td&gt;4&lt;/td&gt;
      &lt;td&gt;1&lt;/td&gt;
      &lt;td&gt;723&lt;/td&gt;
      &lt;td&gt;11&lt;/td&gt;
      &lt;td&gt;True&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;4&lt;/th&gt;
      &lt;td&gt;0&lt;/td&gt;
      &lt;td&gt;5&lt;/td&gt;
      &lt;td&gt;1&lt;/td&gt;
      &lt;td&gt;718&lt;/td&gt;
      &lt;td&gt;11&lt;/td&gt;
      &lt;td&gt;True&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;...&lt;/th&gt;
      &lt;td&gt;...&lt;/td&gt;
      &lt;td&gt;...&lt;/td&gt;
      &lt;td&gt;...&lt;/td&gt;
      &lt;td&gt;...&lt;/td&gt;
      &lt;td&gt;...&lt;/td&gt;
      &lt;td&gt;...&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;119995&lt;/th&gt;
      &lt;td&gt;9999&lt;/td&gt;
      &lt;td&gt;8&lt;/td&gt;
      &lt;td&gt;1&lt;/td&gt;
      &lt;td&gt;745&lt;/td&gt;
      &lt;td&gt;0&lt;/td&gt;
      &lt;td&gt;False&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;119996&lt;/th&gt;
      &lt;td&gt;9999&lt;/td&gt;
      &lt;td&gt;9&lt;/td&gt;
      &lt;td&gt;1&lt;/td&gt;
      &lt;td&gt;777&lt;/td&gt;
      &lt;td&gt;0&lt;/td&gt;
      &lt;td&gt;False&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;119997&lt;/th&gt;
      &lt;td&gt;9999&lt;/td&gt;
      &lt;td&gt;10&lt;/td&gt;
      &lt;td&gt;1&lt;/td&gt;
      &lt;td&gt;776&lt;/td&gt;
      &lt;td&gt;0&lt;/td&gt;
      &lt;td&gt;False&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;119998&lt;/th&gt;
      &lt;td&gt;9999&lt;/td&gt;
      &lt;td&gt;11&lt;/td&gt;
      &lt;td&gt;1&lt;/td&gt;
      &lt;td&gt;744&lt;/td&gt;
      &lt;td&gt;0&lt;/td&gt;
      &lt;td&gt;False&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;119999&lt;/th&gt;
      &lt;td&gt;9999&lt;/td&gt;
      &lt;td&gt;12&lt;/td&gt;
      &lt;td&gt;1&lt;/td&gt;
      &lt;td&gt;768&lt;/td&gt;
      &lt;td&gt;0&lt;/td&gt;
      &lt;td&gt;False&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;120000 rows × 6 columns&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
    

&lt;div class=&quot;cell border-box-sizing text_cell rendered&quot;&gt;&lt;div class=&quot;inner_cell&quot;&gt;
&lt;div class=&quot;text_cell_render border-box-sizing rendered_html&quot;&gt;
&lt;p&gt;Now imagine you weren't aware of causality, confounders, high / low spenders, and all that. You simply published your rewards signup page and observed your customers' spending behaviour over a span of a year. Chances are you'll compute the average treatment effect the exact same way we did above for our randomized controlled trial:&lt;/p&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;
&lt;div class=&quot;input&quot;&gt;

&lt;div class=&quot;inner_cell&quot;&gt;
    &lt;div class=&quot;input_area&quot;&gt;
&lt;div class=&quot; highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;month&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;6&lt;/span&gt;

&lt;span class=&quot;n&quot;&gt;post_signup_spend&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;signup_month&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;isin&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;([&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;month&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;])]&lt;/span&gt;
    &lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;groupby&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;([&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&amp;quot;user_id&amp;quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&amp;quot;signup_month&amp;quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&amp;quot;treatment&amp;quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;])&lt;/span&gt;
    &lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;apply&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;
        &lt;span class=&quot;k&quot;&gt;lambda&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;x&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;pd&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;Series&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;
            &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
                &lt;span class=&quot;s2&quot;&gt;&amp;quot;post_spend&amp;quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;x&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;loc&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;x&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;month&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;month&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&amp;quot;spend&amp;quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;mean&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(),&lt;/span&gt;
                &lt;span class=&quot;s2&quot;&gt;&amp;quot;pre_spend&amp;quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;x&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;loc&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;x&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;month&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;month&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&amp;quot;spend&amp;quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;mean&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(),&lt;/span&gt;
            &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
        &lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
    &lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
    &lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;reset_index&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;nb&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;post_signup_spend&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;div class=&quot;output_wrapper&quot;&gt;
&lt;div class=&quot;output&quot;&gt;

&lt;div class=&quot;output_area&quot;&gt;

&lt;div class=&quot;output_subarea output_stream output_stdout output_text&quot;&gt;
&lt;pre&gt;      user_id  signup_month  treatment  post_spend  pre_spend
0           1             0      False  251.666667      239.0
1           3             0      False  246.166667      252.8
2           4             0      False  740.833333      737.2
3           6             0      False  254.333333      247.0
4           7             0      False  249.166667      253.2
...       ...           ...        ...         ...        ...
5499     9992             0      False  246.000000      240.6
5500     9995             0      False  254.833333      256.4
5501     9996             0      False  248.833333      239.8
5502     9997             0      False  249.500000      247.8
5503     9999             0      False  761.666667      752.6

[5504 rows x 5 columns]
&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
    

    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;
&lt;div class=&quot;input&quot;&gt;

&lt;div class=&quot;inner_cell&quot;&gt;
    &lt;div class=&quot;input_area&quot;&gt;
&lt;div class=&quot; highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;post_spend&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;post_signup_spend&lt;/span&gt;\
  &lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;groupby&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;treatment&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;\
  &lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;agg&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;({&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;post_spend&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&amp;#39;mean&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;})&lt;/span&gt;

&lt;span class=&quot;n&quot;&gt;post_spend&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;div class=&quot;output_wrapper&quot;&gt;
&lt;div class=&quot;output&quot;&gt;

&lt;div class=&quot;output_area&quot;&gt;


&lt;div class=&quot;output_html rendered_html output_subarea output_execute_result&quot;&gt;
&lt;div&gt;
&lt;style scoped=&quot;&quot;&gt;
    .dataframe tbody tr th:only-of-type {
        vertical-align: middle;
    }

    .dataframe tbody tr th {
        vertical-align: top;
    }

    .dataframe thead th {
        text-align: right;
    }
&lt;/style&gt;
&lt;table border=&quot;1&quot; class=&quot;dataframe&quot;&gt;
  &lt;thead&gt;
    &lt;tr style=&quot;text-align: right;&quot;&gt;
      &lt;th&gt;&lt;/th&gt;
      &lt;th&gt;post_spend&lt;/th&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;treatment&lt;/th&gt;
      &lt;th&gt;&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;th&gt;False&lt;/th&gt;
      &lt;td&gt;275.891760&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;True&lt;/th&gt;
      &lt;td&gt;1075.543699&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
    

    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;
&lt;div class=&quot;input&quot;&gt;

&lt;div class=&quot;inner_cell&quot;&gt;
    &lt;div class=&quot;input_area&quot;&gt;
&lt;div class=&quot; highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;post_spend&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;loc&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;kc&quot;&gt;True&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&amp;#39;post_spend&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;post_spend&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;loc&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;kc&quot;&gt;False&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&amp;#39;post_spend&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;div class=&quot;output_wrapper&quot;&gt;
&lt;div class=&quot;output&quot;&gt;

&lt;div class=&quot;output_area&quot;&gt;



&lt;div class=&quot;output_text output_subarea output_execute_result&quot;&gt;
&lt;pre&gt;799.6519394104552&lt;/pre&gt;
&lt;/div&gt;

&lt;/div&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
    

    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;
&lt;div class=&quot;input&quot;&gt;

&lt;div class=&quot;inner_cell&quot;&gt;
    &lt;div class=&quot;input_area&quot;&gt;
&lt;div class=&quot; highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;post_spend&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;loc&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;kc&quot;&gt;True&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&amp;#39;post_spend&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;/&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;post_spend&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;loc&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;kc&quot;&gt;False&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&amp;#39;post_spend&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;div class=&quot;output_wrapper&quot;&gt;
&lt;div class=&quot;output&quot;&gt;

&lt;div class=&quot;output_area&quot;&gt;



&lt;div class=&quot;output_text output_subarea output_execute_result&quot;&gt;
&lt;pre&gt;3.8984263250854134&lt;/pre&gt;
&lt;/div&gt;

&lt;/div&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
    

&lt;div class=&quot;cell border-box-sizing text_cell rendered&quot;&gt;&lt;div class=&quot;inner_cell&quot;&gt;
&lt;div class=&quot;text_cell_render border-box-sizing rendered_html&quot;&gt;
&lt;p&gt;Performing the exact same computation as above, now we're estimating an average treatment effect of almost 400% instead of the actual 50%!&lt;/p&gt;
&lt;p&gt;So what went wrong here?&lt;/p&gt;
&lt;p&gt;Observational data got us!&lt;/p&gt;
&lt;p&gt;Realize that in our observational data the outcome (spend) is not indepndent of treatment assignmnet (rewards program signup): High spenders are far more likely to sign up hence are overrepresented in our treatment group while low spenders are overrepresented in our control group (users that didn't sign up).&lt;/p&gt;
&lt;p&gt;So when we compute the above difference or ratio we don't just see the average treatment effect of rewards signup we also see the inherent difference in spending between high and low spenders.&lt;/p&gt;
&lt;p&gt;So if we ignore how our observational data are generated we'll overestimate the effect our rewards program has and likely make decisions that seem to be supported by data but in reality aren't.&lt;/p&gt;
&lt;p&gt;Also notice that we often make this same mistake when training machine learning algorithms on observational data. Chances are someone will ask you to train a regression model to predict the effectiveness of the rewards program and your model will end up with the same inflated estimate as above.&lt;/p&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;cell border-box-sizing text_cell rendered&quot;&gt;&lt;div class=&quot;inner_cell&quot;&gt;
&lt;div class=&quot;text_cell_render border-box-sizing rendered_html&quot;&gt;
&lt;p&gt;So how do we fix this? And how can we estimate the true treatment effect from our observational data?&lt;/p&gt;
&lt;p&gt;Generally, we know from experience in e-commerece that people who tend to spend more are more likely to sign up to our rewards program. So we could segment our users into spend buckets and compute the treatment effect within each bucket to try and breeak this confounding link in our observational data.&lt;/p&gt;
&lt;p&gt;Notice that in practice we won't have a &lt;code&gt;high spender&lt;/code&gt; flag for our customers so we'll have to go by our customers' observed spending behaviour.&lt;/p&gt;
&lt;p&gt;The causal inference framework offers an established approach here: Relying on our domain knowledge, we define a causal model that describes how we believe our observational data were generated.&lt;/p&gt;
&lt;p&gt;Let's draw this as a graph with nodes and edges:&lt;/p&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;
&lt;div class=&quot;input&quot;&gt;

&lt;div class=&quot;inner_cell&quot;&gt;
    &lt;div class=&quot;input_area&quot;&gt;
&lt;div class=&quot; highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;kn&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;os&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;sys&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;sys&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;path&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;append&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;os&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;path&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;abspath&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&amp;quot;../../../&amp;quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;))&lt;/span&gt;
&lt;span class=&quot;kn&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;dowhy&lt;/span&gt;

&lt;span class=&quot;n&quot;&gt;causal_graph&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&amp;quot;&amp;quot;&amp;quot;digraph {&lt;/span&gt;
&lt;span class=&quot;s2&quot;&gt;treatment[label=&amp;quot;Program Signup in month i&amp;quot;];&lt;/span&gt;
&lt;span class=&quot;s2&quot;&gt;pre_spend;&lt;/span&gt;
&lt;span class=&quot;s2&quot;&gt;post_spend;&lt;/span&gt;
&lt;span class=&quot;s2&quot;&gt;U[label=&amp;quot;Unobserved Confounders&amp;quot;]; &lt;/span&gt;
&lt;span class=&quot;s2&quot;&gt;pre_spend -&amp;gt; treatment;&lt;/span&gt;
&lt;span class=&quot;s2&quot;&gt;pre_spend -&amp;gt; post_spend;&lt;/span&gt;
&lt;span class=&quot;s2&quot;&gt;treatment-&amp;gt;post_spend;&lt;/span&gt;
&lt;span class=&quot;s2&quot;&gt;U-&amp;gt;treatment; U-&amp;gt;pre_spend; U-&amp;gt;post_spend;&lt;/span&gt;
&lt;span class=&quot;s2&quot;&gt;}&amp;quot;&amp;quot;&amp;quot;&lt;/span&gt;

&lt;span class=&quot;n&quot;&gt;model&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;dowhy&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;CausalModel&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;data&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;post_signup_spend&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;graph&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;causal_graph&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;replace&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;se&quot;&gt;\n&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&amp;quot; &amp;quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;),&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;treatment&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&amp;quot;treatment&amp;quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;outcome&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&amp;quot;post_spend&amp;quot;&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;model&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;view_model&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;div class=&quot;output_wrapper&quot;&gt;
&lt;div class=&quot;output&quot;&gt;

&lt;div class=&quot;output_area&quot;&gt;



&lt;div class=&quot;output_png output_subarea &quot;&gt;
&lt;img src=&quot;data:image/png;base64,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
&quot; /&gt;
&lt;/div&gt;

&lt;/div&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
    

&lt;div class=&quot;cell border-box-sizing text_cell rendered&quot;&gt;&lt;div class=&quot;inner_cell&quot;&gt;
&lt;div class=&quot;text_cell_render border-box-sizing rendered_html&quot;&gt;
&lt;p&gt;Our causal model states what we described above: Pre-signup spend influences both rewards signup (treatment assignment) and post-signup spend. This is the story about our high and low spenders.&lt;/p&gt;
&lt;p&gt;Treatment (rewards signup) influences post-signup spending behaviour - this is the effect we're actually interested in.&lt;/p&gt;
&lt;p&gt;We also added a node &lt;code&gt;U&lt;/code&gt; to signify possible other confounding factors that may exist in reality but weren't observed as part of our data.&lt;/p&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;cell border-box-sizing text_cell rendered&quot;&gt;&lt;div class=&quot;inner_cell&quot;&gt;
&lt;div class=&quot;text_cell_render border-box-sizing rendered_html&quot;&gt;
&lt;h2 id=&quot;Identification-/-identifying-the-causal-effect&quot;&gt;Identification / identifying the causal effect&lt;a class=&quot;anchor-link&quot; href=&quot;#Identification-/-identifying-the-causal-effect&quot;&gt; &lt;/a&gt;&lt;/h2&gt;&lt;p&gt;We will now apply do-calculus to our causal model from above to figure out ways to cleanly estimate the treatment effect we're after:&lt;/p&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;
&lt;div class=&quot;input&quot;&gt;

&lt;div class=&quot;inner_cell&quot;&gt;
    &lt;div class=&quot;input_area&quot;&gt;
&lt;div class=&quot; highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;identified_estimand&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;model&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;identify_effect&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;proceed_when_unidentifiable&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;kc&quot;&gt;True&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;nb&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;identified_estimand&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;div class=&quot;output_wrapper&quot;&gt;
&lt;div class=&quot;output&quot;&gt;

&lt;div class=&quot;output_area&quot;&gt;

&lt;div class=&quot;output_subarea output_stream output_stdout output_text&quot;&gt;
&lt;pre&gt;Estimand type: nonparametric-ate

### Estimand : 1
Estimand name: backdoor
Estimand expression:
     d                                         
────────────(Expectation(post_spend|pre_spend))
d[treatment]                                   
Estimand assumption 1, Unconfoundedness: If U→{treatment} and U→post_spend then P(post_spend|treatment,pre_spend,U) = P(post_spend|treatment,pre_spend)

### Estimand : 2
Estimand name: iv
No such variable found!

### Estimand : 3
Estimand name: frontdoor
No such variable found!

&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
    

&lt;div class=&quot;cell border-box-sizing text_cell rendered&quot;&gt;&lt;div class=&quot;inner_cell&quot;&gt;
&lt;div class=&quot;text_cell_render border-box-sizing rendered_html&quot;&gt;
&lt;p&gt;Very broadly and sloppily stated there a three ways to segment (or slice and dice) our observational data to get to subsets of our data within which we can cleanly compute the average treatment effect:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Backdoor adjustment,&lt;/li&gt;
&lt;li&gt;Frontdoor adjustment, and&lt;/li&gt;
&lt;li&gt;Instrumental variables.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The above printout tells us that based on both the causal model we constructed and our observational data there is a backdoor-adjusted estimator for our desired treatment effect.&lt;/p&gt;
&lt;p&gt;This backdoor adjustment actually follows closely what we already said above: We'll compute the post-spend given pre-spend (segment our customers based on their spending behaviour).&lt;/p&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;cell border-box-sizing text_cell rendered&quot;&gt;&lt;div class=&quot;inner_cell&quot;&gt;
&lt;div class=&quot;text_cell_render border-box-sizing rendered_html&quot;&gt;
&lt;h2 id=&quot;Estimating-the-treatment-effect&quot;&gt;Estimating the treatment effect&lt;a class=&quot;anchor-link&quot; href=&quot;#Estimating-the-treatment-effect&quot;&gt; &lt;/a&gt;&lt;/h2&gt;&lt;p&gt;There are various ways to perform the backdoor adjustment that DoWhy identified for us above. One of them is called propensity score matching:&lt;/p&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;
&lt;div class=&quot;input&quot;&gt;

&lt;div class=&quot;inner_cell&quot;&gt;
    &lt;div class=&quot;input_area&quot;&gt;
&lt;div class=&quot; highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;estimate&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;model&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;estimate_effect&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;identified_estimand&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;method_name&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&amp;quot;backdoor1.propensity_score_matching&amp;quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;target_units&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&amp;quot;ate&amp;quot;&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;

&lt;span class=&quot;nb&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;estimate&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;div class=&quot;output_wrapper&quot;&gt;
&lt;div class=&quot;output&quot;&gt;

&lt;div class=&quot;output_area&quot;&gt;

&lt;div class=&quot;output_subarea output_stream output_stderr output_text&quot;&gt;
&lt;pre&gt;/usr/local/lib/python3.7/dist-packages/sklearn/utils/validation.py:760: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().
  y = column_or_1d(y, warn=True)
&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;div class=&quot;output_area&quot;&gt;

&lt;div class=&quot;output_subarea output_stream output_stdout output_text&quot;&gt;
&lt;pre&gt;*** Causal Estimate ***

## Identified estimand
Estimand type: nonparametric-ate

## Realized estimand
b: post_spend~treatment+pre_spend
Target units: ate

## Estimate
Mean value: 159.15597747093042

&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
    

&lt;div class=&quot;cell border-box-sizing text_cell rendered&quot;&gt;&lt;div class=&quot;inner_cell&quot;&gt;
&lt;div class=&quot;text_cell_render border-box-sizing rendered_html&quot;&gt;
&lt;p&gt;DoWhy provides us with an estimated ATE for our observational data that is pretty close to the ATE we computed for our experimental data from our randomized controlled trial.&lt;/p&gt;
&lt;p&gt;Even if the ATE estimate DoWhy provides doesn't match exactly our experimental ATE we're now in a much better position to take a decision regarding our rewards program based on our observational data.&lt;/p&gt;
&lt;p&gt;So next time we want to base decisions on observational data it'll be worthwhile defining a causal model of the underlying data-generating process and using a library such as DoWhy that helps us identify and apply adjustment strategies.&lt;/p&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;</content><author><name></name></author><category term="python" /><category term="dowhy" /><category term="causal inference" /><summary type="html"></summary></entry><entry><title type="html">Causality modelling in Python for data scientists</title><link href="https://georg.io/2020/07/20/Causality_modelling_for_beginners_in_Python" rel="alternate" type="text/html" title="Causality modelling in Python for data scientists" /><published>2020-07-20T00:00:00-05:00</published><updated>2020-07-20T00:00:00-05:00</updated><id>https://georg.io/2020/07/20/Causality_modelling_for_beginners_in_Python</id><content type="html" xml:base="https://georg.io/2020/07/20/Causality_modelling_for_beginners_in_Python">&lt;!--
#################################################
### THIS FILE WAS AUTOGENERATED! DO NOT EDIT! ###
#################################################
# file to edit: _notebooks/2020-07-20-Causality_modelling_for_beginners_in_Python.ipynb
--&gt;

&lt;div class=&quot;container&quot; id=&quot;notebook-container&quot;&gt;
        
    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;
&lt;div class=&quot;input&quot;&gt;

&lt;div class=&quot;inner_cell&quot;&gt;
    &lt;div class=&quot;input_area&quot;&gt;
&lt;div class=&quot; highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;kn&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;pandas&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;as&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;pd&lt;/span&gt;
&lt;span class=&quot;kn&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;numpy&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;as&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;np&lt;/span&gt;
&lt;span class=&quot;kn&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;random&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
    

    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;
&lt;div class=&quot;input&quot;&gt;

&lt;div class=&quot;inner_cell&quot;&gt;
    &lt;div class=&quot;input_area&quot;&gt;
&lt;div class=&quot; highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;np&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;random&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;seed&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;123&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;random&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;seed&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;123&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
    

    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;
&lt;div class=&quot;input&quot;&gt;

&lt;div class=&quot;inner_cell&quot;&gt;
    &lt;div class=&quot;input_area&quot;&gt;
&lt;div class=&quot; highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;no_samples&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;10000&lt;/span&gt;

&lt;span class=&quot;n&quot;&gt;seasons&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;np&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;random&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;choice&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;([&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;winter&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&amp;#39;spring&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&amp;#39;summer&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&amp;#39;fall&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;],&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;size&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;no_samples&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,))&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;color&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;np&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;array&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;
    &lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;
        &lt;span class=&quot;n&quot;&gt;random&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;choice&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;([&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;yellow&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&amp;#39;pink&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;])&lt;/span&gt;
        &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;season&lt;/span&gt; &lt;span class=&quot;ow&quot;&gt;in&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;spring&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&amp;#39;summer&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;
        &lt;span class=&quot;k&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;random&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;choice&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;([&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;navy&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&amp;#39;grey&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;])&lt;/span&gt;
        &lt;span class=&quot;k&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;season&lt;/span&gt; &lt;span class=&quot;ow&quot;&gt;in&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;seasons&lt;/span&gt;
    &lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;price&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;np&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;random&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;lognormal&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;size&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;no_samples&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,))&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;rank&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;np&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;array&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;
    &lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;
        
    &lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
    

    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;
&lt;div class=&quot;input&quot;&gt;

&lt;div class=&quot;inner_cell&quot;&gt;
    &lt;div class=&quot;input_area&quot;&gt;
&lt;div class=&quot; highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;seasons&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;div class=&quot;output_wrapper&quot;&gt;
&lt;div class=&quot;output&quot;&gt;

&lt;div class=&quot;output_area&quot;&gt;



&lt;div class=&quot;output_text output_subarea output_execute_result&quot;&gt;
&lt;pre&gt;array([&amp;#39;fall&amp;#39;, &amp;#39;spring&amp;#39;, &amp;#39;spring&amp;#39;, ..., &amp;#39;spring&amp;#39;, &amp;#39;spring&amp;#39;, &amp;#39;spring&amp;#39;],
      dtype=&amp;#39;&amp;lt;U6&amp;#39;)&lt;/pre&gt;
&lt;/div&gt;

&lt;/div&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
    

&lt;/div&gt;</content><author><name></name></author><category term="causal inference" /><category term="causal discovery" /><category term="causality modelling" /><category term="python" /><summary type="html"></summary></entry><entry><title type="html">Causality modelling in Python for data scientists</title><link href="https://georg.io/2020/06/20/Causality_modelling_python" rel="alternate" type="text/html" title="Causality modelling in Python for data scientists" /><published>2020-06-20T00:00:00-05:00</published><updated>2020-06-20T00:00:00-05:00</updated><id>https://georg.io/2020/06/20/Causality_modelling_python</id><content type="html" xml:base="https://georg.io/2020/06/20/Causality_modelling_python">&lt;!--
#################################################
### THIS FILE WAS AUTOGENERATED! DO NOT EDIT! ###
#################################################
# file to edit: _notebooks/2020-06-20-Causality_modelling_python.ipynb
--&gt;

&lt;div class=&quot;container&quot; id=&quot;notebook-container&quot;&gt;
        
&lt;div class=&quot;cell border-box-sizing text_cell rendered&quot;&gt;&lt;div class=&quot;inner_cell&quot;&gt;
&lt;div class=&quot;text_cell_render border-box-sizing rendered_html&quot;&gt;
&lt;h2 id=&quot;The-need-for-causality-modelling&quot;&gt;The need for causality modelling&lt;a class=&quot;anchor-link&quot; href=&quot;#The-need-for-causality-modelling&quot;&gt; &lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Intelligent planning and decision-making lie at the heart of most business success.&lt;/p&gt;
&lt;p&gt;The decisions that our business needs to evaluate can range from those that are relatively low effort and we take potentially thousands or millions of times a day to those that are high effort and are taken every couple of months:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;What will happen if I show an advertising banner to a particular user?&lt;/li&gt;
&lt;li&gt;What will happen if I change the retail prices for certain products in my shop?&lt;/li&gt;
&lt;li&gt;What will happen if I alter my manufacturing process?&lt;/li&gt;
&lt;li&gt;What will happen if I swap out a particular mechanical piece in a vehicle I develop?&lt;/li&gt;
&lt;li&gt;What will happen if I invest in new property, machinery, or processes?&lt;/li&gt;
&lt;li&gt;What will happen if I hire this applicant?&lt;/li&gt;
&lt;li&gt;What if I increase remuneration of my workforce?&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;As industrial data scientists we are oftentimes called upon to evaluate these proposed business decisions using analytics, machine learning methodologies, and past data.&lt;/p&gt;
&lt;p&gt;What we may end up doing for the above proposed business decisions is:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Compute and rank past click-through rates for given pairs of ad banner and user,&lt;/li&gt;
&lt;li&gt;Correlate past demand with set retail prices for product groups of interest,&lt;/li&gt;
&lt;li&gt;Correlate past manufacturing parameters with achieved output quality,&lt;/li&gt;
&lt;li&gt;Correlate the mechanical behavior of my vehicles with the mechnical parts used in it,&lt;/li&gt;
&lt;li&gt;Use past data to forecast the development of real estate prices,&lt;/li&gt;
&lt;li&gt;Use past data to correlate and predict the productivity of my team given e.g. its size or makeup, and&lt;/li&gt;
&lt;li&gt;Use past data to correlate productivity and remuneration levels.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The way I formulated these is already pretty suggestive - but essentially some of our common approaches to evaluating business decisions do not compare our business outcomes with and without said business decisions but they rather look at our data outside the context of decision-making.&lt;/p&gt;
&lt;p&gt;Put another way, we oftentimes analyze past data without considering the state our business or customer is in when those data were generated.
For illustration:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://user-images.githubusercontent.com/3273502/85201681-a999f580-b301-11ea-9174-056649a1bebb.png&quot; alt=&quot;Data fusion process (5)&quot; /&gt;&lt;/p&gt;
&lt;p&gt;So really when tasked with evaluating the above proposed business decisions we should instead think in terms of questions akin the following:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;How would the user of interest behave differently if we didn't show them (and pay for) a banner now?&lt;/li&gt;
&lt;li&gt;For each Euro we shave off a price tag how much higher will our revenue be since more customers are inclinced to place an order?&lt;/li&gt;
&lt;li&gt;4.
5.
6.
7.&lt;/li&gt;
&lt;/ol&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;cell border-box-sizing text_cell rendered&quot;&gt;&lt;div class=&quot;inner_cell&quot;&gt;
&lt;div class=&quot;text_cell_render border-box-sizing rendered_html&quot;&gt;
&lt;h2 id=&quot;How-to-do-causality-modelling&quot;&gt;How to do causality modelling&lt;a class=&quot;anchor-link&quot; href=&quot;#How-to-do-causality-modelling&quot;&gt; &lt;/a&gt;&lt;/h2&gt;&lt;p&gt;The authors Hünermund and Bareinboim (&lt;a href=&quot;https://arxiv.org/abs/1912.09104&quot;&gt;https://arxiv.org/abs/1912.09104&lt;/a&gt;) proposed a methodology they called data-fusion process.&lt;/p&gt;
&lt;p&gt;The data-fusion process maps out the individual steps necessary for evaluating the impact of past and potential future decisions:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://user-images.githubusercontent.com/3273502/85201682-aacb2280-b301-11ea-9529-59e63c19f945.png&quot; alt=&quot;The data-fusion process.&quot; title=&quot;With the data-fusion process we iterate through applying and validating our causal understanding of our system, modelling the impact of our proposed business decision on our system, and estimate its impact using our validated causal model and historical data. Adapted from Hünermund and Bareinboim: https://arxiv.org/abs/1912.09104.&quot; /&gt;&lt;/p&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;cell border-box-sizing text_cell rendered&quot;&gt;&lt;div class=&quot;inner_cell&quot;&gt;
&lt;div class=&quot;text_cell_render border-box-sizing rendered_html&quot;&gt;
&lt;h2 id=&quot;Use-case:-The-impact-of-direct-marketing-on-customer-behavior&quot;&gt;Use case: The impact of direct marketing on customer behavior&lt;a class=&quot;anchor-link&quot; href=&quot;#Use-case:-The-impact-of-direct-marketing-on-customer-behavior&quot;&gt; &lt;/a&gt;&lt;/h2&gt;&lt;p&gt;We'll use a data set provided by UCI (&lt;a href=&quot;https://archive.ics.uci.edu/ml/datasets/Bank+Marketing&quot;&gt;https://archive.ics.uci.edu/ml/datasets/Bank+Marketing&lt;/a&gt;) that demonstrates the potential impact of direct marketing on customer success.&lt;/p&gt;
&lt;p&gt;Let's dive right in, download the data set and see what we are working with.&lt;/p&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;cell border-box-sizing text_cell rendered&quot;&gt;&lt;div class=&quot;inner_cell&quot;&gt;
&lt;div class=&quot;text_cell_render border-box-sizing rendered_html&quot;&gt;
&lt;h3 id=&quot;The-direct-marketing-success-data-set&quot;&gt;The direct marketing success data set&lt;a class=&quot;anchor-link&quot; href=&quot;#The-direct-marketing-success-data-set&quot;&gt; &lt;/a&gt;&lt;/h3&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;
&lt;div class=&quot;input&quot;&gt;

&lt;div class=&quot;inner_cell&quot;&gt;
    &lt;div class=&quot;input_area&quot;&gt;
&lt;div class=&quot; highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;!&lt;/span&gt;wget --quiet https://archive.ics.uci.edu/ml/machine-learning-databases/00222/bank.zip
&lt;/pre&gt;&lt;/div&gt;

    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
    

    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;
&lt;div class=&quot;input&quot;&gt;

&lt;div class=&quot;inner_cell&quot;&gt;
    &lt;div class=&quot;input_area&quot;&gt;
&lt;div class=&quot; highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;!&lt;/span&gt;unzip -oqq bank.zip
&lt;/pre&gt;&lt;/div&gt;

    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
    

    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;
&lt;div class=&quot;input&quot;&gt;

&lt;div class=&quot;inner_cell&quot;&gt;
    &lt;div class=&quot;input_area&quot;&gt;
&lt;div class=&quot; highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;kn&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;pandas&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;as&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;pd&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
    

    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;
&lt;details class=&quot;description&quot;&gt;
      &lt;summary class=&quot;btn btn-sm&quot; data-open=&quot;Hide Code&quot; data-close=&quot;Show Code&quot;&gt;&lt;/summary&gt;
        &lt;p&gt;&lt;div class=&quot;input&quot;&gt;

&lt;div class=&quot;inner_cell&quot;&gt;
    &lt;div class=&quot;input_area&quot;&gt;
&lt;div class=&quot; highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;df&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;pd&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;read_csv&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;bank.csv&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;delimiter&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;;&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;success&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;y&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;del&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;y&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;success&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;success&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;replace&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;no&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;success&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;success&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;replace&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;yes&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;del&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;duration&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;no_contacts&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;campaign&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;del&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;campaign&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/p&gt;
    &lt;/details&gt;
&lt;/div&gt;
    

    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;
&lt;div class=&quot;input&quot;&gt;

&lt;div class=&quot;inner_cell&quot;&gt;
    &lt;div class=&quot;input_area&quot;&gt;
&lt;div class=&quot; highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;head&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;div class=&quot;output_wrapper&quot;&gt;
&lt;div class=&quot;output&quot;&gt;

&lt;div class=&quot;output_area&quot;&gt;


&lt;div class=&quot;output_html rendered_html output_subarea output_execute_result&quot;&gt;
&lt;div&gt;
&lt;style scoped=&quot;&quot;&gt;
    .dataframe tbody tr th:only-of-type {
        vertical-align: middle;
    }

    .dataframe tbody tr th {
        vertical-align: top;
    }

    .dataframe thead th {
        text-align: right;
    }
&lt;/style&gt;
&lt;table border=&quot;1&quot; class=&quot;dataframe&quot;&gt;
  &lt;thead&gt;
    &lt;tr style=&quot;text-align: right;&quot;&gt;
      &lt;th&gt;&lt;/th&gt;
      &lt;th&gt;age&lt;/th&gt;
      &lt;th&gt;job&lt;/th&gt;
      &lt;th&gt;marital&lt;/th&gt;
      &lt;th&gt;education&lt;/th&gt;
      &lt;th&gt;default&lt;/th&gt;
      &lt;th&gt;balance&lt;/th&gt;
      &lt;th&gt;housing&lt;/th&gt;
      &lt;th&gt;loan&lt;/th&gt;
      &lt;th&gt;contact&lt;/th&gt;
      &lt;th&gt;day&lt;/th&gt;
      &lt;th&gt;month&lt;/th&gt;
      &lt;th&gt;pdays&lt;/th&gt;
      &lt;th&gt;previous&lt;/th&gt;
      &lt;th&gt;poutcome&lt;/th&gt;
      &lt;th&gt;success&lt;/th&gt;
      &lt;th&gt;no_contacts&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;th&gt;0&lt;/th&gt;
      &lt;td&gt;30&lt;/td&gt;
      &lt;td&gt;unemployed&lt;/td&gt;
      &lt;td&gt;married&lt;/td&gt;
      &lt;td&gt;primary&lt;/td&gt;
      &lt;td&gt;no&lt;/td&gt;
      &lt;td&gt;1787&lt;/td&gt;
      &lt;td&gt;no&lt;/td&gt;
      &lt;td&gt;no&lt;/td&gt;
      &lt;td&gt;cellular&lt;/td&gt;
      &lt;td&gt;19&lt;/td&gt;
      &lt;td&gt;oct&lt;/td&gt;
      &lt;td&gt;-1&lt;/td&gt;
      &lt;td&gt;0&lt;/td&gt;
      &lt;td&gt;unknown&lt;/td&gt;
      &lt;td&gt;0&lt;/td&gt;
      &lt;td&gt;1&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;1&lt;/th&gt;
      &lt;td&gt;33&lt;/td&gt;
      &lt;td&gt;services&lt;/td&gt;
      &lt;td&gt;married&lt;/td&gt;
      &lt;td&gt;secondary&lt;/td&gt;
      &lt;td&gt;no&lt;/td&gt;
      &lt;td&gt;4789&lt;/td&gt;
      &lt;td&gt;yes&lt;/td&gt;
      &lt;td&gt;yes&lt;/td&gt;
      &lt;td&gt;cellular&lt;/td&gt;
      &lt;td&gt;11&lt;/td&gt;
      &lt;td&gt;may&lt;/td&gt;
      &lt;td&gt;339&lt;/td&gt;
      &lt;td&gt;4&lt;/td&gt;
      &lt;td&gt;failure&lt;/td&gt;
      &lt;td&gt;0&lt;/td&gt;
      &lt;td&gt;1&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;2&lt;/th&gt;
      &lt;td&gt;35&lt;/td&gt;
      &lt;td&gt;management&lt;/td&gt;
      &lt;td&gt;single&lt;/td&gt;
      &lt;td&gt;tertiary&lt;/td&gt;
      &lt;td&gt;no&lt;/td&gt;
      &lt;td&gt;1350&lt;/td&gt;
      &lt;td&gt;yes&lt;/td&gt;
      &lt;td&gt;no&lt;/td&gt;
      &lt;td&gt;cellular&lt;/td&gt;
      &lt;td&gt;16&lt;/td&gt;
      &lt;td&gt;apr&lt;/td&gt;
      &lt;td&gt;330&lt;/td&gt;
      &lt;td&gt;1&lt;/td&gt;
      &lt;td&gt;failure&lt;/td&gt;
      &lt;td&gt;0&lt;/td&gt;
      &lt;td&gt;1&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;3&lt;/th&gt;
      &lt;td&gt;30&lt;/td&gt;
      &lt;td&gt;management&lt;/td&gt;
      &lt;td&gt;married&lt;/td&gt;
      &lt;td&gt;tertiary&lt;/td&gt;
      &lt;td&gt;no&lt;/td&gt;
      &lt;td&gt;1476&lt;/td&gt;
      &lt;td&gt;yes&lt;/td&gt;
      &lt;td&gt;yes&lt;/td&gt;
      &lt;td&gt;unknown&lt;/td&gt;
      &lt;td&gt;3&lt;/td&gt;
      &lt;td&gt;jun&lt;/td&gt;
      &lt;td&gt;-1&lt;/td&gt;
      &lt;td&gt;0&lt;/td&gt;
      &lt;td&gt;unknown&lt;/td&gt;
      &lt;td&gt;0&lt;/td&gt;
      &lt;td&gt;4&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;4&lt;/th&gt;
      &lt;td&gt;59&lt;/td&gt;
      &lt;td&gt;blue-collar&lt;/td&gt;
      &lt;td&gt;married&lt;/td&gt;
      &lt;td&gt;secondary&lt;/td&gt;
      &lt;td&gt;no&lt;/td&gt;
      &lt;td&gt;0&lt;/td&gt;
      &lt;td&gt;yes&lt;/td&gt;
      &lt;td&gt;no&lt;/td&gt;
      &lt;td&gt;unknown&lt;/td&gt;
      &lt;td&gt;5&lt;/td&gt;
      &lt;td&gt;may&lt;/td&gt;
      &lt;td&gt;-1&lt;/td&gt;
      &lt;td&gt;0&lt;/td&gt;
      &lt;td&gt;unknown&lt;/td&gt;
      &lt;td&gt;0&lt;/td&gt;
      &lt;td&gt;1&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
    

&lt;div class=&quot;cell border-box-sizing text_cell rendered&quot;&gt;&lt;div class=&quot;inner_cell&quot;&gt;
&lt;div class=&quot;text_cell_render border-box-sizing rendered_html&quot;&gt;
&lt;p&gt;Our tabular marketing and sales data shows a number of features we observe about a given customer and our interaction with them:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The customer's age, job, marital status, education, current account balance, and whether or not they already took out a loan are recorded,&lt;/li&gt;
&lt;li&gt;Our direct marketing interaction with a given customer is also recorded, for instance, how often we already contacted them.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;A more detailed description of the features in our data can be found here:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://archive.ics.uci.edu/ml/datasets/Bank+Marketing&quot;&gt;https://archive.ics.uci.edu/ml/datasets/Bank+Marketing&lt;/a&gt;&lt;/p&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;cell border-box-sizing text_cell rendered&quot;&gt;&lt;div class=&quot;inner_cell&quot;&gt;
&lt;div class=&quot;text_cell_render border-box-sizing rendered_html&quot;&gt;
&lt;h3 id=&quot;Trying-to-help-our-business-with-machine-learning-only&quot;&gt;Trying to help our business with machine learning only&lt;a class=&quot;anchor-link&quot; href=&quot;#Trying-to-help-our-business-with-machine-learning-only&quot;&gt; &lt;/a&gt;&lt;/h3&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;
&lt;div class=&quot;input&quot;&gt;

&lt;div class=&quot;inner_cell&quot;&gt;
    &lt;div class=&quot;input_area&quot;&gt;
&lt;div class=&quot; highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;target&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&amp;#39;success&amp;#39;&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;features&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;column&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;column&lt;/span&gt; &lt;span class=&quot;ow&quot;&gt;in&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;columns&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;column&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;!=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;target&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
    

    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;
&lt;div class=&quot;input&quot;&gt;

&lt;div class=&quot;inner_cell&quot;&gt;
    &lt;div class=&quot;input_area&quot;&gt;
&lt;div class=&quot; highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;kn&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;lightgbm&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;as&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;lgb&lt;/span&gt;
&lt;span class=&quot;kn&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;sklearn.preprocessing&lt;/span&gt; &lt;span class=&quot;kn&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;OrdinalEncoder&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
    

    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;
&lt;div class=&quot;input&quot;&gt;

&lt;div class=&quot;inner_cell&quot;&gt;
    &lt;div class=&quot;input_area&quot;&gt;
&lt;div class=&quot; highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;model&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;lgb&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;LGBMClassifier&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
    

    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;
&lt;div class=&quot;input&quot;&gt;

&lt;div class=&quot;inner_cell&quot;&gt;
    &lt;div class=&quot;input_area&quot;&gt;
&lt;div class=&quot; highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;X&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;y&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;features&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;],&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;target&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
    

    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;
&lt;div class=&quot;input&quot;&gt;

&lt;div class=&quot;inner_cell&quot;&gt;
    &lt;div class=&quot;input_area&quot;&gt;
&lt;div class=&quot; highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;numerical_features&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;age&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&amp;#39;balance&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&amp;#39;no_contacts&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&amp;#39;previous&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&amp;#39;pdays&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;categorical_features&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;feature&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;feature&lt;/span&gt; &lt;span class=&quot;ow&quot;&gt;in&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;features&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;feature&lt;/span&gt; &lt;span class=&quot;ow&quot;&gt;not&lt;/span&gt; &lt;span class=&quot;ow&quot;&gt;in&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;numerical_features&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
    

    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;
&lt;div class=&quot;input&quot;&gt;

&lt;div class=&quot;inner_cell&quot;&gt;
    &lt;div class=&quot;input_area&quot;&gt;
&lt;div class=&quot; highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;encoder&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;OrdinalEncoder&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;dtype&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;int&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
    

    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;
&lt;div class=&quot;input&quot;&gt;

&lt;div class=&quot;inner_cell&quot;&gt;
    &lt;div class=&quot;input_area&quot;&gt;
&lt;div class=&quot; highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;X_numeric&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;pd&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;concat&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;
    &lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;
        &lt;span class=&quot;n&quot;&gt;X&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;numerical_features&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;],&lt;/span&gt;
        &lt;span class=&quot;n&quot;&gt;pd&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;DataFrame&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;
            &lt;span class=&quot;n&quot;&gt;data&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;encoder&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;fit_transform&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;X&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;categorical_features&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]),&lt;/span&gt;
            &lt;span class=&quot;n&quot;&gt;columns&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;categorical_features&lt;/span&gt;
        &lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
    &lt;span class=&quot;p&quot;&gt;],&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;axis&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
    

    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;
&lt;div class=&quot;input&quot;&gt;

&lt;div class=&quot;inner_cell&quot;&gt;
    &lt;div class=&quot;input_area&quot;&gt;
&lt;div class=&quot; highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;X_numeric&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;head&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;div class=&quot;output_wrapper&quot;&gt;
&lt;div class=&quot;output&quot;&gt;

&lt;div class=&quot;output_area&quot;&gt;


&lt;div class=&quot;output_html rendered_html output_subarea output_execute_result&quot;&gt;
&lt;div&gt;
&lt;style scoped=&quot;&quot;&gt;
    .dataframe tbody tr th:only-of-type {
        vertical-align: middle;
    }

    .dataframe tbody tr th {
        vertical-align: top;
    }

    .dataframe thead th {
        text-align: right;
    }
&lt;/style&gt;
&lt;table border=&quot;1&quot; class=&quot;dataframe&quot;&gt;
  &lt;thead&gt;
    &lt;tr style=&quot;text-align: right;&quot;&gt;
      &lt;th&gt;&lt;/th&gt;
      &lt;th&gt;age&lt;/th&gt;
      &lt;th&gt;balance&lt;/th&gt;
      &lt;th&gt;no_contacts&lt;/th&gt;
      &lt;th&gt;previous&lt;/th&gt;
      &lt;th&gt;pdays&lt;/th&gt;
      &lt;th&gt;job&lt;/th&gt;
      &lt;th&gt;marital&lt;/th&gt;
      &lt;th&gt;education&lt;/th&gt;
      &lt;th&gt;default&lt;/th&gt;
      &lt;th&gt;housing&lt;/th&gt;
      &lt;th&gt;loan&lt;/th&gt;
      &lt;th&gt;contact&lt;/th&gt;
      &lt;th&gt;day&lt;/th&gt;
      &lt;th&gt;month&lt;/th&gt;
      &lt;th&gt;poutcome&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;th&gt;0&lt;/th&gt;
      &lt;td&gt;30&lt;/td&gt;
      &lt;td&gt;1787&lt;/td&gt;
      &lt;td&gt;1&lt;/td&gt;
      &lt;td&gt;0&lt;/td&gt;
      &lt;td&gt;-1&lt;/td&gt;
      &lt;td&gt;10&lt;/td&gt;
      &lt;td&gt;1&lt;/td&gt;
      &lt;td&gt;0&lt;/td&gt;
      &lt;td&gt;0&lt;/td&gt;
      &lt;td&gt;0&lt;/td&gt;
      &lt;td&gt;0&lt;/td&gt;
      &lt;td&gt;0&lt;/td&gt;
      &lt;td&gt;18&lt;/td&gt;
      &lt;td&gt;10&lt;/td&gt;
      &lt;td&gt;3&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;1&lt;/th&gt;
      &lt;td&gt;33&lt;/td&gt;
      &lt;td&gt;4789&lt;/td&gt;
      &lt;td&gt;1&lt;/td&gt;
      &lt;td&gt;4&lt;/td&gt;
      &lt;td&gt;339&lt;/td&gt;
      &lt;td&gt;7&lt;/td&gt;
      &lt;td&gt;1&lt;/td&gt;
      &lt;td&gt;1&lt;/td&gt;
      &lt;td&gt;0&lt;/td&gt;
      &lt;td&gt;1&lt;/td&gt;
      &lt;td&gt;1&lt;/td&gt;
      &lt;td&gt;0&lt;/td&gt;
      &lt;td&gt;10&lt;/td&gt;
      &lt;td&gt;8&lt;/td&gt;
      &lt;td&gt;0&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;2&lt;/th&gt;
      &lt;td&gt;35&lt;/td&gt;
      &lt;td&gt;1350&lt;/td&gt;
      &lt;td&gt;1&lt;/td&gt;
      &lt;td&gt;1&lt;/td&gt;
      &lt;td&gt;330&lt;/td&gt;
      &lt;td&gt;4&lt;/td&gt;
      &lt;td&gt;2&lt;/td&gt;
      &lt;td&gt;2&lt;/td&gt;
      &lt;td&gt;0&lt;/td&gt;
      &lt;td&gt;1&lt;/td&gt;
      &lt;td&gt;0&lt;/td&gt;
      &lt;td&gt;0&lt;/td&gt;
      &lt;td&gt;15&lt;/td&gt;
      &lt;td&gt;0&lt;/td&gt;
      &lt;td&gt;0&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;3&lt;/th&gt;
      &lt;td&gt;30&lt;/td&gt;
      &lt;td&gt;1476&lt;/td&gt;
      &lt;td&gt;4&lt;/td&gt;
      &lt;td&gt;0&lt;/td&gt;
      &lt;td&gt;-1&lt;/td&gt;
      &lt;td&gt;4&lt;/td&gt;
      &lt;td&gt;1&lt;/td&gt;
      &lt;td&gt;2&lt;/td&gt;
      &lt;td&gt;0&lt;/td&gt;
      &lt;td&gt;1&lt;/td&gt;
      &lt;td&gt;1&lt;/td&gt;
      &lt;td&gt;2&lt;/td&gt;
      &lt;td&gt;2&lt;/td&gt;
      &lt;td&gt;6&lt;/td&gt;
      &lt;td&gt;3&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;4&lt;/th&gt;
      &lt;td&gt;59&lt;/td&gt;
      &lt;td&gt;0&lt;/td&gt;
      &lt;td&gt;1&lt;/td&gt;
      &lt;td&gt;0&lt;/td&gt;
      &lt;td&gt;-1&lt;/td&gt;
      &lt;td&gt;1&lt;/td&gt;
      &lt;td&gt;1&lt;/td&gt;
      &lt;td&gt;1&lt;/td&gt;
      &lt;td&gt;0&lt;/td&gt;
      &lt;td&gt;1&lt;/td&gt;
      &lt;td&gt;0&lt;/td&gt;
      &lt;td&gt;2&lt;/td&gt;
      &lt;td&gt;4&lt;/td&gt;
      &lt;td&gt;8&lt;/td&gt;
      &lt;td&gt;3&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
    

    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;
&lt;div class=&quot;input&quot;&gt;

&lt;div class=&quot;inner_cell&quot;&gt;
    &lt;div class=&quot;input_area&quot;&gt;
&lt;div class=&quot; highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;model&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;fit&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;X_numeric&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;y&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;div class=&quot;output_wrapper&quot;&gt;
&lt;div class=&quot;output&quot;&gt;

&lt;div class=&quot;output_area&quot;&gt;



&lt;div class=&quot;output_text output_subarea output_execute_result&quot;&gt;
&lt;pre&gt;LGBMClassifier()&lt;/pre&gt;
&lt;/div&gt;

&lt;/div&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
    

    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;
&lt;div class=&quot;input&quot;&gt;

&lt;div class=&quot;inner_cell&quot;&gt;
    &lt;div class=&quot;input_area&quot;&gt;
&lt;div class=&quot; highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;%&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;matplotlib&lt;/span&gt; inline
&lt;/pre&gt;&lt;/div&gt;

    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
    

    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;
&lt;div class=&quot;input&quot;&gt;

&lt;div class=&quot;inner_cell&quot;&gt;
    &lt;div class=&quot;input_area&quot;&gt;
&lt;div class=&quot; highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;lgb&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;plot_importance&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;model&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;div class=&quot;output_wrapper&quot;&gt;
&lt;div class=&quot;output&quot;&gt;

&lt;div class=&quot;output_area&quot;&gt;



&lt;div class=&quot;output_png output_subarea &quot;&gt;
&lt;img src=&quot;data:image/png;base64,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
&quot; /&gt;
&lt;/div&gt;

&lt;/div&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
    

&lt;div class=&quot;cell border-box-sizing text_cell rendered&quot;&gt;&lt;div class=&quot;inner_cell&quot;&gt;
&lt;div class=&quot;text_cell_render border-box-sizing rendered_html&quot;&gt;
&lt;p&gt;There are numerous ways to compute feature importance and this one implemented in the LightGBM library measures the number of times a given feature is used in the constructed trees:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://lightgbm.readthedocs.io/en/latest/pythonapi/lightgbm.plot_importance.html&quot;&gt;https://lightgbm.readthedocs.io/en/latest/pythonapi/lightgbm.plot_importance.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;In general, feature importance gives us a measure of how well a given measured variable correlates with the target (marketing success in our case).&lt;/p&gt;
&lt;p&gt;The question here is: How can we use our trained success predictor and our feature importances to aid intelligent plannning and decision-making in our business?&lt;/p&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;cell border-box-sizing text_cell rendered&quot;&gt;&lt;div class=&quot;inner_cell&quot;&gt;
&lt;div class=&quot;text_cell_render border-box-sizing rendered_html&quot;&gt;
&lt;h3 id=&quot;Uses-for&quot;&gt;Uses for&lt;a class=&quot;anchor-link&quot; href=&quot;#Uses-for&quot;&gt; &lt;/a&gt;&lt;/h3&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;</content><author><name></name></author><category term="causal inference" /><category term="causal discovery" /><category term="causality modelling" /><category term="python" /><summary type="html"></summary></entry><entry><title type="html">The Causality-Driven Company</title><link href="https://georg.io/the_causality-driven_company" rel="alternate" type="text/html" title="The Causality-Driven Company" /><published>2020-05-10T00:00:00-05:00</published><updated>2020-05-10T00:00:00-05:00</updated><id>https://georg.io/The_causality-driven_company</id><content type="html" xml:base="https://georg.io/the_causality-driven_company">&lt;h2 id=&quot;the-data-driven-company&quot;&gt;The data-driven company&lt;/h2&gt;

&lt;p&gt;Much has been written on data being the new oil and enterprises needing to embrace big data and machine learning to benefit in three important ways:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;Utilizing existing resources more efficiently thus reducing cost,&lt;/li&gt;
  &lt;li&gt;Increasing success rates thus increasing revenue, and&lt;/li&gt;
  &lt;li&gt;Developing entirely new revenue streams thus diversifying their business.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Enterprises are said to be data-driven once their entire organization is data-first, meaning:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;Both their core processes (e.g. production lines) and supporting processes (e.g. recruiting) are quantifiable through transparent metrics, and&lt;/li&gt;
  &lt;li&gt;All business units have a data mindset, i.e. are driven by testable hypotheses, and have the technological means for it.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2 id=&quot;machine-learning-applications-for-the-data-driven-company&quot;&gt;Machine learning applications for the data-driven company&lt;/h2&gt;

&lt;p&gt;There a numerous applications of big data and machine learning in industry and the enterprise. Common applications include:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Predictive maintenance,&lt;/li&gt;
  &lt;li&gt;Demand forecasting,&lt;/li&gt;
  &lt;li&gt;Optimal pricing,&lt;/li&gt;
  &lt;li&gt;Intelligent routing,&lt;/li&gt;
  &lt;li&gt;Data-driven customer support (e.g. chatbots), amd&lt;/li&gt;
  &lt;li&gt;Churn prediction.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Another key application in industry is smart manufacturing which promises to decrease cost and increase both production line output and quality.&lt;/p&gt;

&lt;h2 id=&quot;smart-manufacturing&quot;&gt;Smart manufacturing&lt;/h2&gt;

&lt;h3 id=&quot;product-quality-prediction&quot;&gt;Product quality prediction&lt;/h3&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/smart_manufacturing_machine_learning.jpg&quot; alt=&quot;Smart manufacturing with machine learning&quot; title=&quot;Figure 1: Production floor indicating production parameters A, B, C, and D alongside resultant quality score QA of items coming off the production line. (Original photo by Birmingham Museums Trust on Unsplash)&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Consider our production line, pictured above in Figure 1, which consists of a number of workstations that the different parts of our product need to pass through before being assembled into our final product.&lt;/p&gt;

&lt;p&gt;The various workstations can be described by parameters, e.g. how much pressure or force is applied, how fast a tool is spinning, or categories such as the type of drill used.&lt;/p&gt;

&lt;p&gt;Our fictional production line above has four production parameters spread across its workstations: &lt;span class=&quot;katex&quot;&gt;&lt;span class=&quot;katex-mathml&quot;&gt;&lt;math xmlns=&quot;http://www.w3.org/1998/Math/MathML&quot;&gt;&lt;semantics&gt;&lt;mrow&gt;&lt;mi&gt;A&lt;/mi&gt;&lt;/mrow&gt;&lt;annotation encoding=&quot;application/x-tex&quot;&gt;A&lt;/annotation&gt;&lt;/semantics&gt;&lt;/math&gt;&lt;/span&gt;&lt;span class=&quot;katex-html&quot; aria-hidden=&quot;true&quot;&gt;&lt;span class=&quot;base&quot;&gt;&lt;span class=&quot;strut&quot; style=&quot;height:0.68333em;vertical-align:0em;&quot;&gt;&lt;/span&gt;&lt;span class=&quot;mord mathdefault&quot;&gt;A&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;, &lt;span class=&quot;katex&quot;&gt;&lt;span class=&quot;katex-mathml&quot;&gt;&lt;math xmlns=&quot;http://www.w3.org/1998/Math/MathML&quot;&gt;&lt;semantics&gt;&lt;mrow&gt;&lt;mi&gt;B&lt;/mi&gt;&lt;/mrow&gt;&lt;annotation encoding=&quot;application/x-tex&quot;&gt;B&lt;/annotation&gt;&lt;/semantics&gt;&lt;/math&gt;&lt;/span&gt;&lt;span class=&quot;katex-html&quot; aria-hidden=&quot;true&quot;&gt;&lt;span class=&quot;base&quot;&gt;&lt;span class=&quot;strut&quot; style=&quot;height:0.68333em;vertical-align:0em;&quot;&gt;&lt;/span&gt;&lt;span class=&quot;mord mathdefault&quot; style=&quot;margin-right:0.05017em;&quot;&gt;B&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;, &lt;span class=&quot;katex&quot;&gt;&lt;span class=&quot;katex-mathml&quot;&gt;&lt;math xmlns=&quot;http://www.w3.org/1998/Math/MathML&quot;&gt;&lt;semantics&gt;&lt;mrow&gt;&lt;mi&gt;C&lt;/mi&gt;&lt;/mrow&gt;&lt;annotation encoding=&quot;application/x-tex&quot;&gt;C&lt;/annotation&gt;&lt;/semantics&gt;&lt;/math&gt;&lt;/span&gt;&lt;span class=&quot;katex-html&quot; aria-hidden=&quot;true&quot;&gt;&lt;span class=&quot;base&quot;&gt;&lt;span class=&quot;strut&quot; style=&quot;height:0.68333em;vertical-align:0em;&quot;&gt;&lt;/span&gt;&lt;span class=&quot;mord mathdefault&quot; style=&quot;margin-right:0.07153em;&quot;&gt;C&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;, and &lt;span class=&quot;katex&quot;&gt;&lt;span class=&quot;katex-mathml&quot;&gt;&lt;math xmlns=&quot;http://www.w3.org/1998/Math/MathML&quot;&gt;&lt;semantics&gt;&lt;mrow&gt;&lt;mi&gt;D&lt;/mi&gt;&lt;/mrow&gt;&lt;annotation encoding=&quot;application/x-tex&quot;&gt;D&lt;/annotation&gt;&lt;/semantics&gt;&lt;/math&gt;&lt;/span&gt;&lt;span class=&quot;katex-html&quot; aria-hidden=&quot;true&quot;&gt;&lt;span class=&quot;base&quot;&gt;&lt;span class=&quot;strut&quot; style=&quot;height:0.68333em;vertical-align:0em;&quot;&gt;&lt;/span&gt;&lt;span class=&quot;mord mathdefault&quot; style=&quot;margin-right:0.02778em;&quot;&gt;D&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;.&lt;/p&gt;

&lt;p&gt;At the far end of our production line the quality of our assembled product is quantified in the quality assurance gateway (&lt;span class=&quot;katex&quot;&gt;&lt;span class=&quot;katex-mathml&quot;&gt;&lt;math xmlns=&quot;http://www.w3.org/1998/Math/MathML&quot;&gt;&lt;semantics&gt;&lt;mrow&gt;&lt;mtext mathvariant=&quot;monospace&quot;&gt;QA&lt;/mtext&gt;&lt;/mrow&gt;&lt;annotation encoding=&quot;application/x-tex&quot;&gt;\verb!QA!&lt;/annotation&gt;&lt;/semantics&gt;&lt;/math&gt;&lt;/span&gt;&lt;span class=&quot;katex-html&quot; aria-hidden=&quot;true&quot;&gt;&lt;span class=&quot;base&quot;&gt;&lt;span class=&quot;strut&quot; style=&quot;height:0.75em;vertical-align:-0.13889em;&quot;&gt;&lt;/span&gt;&lt;span class=&quot;mord text&quot;&gt;&lt;span class=&quot;mord texttt&quot;&gt;QA&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;).
Here, either an employee or a machine visually inspects or physically tests manufactured items to verify their quality before they are shipped to customers.&lt;/p&gt;

&lt;p&gt;Since our company is data-driven we collect data on every item coming off our production line. Such a data set may look as follows:&lt;/p&gt;

&lt;table&gt;
  &lt;thead&gt;
    &lt;tr&gt;
      &lt;th&gt;Product ID&lt;/th&gt;
      &lt;th style=&quot;text-align: center&quot;&gt;Timestamp&lt;/th&gt;
      &lt;th style=&quot;text-align: center&quot;&gt;A&lt;/th&gt;
      &lt;th style=&quot;text-align: center&quot;&gt;B&lt;/th&gt;
      &lt;th style=&quot;text-align: center&quot;&gt;C&lt;/th&gt;
      &lt;th style=&quot;text-align: center&quot;&gt;D&lt;/th&gt;
      &lt;th style=&quot;text-align: center&quot;&gt;QA&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td&gt;…&lt;/td&gt;
      &lt;td style=&quot;text-align: center&quot;&gt;…&lt;/td&gt;
      &lt;td style=&quot;text-align: center&quot;&gt;…&lt;/td&gt;
      &lt;td style=&quot;text-align: center&quot;&gt;…&lt;/td&gt;
      &lt;td style=&quot;text-align: center&quot;&gt;…&lt;/td&gt;
      &lt;td style=&quot;text-align: center&quot;&gt;…&lt;/td&gt;
      &lt;td style=&quot;text-align: center&quot;&gt;…&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;123&lt;/td&gt;
      &lt;td style=&quot;text-align: center&quot;&gt;2020-05-10 14:35:00&lt;/td&gt;
      &lt;td style=&quot;text-align: center&quot;&gt;1.2&lt;/td&gt;
      &lt;td style=&quot;text-align: center&quot;&gt;102.1&lt;/td&gt;
      &lt;td style=&quot;text-align: center&quot;&gt;ZZ&lt;/td&gt;
      &lt;td style=&quot;text-align: center&quot;&gt;YY&lt;/td&gt;
      &lt;td style=&quot;text-align: center&quot;&gt;0.98&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;456&lt;/td&gt;
      &lt;td style=&quot;text-align: center&quot;&gt;2020-05-10 16:20:00&lt;/td&gt;
      &lt;td style=&quot;text-align: center&quot;&gt;1.1&lt;/td&gt;
      &lt;td style=&quot;text-align: center&quot;&gt;104.3&lt;/td&gt;
      &lt;td style=&quot;text-align: center&quot;&gt;ZZ&lt;/td&gt;
      &lt;td style=&quot;text-align: center&quot;&gt;XX&lt;/td&gt;
      &lt;td style=&quot;text-align: center&quot;&gt;0.96&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;789&lt;/td&gt;
      &lt;td style=&quot;text-align: center&quot;&gt;2020-05-11 06:04:00&lt;/td&gt;
      &lt;td style=&quot;text-align: center&quot;&gt;1.3&lt;/td&gt;
      &lt;td style=&quot;text-align: center&quot;&gt;100.6&lt;/td&gt;
      &lt;td style=&quot;text-align: center&quot;&gt;ZX&lt;/td&gt;
      &lt;td style=&quot;text-align: center&quot;&gt;YY&lt;/td&gt;
      &lt;td style=&quot;text-align: center&quot;&gt;0.83&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;012&lt;/td&gt;
      &lt;td style=&quot;text-align: center&quot;&gt;2020-05-11 10:45:00&lt;/td&gt;
      &lt;td style=&quot;text-align: center&quot;&gt;1.1&lt;/td&gt;
      &lt;td style=&quot;text-align: center&quot;&gt;101.3&lt;/td&gt;
      &lt;td style=&quot;text-align: center&quot;&gt;ZX&lt;/td&gt;
      &lt;td style=&quot;text-align: center&quot;&gt;YZ&lt;/td&gt;
      &lt;td style=&quot;text-align: center&quot;&gt;0.92&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;…&lt;/td&gt;
      &lt;td style=&quot;text-align: center&quot;&gt;…&lt;/td&gt;
      &lt;td style=&quot;text-align: center&quot;&gt;…&lt;/td&gt;
      &lt;td style=&quot;text-align: center&quot;&gt;…&lt;/td&gt;
      &lt;td style=&quot;text-align: center&quot;&gt;…&lt;/td&gt;
      &lt;td style=&quot;text-align: center&quot;&gt;…&lt;/td&gt;
      &lt;td style=&quot;text-align: center&quot;&gt;…&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;

&lt;p&gt;Parameters &lt;span class=&quot;katex&quot;&gt;&lt;span class=&quot;katex-mathml&quot;&gt;&lt;math xmlns=&quot;http://www.w3.org/1998/Math/MathML&quot;&gt;&lt;semantics&gt;&lt;mrow&gt;&lt;mi&gt;A&lt;/mi&gt;&lt;/mrow&gt;&lt;annotation encoding=&quot;application/x-tex&quot;&gt;A&lt;/annotation&gt;&lt;/semantics&gt;&lt;/math&gt;&lt;/span&gt;&lt;span class=&quot;katex-html&quot; aria-hidden=&quot;true&quot;&gt;&lt;span class=&quot;base&quot;&gt;&lt;span class=&quot;strut&quot; style=&quot;height:0.68333em;vertical-align:0em;&quot;&gt;&lt;/span&gt;&lt;span class=&quot;mord mathdefault&quot;&gt;A&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; and &lt;span class=&quot;katex&quot;&gt;&lt;span class=&quot;katex-mathml&quot;&gt;&lt;math xmlns=&quot;http://www.w3.org/1998/Math/MathML&quot;&gt;&lt;semantics&gt;&lt;mrow&gt;&lt;mi&gt;B&lt;/mi&gt;&lt;/mrow&gt;&lt;annotation encoding=&quot;application/x-tex&quot;&gt;B&lt;/annotation&gt;&lt;/semantics&gt;&lt;/math&gt;&lt;/span&gt;&lt;span class=&quot;katex-html&quot; aria-hidden=&quot;true&quot;&gt;&lt;span class=&quot;base&quot;&gt;&lt;span class=&quot;strut&quot; style=&quot;height:0.68333em;vertical-align:0em;&quot;&gt;&lt;/span&gt;&lt;span class=&quot;mord mathdefault&quot; style=&quot;margin-right:0.05017em;&quot;&gt;B&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; of our production line are numerical features while parameters &lt;span class=&quot;katex&quot;&gt;&lt;span class=&quot;katex-mathml&quot;&gt;&lt;math xmlns=&quot;http://www.w3.org/1998/Math/MathML&quot;&gt;&lt;semantics&gt;&lt;mrow&gt;&lt;mi&gt;C&lt;/mi&gt;&lt;/mrow&gt;&lt;annotation encoding=&quot;application/x-tex&quot;&gt;C&lt;/annotation&gt;&lt;/semantics&gt;&lt;/math&gt;&lt;/span&gt;&lt;span class=&quot;katex-html&quot; aria-hidden=&quot;true&quot;&gt;&lt;span class=&quot;base&quot;&gt;&lt;span class=&quot;strut&quot; style=&quot;height:0.68333em;vertical-align:0em;&quot;&gt;&lt;/span&gt;&lt;span class=&quot;mord mathdefault&quot; style=&quot;margin-right:0.07153em;&quot;&gt;C&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; and &lt;span class=&quot;katex&quot;&gt;&lt;span class=&quot;katex-mathml&quot;&gt;&lt;math xmlns=&quot;http://www.w3.org/1998/Math/MathML&quot;&gt;&lt;semantics&gt;&lt;mrow&gt;&lt;mi&gt;D&lt;/mi&gt;&lt;/mrow&gt;&lt;annotation encoding=&quot;application/x-tex&quot;&gt;D&lt;/annotation&gt;&lt;/semantics&gt;&lt;/math&gt;&lt;/span&gt;&lt;span class=&quot;katex-html&quot; aria-hidden=&quot;true&quot;&gt;&lt;span class=&quot;base&quot;&gt;&lt;span class=&quot;strut&quot; style=&quot;height:0.68333em;vertical-align:0em;&quot;&gt;&lt;/span&gt;&lt;span class=&quot;mord mathdefault&quot; style=&quot;margin-right:0.02778em;&quot;&gt;D&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; are categorical features.
Our quality measurement &lt;span class=&quot;katex&quot;&gt;&lt;span class=&quot;katex-mathml&quot;&gt;&lt;math xmlns=&quot;http://www.w3.org/1998/Math/MathML&quot;&gt;&lt;semantics&gt;&lt;mrow&gt;&lt;mtext mathvariant=&quot;monospace&quot;&gt;QA&lt;/mtext&gt;&lt;/mrow&gt;&lt;annotation encoding=&quot;application/x-tex&quot;&gt;\verb!QA!&lt;/annotation&gt;&lt;/semantics&gt;&lt;/math&gt;&lt;/span&gt;&lt;span class=&quot;katex-html&quot; aria-hidden=&quot;true&quot;&gt;&lt;span class=&quot;base&quot;&gt;&lt;span class=&quot;strut&quot; style=&quot;height:0.75em;vertical-align:-0.13889em;&quot;&gt;&lt;/span&gt;&lt;span class=&quot;mord text&quot;&gt;&lt;span class=&quot;mord texttt&quot;&gt;QA&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; is a numerical target variable which takes values between 0 and 1 with the latter representing the highest possible product quality.&lt;/p&gt;

&lt;p&gt;Provided that we collect enough production line data, machine learning offers a rich toolbox for predicting the expected &lt;span class=&quot;katex&quot;&gt;&lt;span class=&quot;katex-mathml&quot;&gt;&lt;math xmlns=&quot;http://www.w3.org/1998/Math/MathML&quot;&gt;&lt;semantics&gt;&lt;mrow&gt;&lt;mtext mathvariant=&quot;monospace&quot;&gt;QA&lt;/mtext&gt;&lt;/mrow&gt;&lt;annotation encoding=&quot;application/x-tex&quot;&gt;\verb!QA!&lt;/annotation&gt;&lt;/semantics&gt;&lt;/math&gt;&lt;/span&gt;&lt;span class=&quot;katex-html&quot; aria-hidden=&quot;true&quot;&gt;&lt;span class=&quot;base&quot;&gt;&lt;span class=&quot;strut&quot; style=&quot;height:0.75em;vertical-align:-0.13889em;&quot;&gt;&lt;/span&gt;&lt;span class=&quot;mord text&quot;&gt;&lt;span class=&quot;mord texttt&quot;&gt;QA&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; score or whether our &lt;span class=&quot;katex&quot;&gt;&lt;span class=&quot;katex-mathml&quot;&gt;&lt;math xmlns=&quot;http://www.w3.org/1998/Math/MathML&quot;&gt;&lt;semantics&gt;&lt;mrow&gt;&lt;mtext mathvariant=&quot;monospace&quot;&gt;QA&lt;/mtext&gt;&lt;/mrow&gt;&lt;annotation encoding=&quot;application/x-tex&quot;&gt;\verb!QA!&lt;/annotation&gt;&lt;/semantics&gt;&lt;/math&gt;&lt;/span&gt;&lt;span class=&quot;katex-html&quot; aria-hidden=&quot;true&quot;&gt;&lt;span class=&quot;base&quot;&gt;&lt;span class=&quot;strut&quot; style=&quot;height:0.75em;vertical-align:-0.13889em;&quot;&gt;&lt;/span&gt;&lt;span class=&quot;mord text&quot;&gt;&lt;span class=&quot;mord texttt&quot;&gt;QA&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; score will lie above a certain threshold.
The former application is called regression (predict &lt;span class=&quot;katex&quot;&gt;&lt;span class=&quot;katex-mathml&quot;&gt;&lt;math xmlns=&quot;http://www.w3.org/1998/Math/MathML&quot;&gt;&lt;semantics&gt;&lt;mrow&gt;&lt;mtext mathvariant=&quot;monospace&quot;&gt;QA&lt;/mtext&gt;&lt;/mrow&gt;&lt;annotation encoding=&quot;application/x-tex&quot;&gt;\verb!QA!&lt;/annotation&gt;&lt;/semantics&gt;&lt;/math&gt;&lt;/span&gt;&lt;span class=&quot;katex-html&quot; aria-hidden=&quot;true&quot;&gt;&lt;span class=&quot;base&quot;&gt;&lt;span class=&quot;strut&quot; style=&quot;height:0.75em;vertical-align:-0.13889em;&quot;&gt;&lt;/span&gt;&lt;span class=&quot;mord text&quot;&gt;&lt;span class=&quot;mord texttt&quot;&gt;QA&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; value) while the latter is called classification (predict if &lt;span class=&quot;katex&quot;&gt;&lt;span class=&quot;katex-mathml&quot;&gt;&lt;math xmlns=&quot;http://www.w3.org/1998/Math/MathML&quot;&gt;&lt;semantics&gt;&lt;mrow&gt;&lt;mtext mathvariant=&quot;monospace&quot;&gt;QA&lt;/mtext&gt;&lt;/mrow&gt;&lt;annotation encoding=&quot;application/x-tex&quot;&gt;\verb!QA!&lt;/annotation&gt;&lt;/semantics&gt;&lt;/math&gt;&lt;/span&gt;&lt;span class=&quot;katex-html&quot; aria-hidden=&quot;true&quot;&gt;&lt;span class=&quot;base&quot;&gt;&lt;span class=&quot;strut&quot; style=&quot;height:0.75em;vertical-align:-0.13889em;&quot;&gt;&lt;/span&gt;&lt;span class=&quot;mord text&quot;&gt;&lt;span class=&quot;mord texttt&quot;&gt;QA&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; is greater than a threshold).&lt;/p&gt;

&lt;p&gt;To implement these applications there are numerous established machine learning models, some of which are:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Linear and polynomial regression,&lt;/li&gt;
  &lt;li&gt;(Deep) neural networks / deep learning,&lt;/li&gt;
  &lt;li&gt;Classification and regression trees (CART),&lt;/li&gt;
  &lt;li&gt;Ensemble methods such as random forests and gradient tree boosting,&lt;/li&gt;
  &lt;li&gt;Logistic regression,&lt;/li&gt;
  &lt;li&gt;Support vector machines,&lt;/li&gt;
  &lt;li&gt;Gaussian processes, and&lt;/li&gt;
  &lt;li&gt;Naive Bayes.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These machine learning models allow us to learn the potentially complex relationship between our production line parameters (&lt;span class=&quot;katex&quot;&gt;&lt;span class=&quot;katex-mathml&quot;&gt;&lt;math xmlns=&quot;http://www.w3.org/1998/Math/MathML&quot;&gt;&lt;semantics&gt;&lt;mrow&gt;&lt;mi&gt;A&lt;/mi&gt;&lt;/mrow&gt;&lt;annotation encoding=&quot;application/x-tex&quot;&gt;A&lt;/annotation&gt;&lt;/semantics&gt;&lt;/math&gt;&lt;/span&gt;&lt;span class=&quot;katex-html&quot; aria-hidden=&quot;true&quot;&gt;&lt;span class=&quot;base&quot;&gt;&lt;span class=&quot;strut&quot; style=&quot;height:0.68333em;vertical-align:0em;&quot;&gt;&lt;/span&gt;&lt;span class=&quot;mord mathdefault&quot;&gt;A&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;, &lt;span class=&quot;katex&quot;&gt;&lt;span class=&quot;katex-mathml&quot;&gt;&lt;math xmlns=&quot;http://www.w3.org/1998/Math/MathML&quot;&gt;&lt;semantics&gt;&lt;mrow&gt;&lt;mi&gt;B&lt;/mi&gt;&lt;/mrow&gt;&lt;annotation encoding=&quot;application/x-tex&quot;&gt;B&lt;/annotation&gt;&lt;/semantics&gt;&lt;/math&gt;&lt;/span&gt;&lt;span class=&quot;katex-html&quot; aria-hidden=&quot;true&quot;&gt;&lt;span class=&quot;base&quot;&gt;&lt;span class=&quot;strut&quot; style=&quot;height:0.68333em;vertical-align:0em;&quot;&gt;&lt;/span&gt;&lt;span class=&quot;mord mathdefault&quot; style=&quot;margin-right:0.05017em;&quot;&gt;B&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;, &lt;span class=&quot;katex&quot;&gt;&lt;span class=&quot;katex-mathml&quot;&gt;&lt;math xmlns=&quot;http://www.w3.org/1998/Math/MathML&quot;&gt;&lt;semantics&gt;&lt;mrow&gt;&lt;mi&gt;C&lt;/mi&gt;&lt;/mrow&gt;&lt;annotation encoding=&quot;application/x-tex&quot;&gt;C&lt;/annotation&gt;&lt;/semantics&gt;&lt;/math&gt;&lt;/span&gt;&lt;span class=&quot;katex-html&quot; aria-hidden=&quot;true&quot;&gt;&lt;span class=&quot;base&quot;&gt;&lt;span class=&quot;strut&quot; style=&quot;height:0.68333em;vertical-align:0em;&quot;&gt;&lt;/span&gt;&lt;span class=&quot;mord mathdefault&quot; style=&quot;margin-right:0.07153em;&quot;&gt;C&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;, and &lt;span class=&quot;katex&quot;&gt;&lt;span class=&quot;katex-mathml&quot;&gt;&lt;math xmlns=&quot;http://www.w3.org/1998/Math/MathML&quot;&gt;&lt;semantics&gt;&lt;mrow&gt;&lt;mi&gt;D&lt;/mi&gt;&lt;/mrow&gt;&lt;annotation encoding=&quot;application/x-tex&quot;&gt;D&lt;/annotation&gt;&lt;/semantics&gt;&lt;/math&gt;&lt;/span&gt;&lt;span class=&quot;katex-html&quot; aria-hidden=&quot;true&quot;&gt;&lt;span class=&quot;base&quot;&gt;&lt;span class=&quot;strut&quot; style=&quot;height:0.68333em;vertical-align:0em;&quot;&gt;&lt;/span&gt;&lt;span class=&quot;mord mathdefault&quot; style=&quot;margin-right:0.02778em;&quot;&gt;D&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;) and resultant product quality (&lt;span class=&quot;katex&quot;&gt;&lt;span class=&quot;katex-mathml&quot;&gt;&lt;math xmlns=&quot;http://www.w3.org/1998/Math/MathML&quot;&gt;&lt;semantics&gt;&lt;mrow&gt;&lt;mtext mathvariant=&quot;monospace&quot;&gt;QA&lt;/mtext&gt;&lt;/mrow&gt;&lt;annotation encoding=&quot;application/x-tex&quot;&gt;\verb!QA!&lt;/annotation&gt;&lt;/semantics&gt;&lt;/math&gt;&lt;/span&gt;&lt;span class=&quot;katex-html&quot; aria-hidden=&quot;true&quot;&gt;&lt;span class=&quot;base&quot;&gt;&lt;span class=&quot;strut&quot; style=&quot;height:0.75em;vertical-align:-0.13889em;&quot;&gt;&lt;/span&gt;&lt;span class=&quot;mord text&quot;&gt;&lt;span class=&quot;mord texttt&quot;&gt;QA&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;).&lt;/p&gt;

&lt;p&gt;These are also the same machine learning models used routinely to implement the other aforementioned industry applications such as demand forecasting or churn prediction.&lt;/p&gt;

&lt;p&gt;So training a machine learning model on our production line data we get something like this:&lt;/p&gt;

&lt;p&gt;&lt;span class=&quot;katex&quot;&gt;&lt;span class=&quot;katex-mathml&quot;&gt;&lt;math xmlns=&quot;http://www.w3.org/1998/Math/MathML&quot;&gt;&lt;semantics&gt;&lt;mrow&gt;&lt;mtext mathvariant=&quot;monospace&quot;&gt;QA&lt;/mtext&gt;&lt;mo&gt;=&lt;/mo&gt;&lt;mtext mathvariant=&quot;monospace&quot;&gt;model&lt;/mtext&gt;&lt;mo stretchy=&quot;false&quot;&gt;(&lt;/mo&gt;&lt;mi&gt;A&lt;/mi&gt;&lt;mo separator=&quot;true&quot;&gt;,&lt;/mo&gt;&lt;mi&gt;B&lt;/mi&gt;&lt;mo separator=&quot;true&quot;&gt;,&lt;/mo&gt;&lt;mi&gt;C&lt;/mi&gt;&lt;mo separator=&quot;true&quot;&gt;,&lt;/mo&gt;&lt;mi&gt;D&lt;/mi&gt;&lt;mo stretchy=&quot;false&quot;&gt;)&lt;/mo&gt;&lt;/mrow&gt;&lt;annotation encoding=&quot;application/x-tex&quot;&gt;\verb!QA! = \verb!model!(A, B, C, D)&lt;/annotation&gt;&lt;/semantics&gt;&lt;/math&gt;&lt;/span&gt;&lt;span class=&quot;katex-html&quot; aria-hidden=&quot;true&quot;&gt;&lt;span class=&quot;base&quot;&gt;&lt;span class=&quot;strut&quot; style=&quot;height:0.75em;vertical-align:-0.13889em;&quot;&gt;&lt;/span&gt;&lt;span class=&quot;mord text&quot;&gt;&lt;span class=&quot;mord texttt&quot;&gt;QA&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;mspace&quot; style=&quot;margin-right:0.2777777777777778em;&quot;&gt;&lt;/span&gt;&lt;span class=&quot;mrel&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;mspace&quot; style=&quot;margin-right:0.2777777777777778em;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;base&quot;&gt;&lt;span class=&quot;strut&quot; style=&quot;height:1em;vertical-align:-0.25em;&quot;&gt;&lt;/span&gt;&lt;span class=&quot;mord text&quot;&gt;&lt;span class=&quot;mord texttt&quot;&gt;model&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;mopen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mord mathdefault&quot;&gt;A&lt;/span&gt;&lt;span class=&quot;mpunct&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;mspace&quot; style=&quot;margin-right:0.16666666666666666em;&quot;&gt;&lt;/span&gt;&lt;span class=&quot;mord mathdefault&quot; style=&quot;margin-right:0.05017em;&quot;&gt;B&lt;/span&gt;&lt;span class=&quot;mpunct&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;mspace&quot; style=&quot;margin-right:0.16666666666666666em;&quot;&gt;&lt;/span&gt;&lt;span class=&quot;mord mathdefault&quot; style=&quot;margin-right:0.07153em;&quot;&gt;C&lt;/span&gt;&lt;span class=&quot;mpunct&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;mspace&quot; style=&quot;margin-right:0.16666666666666666em;&quot;&gt;&lt;/span&gt;&lt;span class=&quot;mord mathdefault&quot; style=&quot;margin-right:0.02778em;&quot;&gt;D&lt;/span&gt;&lt;span class=&quot;mclose&quot;&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;.&lt;/p&gt;

&lt;p&gt;Where our model predicts the quality of our final product based on the parameters of our production line.&lt;/p&gt;

&lt;h3 id=&quot;using-our-prediction-model&quot;&gt;Using our prediction model&lt;/h3&gt;

&lt;p&gt;Imagine we manage to train a highly accurate machine learning model on our production line data - what do we do with it?&lt;/p&gt;

&lt;p&gt;Sure, if measuring the quality of our product (&lt;span class=&quot;katex&quot;&gt;&lt;span class=&quot;katex-mathml&quot;&gt;&lt;math xmlns=&quot;http://www.w3.org/1998/Math/MathML&quot;&gt;&lt;semantics&gt;&lt;mrow&gt;&lt;mtext mathvariant=&quot;monospace&quot;&gt;QA&lt;/mtext&gt;&lt;/mrow&gt;&lt;annotation encoding=&quot;application/x-tex&quot;&gt;\verb!QA!&lt;/annotation&gt;&lt;/semantics&gt;&lt;/math&gt;&lt;/span&gt;&lt;span class=&quot;katex-html&quot; aria-hidden=&quot;true&quot;&gt;&lt;span class=&quot;base&quot;&gt;&lt;span class=&quot;strut&quot; style=&quot;height:0.75em;vertical-align:-0.13889em;&quot;&gt;&lt;/span&gt;&lt;span class=&quot;mord text&quot;&gt;&lt;span class=&quot;mord texttt&quot;&gt;QA&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;) is prohibitively expensive we could cut cost by using our model to determine the quality score for items coming off our production line.&lt;/p&gt;

&lt;p&gt;We could also try and adapt our model so that it provides accurate quality score predictions early in the production cycle for a given item - thus allowing us to cancel work on substandard items before they consume resources unnecessarily.&lt;/p&gt;

&lt;p&gt;But really, what we are most likely interested in is:&lt;/p&gt;

&lt;p&gt;How should we tweak individual production parameters to increase product quality?&lt;/p&gt;

&lt;h3 id=&quot;issue-with-our-prediction-model&quot;&gt;Issue with our prediction model&lt;/h3&gt;

&lt;p&gt;Unfortunately, our machine learning model does not hold the answer to our core question:
Out of the box it will not help us optimize individual production parameters to improve our quality score &lt;span class=&quot;katex&quot;&gt;&lt;span class=&quot;katex-mathml&quot;&gt;&lt;math xmlns=&quot;http://www.w3.org/1998/Math/MathML&quot;&gt;&lt;semantics&gt;&lt;mrow&gt;&lt;mtext mathvariant=&quot;monospace&quot;&gt;QA&lt;/mtext&gt;&lt;/mrow&gt;&lt;annotation encoding=&quot;application/x-tex&quot;&gt;\verb!QA!&lt;/annotation&gt;&lt;/semantics&gt;&lt;/math&gt;&lt;/span&gt;&lt;span class=&quot;katex-html&quot; aria-hidden=&quot;true&quot;&gt;&lt;span class=&quot;base&quot;&gt;&lt;span class=&quot;strut&quot; style=&quot;height:0.75em;vertical-align:-0.13889em;&quot;&gt;&lt;/span&gt;&lt;span class=&quot;mord text&quot;&gt;&lt;span class=&quot;mord texttt&quot;&gt;QA&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;.&lt;/p&gt;

&lt;p&gt;Let’s see why that is.&lt;/p&gt;

&lt;p&gt;We can write our machine learning model as a function:&lt;/p&gt;

&lt;span class=&quot;katex-display&quot;&gt;&lt;span class=&quot;katex&quot;&gt;&lt;span class=&quot;katex-mathml&quot;&gt;&lt;math xmlns=&quot;http://www.w3.org/1998/Math/MathML&quot;&gt;&lt;semantics&gt;&lt;mrow&gt;&lt;mtext mathvariant=&quot;monospace&quot;&gt;QA&lt;/mtext&gt;&lt;mo&gt;=&lt;/mo&gt;&lt;mi&gt;f&lt;/mi&gt;&lt;mo stretchy=&quot;false&quot;&gt;(&lt;/mo&gt;&lt;mi&gt;A&lt;/mi&gt;&lt;mo separator=&quot;true&quot;&gt;,&lt;/mo&gt;&lt;mi&gt;B&lt;/mi&gt;&lt;mo separator=&quot;true&quot;&gt;,&lt;/mo&gt;&lt;mi&gt;C&lt;/mi&gt;&lt;mo separator=&quot;true&quot;&gt;,&lt;/mo&gt;&lt;mi&gt;D&lt;/mi&gt;&lt;mo stretchy=&quot;false&quot;&gt;)&lt;/mo&gt;&lt;mo separator=&quot;true&quot;&gt;,&lt;/mo&gt;&lt;/mrow&gt;&lt;annotation encoding=&quot;application/x-tex&quot;&gt;\verb!QA! = f(A, B, C, D),&lt;/annotation&gt;&lt;/semantics&gt;&lt;/math&gt;&lt;/span&gt;&lt;span class=&quot;katex-html&quot; aria-hidden=&quot;true&quot;&gt;&lt;span class=&quot;base&quot;&gt;&lt;span class=&quot;strut&quot; style=&quot;height:0.75em;vertical-align:-0.13889em;&quot;&gt;&lt;/span&gt;&lt;span class=&quot;mord text&quot;&gt;&lt;span class=&quot;mord texttt&quot;&gt;QA&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;mspace&quot; style=&quot;margin-right:0.2777777777777778em;&quot;&gt;&lt;/span&gt;&lt;span class=&quot;mrel&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;mspace&quot; style=&quot;margin-right:0.2777777777777778em;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;base&quot;&gt;&lt;span class=&quot;strut&quot; style=&quot;height:1em;vertical-align:-0.25em;&quot;&gt;&lt;/span&gt;&lt;span class=&quot;mord mathdefault&quot; style=&quot;margin-right:0.10764em;&quot;&gt;f&lt;/span&gt;&lt;span class=&quot;mopen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mord mathdefault&quot;&gt;A&lt;/span&gt;&lt;span class=&quot;mpunct&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;mspace&quot; style=&quot;margin-right:0.16666666666666666em;&quot;&gt;&lt;/span&gt;&lt;span class=&quot;mord mathdefault&quot; style=&quot;margin-right:0.05017em;&quot;&gt;B&lt;/span&gt;&lt;span class=&quot;mpunct&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;mspace&quot; style=&quot;margin-right:0.16666666666666666em;&quot;&gt;&lt;/span&gt;&lt;span class=&quot;mord mathdefault&quot; style=&quot;margin-right:0.07153em;&quot;&gt;C&lt;/span&gt;&lt;span class=&quot;mpunct&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;mspace&quot; style=&quot;margin-right:0.16666666666666666em;&quot;&gt;&lt;/span&gt;&lt;span class=&quot;mord mathdefault&quot; style=&quot;margin-right:0.02778em;&quot;&gt;D&lt;/span&gt;&lt;span class=&quot;mclose&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;mpunct&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;

&lt;p&gt;where &lt;span class=&quot;katex&quot;&gt;&lt;span class=&quot;katex-mathml&quot;&gt;&lt;math xmlns=&quot;http://www.w3.org/1998/Math/MathML&quot;&gt;&lt;semantics&gt;&lt;mrow&gt;&lt;mi&gt;f&lt;/mi&gt;&lt;/mrow&gt;&lt;annotation encoding=&quot;application/x-tex&quot;&gt;f&lt;/annotation&gt;&lt;/semantics&gt;&lt;/math&gt;&lt;/span&gt;&lt;span class=&quot;katex-html&quot; aria-hidden=&quot;true&quot;&gt;&lt;span class=&quot;base&quot;&gt;&lt;span class=&quot;strut&quot; style=&quot;height:0.8888799999999999em;vertical-align:-0.19444em;&quot;&gt;&lt;/span&gt;&lt;span class=&quot;mord mathdefault&quot; style=&quot;margin-right:0.10764em;&quot;&gt;f&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; is our model that predicts the quality score for items manufactured with production parameters
&lt;span class=&quot;katex&quot;&gt;&lt;span class=&quot;katex-mathml&quot;&gt;&lt;math xmlns=&quot;http://www.w3.org/1998/Math/MathML&quot;&gt;&lt;semantics&gt;&lt;mrow&gt;&lt;mi&gt;A&lt;/mi&gt;&lt;/mrow&gt;&lt;annotation encoding=&quot;application/x-tex&quot;&gt;A&lt;/annotation&gt;&lt;/semantics&gt;&lt;/math&gt;&lt;/span&gt;&lt;span class=&quot;katex-html&quot; aria-hidden=&quot;true&quot;&gt;&lt;span class=&quot;base&quot;&gt;&lt;span class=&quot;strut&quot; style=&quot;height:0.68333em;vertical-align:0em;&quot;&gt;&lt;/span&gt;&lt;span class=&quot;mord mathdefault&quot;&gt;A&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;, &lt;span class=&quot;katex&quot;&gt;&lt;span class=&quot;katex-mathml&quot;&gt;&lt;math xmlns=&quot;http://www.w3.org/1998/Math/MathML&quot;&gt;&lt;semantics&gt;&lt;mrow&gt;&lt;mi&gt;B&lt;/mi&gt;&lt;/mrow&gt;&lt;annotation encoding=&quot;application/x-tex&quot;&gt;B&lt;/annotation&gt;&lt;/semantics&gt;&lt;/math&gt;&lt;/span&gt;&lt;span class=&quot;katex-html&quot; aria-hidden=&quot;true&quot;&gt;&lt;span class=&quot;base&quot;&gt;&lt;span class=&quot;strut&quot; style=&quot;height:0.68333em;vertical-align:0em;&quot;&gt;&lt;/span&gt;&lt;span class=&quot;mord mathdefault&quot; style=&quot;margin-right:0.05017em;&quot;&gt;B&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;, &lt;span class=&quot;katex&quot;&gt;&lt;span class=&quot;katex-mathml&quot;&gt;&lt;math xmlns=&quot;http://www.w3.org/1998/Math/MathML&quot;&gt;&lt;semantics&gt;&lt;mrow&gt;&lt;mi&gt;C&lt;/mi&gt;&lt;/mrow&gt;&lt;annotation encoding=&quot;application/x-tex&quot;&gt;C&lt;/annotation&gt;&lt;/semantics&gt;&lt;/math&gt;&lt;/span&gt;&lt;span class=&quot;katex-html&quot; aria-hidden=&quot;true&quot;&gt;&lt;span class=&quot;base&quot;&gt;&lt;span class=&quot;strut&quot; style=&quot;height:0.68333em;vertical-align:0em;&quot;&gt;&lt;/span&gt;&lt;span class=&quot;mord mathdefault&quot; style=&quot;margin-right:0.07153em;&quot;&gt;C&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;, and &lt;span class=&quot;katex&quot;&gt;&lt;span class=&quot;katex-mathml&quot;&gt;&lt;math xmlns=&quot;http://www.w3.org/1998/Math/MathML&quot;&gt;&lt;semantics&gt;&lt;mrow&gt;&lt;mi&gt;D&lt;/mi&gt;&lt;/mrow&gt;&lt;annotation encoding=&quot;application/x-tex&quot;&gt;D&lt;/annotation&gt;&lt;/semantics&gt;&lt;/math&gt;&lt;/span&gt;&lt;span class=&quot;katex-html&quot; aria-hidden=&quot;true&quot;&gt;&lt;span class=&quot;base&quot;&gt;&lt;span class=&quot;strut&quot; style=&quot;height:0.68333em;vertical-align:0em;&quot;&gt;&lt;/span&gt;&lt;span class=&quot;mord mathdefault&quot; style=&quot;margin-right:0.02778em;&quot;&gt;D&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;.&lt;/p&gt;

&lt;p&gt;The issue with this model is that it learns the relationship between quality score and production parameters “in bulk” - or in other words the conditional distribution of &lt;span class=&quot;katex&quot;&gt;&lt;span class=&quot;katex-mathml&quot;&gt;&lt;math xmlns=&quot;http://www.w3.org/1998/Math/MathML&quot;&gt;&lt;semantics&gt;&lt;mrow&gt;&lt;mtext mathvariant=&quot;monospace&quot;&gt;QA&lt;/mtext&gt;&lt;/mrow&gt;&lt;annotation encoding=&quot;application/x-tex&quot;&gt;\verb!QA!&lt;/annotation&gt;&lt;/semantics&gt;&lt;/math&gt;&lt;/span&gt;&lt;span class=&quot;katex-html&quot; aria-hidden=&quot;true&quot;&gt;&lt;span class=&quot;base&quot;&gt;&lt;span class=&quot;strut&quot; style=&quot;height:0.75em;vertical-align:-0.13889em;&quot;&gt;&lt;/span&gt;&lt;span class=&quot;mord text&quot;&gt;&lt;span class=&quot;mord texttt&quot;&gt;QA&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; jointly on production parameters &lt;span class=&quot;katex&quot;&gt;&lt;span class=&quot;katex-mathml&quot;&gt;&lt;math xmlns=&quot;http://www.w3.org/1998/Math/MathML&quot;&gt;&lt;semantics&gt;&lt;mrow&gt;&lt;mi&gt;A&lt;/mi&gt;&lt;/mrow&gt;&lt;annotation encoding=&quot;application/x-tex&quot;&gt;A&lt;/annotation&gt;&lt;/semantics&gt;&lt;/math&gt;&lt;/span&gt;&lt;span class=&quot;katex-html&quot; aria-hidden=&quot;true&quot;&gt;&lt;span class=&quot;base&quot;&gt;&lt;span class=&quot;strut&quot; style=&quot;height:0.68333em;vertical-align:0em;&quot;&gt;&lt;/span&gt;&lt;span class=&quot;mord mathdefault&quot;&gt;A&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;, &lt;span class=&quot;katex&quot;&gt;&lt;span class=&quot;katex-mathml&quot;&gt;&lt;math xmlns=&quot;http://www.w3.org/1998/Math/MathML&quot;&gt;&lt;semantics&gt;&lt;mrow&gt;&lt;mi&gt;B&lt;/mi&gt;&lt;/mrow&gt;&lt;annotation encoding=&quot;application/x-tex&quot;&gt;B&lt;/annotation&gt;&lt;/semantics&gt;&lt;/math&gt;&lt;/span&gt;&lt;span class=&quot;katex-html&quot; aria-hidden=&quot;true&quot;&gt;&lt;span class=&quot;base&quot;&gt;&lt;span class=&quot;strut&quot; style=&quot;height:0.68333em;vertical-align:0em;&quot;&gt;&lt;/span&gt;&lt;span class=&quot;mord mathdefault&quot; style=&quot;margin-right:0.05017em;&quot;&gt;B&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;, &lt;span class=&quot;katex&quot;&gt;&lt;span class=&quot;katex-mathml&quot;&gt;&lt;math xmlns=&quot;http://www.w3.org/1998/Math/MathML&quot;&gt;&lt;semantics&gt;&lt;mrow&gt;&lt;mi&gt;C&lt;/mi&gt;&lt;/mrow&gt;&lt;annotation encoding=&quot;application/x-tex&quot;&gt;C&lt;/annotation&gt;&lt;/semantics&gt;&lt;/math&gt;&lt;/span&gt;&lt;span class=&quot;katex-html&quot; aria-hidden=&quot;true&quot;&gt;&lt;span class=&quot;base&quot;&gt;&lt;span class=&quot;strut&quot; style=&quot;height:0.68333em;vertical-align:0em;&quot;&gt;&lt;/span&gt;&lt;span class=&quot;mord mathdefault&quot; style=&quot;margin-right:0.07153em;&quot;&gt;C&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;, and &lt;span class=&quot;katex&quot;&gt;&lt;span class=&quot;katex-mathml&quot;&gt;&lt;math xmlns=&quot;http://www.w3.org/1998/Math/MathML&quot;&gt;&lt;semantics&gt;&lt;mrow&gt;&lt;mi&gt;D&lt;/mi&gt;&lt;/mrow&gt;&lt;annotation encoding=&quot;application/x-tex&quot;&gt;D&lt;/annotation&gt;&lt;/semantics&gt;&lt;/math&gt;&lt;/span&gt;&lt;span class=&quot;katex-html&quot; aria-hidden=&quot;true&quot;&gt;&lt;span class=&quot;base&quot;&gt;&lt;span class=&quot;strut&quot; style=&quot;height:0.68333em;vertical-align:0em;&quot;&gt;&lt;/span&gt;&lt;span class=&quot;mord mathdefault&quot; style=&quot;margin-right:0.02778em;&quot;&gt;D&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;.&lt;/p&gt;

&lt;p&gt;The only sensible operation we can carry out with this model is asking all production line workers for their presently (or planned) production parameter values, inputting them into our model, and informing our colleagues in production of the quality score we expect to achieve with their configuration.&lt;/p&gt;

&lt;p&gt;Of course, a far more desirable operation would be to take the presently used production parameters, e.g.&lt;/p&gt;

&lt;span class=&quot;katex-display&quot;&gt;&lt;span class=&quot;katex&quot;&gt;&lt;span class=&quot;katex-mathml&quot;&gt;&lt;math xmlns=&quot;http://www.w3.org/1998/Math/MathML&quot;&gt;&lt;semantics&gt;&lt;mrow&gt;&lt;mo stretchy=&quot;false&quot;&gt;(&lt;/mo&gt;&lt;mi&gt;A&lt;/mi&gt;&lt;mo separator=&quot;true&quot;&gt;,&lt;/mo&gt;&lt;mi&gt;B&lt;/mi&gt;&lt;mo separator=&quot;true&quot;&gt;,&lt;/mo&gt;&lt;mi&gt;C&lt;/mi&gt;&lt;mo separator=&quot;true&quot;&gt;,&lt;/mo&gt;&lt;mi&gt;D&lt;/mi&gt;&lt;mo stretchy=&quot;false&quot;&gt;)&lt;/mo&gt;&lt;mo&gt;=&lt;/mo&gt;&lt;mo stretchy=&quot;false&quot;&gt;(&lt;/mo&gt;&lt;mi&gt;a&lt;/mi&gt;&lt;mo separator=&quot;true&quot;&gt;,&lt;/mo&gt;&lt;mi&gt;b&lt;/mi&gt;&lt;mo separator=&quot;true&quot;&gt;,&lt;/mo&gt;&lt;mi&gt;c&lt;/mi&gt;&lt;mo separator=&quot;true&quot;&gt;,&lt;/mo&gt;&lt;mi&gt;d&lt;/mi&gt;&lt;mo stretchy=&quot;false&quot;&gt;)&lt;/mo&gt;&lt;mo separator=&quot;true&quot;&gt;,&lt;/mo&gt;&lt;/mrow&gt;&lt;annotation encoding=&quot;application/x-tex&quot;&gt;(A, B, C, D) = (a, b, c, d),&lt;/annotation&gt;&lt;/semantics&gt;&lt;/math&gt;&lt;/span&gt;&lt;span class=&quot;katex-html&quot; aria-hidden=&quot;true&quot;&gt;&lt;span class=&quot;base&quot;&gt;&lt;span class=&quot;strut&quot; style=&quot;height:1em;vertical-align:-0.25em;&quot;&gt;&lt;/span&gt;&lt;span class=&quot;mopen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mord mathdefault&quot;&gt;A&lt;/span&gt;&lt;span class=&quot;mpunct&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;mspace&quot; style=&quot;margin-right:0.16666666666666666em;&quot;&gt;&lt;/span&gt;&lt;span class=&quot;mord mathdefault&quot; style=&quot;margin-right:0.05017em;&quot;&gt;B&lt;/span&gt;&lt;span class=&quot;mpunct&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;mspace&quot; style=&quot;margin-right:0.16666666666666666em;&quot;&gt;&lt;/span&gt;&lt;span class=&quot;mord mathdefault&quot; style=&quot;margin-right:0.07153em;&quot;&gt;C&lt;/span&gt;&lt;span class=&quot;mpunct&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;mspace&quot; style=&quot;margin-right:0.16666666666666666em;&quot;&gt;&lt;/span&gt;&lt;span class=&quot;mord mathdefault&quot; style=&quot;margin-right:0.02778em;&quot;&gt;D&lt;/span&gt;&lt;span class=&quot;mclose&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;mspace&quot; style=&quot;margin-right:0.2777777777777778em;&quot;&gt;&lt;/span&gt;&lt;span class=&quot;mrel&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;mspace&quot; style=&quot;margin-right:0.2777777777777778em;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;base&quot;&gt;&lt;span class=&quot;strut&quot; style=&quot;height:1em;vertical-align:-0.25em;&quot;&gt;&lt;/span&gt;&lt;span class=&quot;mopen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mord mathdefault&quot;&gt;a&lt;/span&gt;&lt;span class=&quot;mpunct&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;mspace&quot; style=&quot;margin-right:0.16666666666666666em;&quot;&gt;&lt;/span&gt;&lt;span class=&quot;mord mathdefault&quot;&gt;b&lt;/span&gt;&lt;span class=&quot;mpunct&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;mspace&quot; style=&quot;margin-right:0.16666666666666666em;&quot;&gt;&lt;/span&gt;&lt;span class=&quot;mord mathdefault&quot;&gt;c&lt;/span&gt;&lt;span class=&quot;mpunct&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;mspace&quot; style=&quot;margin-right:0.16666666666666666em;&quot;&gt;&lt;/span&gt;&lt;span class=&quot;mord mathdefault&quot;&gt;d&lt;/span&gt;&lt;span class=&quot;mclose&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;mpunct&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;

&lt;p&gt;tweak a single parameter, e.g. increase parameter &lt;span class=&quot;katex&quot;&gt;&lt;span class=&quot;katex-mathml&quot;&gt;&lt;math xmlns=&quot;http://www.w3.org/1998/Math/MathML&quot;&gt;&lt;semantics&gt;&lt;mrow&gt;&lt;mi&gt;B&lt;/mi&gt;&lt;/mrow&gt;&lt;annotation encoding=&quot;application/x-tex&quot;&gt;B&lt;/annotation&gt;&lt;/semantics&gt;&lt;/math&gt;&lt;/span&gt;&lt;span class=&quot;katex-html&quot; aria-hidden=&quot;true&quot;&gt;&lt;span class=&quot;base&quot;&gt;&lt;span class=&quot;strut&quot; style=&quot;height:0.68333em;vertical-align:0em;&quot;&gt;&lt;/span&gt;&lt;span class=&quot;mord mathdefault&quot; style=&quot;margin-right:0.05017em;&quot;&gt;B&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; by 10%, and compute the newly expected quality score&lt;/p&gt;

&lt;span class=&quot;katex-display&quot;&gt;&lt;span class=&quot;katex&quot;&gt;&lt;span class=&quot;katex-mathml&quot;&gt;&lt;math xmlns=&quot;http://www.w3.org/1998/Math/MathML&quot;&gt;&lt;semantics&gt;&lt;mrow&gt;&lt;mtext mathvariant=&quot;monospace&quot;&gt;QA modified&lt;/mtext&gt;&lt;mo&gt;=&lt;/mo&gt;&lt;mi&gt;f&lt;/mi&gt;&lt;mo stretchy=&quot;false&quot;&gt;(&lt;/mo&gt;&lt;mi&gt;a&lt;/mi&gt;&lt;mo separator=&quot;true&quot;&gt;,&lt;/mo&gt;&lt;mn&gt;1.1&lt;/mn&gt;&lt;mo&gt;×&lt;/mo&gt;&lt;mi&gt;b&lt;/mi&gt;&lt;mo separator=&quot;true&quot;&gt;,&lt;/mo&gt;&lt;mi&gt;c&lt;/mi&gt;&lt;mo separator=&quot;true&quot;&gt;,&lt;/mo&gt;&lt;mi&gt;d&lt;/mi&gt;&lt;mo stretchy=&quot;false&quot;&gt;)&lt;/mo&gt;&lt;mi mathvariant=&quot;normal&quot;&gt;.&lt;/mi&gt;&lt;/mrow&gt;&lt;annotation encoding=&quot;application/x-tex&quot;&gt;\verb!QA modified! = f(a, 1.1 \times b, c, d).&lt;/annotation&gt;&lt;/semantics&gt;&lt;/math&gt;&lt;/span&gt;&lt;span class=&quot;katex-html&quot; aria-hidden=&quot;true&quot;&gt;&lt;span class=&quot;base&quot;&gt;&lt;span class=&quot;strut&quot; style=&quot;height:0.75em;vertical-align:-0.13889em;&quot;&gt;&lt;/span&gt;&lt;span class=&quot;mord text&quot;&gt;&lt;span class=&quot;mord texttt&quot;&gt;QA modified&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;mspace&quot; style=&quot;margin-right:0.2777777777777778em;&quot;&gt;&lt;/span&gt;&lt;span class=&quot;mrel&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;mspace&quot; style=&quot;margin-right:0.2777777777777778em;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;base&quot;&gt;&lt;span class=&quot;strut&quot; style=&quot;height:1em;vertical-align:-0.25em;&quot;&gt;&lt;/span&gt;&lt;span class=&quot;mord mathdefault&quot; style=&quot;margin-right:0.10764em;&quot;&gt;f&lt;/span&gt;&lt;span class=&quot;mopen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mord mathdefault&quot;&gt;a&lt;/span&gt;&lt;span class=&quot;mpunct&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;mspace&quot; style=&quot;margin-right:0.16666666666666666em;&quot;&gt;&lt;/span&gt;&lt;span class=&quot;mord&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;mord&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;mord&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;mspace&quot; style=&quot;margin-right:0.2222222222222222em;&quot;&gt;&lt;/span&gt;&lt;span class=&quot;mbin&quot;&gt;×&lt;/span&gt;&lt;span class=&quot;mspace&quot; style=&quot;margin-right:0.2222222222222222em;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;base&quot;&gt;&lt;span class=&quot;strut&quot; style=&quot;height:1em;vertical-align:-0.25em;&quot;&gt;&lt;/span&gt;&lt;span class=&quot;mord mathdefault&quot;&gt;b&lt;/span&gt;&lt;span class=&quot;mpunct&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;mspace&quot; style=&quot;margin-right:0.16666666666666666em;&quot;&gt;&lt;/span&gt;&lt;span class=&quot;mord mathdefault&quot;&gt;c&lt;/span&gt;&lt;span class=&quot;mpunct&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;mspace&quot; style=&quot;margin-right:0.16666666666666666em;&quot;&gt;&lt;/span&gt;&lt;span class=&quot;mord mathdefault&quot;&gt;d&lt;/span&gt;&lt;span class=&quot;mclose&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;mord&quot;&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;

&lt;p&gt;If the newly predicted &lt;span class=&quot;katex&quot;&gt;&lt;span class=&quot;katex-mathml&quot;&gt;&lt;math xmlns=&quot;http://www.w3.org/1998/Math/MathML&quot;&gt;&lt;semantics&gt;&lt;mrow&gt;&lt;mtext mathvariant=&quot;monospace&quot;&gt;QA modified&lt;/mtext&gt;&lt;/mrow&gt;&lt;annotation encoding=&quot;application/x-tex&quot;&gt;\verb!QA modified!&lt;/annotation&gt;&lt;/semantics&gt;&lt;/math&gt;&lt;/span&gt;&lt;span class=&quot;katex-html&quot; aria-hidden=&quot;true&quot;&gt;&lt;span class=&quot;base&quot;&gt;&lt;span class=&quot;strut&quot; style=&quot;height:0.75em;vertical-align:-0.13889em;&quot;&gt;&lt;/span&gt;&lt;span class=&quot;mord text&quot;&gt;&lt;span class=&quot;mord texttt&quot;&gt;QA modified&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; turns out greater than the presently achieved or predicted quality score we would go back to the production floor and ask our colleague manning the workstation to increase their parameter &lt;span class=&quot;katex&quot;&gt;&lt;span class=&quot;katex-mathml&quot;&gt;&lt;math xmlns=&quot;http://www.w3.org/1998/Math/MathML&quot;&gt;&lt;semantics&gt;&lt;mrow&gt;&lt;mi&gt;B&lt;/mi&gt;&lt;/mrow&gt;&lt;annotation encoding=&quot;application/x-tex&quot;&gt;B&lt;/annotation&gt;&lt;/semantics&gt;&lt;/math&gt;&lt;/span&gt;&lt;span class=&quot;katex-html&quot; aria-hidden=&quot;true&quot;&gt;&lt;span class=&quot;base&quot;&gt;&lt;span class=&quot;strut&quot; style=&quot;height:0.68333em;vertical-align:0em;&quot;&gt;&lt;/span&gt;&lt;span class=&quot;mord mathdefault&quot; style=&quot;margin-right:0.05017em;&quot;&gt;B&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; by 10%.&lt;/p&gt;

&lt;p&gt;Unfortunately, this operation of tweaking and optimizing individual input variables (production parameters) is not supported by our machine learning model.&lt;/p&gt;

&lt;p&gt;In essence, our model learns the bulk relationship between the entire set of production parameters and quality score, and not the individual impact of each production parameter on the quality score - as illustrated in the following sketch:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/smart_manufacturing_bulk_parameters.jpg&quot; alt=&quot;Smart manufacturing with machine learning: Expected of and provided by machine learning model.&quot; title=&quot;Figure 2: We expect our machine learning model to learn the impact of each production parameter on the quality score QA individually - after all we write our model as a function f(a, b, c, d) with each parameter spelled out individually. However, what our machine learning model really learns is the bulk influence of our production parameters on quality score QA - essentially we learn the joint relationship between QA and a four-dimensional variable made up of our production parameters. (Original photo by Birmingham Museums Trust on Unsplash)&quot; /&gt;&lt;/p&gt;

&lt;p&gt;This problem pertains to most machine learning models independent of the specific problem tackled.&lt;/p&gt;

&lt;p&gt;How do we modify our approach so that we can estimate the impact of individual production parameter modifications and help our colleagues on the production floor make optimal, surgical changes to their manufacturing process?&lt;/p&gt;

&lt;p&gt;One major piece to closing this gap is causality.&lt;/p&gt;

&lt;h2 id=&quot;the-missing-piece-causality&quot;&gt;The missing piece: causality&lt;/h2&gt;

&lt;h3 id=&quot;variables-and-parameters-are-often-interconnected&quot;&gt;Variables and parameters are often interconnected&lt;/h3&gt;

&lt;p&gt;To disentangle their individual contributions, we first need to account for how our production parameters influence one another and the quality score.&lt;/p&gt;

&lt;p&gt;To understand the connections between our production parameters and the quality score, we pop down to the production floor and chat with our colleagues manning the individual workstations.
From them we learn:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;When the stiffness of the raw material (A) increases then downstream workers increase the pressure applied on the item (B),&lt;/li&gt;
  &lt;li&gt;Depending on the stiffness of the raw material (A) the type of downstream drill (C) is chosen,&lt;/li&gt;
  &lt;li&gt;The worker choosing the type of drill (C) also informs the worker moulding our item under pressure (B) since they need to balance bore friction and metal stiffness,&lt;/li&gt;
  &lt;li&gt;The worker applying a specific type of finish (D) to our product is not affected by the choices of their co-workers.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Armed with these insights from our production floor we draw up the following causal model - showing the connections among our production parameters and the quality score of our product:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/smart_manufacturing_causal_inference.jpg&quot; alt=&quot;Smart manufacturing causal model.&quot; title=&quot;Figure 3: Production line with causal links between production parameters indicated by arrows. Production parameters are linked due to practical considerations and the experience of production floor workers. Note: This kind of graph is referred to as a causal model. (Original photo by Birmingham Museums Trust on Unsplash)&quot; /&gt;&lt;/p&gt;

&lt;p&gt;A simplistic, and perhaps crude, way of interpreting the arrows between parameters &lt;span class=&quot;katex&quot;&gt;&lt;span class=&quot;katex-mathml&quot;&gt;&lt;math xmlns=&quot;http://www.w3.org/1998/Math/MathML&quot;&gt;&lt;semantics&gt;&lt;mrow&gt;&lt;mi&gt;A&lt;/mi&gt;&lt;/mrow&gt;&lt;annotation encoding=&quot;application/x-tex&quot;&gt;A&lt;/annotation&gt;&lt;/semantics&gt;&lt;/math&gt;&lt;/span&gt;&lt;span class=&quot;katex-html&quot; aria-hidden=&quot;true&quot;&gt;&lt;span class=&quot;base&quot;&gt;&lt;span class=&quot;strut&quot; style=&quot;height:0.68333em;vertical-align:0em;&quot;&gt;&lt;/span&gt;&lt;span class=&quot;mord mathdefault&quot;&gt;A&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;, &lt;span class=&quot;katex&quot;&gt;&lt;span class=&quot;katex-mathml&quot;&gt;&lt;math xmlns=&quot;http://www.w3.org/1998/Math/MathML&quot;&gt;&lt;semantics&gt;&lt;mrow&gt;&lt;mi&gt;B&lt;/mi&gt;&lt;/mrow&gt;&lt;annotation encoding=&quot;application/x-tex&quot;&gt;B&lt;/annotation&gt;&lt;/semantics&gt;&lt;/math&gt;&lt;/span&gt;&lt;span class=&quot;katex-html&quot; aria-hidden=&quot;true&quot;&gt;&lt;span class=&quot;base&quot;&gt;&lt;span class=&quot;strut&quot; style=&quot;height:0.68333em;vertical-align:0em;&quot;&gt;&lt;/span&gt;&lt;span class=&quot;mord mathdefault&quot; style=&quot;margin-right:0.05017em;&quot;&gt;B&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;, and &lt;span class=&quot;katex&quot;&gt;&lt;span class=&quot;katex-mathml&quot;&gt;&lt;math xmlns=&quot;http://www.w3.org/1998/Math/MathML&quot;&gt;&lt;semantics&gt;&lt;mrow&gt;&lt;mi&gt;C&lt;/mi&gt;&lt;/mrow&gt;&lt;annotation encoding=&quot;application/x-tex&quot;&gt;C&lt;/annotation&gt;&lt;/semantics&gt;&lt;/math&gt;&lt;/span&gt;&lt;span class=&quot;katex-html&quot; aria-hidden=&quot;true&quot;&gt;&lt;span class=&quot;base&quot;&gt;&lt;span class=&quot;strut&quot; style=&quot;height:0.68333em;vertical-align:0em;&quot;&gt;&lt;/span&gt;&lt;span class=&quot;mord mathdefault&quot; style=&quot;margin-right:0.07153em;&quot;&gt;C&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; is to imagine these arrows were unidirectional mechanical springs.
If I pull on parameter &lt;span class=&quot;katex&quot;&gt;&lt;span class=&quot;katex-mathml&quot;&gt;&lt;math xmlns=&quot;http://www.w3.org/1998/Math/MathML&quot;&gt;&lt;semantics&gt;&lt;mrow&gt;&lt;mi&gt;A&lt;/mi&gt;&lt;/mrow&gt;&lt;annotation encoding=&quot;application/x-tex&quot;&gt;A&lt;/annotation&gt;&lt;/semantics&gt;&lt;/math&gt;&lt;/span&gt;&lt;span class=&quot;katex-html&quot; aria-hidden=&quot;true&quot;&gt;&lt;span class=&quot;base&quot;&gt;&lt;span class=&quot;strut&quot; style=&quot;height:0.68333em;vertical-align:0em;&quot;&gt;&lt;/span&gt;&lt;span class=&quot;mord mathdefault&quot;&gt;A&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; by changing it somehow, I also move around parameters &lt;span class=&quot;katex&quot;&gt;&lt;span class=&quot;katex-mathml&quot;&gt;&lt;math xmlns=&quot;http://www.w3.org/1998/Math/MathML&quot;&gt;&lt;semantics&gt;&lt;mrow&gt;&lt;mi&gt;B&lt;/mi&gt;&lt;/mrow&gt;&lt;annotation encoding=&quot;application/x-tex&quot;&gt;B&lt;/annotation&gt;&lt;/semantics&gt;&lt;/math&gt;&lt;/span&gt;&lt;span class=&quot;katex-html&quot; aria-hidden=&quot;true&quot;&gt;&lt;span class=&quot;base&quot;&gt;&lt;span class=&quot;strut&quot; style=&quot;height:0.68333em;vertical-align:0em;&quot;&gt;&lt;/span&gt;&lt;span class=&quot;mord mathdefault&quot; style=&quot;margin-right:0.05017em;&quot;&gt;B&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; and &lt;span class=&quot;katex&quot;&gt;&lt;span class=&quot;katex-mathml&quot;&gt;&lt;math xmlns=&quot;http://www.w3.org/1998/Math/MathML&quot;&gt;&lt;semantics&gt;&lt;mrow&gt;&lt;mi&gt;C&lt;/mi&gt;&lt;/mrow&gt;&lt;annotation encoding=&quot;application/x-tex&quot;&gt;C&lt;/annotation&gt;&lt;/semantics&gt;&lt;/math&gt;&lt;/span&gt;&lt;span class=&quot;katex-html&quot; aria-hidden=&quot;true&quot;&gt;&lt;span class=&quot;base&quot;&gt;&lt;span class=&quot;strut&quot; style=&quot;height:0.68333em;vertical-align:0em;&quot;&gt;&lt;/span&gt;&lt;span class=&quot;mord mathdefault&quot; style=&quot;margin-right:0.07153em;&quot;&gt;C&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; - however pulling on &lt;span class=&quot;katex&quot;&gt;&lt;span class=&quot;katex-mathml&quot;&gt;&lt;math xmlns=&quot;http://www.w3.org/1998/Math/MathML&quot;&gt;&lt;semantics&gt;&lt;mrow&gt;&lt;mi&gt;C&lt;/mi&gt;&lt;/mrow&gt;&lt;annotation encoding=&quot;application/x-tex&quot;&gt;C&lt;/annotation&gt;&lt;/semantics&gt;&lt;/math&gt;&lt;/span&gt;&lt;span class=&quot;katex-html&quot; aria-hidden=&quot;true&quot;&gt;&lt;span class=&quot;base&quot;&gt;&lt;span class=&quot;strut&quot; style=&quot;height:0.68333em;vertical-align:0em;&quot;&gt;&lt;/span&gt;&lt;span class=&quot;mord mathdefault&quot; style=&quot;margin-right:0.07153em;&quot;&gt;C&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; does not affect &lt;span class=&quot;katex&quot;&gt;&lt;span class=&quot;katex-mathml&quot;&gt;&lt;math xmlns=&quot;http://www.w3.org/1998/Math/MathML&quot;&gt;&lt;semantics&gt;&lt;mrow&gt;&lt;mi&gt;A&lt;/mi&gt;&lt;/mrow&gt;&lt;annotation encoding=&quot;application/x-tex&quot;&gt;A&lt;/annotation&gt;&lt;/semantics&gt;&lt;/math&gt;&lt;/span&gt;&lt;span class=&quot;katex-html&quot; aria-hidden=&quot;true&quot;&gt;&lt;span class=&quot;base&quot;&gt;&lt;span class=&quot;strut&quot; style=&quot;height:0.68333em;vertical-align:0em;&quot;&gt;&lt;/span&gt;&lt;span class=&quot;mord mathdefault&quot;&gt;A&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; as that spring is unidirectional.&lt;/p&gt;

&lt;h3 id=&quot;interconnected-variables-are-hard-to-disentangle&quot;&gt;Interconnected variables are hard to disentangle&lt;/h3&gt;

&lt;p&gt;To reiterate, our main use for a machine learning model that predicts the quality score of manufactured items is to support our colleagues on the production floor in optimizing individual production parameters to maximize our overall output quality.&lt;/p&gt;

&lt;p&gt;Our causal model (Figure 3) makes it apparent that our model should be more complex than previously thought. The connections in our causal model indicate that we should write our model as&lt;/p&gt;

&lt;span class=&quot;katex-display&quot;&gt;&lt;span class=&quot;katex&quot;&gt;&lt;span class=&quot;katex-mathml&quot;&gt;&lt;math xmlns=&quot;http://www.w3.org/1998/Math/MathML&quot;&gt;&lt;semantics&gt;&lt;mrow&gt;&lt;mtext mathvariant=&quot;monospace&quot;&gt;QA&lt;/mtext&gt;&lt;mo&gt;=&lt;/mo&gt;&lt;mi&gt;f&lt;/mi&gt;&lt;mo stretchy=&quot;false&quot;&gt;(&lt;/mo&gt;&lt;mi&gt;g&lt;/mi&gt;&lt;mo stretchy=&quot;false&quot;&gt;(&lt;/mo&gt;&lt;mi&gt;A&lt;/mi&gt;&lt;mo separator=&quot;true&quot;&gt;,&lt;/mo&gt;&lt;mi&gt;h&lt;/mi&gt;&lt;mo stretchy=&quot;false&quot;&gt;(&lt;/mo&gt;&lt;mi&gt;A&lt;/mi&gt;&lt;mo stretchy=&quot;false&quot;&gt;)&lt;/mo&gt;&lt;mo stretchy=&quot;false&quot;&gt;)&lt;/mo&gt;&lt;mo separator=&quot;true&quot;&gt;,&lt;/mo&gt;&lt;mi&gt;h&lt;/mi&gt;&lt;mo stretchy=&quot;false&quot;&gt;(&lt;/mo&gt;&lt;mi&gt;A&lt;/mi&gt;&lt;mo stretchy=&quot;false&quot;&gt;)&lt;/mo&gt;&lt;mo separator=&quot;true&quot;&gt;,&lt;/mo&gt;&lt;mi&gt;D&lt;/mi&gt;&lt;mo stretchy=&quot;false&quot;&gt;)&lt;/mo&gt;&lt;mo separator=&quot;true&quot;&gt;,&lt;/mo&gt;&lt;/mrow&gt;&lt;annotation encoding=&quot;application/x-tex&quot;&gt;\verb!QA! = f(g(A, h(A)), h(A), D),&lt;/annotation&gt;&lt;/semantics&gt;&lt;/math&gt;&lt;/span&gt;&lt;span class=&quot;katex-html&quot; aria-hidden=&quot;true&quot;&gt;&lt;span class=&quot;base&quot;&gt;&lt;span class=&quot;strut&quot; style=&quot;height:0.75em;vertical-align:-0.13889em;&quot;&gt;&lt;/span&gt;&lt;span class=&quot;mord text&quot;&gt;&lt;span class=&quot;mord texttt&quot;&gt;QA&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;mspace&quot; style=&quot;margin-right:0.2777777777777778em;&quot;&gt;&lt;/span&gt;&lt;span class=&quot;mrel&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;mspace&quot; style=&quot;margin-right:0.2777777777777778em;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;base&quot;&gt;&lt;span class=&quot;strut&quot; style=&quot;height:1em;vertical-align:-0.25em;&quot;&gt;&lt;/span&gt;&lt;span class=&quot;mord mathdefault&quot; style=&quot;margin-right:0.10764em;&quot;&gt;f&lt;/span&gt;&lt;span class=&quot;mopen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mord mathdefault&quot; style=&quot;margin-right:0.03588em;&quot;&gt;g&lt;/span&gt;&lt;span class=&quot;mopen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mord mathdefault&quot;&gt;A&lt;/span&gt;&lt;span class=&quot;mpunct&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;mspace&quot; style=&quot;margin-right:0.16666666666666666em;&quot;&gt;&lt;/span&gt;&lt;span class=&quot;mord mathdefault&quot;&gt;h&lt;/span&gt;&lt;span class=&quot;mopen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mord mathdefault&quot;&gt;A&lt;/span&gt;&lt;span class=&quot;mclose&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;mclose&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;mpunct&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;mspace&quot; style=&quot;margin-right:0.16666666666666666em;&quot;&gt;&lt;/span&gt;&lt;span class=&quot;mord mathdefault&quot;&gt;h&lt;/span&gt;&lt;span class=&quot;mopen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mord mathdefault&quot;&gt;A&lt;/span&gt;&lt;span class=&quot;mclose&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;mpunct&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;mspace&quot; style=&quot;margin-right:0.16666666666666666em;&quot;&gt;&lt;/span&gt;&lt;span class=&quot;mord mathdefault&quot; style=&quot;margin-right:0.02778em;&quot;&gt;D&lt;/span&gt;&lt;span class=&quot;mclose&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;mpunct&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;

&lt;p&gt;where both &lt;span class=&quot;katex&quot;&gt;&lt;span class=&quot;katex-mathml&quot;&gt;&lt;math xmlns=&quot;http://www.w3.org/1998/Math/MathML&quot;&gt;&lt;semantics&gt;&lt;mrow&gt;&lt;mi&gt;B&lt;/mi&gt;&lt;/mrow&gt;&lt;annotation encoding=&quot;application/x-tex&quot;&gt;B&lt;/annotation&gt;&lt;/semantics&gt;&lt;/math&gt;&lt;/span&gt;&lt;span class=&quot;katex-html&quot; aria-hidden=&quot;true&quot;&gt;&lt;span class=&quot;base&quot;&gt;&lt;span class=&quot;strut&quot; style=&quot;height:0.68333em;vertical-align:0em;&quot;&gt;&lt;/span&gt;&lt;span class=&quot;mord mathdefault&quot; style=&quot;margin-right:0.05017em;&quot;&gt;B&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; and &lt;span class=&quot;katex&quot;&gt;&lt;span class=&quot;katex-mathml&quot;&gt;&lt;math xmlns=&quot;http://www.w3.org/1998/Math/MathML&quot;&gt;&lt;semantics&gt;&lt;mrow&gt;&lt;mi&gt;C&lt;/mi&gt;&lt;/mrow&gt;&lt;annotation encoding=&quot;application/x-tex&quot;&gt;C&lt;/annotation&gt;&lt;/semantics&gt;&lt;/math&gt;&lt;/span&gt;&lt;span class=&quot;katex-html&quot; aria-hidden=&quot;true&quot;&gt;&lt;span class=&quot;base&quot;&gt;&lt;span class=&quot;strut&quot; style=&quot;height:0.68333em;vertical-align:0em;&quot;&gt;&lt;/span&gt;&lt;span class=&quot;mord mathdefault&quot; style=&quot;margin-right:0.07153em;&quot;&gt;C&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; are functions of &lt;span class=&quot;katex&quot;&gt;&lt;span class=&quot;katex-mathml&quot;&gt;&lt;math xmlns=&quot;http://www.w3.org/1998/Math/MathML&quot;&gt;&lt;semantics&gt;&lt;mrow&gt;&lt;mi&gt;A&lt;/mi&gt;&lt;/mrow&gt;&lt;annotation encoding=&quot;application/x-tex&quot;&gt;A&lt;/annotation&gt;&lt;/semantics&gt;&lt;/math&gt;&lt;/span&gt;&lt;span class=&quot;katex-html&quot; aria-hidden=&quot;true&quot;&gt;&lt;span class=&quot;base&quot;&gt;&lt;span class=&quot;strut&quot; style=&quot;height:0.68333em;vertical-align:0em;&quot;&gt;&lt;/span&gt;&lt;span class=&quot;mord mathdefault&quot;&gt;A&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;span class=&quot;katex&quot;&gt;&lt;span class=&quot;katex-mathml&quot;&gt;&lt;math xmlns=&quot;http://www.w3.org/1998/Math/MathML&quot;&gt;&lt;semantics&gt;&lt;mrow&gt;&lt;mi&gt;B&lt;/mi&gt;&lt;mo&gt;=&lt;/mo&gt;&lt;mi&gt;g&lt;/mi&gt;&lt;mo stretchy=&quot;false&quot;&gt;(&lt;/mo&gt;&lt;mi&gt;A&lt;/mi&gt;&lt;mo separator=&quot;true&quot;&gt;,&lt;/mo&gt;&lt;mi&gt;C&lt;/mi&gt;&lt;mo stretchy=&quot;false&quot;&gt;)&lt;/mo&gt;&lt;mo separator=&quot;true&quot;&gt;,&lt;/mo&gt;&lt;mi&gt;C&lt;/mi&gt;&lt;mo&gt;=&lt;/mo&gt;&lt;mi&gt;h&lt;/mi&gt;&lt;mo stretchy=&quot;false&quot;&gt;(&lt;/mo&gt;&lt;mi&gt;A&lt;/mi&gt;&lt;mo stretchy=&quot;false&quot;&gt;)&lt;/mo&gt;&lt;/mrow&gt;&lt;annotation encoding=&quot;application/x-tex&quot;&gt;B = g(A, C), C = h(A)&lt;/annotation&gt;&lt;/semantics&gt;&lt;/math&gt;&lt;/span&gt;&lt;span class=&quot;katex-html&quot; aria-hidden=&quot;true&quot;&gt;&lt;span class=&quot;base&quot;&gt;&lt;span class=&quot;strut&quot; style=&quot;height:0.68333em;vertical-align:0em;&quot;&gt;&lt;/span&gt;&lt;span class=&quot;mord mathdefault&quot; style=&quot;margin-right:0.05017em;&quot;&gt;B&lt;/span&gt;&lt;span class=&quot;mspace&quot; style=&quot;margin-right:0.2777777777777778em;&quot;&gt;&lt;/span&gt;&lt;span class=&quot;mrel&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;mspace&quot; style=&quot;margin-right:0.2777777777777778em;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;base&quot;&gt;&lt;span class=&quot;strut&quot; style=&quot;height:1em;vertical-align:-0.25em;&quot;&gt;&lt;/span&gt;&lt;span class=&quot;mord mathdefault&quot; style=&quot;margin-right:0.03588em;&quot;&gt;g&lt;/span&gt;&lt;span class=&quot;mopen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mord mathdefault&quot;&gt;A&lt;/span&gt;&lt;span class=&quot;mpunct&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;mspace&quot; style=&quot;margin-right:0.16666666666666666em;&quot;&gt;&lt;/span&gt;&lt;span class=&quot;mord mathdefault&quot; style=&quot;margin-right:0.07153em;&quot;&gt;C&lt;/span&gt;&lt;span class=&quot;mclose&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;mpunct&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;mspace&quot; style=&quot;margin-right:0.16666666666666666em;&quot;&gt;&lt;/span&gt;&lt;span class=&quot;mord mathdefault&quot; style=&quot;margin-right:0.07153em;&quot;&gt;C&lt;/span&gt;&lt;span class=&quot;mspace&quot; style=&quot;margin-right:0.2777777777777778em;&quot;&gt;&lt;/span&gt;&lt;span class=&quot;mrel&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;mspace&quot; style=&quot;margin-right:0.2777777777777778em;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;base&quot;&gt;&lt;span class=&quot;strut&quot; style=&quot;height:1em;vertical-align:-0.25em;&quot;&gt;&lt;/span&gt;&lt;span class=&quot;mord mathdefault&quot;&gt;h&lt;/span&gt;&lt;span class=&quot;mopen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mord mathdefault&quot;&gt;A&lt;/span&gt;&lt;span class=&quot;mclose&quot;&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;.&lt;/p&gt;

&lt;p&gt;In short: In addition to teaching our machine learning model the relationship between our four production parameters and the quality score, we also need to teach our model the various relationships between our production parameters before we can use our model to optimize individual workstations.&lt;/p&gt;

&lt;p&gt;To learn all these relationships we need a lot of data and variation in production parameters that show how the parameters influence one another.
We may be inclined to go down to the manufacturing floor and start experimenting at random with our production parameters generating enough data to learn both the interconnections between the production parameters (&lt;span class=&quot;katex&quot;&gt;&lt;span class=&quot;katex-mathml&quot;&gt;&lt;math xmlns=&quot;http://www.w3.org/1998/Math/MathML&quot;&gt;&lt;semantics&gt;&lt;mrow&gt;&lt;mi&gt;B&lt;/mi&gt;&lt;mo&gt;=&lt;/mo&gt;&lt;mi&gt;g&lt;/mi&gt;&lt;mo stretchy=&quot;false&quot;&gt;(&lt;/mo&gt;&lt;mi&gt;A&lt;/mi&gt;&lt;mo separator=&quot;true&quot;&gt;,&lt;/mo&gt;&lt;mi&gt;C&lt;/mi&gt;&lt;mo stretchy=&quot;false&quot;&gt;)&lt;/mo&gt;&lt;/mrow&gt;&lt;annotation encoding=&quot;application/x-tex&quot;&gt;B = g(A, C)&lt;/annotation&gt;&lt;/semantics&gt;&lt;/math&gt;&lt;/span&gt;&lt;span class=&quot;katex-html&quot; aria-hidden=&quot;true&quot;&gt;&lt;span class=&quot;base&quot;&gt;&lt;span class=&quot;strut&quot; style=&quot;height:0.68333em;vertical-align:0em;&quot;&gt;&lt;/span&gt;&lt;span class=&quot;mord mathdefault&quot; style=&quot;margin-right:0.05017em;&quot;&gt;B&lt;/span&gt;&lt;span class=&quot;mspace&quot; style=&quot;margin-right:0.2777777777777778em;&quot;&gt;&lt;/span&gt;&lt;span class=&quot;mrel&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;mspace&quot; style=&quot;margin-right:0.2777777777777778em;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;base&quot;&gt;&lt;span class=&quot;strut&quot; style=&quot;height:1em;vertical-align:-0.25em;&quot;&gt;&lt;/span&gt;&lt;span class=&quot;mord mathdefault&quot; style=&quot;margin-right:0.03588em;&quot;&gt;g&lt;/span&gt;&lt;span class=&quot;mopen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mord mathdefault&quot;&gt;A&lt;/span&gt;&lt;span class=&quot;mpunct&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;mspace&quot; style=&quot;margin-right:0.16666666666666666em;&quot;&gt;&lt;/span&gt;&lt;span class=&quot;mord mathdefault&quot; style=&quot;margin-right:0.07153em;&quot;&gt;C&lt;/span&gt;&lt;span class=&quot;mclose&quot;&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;, &lt;span class=&quot;katex&quot;&gt;&lt;span class=&quot;katex-mathml&quot;&gt;&lt;math xmlns=&quot;http://www.w3.org/1998/Math/MathML&quot;&gt;&lt;semantics&gt;&lt;mrow&gt;&lt;mi&gt;C&lt;/mi&gt;&lt;mo&gt;=&lt;/mo&gt;&lt;mi&gt;h&lt;/mi&gt;&lt;mo stretchy=&quot;false&quot;&gt;(&lt;/mo&gt;&lt;mi&gt;A&lt;/mi&gt;&lt;mo stretchy=&quot;false&quot;&gt;)&lt;/mo&gt;&lt;/mrow&gt;&lt;annotation encoding=&quot;application/x-tex&quot;&gt;C = h(A)&lt;/annotation&gt;&lt;/semantics&gt;&lt;/math&gt;&lt;/span&gt;&lt;span class=&quot;katex-html&quot; aria-hidden=&quot;true&quot;&gt;&lt;span class=&quot;base&quot;&gt;&lt;span class=&quot;strut&quot; style=&quot;height:0.68333em;vertical-align:0em;&quot;&gt;&lt;/span&gt;&lt;span class=&quot;mord mathdefault&quot; style=&quot;margin-right:0.07153em;&quot;&gt;C&lt;/span&gt;&lt;span class=&quot;mspace&quot; style=&quot;margin-right:0.2777777777777778em;&quot;&gt;&lt;/span&gt;&lt;span class=&quot;mrel&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;mspace&quot; style=&quot;margin-right:0.2777777777777778em;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;base&quot;&gt;&lt;span class=&quot;strut&quot; style=&quot;height:1em;vertical-align:-0.25em;&quot;&gt;&lt;/span&gt;&lt;span class=&quot;mord mathdefault&quot;&gt;h&lt;/span&gt;&lt;span class=&quot;mopen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mord mathdefault&quot;&gt;A&lt;/span&gt;&lt;span class=&quot;mclose&quot;&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;) and their individual impact on our quality score &lt;span class=&quot;katex&quot;&gt;&lt;span class=&quot;katex-mathml&quot;&gt;&lt;math xmlns=&quot;http://www.w3.org/1998/Math/MathML&quot;&gt;&lt;semantics&gt;&lt;mrow&gt;&lt;mtext mathvariant=&quot;monospace&quot;&gt;QA&lt;/mtext&gt;&lt;/mrow&gt;&lt;annotation encoding=&quot;application/x-tex&quot;&gt;\verb!QA!&lt;/annotation&gt;&lt;/semantics&gt;&lt;/math&gt;&lt;/span&gt;&lt;span class=&quot;katex-html&quot; aria-hidden=&quot;true&quot;&gt;&lt;span class=&quot;base&quot;&gt;&lt;span class=&quot;strut&quot; style=&quot;height:0.75em;vertical-align:-0.13889em;&quot;&gt;&lt;/span&gt;&lt;span class=&quot;mord text&quot;&gt;&lt;span class=&quot;mord texttt&quot;&gt;QA&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;.&lt;/p&gt;

&lt;p&gt;However, each manufactured item with substandard quality due to a randomly selected combination of production parameters means money lost for our company.&lt;/p&gt;

&lt;p&gt;This approach, called randomized experiment or randomized controlled trial, is oftentimes undesirable or simply infeasible:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;In the case of our production line (and smart manufacturing in general), randomly assigning production parameters to measure their individual impact would be both very time consuming and prohibitively expensive - imagine all the low-quality items made and discarded,&lt;/li&gt;
  &lt;li&gt;In e-commerce, for smart pricing, it is in fact prohibited by law to price the same item differently for different customers in the same market,&lt;/li&gt;
  &lt;li&gt;In customer care it would be counterproductive to treat some customers poorly just to see how their purchase behavior and brand loyalty are affected,&lt;/li&gt;
  &lt;li&gt;In predictive maintenance it would be questionable or prohibited not to perform best practice maintenance steps on individual items to see how they deteriorate differently, and&lt;/li&gt;
  &lt;li&gt;In online marketing it is ofentimes prohibitively complex or infeasible, due to data protection legislation, to cleanly understand the effect (uplift) of isolated marketing parameters on individual users.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Hence, we cannot rely on randomized experiments to understand how to optimally help our production floor colleagues.&lt;/p&gt;

&lt;p&gt;So what we are left with is continue doing what we do on the production floor, and use the production data generated under normal operating conditions (observational data) to estimate the impact of each production parameter individually on our quality score.&lt;/p&gt;

&lt;p&gt;To achieve this we need to rely on both our causal model (Figure 3) and a toolset from the field of causal inference called do-calculus.&lt;/p&gt;

&lt;h3 id=&quot;causal-inference-toolset-do-calculus&quot;&gt;Causal inference toolset: Do-calculus&lt;/h3&gt;

&lt;p&gt;The components we have gathered so far are:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;A causal model of our production floor (Figure 3), and&lt;/li&gt;
  &lt;li&gt;Lots of observational data of production parameter settings and measured resultant quality score &lt;span class=&quot;katex&quot;&gt;&lt;span class=&quot;katex-mathml&quot;&gt;&lt;math xmlns=&quot;http://www.w3.org/1998/Math/MathML&quot;&gt;&lt;semantics&gt;&lt;mrow&gt;&lt;mtext mathvariant=&quot;monospace&quot;&gt;QA&lt;/mtext&gt;&lt;/mrow&gt;&lt;annotation encoding=&quot;application/x-tex&quot;&gt;\verb!QA!&lt;/annotation&gt;&lt;/semantics&gt;&lt;/math&gt;&lt;/span&gt;&lt;span class=&quot;katex-html&quot; aria-hidden=&quot;true&quot;&gt;&lt;span class=&quot;base&quot;&gt;&lt;span class=&quot;strut&quot; style=&quot;height:0.75em;vertical-align:-0.13889em;&quot;&gt;&lt;/span&gt;&lt;span class=&quot;mord text&quot;&gt;&lt;span class=&quot;mord texttt&quot;&gt;QA&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Let us go through a thought experiment illustrated in the image below (Figure 4): How would the expected quality score &lt;span class=&quot;katex&quot;&gt;&lt;span class=&quot;katex-mathml&quot;&gt;&lt;math xmlns=&quot;http://www.w3.org/1998/Math/MathML&quot;&gt;&lt;semantics&gt;&lt;mrow&gt;&lt;mtext mathvariant=&quot;monospace&quot;&gt;QA&lt;/mtext&gt;&lt;/mrow&gt;&lt;annotation encoding=&quot;application/x-tex&quot;&gt;\verb!QA!&lt;/annotation&gt;&lt;/semantics&gt;&lt;/math&gt;&lt;/span&gt;&lt;span class=&quot;katex-html&quot; aria-hidden=&quot;true&quot;&gt;&lt;span class=&quot;base&quot;&gt;&lt;span class=&quot;strut&quot; style=&quot;height:0.75em;vertical-align:-0.13889em;&quot;&gt;&lt;/span&gt;&lt;span class=&quot;mord text&quot;&gt;&lt;span class=&quot;mord texttt&quot;&gt;QA&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; change if our colleague in workstation &lt;span class=&quot;katex&quot;&gt;&lt;span class=&quot;katex-mathml&quot;&gt;&lt;math xmlns=&quot;http://www.w3.org/1998/Math/MathML&quot;&gt;&lt;semantics&gt;&lt;mrow&gt;&lt;mi&gt;B&lt;/mi&gt;&lt;/mrow&gt;&lt;annotation encoding=&quot;application/x-tex&quot;&gt;B&lt;/annotation&gt;&lt;/semantics&gt;&lt;/math&gt;&lt;/span&gt;&lt;span class=&quot;katex-html&quot; aria-hidden=&quot;true&quot;&gt;&lt;span class=&quot;base&quot;&gt;&lt;span class=&quot;strut&quot; style=&quot;height:0.68333em;vertical-align:0em;&quot;&gt;&lt;/span&gt;&lt;span class=&quot;mord mathdefault&quot; style=&quot;margin-right:0.05017em;&quot;&gt;B&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; chose their production parameter independently of their colleagues in workstations &lt;span class=&quot;katex&quot;&gt;&lt;span class=&quot;katex-mathml&quot;&gt;&lt;math xmlns=&quot;http://www.w3.org/1998/Math/MathML&quot;&gt;&lt;semantics&gt;&lt;mrow&gt;&lt;mi&gt;A&lt;/mi&gt;&lt;/mrow&gt;&lt;annotation encoding=&quot;application/x-tex&quot;&gt;A&lt;/annotation&gt;&lt;/semantics&gt;&lt;/math&gt;&lt;/span&gt;&lt;span class=&quot;katex-html&quot; aria-hidden=&quot;true&quot;&gt;&lt;span class=&quot;base&quot;&gt;&lt;span class=&quot;strut&quot; style=&quot;height:0.68333em;vertical-align:0em;&quot;&gt;&lt;/span&gt;&lt;span class=&quot;mord mathdefault&quot;&gt;A&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; and &lt;span class=&quot;katex&quot;&gt;&lt;span class=&quot;katex-mathml&quot;&gt;&lt;math xmlns=&quot;http://www.w3.org/1998/Math/MathML&quot;&gt;&lt;semantics&gt;&lt;mrow&gt;&lt;mi&gt;C&lt;/mi&gt;&lt;/mrow&gt;&lt;annotation encoding=&quot;application/x-tex&quot;&gt;C&lt;/annotation&gt;&lt;/semantics&gt;&lt;/math&gt;&lt;/span&gt;&lt;span class=&quot;katex-html&quot; aria-hidden=&quot;true&quot;&gt;&lt;span class=&quot;base&quot;&gt;&lt;span class=&quot;strut&quot; style=&quot;height:0.68333em;vertical-align:0em;&quot;&gt;&lt;/span&gt;&lt;span class=&quot;mord mathdefault&quot; style=&quot;margin-right:0.07153em;&quot;&gt;C&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;?&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/smart_manufacturing_intervention.jpg&quot; alt=&quot;Smart manufacturing with machine learning&quot; title=&quot;Figure 4: Theoretical randomized experiment where we advise our worker in workstation B to apply specific amounts of pressure 'b' instead of aligning their work with workstations A and C. When assigning parameter B independently from parameters A and C the causal links between these parameters is broken as is indicated by the missing arrows. (Original photo by Birmingham Museums Trust on Unsplash)&quot; /&gt;&lt;/p&gt;

&lt;p&gt;This is what the notation in Figure 4 relates to: &lt;span class=&quot;katex&quot;&gt;&lt;span class=&quot;katex-mathml&quot;&gt;&lt;math xmlns=&quot;http://www.w3.org/1998/Math/MathML&quot;&gt;&lt;semantics&gt;&lt;mrow&gt;&lt;mi&gt;d&lt;/mi&gt;&lt;mi&gt;o&lt;/mi&gt;&lt;mo stretchy=&quot;false&quot;&gt;(&lt;/mo&gt;&lt;mi&gt;B&lt;/mi&gt;&lt;mo&gt;=&lt;/mo&gt;&lt;mi&gt;b&lt;/mi&gt;&lt;mo stretchy=&quot;false&quot;&gt;)&lt;/mo&gt;&lt;/mrow&gt;&lt;annotation encoding=&quot;application/x-tex&quot;&gt;do(B = b)&lt;/annotation&gt;&lt;/semantics&gt;&lt;/math&gt;&lt;/span&gt;&lt;span class=&quot;katex-html&quot; aria-hidden=&quot;true&quot;&gt;&lt;span class=&quot;base&quot;&gt;&lt;span class=&quot;strut&quot; style=&quot;height:1em;vertical-align:-0.25em;&quot;&gt;&lt;/span&gt;&lt;span class=&quot;mord mathdefault&quot;&gt;d&lt;/span&gt;&lt;span class=&quot;mord mathdefault&quot;&gt;o&lt;/span&gt;&lt;span class=&quot;mopen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mord mathdefault&quot; style=&quot;margin-right:0.05017em;&quot;&gt;B&lt;/span&gt;&lt;span class=&quot;mspace&quot; style=&quot;margin-right:0.2777777777777778em;&quot;&gt;&lt;/span&gt;&lt;span class=&quot;mrel&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;mspace&quot; style=&quot;margin-right:0.2777777777777778em;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;base&quot;&gt;&lt;span class=&quot;strut&quot; style=&quot;height:1em;vertical-align:-0.25em;&quot;&gt;&lt;/span&gt;&lt;span class=&quot;mord mathdefault&quot;&gt;b&lt;/span&gt;&lt;span class=&quot;mclose&quot;&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; describes a theoretical scenario where production parameter &lt;span class=&quot;katex&quot;&gt;&lt;span class=&quot;katex-mathml&quot;&gt;&lt;math xmlns=&quot;http://www.w3.org/1998/Math/MathML&quot;&gt;&lt;semantics&gt;&lt;mrow&gt;&lt;mi&gt;B&lt;/mi&gt;&lt;/mrow&gt;&lt;annotation encoding=&quot;application/x-tex&quot;&gt;B&lt;/annotation&gt;&lt;/semantics&gt;&lt;/math&gt;&lt;/span&gt;&lt;span class=&quot;katex-html&quot; aria-hidden=&quot;true&quot;&gt;&lt;span class=&quot;base&quot;&gt;&lt;span class=&quot;strut&quot; style=&quot;height:0.68333em;vertical-align:0em;&quot;&gt;&lt;/span&gt;&lt;span class=&quot;mord mathdefault&quot; style=&quot;margin-right:0.05017em;&quot;&gt;B&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; is assigned to hold value &lt;span class=&quot;katex&quot;&gt;&lt;span class=&quot;katex-mathml&quot;&gt;&lt;math xmlns=&quot;http://www.w3.org/1998/Math/MathML&quot;&gt;&lt;semantics&gt;&lt;mrow&gt;&lt;mi&gt;b&lt;/mi&gt;&lt;/mrow&gt;&lt;annotation encoding=&quot;application/x-tex&quot;&gt;b&lt;/annotation&gt;&lt;/semantics&gt;&lt;/math&gt;&lt;/span&gt;&lt;span class=&quot;katex-html&quot; aria-hidden=&quot;true&quot;&gt;&lt;span class=&quot;base&quot;&gt;&lt;span class=&quot;strut&quot; style=&quot;height:0.69444em;vertical-align:0em;&quot;&gt;&lt;/span&gt;&lt;span class=&quot;mord mathdefault&quot;&gt;b&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; - instead of a scenario where parameter &lt;span class=&quot;katex&quot;&gt;&lt;span class=&quot;katex-mathml&quot;&gt;&lt;math xmlns=&quot;http://www.w3.org/1998/Math/MathML&quot;&gt;&lt;semantics&gt;&lt;mrow&gt;&lt;mi&gt;B&lt;/mi&gt;&lt;/mrow&gt;&lt;annotation encoding=&quot;application/x-tex&quot;&gt;B&lt;/annotation&gt;&lt;/semantics&gt;&lt;/math&gt;&lt;/span&gt;&lt;span class=&quot;katex-html&quot; aria-hidden=&quot;true&quot;&gt;&lt;span class=&quot;base&quot;&gt;&lt;span class=&quot;strut&quot; style=&quot;height:0.68333em;vertical-align:0em;&quot;&gt;&lt;/span&gt;&lt;span class=&quot;mord mathdefault&quot; style=&quot;margin-right:0.05017em;&quot;&gt;B&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; is observed to equal value &lt;span class=&quot;katex&quot;&gt;&lt;span class=&quot;katex-mathml&quot;&gt;&lt;math xmlns=&quot;http://www.w3.org/1998/Math/MathML&quot;&gt;&lt;semantics&gt;&lt;mrow&gt;&lt;mi&gt;b&lt;/mi&gt;&lt;/mrow&gt;&lt;annotation encoding=&quot;application/x-tex&quot;&gt;b&lt;/annotation&gt;&lt;/semantics&gt;&lt;/math&gt;&lt;/span&gt;&lt;span class=&quot;katex-html&quot; aria-hidden=&quot;true&quot;&gt;&lt;span class=&quot;base&quot;&gt;&lt;span class=&quot;strut&quot; style=&quot;height:0.69444em;vertical-align:0em;&quot;&gt;&lt;/span&gt;&lt;span class=&quot;mord mathdefault&quot;&gt;b&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;.&lt;/p&gt;

&lt;p&gt;Note the seemingly subtle but important difference: If we go back to our observational data generated under normal operating conditions then observing &lt;span class=&quot;katex&quot;&gt;&lt;span class=&quot;katex-mathml&quot;&gt;&lt;math xmlns=&quot;http://www.w3.org/1998/Math/MathML&quot;&gt;&lt;semantics&gt;&lt;mrow&gt;&lt;mi&gt;B&lt;/mi&gt;&lt;mo&gt;=&lt;/mo&gt;&lt;mi&gt;b&lt;/mi&gt;&lt;/mrow&gt;&lt;annotation encoding=&quot;application/x-tex&quot;&gt;B = b&lt;/annotation&gt;&lt;/semantics&gt;&lt;/math&gt;&lt;/span&gt;&lt;span class=&quot;katex-html&quot; aria-hidden=&quot;true&quot;&gt;&lt;span class=&quot;base&quot;&gt;&lt;span class=&quot;strut&quot; style=&quot;height:0.68333em;vertical-align:0em;&quot;&gt;&lt;/span&gt;&lt;span class=&quot;mord mathdefault&quot; style=&quot;margin-right:0.05017em;&quot;&gt;B&lt;/span&gt;&lt;span class=&quot;mspace&quot; style=&quot;margin-right:0.2777777777777778em;&quot;&gt;&lt;/span&gt;&lt;span class=&quot;mrel&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;mspace&quot; style=&quot;margin-right:0.2777777777777778em;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;base&quot;&gt;&lt;span class=&quot;strut&quot; style=&quot;height:0.69444em;vertical-align:0em;&quot;&gt;&lt;/span&gt;&lt;span class=&quot;mord mathdefault&quot;&gt;b&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; implies something about production parameters &lt;span class=&quot;katex&quot;&gt;&lt;span class=&quot;katex-mathml&quot;&gt;&lt;math xmlns=&quot;http://www.w3.org/1998/Math/MathML&quot;&gt;&lt;semantics&gt;&lt;mrow&gt;&lt;mi&gt;A&lt;/mi&gt;&lt;/mrow&gt;&lt;annotation encoding=&quot;application/x-tex&quot;&gt;A&lt;/annotation&gt;&lt;/semantics&gt;&lt;/math&gt;&lt;/span&gt;&lt;span class=&quot;katex-html&quot; aria-hidden=&quot;true&quot;&gt;&lt;span class=&quot;base&quot;&gt;&lt;span class=&quot;strut&quot; style=&quot;height:0.68333em;vertical-align:0em;&quot;&gt;&lt;/span&gt;&lt;span class=&quot;mord mathdefault&quot;&gt;A&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; and &lt;span class=&quot;katex&quot;&gt;&lt;span class=&quot;katex-mathml&quot;&gt;&lt;math xmlns=&quot;http://www.w3.org/1998/Math/MathML&quot;&gt;&lt;semantics&gt;&lt;mrow&gt;&lt;mi&gt;C&lt;/mi&gt;&lt;/mrow&gt;&lt;annotation encoding=&quot;application/x-tex&quot;&gt;C&lt;/annotation&gt;&lt;/semantics&gt;&lt;/math&gt;&lt;/span&gt;&lt;span class=&quot;katex-html&quot; aria-hidden=&quot;true&quot;&gt;&lt;span class=&quot;base&quot;&gt;&lt;span class=&quot;strut&quot; style=&quot;height:0.68333em;vertical-align:0em;&quot;&gt;&lt;/span&gt;&lt;span class=&quot;mord mathdefault&quot; style=&quot;margin-right:0.07153em;&quot;&gt;C&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; since, according to our causal model (Figure 3), these are causally connected!
However, forcing (or intervening on) parameter &lt;span class=&quot;katex&quot;&gt;&lt;span class=&quot;katex-mathml&quot;&gt;&lt;math xmlns=&quot;http://www.w3.org/1998/Math/MathML&quot;&gt;&lt;semantics&gt;&lt;mrow&gt;&lt;mi&gt;B&lt;/mi&gt;&lt;/mrow&gt;&lt;annotation encoding=&quot;application/x-tex&quot;&gt;B&lt;/annotation&gt;&lt;/semantics&gt;&lt;/math&gt;&lt;/span&gt;&lt;span class=&quot;katex-html&quot; aria-hidden=&quot;true&quot;&gt;&lt;span class=&quot;base&quot;&gt;&lt;span class=&quot;strut&quot; style=&quot;height:0.68333em;vertical-align:0em;&quot;&gt;&lt;/span&gt;&lt;span class=&quot;mord mathdefault&quot; style=&quot;margin-right:0.05017em;&quot;&gt;B&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; by setting it to value &lt;span class=&quot;katex&quot;&gt;&lt;span class=&quot;katex-mathml&quot;&gt;&lt;math xmlns=&quot;http://www.w3.org/1998/Math/MathML&quot;&gt;&lt;semantics&gt;&lt;mrow&gt;&lt;mi&gt;b&lt;/mi&gt;&lt;/mrow&gt;&lt;annotation encoding=&quot;application/x-tex&quot;&gt;b&lt;/annotation&gt;&lt;/semantics&gt;&lt;/math&gt;&lt;/span&gt;&lt;span class=&quot;katex-html&quot; aria-hidden=&quot;true&quot;&gt;&lt;span class=&quot;base&quot;&gt;&lt;span class=&quot;strut&quot; style=&quot;height:0.69444em;vertical-align:0em;&quot;&gt;&lt;/span&gt;&lt;span class=&quot;mord mathdefault&quot;&gt;b&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; breaks that causal link between the workstations - and this is what the notation &lt;span class=&quot;katex&quot;&gt;&lt;span class=&quot;katex-mathml&quot;&gt;&lt;math xmlns=&quot;http://www.w3.org/1998/Math/MathML&quot;&gt;&lt;semantics&gt;&lt;mrow&gt;&lt;mtext mathvariant=&quot;monospace&quot;&gt;do&lt;/mtext&gt;&lt;mo stretchy=&quot;false&quot;&gt;(&lt;/mo&gt;&lt;mi&gt;B&lt;/mi&gt;&lt;mo&gt;=&lt;/mo&gt;&lt;mi&gt;b&lt;/mi&gt;&lt;mo stretchy=&quot;false&quot;&gt;)&lt;/mo&gt;&lt;/mrow&gt;&lt;annotation encoding=&quot;application/x-tex&quot;&gt;\verb!do!(B=b)&lt;/annotation&gt;&lt;/semantics&gt;&lt;/math&gt;&lt;/span&gt;&lt;span class=&quot;katex-html&quot; aria-hidden=&quot;true&quot;&gt;&lt;span class=&quot;base&quot;&gt;&lt;span class=&quot;strut&quot; style=&quot;height:1em;vertical-align:-0.25em;&quot;&gt;&lt;/span&gt;&lt;span class=&quot;mord text&quot;&gt;&lt;span class=&quot;mord texttt&quot;&gt;do&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;mopen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mord mathdefault&quot; style=&quot;margin-right:0.05017em;&quot;&gt;B&lt;/span&gt;&lt;span class=&quot;mspace&quot; style=&quot;margin-right:0.2777777777777778em;&quot;&gt;&lt;/span&gt;&lt;span class=&quot;mrel&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;mspace&quot; style=&quot;margin-right:0.2777777777777778em;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;base&quot;&gt;&lt;span class=&quot;strut&quot; style=&quot;height:1em;vertical-align:-0.25em;&quot;&gt;&lt;/span&gt;&lt;span class=&quot;mord mathdefault&quot;&gt;b&lt;/span&gt;&lt;span class=&quot;mclose&quot;&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; signifies.&lt;/p&gt;

&lt;p&gt;In essence &lt;span class=&quot;katex&quot;&gt;&lt;span class=&quot;katex-mathml&quot;&gt;&lt;math xmlns=&quot;http://www.w3.org/1998/Math/MathML&quot;&gt;&lt;semantics&gt;&lt;mrow&gt;&lt;mtext mathvariant=&quot;monospace&quot;&gt;do&lt;/mtext&gt;&lt;mo stretchy=&quot;false&quot;&gt;(&lt;/mo&gt;&lt;mi&gt;B&lt;/mi&gt;&lt;mo&gt;=&lt;/mo&gt;&lt;mi&gt;b&lt;/mi&gt;&lt;mo stretchy=&quot;false&quot;&gt;)&lt;/mo&gt;&lt;/mrow&gt;&lt;annotation encoding=&quot;application/x-tex&quot;&gt;\verb!do!(B=b)&lt;/annotation&gt;&lt;/semantics&gt;&lt;/math&gt;&lt;/span&gt;&lt;span class=&quot;katex-html&quot; aria-hidden=&quot;true&quot;&gt;&lt;span class=&quot;base&quot;&gt;&lt;span class=&quot;strut&quot; style=&quot;height:1em;vertical-align:-0.25em;&quot;&gt;&lt;/span&gt;&lt;span class=&quot;mord text&quot;&gt;&lt;span class=&quot;mord texttt&quot;&gt;do&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;mopen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mord mathdefault&quot; style=&quot;margin-right:0.05017em;&quot;&gt;B&lt;/span&gt;&lt;span class=&quot;mspace&quot; style=&quot;margin-right:0.2777777777777778em;&quot;&gt;&lt;/span&gt;&lt;span class=&quot;mrel&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;mspace&quot; style=&quot;margin-right:0.2777777777777778em;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;base&quot;&gt;&lt;span class=&quot;strut&quot; style=&quot;height:1em;vertical-align:-0.25em;&quot;&gt;&lt;/span&gt;&lt;span class=&quot;mord mathdefault&quot;&gt;b&lt;/span&gt;&lt;span class=&quot;mclose&quot;&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; would mean asking our colleague in workstation &lt;span class=&quot;katex&quot;&gt;&lt;span class=&quot;katex-mathml&quot;&gt;&lt;math xmlns=&quot;http://www.w3.org/1998/Math/MathML&quot;&gt;&lt;semantics&gt;&lt;mrow&gt;&lt;mi&gt;B&lt;/mi&gt;&lt;/mrow&gt;&lt;annotation encoding=&quot;application/x-tex&quot;&gt;B&lt;/annotation&gt;&lt;/semantics&gt;&lt;/math&gt;&lt;/span&gt;&lt;span class=&quot;katex-html&quot; aria-hidden=&quot;true&quot;&gt;&lt;span class=&quot;base&quot;&gt;&lt;span class=&quot;strut&quot; style=&quot;height:0.68333em;vertical-align:0em;&quot;&gt;&lt;/span&gt;&lt;span class=&quot;mord mathdefault&quot; style=&quot;margin-right:0.05017em;&quot;&gt;B&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; to stop listening to their colleagues in workstations &lt;span class=&quot;katex&quot;&gt;&lt;span class=&quot;katex-mathml&quot;&gt;&lt;math xmlns=&quot;http://www.w3.org/1998/Math/MathML&quot;&gt;&lt;semantics&gt;&lt;mrow&gt;&lt;mi&gt;A&lt;/mi&gt;&lt;/mrow&gt;&lt;annotation encoding=&quot;application/x-tex&quot;&gt;A&lt;/annotation&gt;&lt;/semantics&gt;&lt;/math&gt;&lt;/span&gt;&lt;span class=&quot;katex-html&quot; aria-hidden=&quot;true&quot;&gt;&lt;span class=&quot;base&quot;&gt;&lt;span class=&quot;strut&quot; style=&quot;height:0.68333em;vertical-align:0em;&quot;&gt;&lt;/span&gt;&lt;span class=&quot;mord mathdefault&quot;&gt;A&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; and &lt;span class=&quot;katex&quot;&gt;&lt;span class=&quot;katex-mathml&quot;&gt;&lt;math xmlns=&quot;http://www.w3.org/1998/Math/MathML&quot;&gt;&lt;semantics&gt;&lt;mrow&gt;&lt;mi&gt;C&lt;/mi&gt;&lt;/mrow&gt;&lt;annotation encoding=&quot;application/x-tex&quot;&gt;C&lt;/annotation&gt;&lt;/semantics&gt;&lt;/math&gt;&lt;/span&gt;&lt;span class=&quot;katex-html&quot; aria-hidden=&quot;true&quot;&gt;&lt;span class=&quot;base&quot;&gt;&lt;span class=&quot;strut&quot; style=&quot;height:0.68333em;vertical-align:0em;&quot;&gt;&lt;/span&gt;&lt;span class=&quot;mord mathdefault&quot; style=&quot;margin-right:0.07153em;&quot;&gt;C&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;.&lt;/p&gt;

&lt;p&gt;Since doing so in reality on the production floor would incur high cost due to lost production we simulate the intervention &lt;span class=&quot;katex&quot;&gt;&lt;span class=&quot;katex-mathml&quot;&gt;&lt;math xmlns=&quot;http://www.w3.org/1998/Math/MathML&quot;&gt;&lt;semantics&gt;&lt;mrow&gt;&lt;mtext mathvariant=&quot;monospace&quot;&gt;do&lt;/mtext&gt;&lt;mo stretchy=&quot;false&quot;&gt;(&lt;/mo&gt;&lt;mi&gt;B&lt;/mi&gt;&lt;mo&gt;=&lt;/mo&gt;&lt;mi&gt;b&lt;/mi&gt;&lt;mo stretchy=&quot;false&quot;&gt;)&lt;/mo&gt;&lt;/mrow&gt;&lt;annotation encoding=&quot;application/x-tex&quot;&gt;\verb!do!(B = b)&lt;/annotation&gt;&lt;/semantics&gt;&lt;/math&gt;&lt;/span&gt;&lt;span class=&quot;katex-html&quot; aria-hidden=&quot;true&quot;&gt;&lt;span class=&quot;base&quot;&gt;&lt;span class=&quot;strut&quot; style=&quot;height:1em;vertical-align:-0.25em;&quot;&gt;&lt;/span&gt;&lt;span class=&quot;mord text&quot;&gt;&lt;span class=&quot;mord texttt&quot;&gt;do&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;mopen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mord mathdefault&quot; style=&quot;margin-right:0.05017em;&quot;&gt;B&lt;/span&gt;&lt;span class=&quot;mspace&quot; style=&quot;margin-right:0.2777777777777778em;&quot;&gt;&lt;/span&gt;&lt;span class=&quot;mrel&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;mspace&quot; style=&quot;margin-right:0.2777777777777778em;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;base&quot;&gt;&lt;span class=&quot;strut&quot; style=&quot;height:1em;vertical-align:-0.25em;&quot;&gt;&lt;/span&gt;&lt;span class=&quot;mord mathdefault&quot;&gt;b&lt;/span&gt;&lt;span class=&quot;mclose&quot;&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;! using the observational data we collect under normal operating conditions anyway.&lt;/p&gt;

&lt;p&gt;To simulate &lt;span class=&quot;katex&quot;&gt;&lt;span class=&quot;katex-mathml&quot;&gt;&lt;math xmlns=&quot;http://www.w3.org/1998/Math/MathML&quot;&gt;&lt;semantics&gt;&lt;mrow&gt;&lt;mtext mathvariant=&quot;monospace&quot;&gt;do&lt;/mtext&gt;&lt;mo stretchy=&quot;false&quot;&gt;(&lt;/mo&gt;&lt;mi&gt;B&lt;/mi&gt;&lt;mo&gt;=&lt;/mo&gt;&lt;mi&gt;b&lt;/mi&gt;&lt;mo stretchy=&quot;false&quot;&gt;)&lt;/mo&gt;&lt;/mrow&gt;&lt;annotation encoding=&quot;application/x-tex&quot;&gt;\verb!do!(B = b)&lt;/annotation&gt;&lt;/semantics&gt;&lt;/math&gt;&lt;/span&gt;&lt;span class=&quot;katex-html&quot; aria-hidden=&quot;true&quot;&gt;&lt;span class=&quot;base&quot;&gt;&lt;span class=&quot;strut&quot; style=&quot;height:1em;vertical-align:-0.25em;&quot;&gt;&lt;/span&gt;&lt;span class=&quot;mord text&quot;&gt;&lt;span class=&quot;mord texttt&quot;&gt;do&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;mopen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mord mathdefault&quot; style=&quot;margin-right:0.05017em;&quot;&gt;B&lt;/span&gt;&lt;span class=&quot;mspace&quot; style=&quot;margin-right:0.2777777777777778em;&quot;&gt;&lt;/span&gt;&lt;span class=&quot;mrel&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;mspace&quot; style=&quot;margin-right:0.2777777777777778em;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;base&quot;&gt;&lt;span class=&quot;strut&quot; style=&quot;height:1em;vertical-align:-0.25em;&quot;&gt;&lt;/span&gt;&lt;span class=&quot;mord mathdefault&quot;&gt;b&lt;/span&gt;&lt;span class=&quot;mclose&quot;&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; we apply a set of algebraic rules, called do-calculus, to our causal model from Figure 3 and draw on our regular observational data from the production floor.&lt;/p&gt;

&lt;p&gt;In technical terms, do-calculus allows us to turn theoretical interventional distributions into regular conditional distributions that we can compute using our observational data.&lt;/p&gt;

&lt;p&gt;With this toolset we can finally estimate the individual effect of tweaking production parameter &lt;span class=&quot;katex&quot;&gt;&lt;span class=&quot;katex-mathml&quot;&gt;&lt;math xmlns=&quot;http://www.w3.org/1998/Math/MathML&quot;&gt;&lt;semantics&gt;&lt;mrow&gt;&lt;mi&gt;B&lt;/mi&gt;&lt;/mrow&gt;&lt;annotation encoding=&quot;application/x-tex&quot;&gt;B&lt;/annotation&gt;&lt;/semantics&gt;&lt;/math&gt;&lt;/span&gt;&lt;span class=&quot;katex-html&quot; aria-hidden=&quot;true&quot;&gt;&lt;span class=&quot;base&quot;&gt;&lt;span class=&quot;strut&quot; style=&quot;height:0.68333em;vertical-align:0em;&quot;&gt;&lt;/span&gt;&lt;span class=&quot;mord mathdefault&quot; style=&quot;margin-right:0.05017em;&quot;&gt;B&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; on quality score &lt;span class=&quot;katex&quot;&gt;&lt;span class=&quot;katex-mathml&quot;&gt;&lt;math xmlns=&quot;http://www.w3.org/1998/Math/MathML&quot;&gt;&lt;semantics&gt;&lt;mrow&gt;&lt;mtext mathvariant=&quot;monospace&quot;&gt;QA&lt;/mtext&gt;&lt;/mrow&gt;&lt;annotation encoding=&quot;application/x-tex&quot;&gt;\verb!QA!&lt;/annotation&gt;&lt;/semantics&gt;&lt;/math&gt;&lt;/span&gt;&lt;span class=&quot;katex-html&quot; aria-hidden=&quot;true&quot;&gt;&lt;span class=&quot;base&quot;&gt;&lt;span class=&quot;strut&quot; style=&quot;height:0.75em;vertical-align:-0.13889em;&quot;&gt;&lt;/span&gt;&lt;span class=&quot;mord text&quot;&gt;&lt;span class=&quot;mord texttt&quot;&gt;QA&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; thus allowing us to optimize surgically our manufacturing output.&lt;/p&gt;

&lt;h2 id=&quot;becoming-a-causality-driven-company&quot;&gt;Becoming a causality-driven company&lt;/h2&gt;

&lt;p&gt;I hope I managed to convince you of the important difference between recording lots of data and being able to optimize individual steps of your business operations based on your data.&lt;/p&gt;

&lt;p&gt;The former is limited to prediction: Your organization can predict future outcomes if all internal processes continue to be operated as usual.
This is the essence of the data-driven company.&lt;/p&gt;

&lt;p&gt;The latter adds explanation to prediction: Your organization can explain how outcomes and future outcomes come about. And once you can explain how your processes lead to outcomes you can start optimizing individual components of your processes and organization.
This enables you to analyze what would happen if you changed “the way you have always done things” - thus elevating you to a causality-driven company.&lt;/p&gt;

&lt;p&gt;How can you start using causal inference and tools such as do-calculus to optimize your business?
And how do you eventually become a causality-driven company?&lt;/p&gt;

&lt;p&gt;A roadmap of this kind, a causality strategy if you will, would certainly be an interesting subject for another blog article.&lt;/p&gt;

&lt;p&gt;Until then, I would start by becoming a data-driven company first:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Set up data collection across all key operations of your business,&lt;/li&gt;
  &lt;li&gt;Start working on machine learning prototypes for predicting key business metrics based on your collected data, and&lt;/li&gt;
  &lt;li&gt;Start asking yourself: Once I can predict my business metrics with machine learning, what specific changes should I make to my business to optimize these metrics?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Once you get to the point of wanting to make surgical decisions based on your machine learning model, causality and causal inference will start playing key roles.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/images/posts/evolution_causality_driven_company.png&quot; target=&quot;_blank&quot;&gt;
&lt;img src=&quot;/images/posts/evolution_causality_driven_company.png&quot; alt=&quot;Evolution of the causality-driven company&quot; title=&quot;Figure 5: The evolution of the causality-driven company. Companies that can quantify and predict their key operations are driven by data alone. Oftentimes, data-driven companies are limited to predictions in the realm of their established processes. Companies that can both predict and explain are able to surgically optimize their operations or products. These causality-driven companies can break open and optimize their established (status quo) processes based both on data and a causal understanding of their operations. (Illustration based on Christoper Penn's illustration of the evolution of the data-driven company).&quot; /&gt;
&lt;/a&gt;&lt;/p&gt;</content><author><name>Georg Walther</name></author><category term="causal inference" /><category term="causal discovery" /><category term="data-driven company" /><category term="causality-driven company" /><summary type="html">The data-driven company</summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://georg.io/images/posts/evolution_causality_driven_company.png" /><media:content medium="image" url="https://georg.io/images/posts/evolution_causality_driven_company.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Decision intelligence from historical observations for optimal marketing resource use</title><link href="https://georg.io/2020/01/12/Optimal_resource_allocation_and_uplift_for_direct_marketing" rel="alternate" type="text/html" title="Decision intelligence from historical observations for optimal marketing resource use" /><published>2020-01-12T00:00:00-06:00</published><updated>2020-01-12T00:00:00-06:00</updated><id>https://georg.io/2020/01/12/Optimal_resource_allocation_and_uplift_for_direct_marketing</id><content type="html" xml:base="https://georg.io/2020/01/12/Optimal_resource_allocation_and_uplift_for_direct_marketing">&lt;!--
#################################################
### THIS FILE WAS AUTOGENERATED! DO NOT EDIT! ###
#################################################
# file to edit: _notebooks/2020-01-12-Optimal_resource_allocation_and_uplift_for_direct_marketing.ipynb
--&gt;

&lt;div class=&quot;container&quot; id=&quot;notebook-container&quot;&gt;
        
    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;

&lt;/div&gt;
    

&lt;div class=&quot;cell border-box-sizing text_cell rendered&quot;&gt;&lt;div class=&quot;inner_cell&quot;&gt;
&lt;div class=&quot;text_cell_render border-box-sizing rendered_html&quot;&gt;
&lt;h1 id=&quot;Summary&quot;&gt;Summary&lt;a class=&quot;anchor-link&quot; href=&quot;#Summary&quot;&gt; &lt;/a&gt;&lt;/h1&gt;&lt;p&gt;Marketing is a key success and revenue driver in B2C markets: An appropriate message placed at the appropriate time with a prospective customer will increase your business success.&lt;/p&gt;
&lt;p&gt;However, marketing is also a major cost driver for businesses: Marketing efforts that are too broad, target the wrong audience, or convey the wrong message waste resources.&lt;/p&gt;
&lt;p&gt;In the case of direct marketing via phone conversations a key cost factor is the amount of time a sales call agent spends with the prospective customer on the phone.&lt;/p&gt;
&lt;p&gt;In this article we explore, rudimentarily, direct marketing data of a Portuguese financial institution.&lt;/p&gt;
&lt;p&gt;We explore the relationship between call duration and success (purchase of offered financial product), and show that consideration of customer-specific factors influences how you should allocate your marketing resources.&lt;/p&gt;
&lt;p&gt;Our prototypical analysis can be usueful in devising &lt;strong&gt;data-driven marketing and sales&lt;/strong&gt; strategies that offer &lt;strong&gt;decision intelligence&lt;/strong&gt; for your call agents.&lt;/p&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;cell border-box-sizing text_cell rendered&quot;&gt;&lt;div class=&quot;inner_cell&quot;&gt;
&lt;div class=&quot;text_cell_render border-box-sizing rendered_html&quot;&gt;
&lt;h1 id=&quot;Fetch-the-data&quot;&gt;Fetch the data&lt;a class=&quot;anchor-link&quot; href=&quot;#Fetch-the-data&quot;&gt; &lt;/a&gt;&lt;/h1&gt;&lt;p&gt;For our prototype we use the openly accessible &lt;a href=&quot;https://archive.ics.uci.edu/ml/datasets/Bank+Marketing&quot;&gt;Bank Marketing Data Set&lt;/a&gt; from the &lt;a href=&quot;https://archive.ics.uci.edu/ml/index.php&quot;&gt;UC Irvine Machine Learning Repository&lt;/a&gt;.&lt;/p&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;
&lt;div class=&quot;input&quot;&gt;

&lt;div class=&quot;inner_cell&quot;&gt;
    &lt;div class=&quot;input_area&quot;&gt;
&lt;div class=&quot; highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;!&lt;/span&gt;wget --quiet https://archive.ics.uci.edu/ml/machine-learning-databases/00222/bank.zip
&lt;/pre&gt;&lt;/div&gt;

    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
    

    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;
&lt;div class=&quot;input&quot;&gt;

&lt;div class=&quot;inner_cell&quot;&gt;
    &lt;div class=&quot;input_area&quot;&gt;
&lt;div class=&quot; highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;!&lt;/span&gt;unzip -oqq bank.zip
&lt;/pre&gt;&lt;/div&gt;

    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
    

&lt;div class=&quot;cell border-box-sizing text_cell rendered&quot;&gt;&lt;div class=&quot;inner_cell&quot;&gt;
&lt;div class=&quot;text_cell_render border-box-sizing rendered_html&quot;&gt;
&lt;h1 id=&quot;Load-Python-libraries&quot;&gt;Load Python libraries&lt;a class=&quot;anchor-link&quot; href=&quot;#Load-Python-libraries&quot;&gt; &lt;/a&gt;&lt;/h1&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;
&lt;div class=&quot;input&quot;&gt;

&lt;div class=&quot;inner_cell&quot;&gt;
    &lt;div class=&quot;input_area&quot;&gt;
&lt;div class=&quot; highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;kn&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;graphviz&lt;/span&gt;
&lt;span class=&quot;kn&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;numpy&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;as&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;np&lt;/span&gt;
&lt;span class=&quot;kn&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;pandas&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;as&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;pd&lt;/span&gt;
&lt;span class=&quot;kn&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;seaborn&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;as&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;sns&lt;/span&gt;
&lt;span class=&quot;kn&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;sklearn.cluster&lt;/span&gt; &lt;span class=&quot;kn&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;KMeans&lt;/span&gt;
&lt;span class=&quot;kn&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;sklearn.preprocessing&lt;/span&gt; &lt;span class=&quot;kn&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;LabelEncoder&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
    

    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;
&lt;div class=&quot;input&quot;&gt;

&lt;div class=&quot;inner_cell&quot;&gt;
    &lt;div class=&quot;input_area&quot;&gt;
&lt;div class=&quot; highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;np&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;random&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;seed&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;42&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
    

&lt;div class=&quot;cell border-box-sizing text_cell rendered&quot;&gt;&lt;div class=&quot;inner_cell&quot;&gt;
&lt;div class=&quot;text_cell_render border-box-sizing rendered_html&quot;&gt;
&lt;h1 id=&quot;Prepare-data&quot;&gt;Prepare data&lt;a class=&quot;anchor-link&quot; href=&quot;#Prepare-data&quot;&gt; &lt;/a&gt;&lt;/h1&gt;&lt;p&gt;The data we work with here contain a number of categorical and numerical variables. To keep our analysis and prototype simple we will focus on only a handful and remove the remainder.&lt;/p&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;
&lt;details class=&quot;description&quot;&gt;
      &lt;summary class=&quot;btn btn-sm&quot; data-open=&quot;Hide Code&quot; data-close=&quot;Show Code&quot;&gt;&lt;/summary&gt;
        &lt;p&gt;&lt;div class=&quot;input&quot;&gt;

&lt;div class=&quot;inner_cell&quot;&gt;
    &lt;div class=&quot;input_area&quot;&gt;
&lt;div class=&quot; highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;c1&quot;&gt;#collapse&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;df&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;pd&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;read_csv&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;bank.csv&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;delimiter&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;;&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;success&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;y&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;del&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;y&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;success&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;success&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;replace&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;no&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;success&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;success&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;replace&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;yes&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;del&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;education&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;del&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;default&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;del&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;housing&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;del&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;loan&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;del&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;contact&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;del&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;day&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;del&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;month&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;del&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;campaign&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;del&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;pdays&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;del&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;previous&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;del&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;poutcome&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/p&gt;
    &lt;/details&gt;
&lt;/div&gt;
    

&lt;div class=&quot;cell border-box-sizing text_cell rendered&quot;&gt;&lt;div class=&quot;inner_cell&quot;&gt;
&lt;div class=&quot;text_cell_render border-box-sizing rendered_html&quot;&gt;
&lt;p&gt;Our tabular data set now looks as follows: Each prospective (and in some cases eventual) customer whom a call agent conversed with fills a row. On each row we have numerical variables (age, account balance, duration of sales interaction) and categorical variables (job / employment status and marital status). Our data set contains &lt;strong&gt;4,521 sales interactions&lt;/strong&gt;.&lt;/p&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;
&lt;div class=&quot;input&quot;&gt;

&lt;div class=&quot;inner_cell&quot;&gt;
    &lt;div class=&quot;input_area&quot;&gt;
&lt;div class=&quot; highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;div class=&quot;output_wrapper&quot;&gt;
&lt;div class=&quot;output&quot;&gt;

&lt;div class=&quot;output_area&quot;&gt;


&lt;div class=&quot;output_html rendered_html output_subarea output_execute_result&quot;&gt;
&lt;div&gt;
&lt;style scoped=&quot;&quot;&gt;
    .dataframe tbody tr th:only-of-type {
        vertical-align: middle;
    }

    .dataframe tbody tr th {
        vertical-align: top;
    }

    .dataframe thead th {
        text-align: right;
    }
&lt;/style&gt;
&lt;table border=&quot;1&quot; class=&quot;dataframe&quot;&gt;
  &lt;thead&gt;
    &lt;tr style=&quot;text-align: right;&quot;&gt;
      &lt;th&gt;&lt;/th&gt;
      &lt;th&gt;age&lt;/th&gt;
      &lt;th&gt;job&lt;/th&gt;
      &lt;th&gt;marital&lt;/th&gt;
      &lt;th&gt;balance&lt;/th&gt;
      &lt;th&gt;duration&lt;/th&gt;
      &lt;th&gt;success&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;th&gt;0&lt;/th&gt;
      &lt;td&gt;30&lt;/td&gt;
      &lt;td&gt;unemployed&lt;/td&gt;
      &lt;td&gt;married&lt;/td&gt;
      &lt;td&gt;1787&lt;/td&gt;
      &lt;td&gt;79&lt;/td&gt;
      &lt;td&gt;0&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;1&lt;/th&gt;
      &lt;td&gt;33&lt;/td&gt;
      &lt;td&gt;services&lt;/td&gt;
      &lt;td&gt;married&lt;/td&gt;
      &lt;td&gt;4789&lt;/td&gt;
      &lt;td&gt;220&lt;/td&gt;
      &lt;td&gt;0&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;2&lt;/th&gt;
      &lt;td&gt;35&lt;/td&gt;
      &lt;td&gt;management&lt;/td&gt;
      &lt;td&gt;single&lt;/td&gt;
      &lt;td&gt;1350&lt;/td&gt;
      &lt;td&gt;185&lt;/td&gt;
      &lt;td&gt;0&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;3&lt;/th&gt;
      &lt;td&gt;30&lt;/td&gt;
      &lt;td&gt;management&lt;/td&gt;
      &lt;td&gt;married&lt;/td&gt;
      &lt;td&gt;1476&lt;/td&gt;
      &lt;td&gt;199&lt;/td&gt;
      &lt;td&gt;0&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;4&lt;/th&gt;
      &lt;td&gt;59&lt;/td&gt;
      &lt;td&gt;blue-collar&lt;/td&gt;
      &lt;td&gt;married&lt;/td&gt;
      &lt;td&gt;0&lt;/td&gt;
      &lt;td&gt;226&lt;/td&gt;
      &lt;td&gt;0&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;...&lt;/th&gt;
      &lt;td&gt;...&lt;/td&gt;
      &lt;td&gt;...&lt;/td&gt;
      &lt;td&gt;...&lt;/td&gt;
      &lt;td&gt;...&lt;/td&gt;
      &lt;td&gt;...&lt;/td&gt;
      &lt;td&gt;...&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;4516&lt;/th&gt;
      &lt;td&gt;33&lt;/td&gt;
      &lt;td&gt;services&lt;/td&gt;
      &lt;td&gt;married&lt;/td&gt;
      &lt;td&gt;-333&lt;/td&gt;
      &lt;td&gt;329&lt;/td&gt;
      &lt;td&gt;0&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;4517&lt;/th&gt;
      &lt;td&gt;57&lt;/td&gt;
      &lt;td&gt;self-employed&lt;/td&gt;
      &lt;td&gt;married&lt;/td&gt;
      &lt;td&gt;-3313&lt;/td&gt;
      &lt;td&gt;153&lt;/td&gt;
      &lt;td&gt;0&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;4518&lt;/th&gt;
      &lt;td&gt;57&lt;/td&gt;
      &lt;td&gt;technician&lt;/td&gt;
      &lt;td&gt;married&lt;/td&gt;
      &lt;td&gt;295&lt;/td&gt;
      &lt;td&gt;151&lt;/td&gt;
      &lt;td&gt;0&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;4519&lt;/th&gt;
      &lt;td&gt;28&lt;/td&gt;
      &lt;td&gt;blue-collar&lt;/td&gt;
      &lt;td&gt;married&lt;/td&gt;
      &lt;td&gt;1137&lt;/td&gt;
      &lt;td&gt;129&lt;/td&gt;
      &lt;td&gt;0&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;4520&lt;/th&gt;
      &lt;td&gt;44&lt;/td&gt;
      &lt;td&gt;entrepreneur&lt;/td&gt;
      &lt;td&gt;single&lt;/td&gt;
      &lt;td&gt;1136&lt;/td&gt;
      &lt;td&gt;345&lt;/td&gt;
      &lt;td&gt;0&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;4521 rows × 6 columns&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
    

&lt;div class=&quot;cell border-box-sizing text_cell rendered&quot;&gt;&lt;div class=&quot;inner_cell&quot;&gt;
&lt;div class=&quot;text_cell_render border-box-sizing rendered_html&quot;&gt;
&lt;h1 id=&quot;High-level-model:-more-is-better&quot;&gt;High-level model: more is better&lt;a class=&quot;anchor-link&quot; href=&quot;#High-level-model:-more-is-better&quot;&gt; &lt;/a&gt;&lt;/h1&gt;&lt;p&gt;A blanket approach to marketing and sales may be: More resources lead to greater success.&lt;/p&gt;
&lt;p&gt;So in the case of direct marketing on the phone we could expect that the more time we spend with a prospective customer on the phone, the bigger our success rate.&lt;/p&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;

&lt;div class=&quot;output_wrapper&quot;&gt;
&lt;div class=&quot;output&quot;&gt;

&lt;div class=&quot;output_area&quot;&gt;


&lt;div class=&quot;output_svg output_subarea output_execute_result&quot;&gt;
&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;
&amp;lt;!DOCTYPE svg PUBLIC &quot;-//W3C//DTD SVG 1.1//EN&quot;
 &quot;http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd&quot;&amp;gt;
&lt;!-- Generated by graphviz version 2.40.1 (20161225.0304)
 --&gt;
&lt;!-- Title: G Pages: 1 --&gt;
&lt;svg width=&quot;196pt&quot; height=&quot;44pt&quot; viewBox=&quot;0.00 0.00 196.41 44.00&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot; xmlns:xlink=&quot;http://www.w3.org/1999/xlink&quot;&gt;
&lt;g id=&quot;graph0&quot; class=&quot;graph&quot; transform=&quot;scale(1 1) rotate(0) translate(4 40)&quot;&gt;
&lt;title&gt;G&lt;/title&gt;
&lt;polygon fill=&quot;#ffffff&quot; stroke=&quot;transparent&quot; points=&quot;-4,4 -4,-40 192.4128,-40 192.4128,4 -4,4&quot; /&gt;
&lt;!-- duration --&gt;
&lt;g id=&quot;node1&quot; class=&quot;node&quot;&gt;
&lt;title&gt;duration&lt;/title&gt;
&lt;ellipse fill=&quot;none&quot; stroke=&quot;#000000&quot; cx=&quot;39.5778&quot; cy=&quot;-18&quot; rx=&quot;39.6558&quot; ry=&quot;18&quot; /&gt;
&lt;text text-anchor=&quot;middle&quot; x=&quot;39.5778&quot; y=&quot;-13.8&quot; font-family=&quot;Times,serif&quot; font-size=&quot;14.00&quot; fill=&quot;#000000&quot;&gt;duration&lt;/text&gt;
&lt;/g&gt;
&lt;!-- success --&gt;
&lt;g id=&quot;node2&quot; class=&quot;node&quot;&gt;
&lt;title&gt;success&lt;/title&gt;
&lt;ellipse fill=&quot;none&quot; stroke=&quot;#000000&quot; cx=&quot;151.7843&quot; cy=&quot;-18&quot; rx=&quot;36.7576&quot; ry=&quot;18&quot; /&gt;
&lt;text text-anchor=&quot;middle&quot; x=&quot;151.7843&quot; y=&quot;-13.8&quot; font-family=&quot;Times,serif&quot; font-size=&quot;14.00&quot; fill=&quot;#000000&quot;&gt;success&lt;/text&gt;
&lt;/g&gt;
&lt;!-- duration&amp;#45;&amp;gt;success --&gt;
&lt;g id=&quot;edge1&quot; class=&quot;edge&quot;&gt;
&lt;title&gt;duration&amp;#45;&amp;gt;success&lt;/title&gt;
&lt;path fill=&quot;none&quot; stroke=&quot;#000000&quot; d=&quot;M79.4536,-18C87.6936,-18 96.4446,-18 104.9075,-18&quot; /&gt;
&lt;polygon fill=&quot;#000000&quot; stroke=&quot;#000000&quot; points=&quot;105.034,-21.5001 115.034,-18 105.0339,-14.5001 105.034,-21.5001&quot; /&gt;
&lt;/g&gt;
&lt;/g&gt;
&lt;/svg&gt;

&lt;/div&gt;

&lt;/div&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
    

&lt;div class=&quot;cell border-box-sizing text_cell rendered&quot;&gt;&lt;div class=&quot;inner_cell&quot;&gt;
&lt;div class=&quot;text_cell_render border-box-sizing rendered_html&quot;&gt;
&lt;p&gt;To test our model, we discretize the duration of our interaction with the customer into six duration buckets: bucket 1 holds the shortest interactions while bucket 6 holds the longest interactions.&lt;/p&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;
&lt;div class=&quot;input&quot;&gt;

&lt;div class=&quot;inner_cell&quot;&gt;
    &lt;div class=&quot;input_area&quot;&gt;
&lt;div class=&quot; highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;no_buckets&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;6&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;duration_bucket&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;pd&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;qcut&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;duration&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;],&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;no_buckets&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;labels&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;sa&quot;&gt;f&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;bucket &lt;/span&gt;&lt;span class=&quot;si&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;b&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;si&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;b&lt;/span&gt; &lt;span class=&quot;ow&quot;&gt;in&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;range&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;no_buckets&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)])&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
    

    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;
&lt;div class=&quot;input&quot;&gt;

&lt;div class=&quot;inner_cell&quot;&gt;
    &lt;div class=&quot;input_area&quot;&gt;
&lt;div class=&quot; highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;groupby&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;duration_bucket&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;agg&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;({&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;success&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&amp;#39;mean&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;})&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;div class=&quot;output_wrapper&quot;&gt;
&lt;div class=&quot;output&quot;&gt;

&lt;div class=&quot;output_area&quot;&gt;


&lt;div class=&quot;output_html rendered_html output_subarea output_execute_result&quot;&gt;
&lt;div&gt;
&lt;style scoped=&quot;&quot;&gt;
    .dataframe tbody tr th:only-of-type {
        vertical-align: middle;
    }

    .dataframe tbody tr th {
        vertical-align: top;
    }

    .dataframe thead th {
        text-align: right;
    }
&lt;/style&gt;
&lt;table border=&quot;1&quot; class=&quot;dataframe&quot;&gt;
  &lt;thead&gt;
    &lt;tr style=&quot;text-align: right;&quot;&gt;
      &lt;th&gt;&lt;/th&gt;
      &lt;th&gt;success&lt;/th&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;duration_bucket&lt;/th&gt;
      &lt;th&gt;&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;th&gt;bucket 1&lt;/th&gt;
      &lt;td&gt;0.003932&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;bucket 2&lt;/th&gt;
      &lt;td&gt;0.031662&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;bucket 3&lt;/th&gt;
      &lt;td&gt;0.048193&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;bucket 4&lt;/th&gt;
      &lt;td&gt;0.095174&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;bucket 5&lt;/th&gt;
      &lt;td&gt;0.155378&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;bucket 6&lt;/th&gt;
      &lt;td&gt;0.358090&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
    

&lt;div class=&quot;cell border-box-sizing text_cell rendered&quot;&gt;&lt;div class=&quot;inner_cell&quot;&gt;
&lt;div class=&quot;text_cell_render border-box-sizing rendered_html&quot;&gt;
&lt;p&gt;Looking at the average success rate in each duration bucket shows us that there is positive correlation between the duration of a sales interaction and our success rate - just as our model predicted.&lt;/p&gt;
&lt;p&gt;Hence, more marketing spend appears to lead to greater success in general.&lt;/p&gt;
&lt;p&gt;From a data perspective this is a pretty disappointing result as we expect to glean more intelligent insights from all the data we collected.&lt;/p&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;cell border-box-sizing text_cell rendered&quot;&gt;&lt;div class=&quot;inner_cell&quot;&gt;
&lt;div class=&quot;text_cell_render border-box-sizing rendered_html&quot;&gt;
&lt;h1 id=&quot;Nuanced-model:-more-isn't-always-better-and-there-are-always-tradeoffs&quot;&gt;Nuanced model: more isn't always better and there are always tradeoffs&lt;a class=&quot;anchor-link&quot; href=&quot;#Nuanced-model:-more-isn't-always-better-and-there-are-always-tradeoffs&quot;&gt; &lt;/a&gt;&lt;/h1&gt;&lt;p&gt;Let's dig deeper into what is going on here: Yes, the duration of the interaction between call agent and prospective customer likely influences our success rate.&lt;/p&gt;
&lt;p&gt;However, call agents also probably choose to spend more time on the phone with customers whose account balance is higher - hoping for a greater chance of a sale. That same account balance also likely influences how affine the customer is for spending more money on financial products.&lt;/p&gt;
&lt;p&gt;Both present job status and marital status are also likely candidates for influencing an affinity for financial products.&lt;/p&gt;
&lt;p&gt;And age of the customer probably influences both their job and marital status.&lt;/p&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;

&lt;div class=&quot;output_wrapper&quot;&gt;
&lt;div class=&quot;output&quot;&gt;

&lt;div class=&quot;output_area&quot;&gt;


&lt;div class=&quot;output_svg output_subarea output_execute_result&quot;&gt;
&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;
&amp;lt;!DOCTYPE svg PUBLIC &quot;-//W3C//DTD SVG 1.1//EN&quot;
 &quot;http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd&quot;&amp;gt;
&lt;!-- Generated by graphviz version 2.40.1 (20161225.0304)
 --&gt;
&lt;!-- Title: G Pages: 1 --&gt;
&lt;svg width=&quot;497pt&quot; height=&quot;174pt&quot; viewBox=&quot;0.00 0.00 496.58 174.00&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot; xmlns:xlink=&quot;http://www.w3.org/1999/xlink&quot;&gt;
&lt;g id=&quot;graph0&quot; class=&quot;graph&quot; transform=&quot;scale(1 1) rotate(0) translate(4 170)&quot;&gt;
&lt;title&gt;G&lt;/title&gt;
&lt;polygon fill=&quot;#ffffff&quot; stroke=&quot;transparent&quot; points=&quot;-4,4 -4,-170 492.579,-170 492.579,4 -4,4&quot; /&gt;
&lt;!-- age --&gt;
&lt;g id=&quot;node1&quot; class=&quot;node&quot;&gt;
&lt;title&gt;age&lt;/title&gt;
&lt;ellipse fill=&quot;none&quot; stroke=&quot;#000000&quot; cx=&quot;27&quot; cy=&quot;-41&quot; rx=&quot;27&quot; ry=&quot;18&quot; /&gt;
&lt;text text-anchor=&quot;middle&quot; x=&quot;27&quot; y=&quot;-37.3&quot; font-family=&quot;Times,serif&quot; font-size=&quot;14.00&quot; fill=&quot;#000000&quot;&gt;age&lt;/text&gt;
&lt;/g&gt;
&lt;!-- job --&gt;
&lt;g id=&quot;node2&quot; class=&quot;node&quot;&gt;
&lt;title&gt;job&lt;/title&gt;
&lt;ellipse fill=&quot;none&quot; stroke=&quot;#000000&quot; cx=&quot;117&quot; cy=&quot;-64&quot; rx=&quot;27&quot; ry=&quot;18&quot; /&gt;
&lt;text text-anchor=&quot;middle&quot; x=&quot;117&quot; y=&quot;-60.3&quot; font-family=&quot;Times,serif&quot; font-size=&quot;14.00&quot; fill=&quot;#000000&quot;&gt;job&lt;/text&gt;
&lt;/g&gt;
&lt;!-- age&amp;#45;&amp;gt;job --&gt;
&lt;g id=&quot;edge1&quot; class=&quot;edge&quot;&gt;
&lt;title&gt;age&amp;#45;&amp;gt;job&lt;/title&gt;
&lt;path fill=&quot;none&quot; stroke=&quot;#000000&quot; d=&quot;M52.5497,-47.5294C61.6523,-49.8556 72.0697,-52.5178 81.8371,-55.0139&quot; /&gt;
&lt;polygon fill=&quot;#000000&quot; stroke=&quot;#000000&quot; points=&quot;81.1427,-58.4489 91.698,-57.5339 82.876,-51.6668 81.1427,-58.4489&quot; /&gt;
&lt;/g&gt;
&lt;!-- marital --&gt;
&lt;g id=&quot;node3&quot; class=&quot;node&quot;&gt;
&lt;title&gt;marital&lt;/title&gt;
&lt;ellipse fill=&quot;none&quot; stroke=&quot;#000000&quot; cx=&quot;218.3466&quot; cy=&quot;-18&quot; rx=&quot;36.2938&quot; ry=&quot;18&quot; /&gt;
&lt;text text-anchor=&quot;middle&quot; x=&quot;218.3466&quot; y=&quot;-14.3&quot; font-family=&quot;Times,serif&quot; font-size=&quot;14.00&quot; fill=&quot;#000000&quot;&gt;marital&lt;/text&gt;
&lt;/g&gt;
&lt;!-- age&amp;#45;&amp;gt;marital --&gt;
&lt;g id=&quot;edge2&quot; class=&quot;edge&quot;&gt;
&lt;title&gt;age&amp;#45;&amp;gt;marital&lt;/title&gt;
&lt;path fill=&quot;none&quot; stroke=&quot;#000000&quot; d=&quot;M53.6059,-37.8019C84.3934,-34.1013 135.6129,-27.9447 172.7788,-23.4773&quot; /&gt;
&lt;polygon fill=&quot;#000000&quot; stroke=&quot;#000000&quot; points=&quot;173.3493,-26.934 182.8601,-22.2655 172.5139,-19.984 173.3493,-26.934&quot; /&gt;
&lt;/g&gt;
&lt;!-- balance --&gt;
&lt;g id=&quot;node4&quot; class=&quot;node&quot;&gt;
&lt;title&gt;balance&lt;/title&gt;
&lt;ellipse fill=&quot;none&quot; stroke=&quot;#000000&quot; cx=&quot;218.3466&quot; cy=&quot;-110&quot; rx=&quot;38.1938&quot; ry=&quot;18&quot; /&gt;
&lt;text text-anchor=&quot;middle&quot; x=&quot;218.3466&quot; y=&quot;-106.3&quot; font-family=&quot;Times,serif&quot; font-size=&quot;14.00&quot; fill=&quot;#000000&quot;&gt;balance&lt;/text&gt;
&lt;/g&gt;
&lt;!-- job&amp;#45;&amp;gt;balance --&gt;
&lt;g id=&quot;edge3&quot; class=&quot;edge&quot;&gt;
&lt;title&gt;job&amp;#45;&amp;gt;balance&lt;/title&gt;
&lt;path fill=&quot;none&quot; stroke=&quot;#000000&quot; d=&quot;M139.4921,-74.2089C151.7165,-79.7574 167.1492,-86.7621 181.1139,-93.1005&quot; /&gt;
&lt;polygon fill=&quot;#000000&quot; stroke=&quot;#000000&quot; points=&quot;179.9373,-96.4101 190.4898,-97.3561 182.8305,-90.0359 179.9373,-96.4101&quot; /&gt;
&lt;/g&gt;
&lt;!-- success --&gt;
&lt;g id=&quot;node6&quot; class=&quot;node&quot;&gt;
&lt;title&gt;success&lt;/title&gt;
&lt;ellipse fill=&quot;none&quot; stroke=&quot;#000000&quot; cx=&quot;450.8824&quot; cy=&quot;-83&quot; rx=&quot;37.8943&quot; ry=&quot;18&quot; /&gt;
&lt;text text-anchor=&quot;middle&quot; x=&quot;450.8824&quot; y=&quot;-79.3&quot; font-family=&quot;Times,serif&quot; font-size=&quot;14.00&quot; fill=&quot;#000000&quot;&gt;success&lt;/text&gt;
&lt;/g&gt;
&lt;!-- job&amp;#45;&amp;gt;success --&gt;
&lt;g id=&quot;edge6&quot; class=&quot;edge&quot;&gt;
&lt;title&gt;job&amp;#45;&amp;gt;success&lt;/title&gt;
&lt;path fill=&quot;none&quot; stroke=&quot;#000000&quot; d=&quot;M144.0402,-65.5388C200.6382,-68.7595 332.2091,-76.2467 403.2876,-80.2916&quot; /&gt;
&lt;polygon fill=&quot;#000000&quot; stroke=&quot;#000000&quot; points=&quot;403.1368,-83.7885 413.3195,-80.8624 403.5346,-76.7999 403.1368,-83.7885&quot; /&gt;
&lt;/g&gt;
&lt;!-- marital&amp;#45;&amp;gt;success --&gt;
&lt;g id=&quot;edge5&quot; class=&quot;edge&quot;&gt;
&lt;title&gt;marital&amp;#45;&amp;gt;success&lt;/title&gt;
&lt;path fill=&quot;none&quot; stroke=&quot;#000000&quot; d=&quot;M253.6194,-22.8033C286.1908,-27.7767 335.6608,-36.7028 377.1857,-50 390.1434,-54.1493 403.8686,-59.8956 415.9169,-65.4316&quot; /&gt;
&lt;polygon fill=&quot;#000000&quot; stroke=&quot;#000000&quot; points=&quot;414.6351,-68.6967 425.1732,-69.7917 417.6181,-62.364 414.6351,-68.6967&quot; /&gt;
&lt;/g&gt;
&lt;!-- duration --&gt;
&lt;g id=&quot;node5&quot; class=&quot;node&quot;&gt;
&lt;title&gt;duration&lt;/title&gt;
&lt;ellipse fill=&quot;none&quot; stroke=&quot;#000000&quot; cx=&quot;334.9394&quot; cy=&quot;-148&quot; rx=&quot;42.4939&quot; ry=&quot;18&quot; /&gt;
&lt;text text-anchor=&quot;middle&quot; x=&quot;334.9394&quot; y=&quot;-144.3&quot; font-family=&quot;Times,serif&quot; font-size=&quot;14.00&quot; fill=&quot;#000000&quot;&gt;duration&lt;/text&gt;
&lt;/g&gt;
&lt;!-- balance&amp;#45;&amp;gt;duration --&gt;
&lt;g id=&quot;edge4&quot; class=&quot;edge&quot;&gt;
&lt;title&gt;balance&amp;#45;&amp;gt;duration&lt;/title&gt;
&lt;path fill=&quot;none&quot; stroke=&quot;#000000&quot; d=&quot;M249.8983,-120.2833C262.7056,-124.4575 277.7117,-129.3483 291.5235,-133.8499&quot; /&gt;
&lt;polygon fill=&quot;#000000&quot; stroke=&quot;#000000&quot; points=&quot;290.7287,-137.272 301.3211,-137.0431 292.8979,-130.6165 290.7287,-137.272&quot; /&gt;
&lt;/g&gt;
&lt;!-- balance&amp;#45;&amp;gt;success --&gt;
&lt;g id=&quot;edge7&quot; class=&quot;edge&quot;&gt;
&lt;title&gt;balance&amp;#45;&amp;gt;success&lt;/title&gt;
&lt;path fill=&quot;none&quot; stroke=&quot;#000000&quot; d=&quot;M255.7075,-105.662C295.9994,-100.9836 360.2291,-93.5259 403.9115,-88.4538&quot; /&gt;
&lt;polygon fill=&quot;#000000&quot; stroke=&quot;#000000&quot; points=&quot;404.4687,-91.9128 413.9982,-87.2827 403.6613,-84.9595 404.4687,-91.9128&quot; /&gt;
&lt;/g&gt;
&lt;!-- duration&amp;#45;&amp;gt;success --&gt;
&lt;g id=&quot;edge8&quot; class=&quot;edge&quot;&gt;
&lt;title&gt;duration&amp;#45;&amp;gt;success&lt;/title&gt;
&lt;path fill=&quot;none&quot; stroke=&quot;#000000&quot; d=&quot;M360.6709,-133.5744C377.3735,-124.2106 399.3115,-111.9117 417.3711,-101.7871&quot; /&gt;
&lt;polygon fill=&quot;#000000&quot; stroke=&quot;#000000&quot; points=&quot;419.4022,-104.661 426.4134,-96.7178 415.9791,-98.555 419.4022,-104.661&quot; /&gt;
&lt;/g&gt;
&lt;/g&gt;
&lt;/svg&gt;

&lt;/div&gt;

&lt;/div&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
    

&lt;div class=&quot;cell border-box-sizing text_cell rendered&quot;&gt;&lt;div class=&quot;inner_cell&quot;&gt;
&lt;div class=&quot;text_cell_render border-box-sizing rendered_html&quot;&gt;
&lt;p&gt;Since a customer's account balance probably influences both how much time we spend with them on the phone and their likelihood of purchasing another financial product we will &lt;strong&gt;control for account balance&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;We control for account balance by training a cluster algorithm that segments our data set into three groups of similar account balance.&lt;/p&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;
&lt;div class=&quot;input&quot;&gt;

&lt;div class=&quot;inner_cell&quot;&gt;
    &lt;div class=&quot;input_area&quot;&gt;
&lt;div class=&quot; highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;job&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;LabelEncoder&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;fit_transform&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;job&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;])&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;marital&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;LabelEncoder&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;fit_transform&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;marital&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;])&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
    

    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;
&lt;div class=&quot;input&quot;&gt;

&lt;div class=&quot;inner_cell&quot;&gt;
    &lt;div class=&quot;input_area&quot;&gt;
&lt;div class=&quot; highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;segmenter&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;KMeans&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;n_clusters&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;random_state&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;42&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
    

    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;
&lt;div class=&quot;input&quot;&gt;

&lt;div class=&quot;inner_cell&quot;&gt;
    &lt;div class=&quot;input_area&quot;&gt;
&lt;div class=&quot; highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;segment&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;segmenter&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;fit_predict&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[[&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;balance&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]])&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
    

    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;
&lt;div class=&quot;input&quot;&gt;

&lt;div class=&quot;inner_cell&quot;&gt;
    &lt;div class=&quot;input_area&quot;&gt;
&lt;div class=&quot; highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;segment&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;segment&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;replace&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;({&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&amp;#39;low balance&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&amp;#39;high balance&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&amp;#39;medium balance&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;})&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
    

&lt;div class=&quot;cell border-box-sizing text_cell rendered&quot;&gt;&lt;div class=&quot;inner_cell&quot;&gt;
&lt;div class=&quot;text_cell_render border-box-sizing rendered_html&quot;&gt;
&lt;p&gt;Looking at both the average account balance and age in our three segments, we notice that our clustering algorithm picked out low, medium, and high balance segments.&lt;/p&gt;
&lt;p&gt;We also notice that average age correlates with average balance in these three segments hence our intuition codified in our above model seems valid.&lt;/p&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;
&lt;div class=&quot;input&quot;&gt;

&lt;div class=&quot;inner_cell&quot;&gt;
    &lt;div class=&quot;input_area&quot;&gt;
&lt;div class=&quot; highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;groupby&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;segment&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;agg&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;({&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;age&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&amp;#39;mean&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&amp;#39;balance&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&amp;#39;mean&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;})&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;div class=&quot;output_wrapper&quot;&gt;
&lt;div class=&quot;output&quot;&gt;

&lt;div class=&quot;output_area&quot;&gt;


&lt;div class=&quot;output_html rendered_html output_subarea output_execute_result&quot;&gt;
&lt;div&gt;
&lt;style scoped=&quot;&quot;&gt;
    .dataframe tbody tr th:only-of-type {
        vertical-align: middle;
    }

    .dataframe tbody tr th {
        vertical-align: top;
    }

    .dataframe thead th {
        text-align: right;
    }
&lt;/style&gt;
&lt;table border=&quot;1&quot; class=&quot;dataframe&quot;&gt;
  &lt;thead&gt;
    &lt;tr style=&quot;text-align: right;&quot;&gt;
      &lt;th&gt;&lt;/th&gt;
      &lt;th&gt;age&lt;/th&gt;
      &lt;th&gt;balance&lt;/th&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;segment&lt;/th&gt;
      &lt;th&gt;&lt;/th&gt;
      &lt;th&gt;&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;th&gt;high balance&lt;/th&gt;
      &lt;td&gt;44.542857&lt;/td&gt;
      &lt;td&gt;18361.771429&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;low balance&lt;/th&gt;
      &lt;td&gt;40.845577&lt;/td&gt;
      &lt;td&gt;543.930678&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;medium balance&lt;/th&gt;
      &lt;td&gt;42.911111&lt;/td&gt;
      &lt;td&gt;5202.864957&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
    

&lt;div class=&quot;cell border-box-sizing text_cell rendered&quot;&gt;&lt;div class=&quot;inner_cell&quot;&gt;
&lt;div class=&quot;text_cell_render border-box-sizing rendered_html&quot;&gt;
&lt;p&gt;Now, what about the effectiveness of our marketing resources in each segment?&lt;/p&gt;
&lt;p&gt;Visualizing our rate of success in the six duration buckets broken down by account balance segment we see a more nuanced picture:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Customers with low account balances really need to be worked on and only show success rates greater than 20% in the highest duration bucket 6,&lt;/li&gt;
&lt;li&gt;customers with medium balances already show a greater than 20% purchase likelihood in duration bucket 4, and&lt;/li&gt;
&lt;li&gt;customers with high balances actually max out in duration bucket 5 and drop below a 20% success rate in bucket 6.&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;
&lt;div class=&quot;input&quot;&gt;

&lt;div class=&quot;inner_cell&quot;&gt;
    &lt;div class=&quot;input_area&quot;&gt;
&lt;div class=&quot; highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;success_rates&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;groupby&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;([&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;segment&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&amp;#39;duration_bucket&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;])&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;agg&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;({&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;success&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&amp;#39;mean&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;})&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;reset_index&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
    

    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;
&lt;div class=&quot;input&quot;&gt;

&lt;div class=&quot;inner_cell&quot;&gt;
    &lt;div class=&quot;input_area&quot;&gt;
&lt;div class=&quot; highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;sns&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;set&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;rc&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;figure.figsize&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)})&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;sns&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;barplot&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;x&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;duration_bucket&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;y&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;success&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;hue&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;segment&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;data&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;success_rates&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;hue_order&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;low balance&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&amp;#39;medium balance&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&amp;#39;high balance&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;div class=&quot;output_wrapper&quot;&gt;
&lt;div class=&quot;output&quot;&gt;

&lt;div class=&quot;output_area&quot;&gt;



&lt;div class=&quot;output_png output_subarea &quot;&gt;
&lt;img src=&quot;data:image/png;base64,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
UocOHWWxWFS5cmXVrVtfBw8eUFBQDf3441a98cZkZz/VqlWTJK1bt0bbt/+kBQvmOesICQn9W/MI
AMCViPBWDvn6+kqS81Sh3W7/231IksVikd1eVKL2U6dOVmBgkGbMmCdvb28NGzZYBQXnPvP1tdde
Vps27fXii6/Iy8tLvXp1V0HBH7/t8/X9I3SereNS+2LoxRdfVa1a15SoXgAArhYeu9p0z5496tmz
p6Kjo9WzZ0/t3bv3nG0WLVqkuLg4xcfHKy4uTnPmzHGus9vtGjNmjDp16qTOnTsrNTXVU6WXO3Xq
1NXp06e1desPkqS1a1frxIn8v9XXtm1btH//PknS0qUfq3nzFpKkEyfyFRISKm9vb/3yyy5t2fLD
edvn5+fLZrPJy8tL3333jQ4e3H/JMStWrKjGjSP1wQd/XIDx+2nTNm3aa+7c2c6Ql5eXp0OHDv6t
fQMA4ErksSNvSUlJSkhIUHx8vJYsWaLRo0cXC2eSFB0dre7du8vLy0snTpxQXFycoqKi1KhRI33y
ySfat2+fVqxYoby8PHXr1k2tW7fWNddcfUdofH19lZQ0Vq+++pK8vLzUtOnNql49UJUqVS5xX02a
3KTJkyfowIH9zgsWJOnhh/vqhRdGa+nSJapdu46aNm123vb//Ofjeu21FE2f/o4iIm5Qw4bXuTTu
6NEv6PXXU/Tgg/fJYrGqc+do9e79iIYOfUpTprypRx65X15eXvLx8dWQIU8pLKxWifcNAIArkZdh
GIa7B8nJyVF0dLQ2bNggq9Uqu92uVq1aacWKFQoMDDxvmyNHjqhbt26aPn26wsPDNWDAAHXv3l0x
MTGSpOeff15hYWHq169fCeo4IYej+O5mZv6qmjXrOt9Xqeonvz+dciwtZwoKdPzY5d0q5M9OnTqp
ihUrSZI2bdqoceOSlZr6sSwWbt13Of769wEA4Jrg4AAljJjn1jHmj39A3493/Xv/72g+4l1lZ/+9
s1mlxWLxUlDQhQ/IeOTIW0ZGhkJDQ52/4bJarQoJCVFGRsY54e3zzz/X66+/rn379umpp55SeHi4
s4+wsDDndjabTZmZmaVe69mAVXohy11Wr16lhQvnyzAc8vX1U1LSWIIbAABXgXJ3wULHjh3VsWNH
HTp0SIMHD1b79u3VoEGDUun7fCn28GGLvL3NF3q6do1X167xZV3GFcdisSg4OODSGwIArljl/XvA
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
MzDDnPfu3duIiYkxYmNjjaeeesrIzMws3UnwsPI+58ePHzcaN25sTJ061bj33nuN++67z/jss89K
fyJcxGnTUtSjRw9JUoMGDXTDDTfohx9+UHh4+AW3/+qrr9S+fXvVq1dPkuTr61vsX639+vXTXXfd
pb59+zqXrVq1Slu3btXMmTMlSadPn1ZoaKgb9sYczDLn06ZN0+7du6+IU6ZmmPOhQ4dq6NCh+vrr
r/XKK69o/vz5pj4iVJ7nfP/+/frwww81f/78v7Nr5VZ5nnNJGj9+vGw2m+x2u6ZOnaonn3xS77//
fkl3s1wpz3Nut9tVUFAgh8Oh1NRU/frrr0pISND1119fJme0CG9u5u3tLeNPTyA7c+aMy21btWql
tWvXKiEhQRUqVJAkGYahKVOmqHbt2qVe65WivM35e++9p7S0NM2ePdvZ55WmvM3571q3bq0TJ07o
559/VuPGjS+rr/KmvMz5Dz/8oKysLN15552SpOzsbI0aNUrDhw/XvffeW6K+yrvyMueSZLPZJElW
q1UPPfSQ3nrrLTkcDufPNK4U5WXOq1WrpooVK6pr166SpLp16+qGG25Qenp6mYS3K+tTLmO/X+2z
d+9epaenq2nTpqpRo4YKCwv166+/SpLS0tKc27dp00Zr1qzR3r17Jcl5Pv53jz/+uG655Rb17dvX
ufz222/XO++8I7vdLknKzc3V/v37JUmVKlVSfn6+2/ezPCnvc75gwQJ98MEHmjlzpqpVq1Z6O16G
yvOcG4ah3bt3O99v27ZNubm5pv/HTnme87i4OK1fv16rVq3SqlWr1LRpU40bN870wa08z3lRUVGx
H8svXbpU119/vemDW3mec0mKjY3V2rVrJUk5OTnasWOHrrvuulLa+xIqk5O1V6Drr7/eePPNN434
+HjjjjvuMJYvX+5cl5qaanTo0MG45557jEmTJhU7f//5558b3bp1M+Li4oxu3boZO3bscPZ34sQJ
wzAMY/bs2cY999xjHD161MjPzzdGjx5t3HXXXUZsbKxx9913G999951hGIaxatUq44477jC6du1q
rF+//pwap02bZrRr18648cYbjaioKKNdu3bO3weYUXmf8/z8fCM8PNzo0KGD0bVrV6Nr167Gvffe
6+5pcavyPud2u91ISEgw7rrrLqNr167Gfffdd97/FsykvM/5X10pv3krz3N+8uRJ4+677zZiY2ON
2NhYo0+fPsbu3bvdPS1uVd7n3DAMIycnxxg4cKCz7UcffeTOKbkoL8P40/FIAAAAlGvmPsYKAABw
lSG8AQAAmAjhDQAAwEQIbwAAACZCeAMAADARwhsAAICJEN4AlDuJiYl64403PDLWxx9/rD59+rit
/wMHDig8PFxFRUWl2u9HH32k+++/v1T7BGAOhDcAV43zBamuXbtqxowZZViV54WHhzvvWA/AfAhv
AK4Yvz/yBgCuZIQ3AGUuPT1dd999t5o1a6Ynn3zS+fDp850a/PNRo8TERCUlJal///5q2rSpNmzY
oNWrV6tbt266+eabdeutt2rSpEnOtr1795YktWzZUs2aNdPmzZvPGWPTpk2655571Lx5c91zzz3a
tGmTc92DDz6oCRMmqFevXmrWrJn69Omj3Nxcl/Zx0aJFatu2rdq2bavp06c7l//1FPGGDRvUvn17
5/uMjAw9/vjj+sc//qFWrVrp+eefP2//KSkpuv/++53PZvzwww/VpUsXtWzZUn379tXBgwclSQ88
8IAkKT4+Xs2aNdOyZctcqh9A+UF4A1CmCgoKNHjwYMXHx+vbb79VTEyMVqxY4XL7tLQ0DRo0SJs2
bVLz5s1VoUIFpaSkaOPGjZo6daref/99rVy5UpI0d+5cSdJ3332nzZs3q1mzZsX6ysvL08CBA/Xg
gw9qw4YNevTRRzVw4EAdPXq02HgvvfSSvv76axUWFrp8ynXDhg1asWKFpk+frmnTpumrr766ZBu7
3a6BAwcqLCxMq1at0po1a3TnnXcW28bhcOjZZ5/Vzz//rBkzZiggIEArV67U1KlT9dZbb+nrr79W
8+bN9dRTT0mS5s2bJ0lasmSJNm/efE5/AMo/whuAMrVlyxYVFhbq4Ycflo+Pj2JiYtSkSROX23fs
2FHNmzeXxWKRn5+fWrVqpfDwcFksFjVq1Eh33XWXvv32W5f6Wr16terWratu3brJ29tbsbGxatCg
gb744gvnNt27d1f9+vXl7++vmJgYbd++3aW+Bw8erIoVKyo8PFzdu3dXWlraJdts3bpVhw8f1ogR
I1SxYkX5+fmpRYsWzvVFRUUaPny4jh07pv/85z+qUKGCJGnBggUaMGCAGjZsKG9vbw0aNEjbt293
Hn0DYG7eZV0AgKvb4cOHFRoaKi8vL+eysLAwl9vbbLZi77ds2aJXX31VO3fuVGFhoQoKChQTE+Ny
LX8dOywsTFlZWc73wcHBztcVKlTQqVOnSlxnrVq19PPPP1+yTUZGhsLCwuTtff7/Ve/bt087duxQ
amqqfH19ncsPHTqkF198USkpKc5lhmEoKytLtWrVcqleAOUXR94AlKng4GBlZWXJMAznskOHDkk6
G45Onz7tXJ6dnX3J/p566il17NhRX375pb7//nv16tXL2fefA+L5hISEOMf+XUZGhkJDQ13enwvJ
yMhwvj506JBCQkIknbuPR44ccb622WzKyMi44G1GGjRooJdeekn9+/fXL7/8UqzdmDFjtHHjRuef
rVu36uabb77s/QBQ9ghvAMpU06ZN5e3trTlz5qiwsFArVqzQtm3bJEmNGjXSzp07tX37dp05c6bY
xQcXcvLkSVWtWlV+fn7aunVrsdOTgYGBslgs2r9//3nb3nrrrdq7d68++eQTFRUVadmyZdq1a5du
u+22y97PKVOm6LffftPOnTv10UcfOX9rFhERoS+//FJ5eXnKzs7W7NmznW0iIyMVHBys1157TadO
ndKZM2f0/fffF+s3NjZWw4cP16OPPqp9+/ZJknr16qV33nlHO3fulCTl5+fr008/dbapUaPGBecA
QPlHeANQpnx9fTVp0iQtXrxYUVFRWrZsmTp37ixJql+/vgYPHqxHHnlEd9xxh5o3b37J/pKSkvTm
m2+qWbNmmjx5srp06eJcV6FCBQ0aNEj333+/WrRooR9++KFY2+rVq+vtt9/WzJkz1apVK7377rt6
++23FRgYeNn7GRUVpf/Xvh2bMAiEURx/wS2cwFosRVC4zsYJlMNOKys713AOwQXcRHCPpAgJkZQp
ki/8f+VxxZWPezznnJqmkfdeaZpKuq8+oyhSURTy3p8GBEEQaJ5n7fuuPM+VZdkphD1UVaWu61TX
tY7jkHNObdtqGAbFcayyLLVt2/N+3/cax1FJkrA2BQy6XF+7CgAAAPw0ft4AAAAMYW0KAB9alkXT
NL2dh2GodV2/8CIA/4zaFAAAwBBqUwAAAEMIbwAAAIYQ3gAAAAwhvAEAABhCeAMAADDkBjcNvgir
maoIAAAAAElFTkSuQmCC
&quot; /&gt;
&lt;/div&gt;

&lt;/div&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
    

&lt;div class=&quot;cell border-box-sizing text_cell rendered&quot;&gt;&lt;div class=&quot;inner_cell&quot;&gt;
&lt;div class=&quot;text_cell_render border-box-sizing rendered_html&quot;&gt;
&lt;p&gt;Our more nuanced model and analysis provide us with &lt;strong&gt;data-driven insights that provide actionable and testable advice&lt;/strong&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We should probably re-evaluate whether low balance individuals are sensible targets for our marketing campaigns given how resource-intensive they are,&lt;/li&gt;
&lt;li&gt;compute the profit and loss tradeoff between spending bucket 4 and bucket 6 resources on medium balance individuals, and&lt;/li&gt;
&lt;li&gt;ensure that we do not overdo it with our calls for high balance individuals.&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;</content><author><name></name></author><category term="python" /><category term="numpy" /><category term="scikit-learn" /><category term="marketing" /><category term="causal inference" /><category term="uplift" /><summary type="html"></summary></entry><entry><title type="html">Smart maintenance based on vehicle CAN bus data from scratch in Python</title><link href="https://georg.io/2020/01/05/CAN_bus_anomaly_detection_gaussian_mixture_model" rel="alternate" type="text/html" title="Smart maintenance based on vehicle CAN bus data from scratch in Python" /><published>2020-01-05T00:00:00-06:00</published><updated>2020-01-05T00:00:00-06:00</updated><id>https://georg.io/2020/01/05/CAN_bus_anomaly_detection_gaussian_mixture_model</id><content type="html" xml:base="https://georg.io/2020/01/05/CAN_bus_anomaly_detection_gaussian_mixture_model">&lt;!--
#################################################
### THIS FILE WAS AUTOGENERATED! DO NOT EDIT! ###
#################################################
# file to edit: _notebooks/2020-01-05-CAN_bus_anomaly_detection_gaussian_mixture_model.ipynb
--&gt;

&lt;div class=&quot;container&quot; id=&quot;notebook-container&quot;&gt;
        
    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;

&lt;/div&gt;
    

&lt;div class=&quot;cell border-box-sizing text_cell rendered&quot;&gt;&lt;div class=&quot;inner_cell&quot;&gt;
&lt;div class=&quot;text_cell_render border-box-sizing rendered_html&quot;&gt;
&lt;h1 id=&quot;Summary&quot;&gt;Summary&lt;a class=&quot;anchor-link&quot; href=&quot;#Summary&quot;&gt; &lt;/a&gt;&lt;/h1&gt;&lt;p&gt;Equipment that behaves anomalously or breaks down unexpectedly is a major cost driver in &lt;strong&gt;manufacturing&lt;/strong&gt;, &lt;strong&gt;logistics&lt;/strong&gt;, &lt;strong&gt;public transport&lt;/strong&gt;, and any other sector that relies on complex machinery.&lt;/p&gt;
&lt;p&gt;A big promise of data analytics and machine learning in this space is to detect anomalies in machinery automatically and to alert their user of occurring faults.
As an extension, the prediction of machinery faults and breakdowns is an important field of application.&lt;/p&gt;
&lt;p&gt;Automated detection and prediction of machinery breakdown is a key algorithmic approach behind &lt;strong&gt;smart and predictive maintenance&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;In this article we showcase a simple algorithmic approach for anomaly detection in the space of automated engine health detection.&lt;/p&gt;
&lt;p&gt;Our approach here can be an interesting starting point for the development of &lt;strong&gt;smart telematics solutions&lt;/strong&gt; for automated and predictive vehicle breakdown detection.&lt;/p&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;cell border-box-sizing text_cell rendered&quot;&gt;&lt;div class=&quot;inner_cell&quot;&gt;
&lt;div class=&quot;text_cell_render border-box-sizing rendered_html&quot;&gt;
&lt;h1 id=&quot;Fetch-the-data&quot;&gt;Fetch the data&lt;a class=&quot;anchor-link&quot; href=&quot;#Fetch-the-data&quot;&gt; &lt;/a&gt;&lt;/h1&gt;&lt;p&gt;We'll make use of an open data set of vehicle CAN bus data, called
&lt;a href=&quot;https://zenodo.org/record/3267184#.XmCx8hNKh24&quot;&gt;Automotive CAN bus data: An Example Dataset from the AEGIS Big Data Project&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;A CAN bus is a local network of sensors and actuators in modern vehicles that provides a stream of data for all important signals of a vehicle - such as its present velocity, interior temperature, and potentially hundreds of other signals.&lt;/p&gt;
&lt;p&gt;This data set encompasses time series data (traces) of various vehicles driven by different drivers.&lt;/p&gt;
&lt;p&gt;Let's go ahead and download a data set for driver 1 and a data set for driver 2:&lt;/p&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;
&lt;div class=&quot;input&quot;&gt;

&lt;div class=&quot;inner_cell&quot;&gt;
    &lt;div class=&quot;input_area&quot;&gt;
&lt;div class=&quot; highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;!&lt;/span&gt;wget --quiet https://zenodo.org/record/3267184/files/20181113_Driver1_Trip1.hdf
&lt;/pre&gt;&lt;/div&gt;

    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
    

    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;
&lt;div class=&quot;input&quot;&gt;

&lt;div class=&quot;inner_cell&quot;&gt;
    &lt;div class=&quot;input_area&quot;&gt;
&lt;div class=&quot; highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;!&lt;/span&gt;wget --quiet https://zenodo.org/record/3267184/files/20181114_Driver2_Trip3.hdf
&lt;/pre&gt;&lt;/div&gt;

    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
    

&lt;div class=&quot;cell border-box-sizing text_cell rendered&quot;&gt;&lt;div class=&quot;inner_cell&quot;&gt;
&lt;div class=&quot;text_cell_render border-box-sizing rendered_html&quot;&gt;
&lt;h1 id=&quot;Load-libraries&quot;&gt;Load libraries&lt;a class=&quot;anchor-link&quot; href=&quot;#Load-libraries&quot;&gt; &lt;/a&gt;&lt;/h1&gt;&lt;p&gt;Here we import all necessary Python libraries for our analysis and algorithm:&lt;/p&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;
&lt;div class=&quot;input&quot;&gt;

&lt;div class=&quot;inner_cell&quot;&gt;
    &lt;div class=&quot;input_area&quot;&gt;
&lt;div class=&quot; highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;kn&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;h5py&lt;/span&gt;
&lt;span class=&quot;kn&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;matplotlib&lt;/span&gt; &lt;span class=&quot;kn&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;pyplot&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;as&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;plt&lt;/span&gt;
&lt;span class=&quot;kn&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;numpy&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;as&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;np&lt;/span&gt;
&lt;span class=&quot;kn&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;pandas&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;as&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;pd&lt;/span&gt;
&lt;span class=&quot;kn&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;seaborn&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;as&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;sns&lt;/span&gt;

&lt;span class=&quot;kn&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;sklearn.mixture&lt;/span&gt; &lt;span class=&quot;kn&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;GaussianMixture&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
    

    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;
&lt;div class=&quot;input&quot;&gt;

&lt;div class=&quot;inner_cell&quot;&gt;
    &lt;div class=&quot;input_area&quot;&gt;
&lt;div class=&quot; highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;plt&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;rcParams&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;figure.figsize&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;sns&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;set&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;style&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&amp;quot;darkgrid&amp;quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
    

&lt;div class=&quot;cell border-box-sizing text_cell rendered&quot;&gt;&lt;div class=&quot;inner_cell&quot;&gt;
&lt;div class=&quot;text_cell_render border-box-sizing rendered_html&quot;&gt;
&lt;h1 id=&quot;Load-vehicle-data&quot;&gt;Load vehicle data&lt;a class=&quot;anchor-link&quot; href=&quot;#Load-vehicle-data&quot;&gt; &lt;/a&gt;&lt;/h1&gt;&lt;p&gt;Let's load the data for driver 1 and driver 2 into memory:&lt;/p&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;
&lt;div class=&quot;input&quot;&gt;

&lt;div class=&quot;inner_cell&quot;&gt;
    &lt;div class=&quot;input_area&quot;&gt;
&lt;div class=&quot; highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;driver_1&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;h5py&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;File&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;20181113_Driver1_Trip1.hdf&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&amp;#39;r&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;driver_2&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;h5py&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;File&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;20181114_Driver2_Trip3.hdf&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&amp;#39;r&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
    

&lt;div class=&quot;cell border-box-sizing text_cell rendered&quot;&gt;&lt;div class=&quot;inner_cell&quot;&gt;
&lt;div class=&quot;text_cell_render border-box-sizing rendered_html&quot;&gt;
&lt;p&gt;Both files contain multiple subgroups of data, one of which is the aformentioned CAN bus:&lt;/p&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;
&lt;div class=&quot;input&quot;&gt;

&lt;div class=&quot;inner_cell&quot;&gt;
    &lt;div class=&quot;input_area&quot;&gt;
&lt;div class=&quot; highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;list&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;driver_1&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;keys&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;())&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;div class=&quot;output_wrapper&quot;&gt;
&lt;div class=&quot;output&quot;&gt;

&lt;div class=&quot;output_area&quot;&gt;



&lt;div class=&quot;output_text output_subarea output_execute_result&quot;&gt;
&lt;pre&gt;[&amp;#39;AI&amp;#39;, &amp;#39;CAN&amp;#39;, &amp;#39;GPS&amp;#39;, &amp;#39;Math&amp;#39;, &amp;#39;Plugins&amp;#39;]&lt;/pre&gt;
&lt;/div&gt;

&lt;/div&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
    

    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;
&lt;div class=&quot;input&quot;&gt;

&lt;div class=&quot;inner_cell&quot;&gt;
    &lt;div class=&quot;input_area&quot;&gt;
&lt;div class=&quot; highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;list&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;driver_2&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;keys&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;())&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;div class=&quot;output_wrapper&quot;&gt;
&lt;div class=&quot;output&quot;&gt;

&lt;div class=&quot;output_area&quot;&gt;



&lt;div class=&quot;output_text output_subarea output_execute_result&quot;&gt;
&lt;pre&gt;[&amp;#39;AI&amp;#39;, &amp;#39;CAN&amp;#39;, &amp;#39;GPS&amp;#39;, &amp;#39;Math&amp;#39;, &amp;#39;Plugins&amp;#39;]&lt;/pre&gt;
&lt;/div&gt;

&lt;/div&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
    

&lt;div class=&quot;cell border-box-sizing text_cell rendered&quot;&gt;&lt;div class=&quot;inner_cell&quot;&gt;
&lt;div class=&quot;text_cell_render border-box-sizing rendered_html&quot;&gt;
&lt;h1 id=&quot;Turn-time-series-data-into-tables&quot;&gt;Turn time series data into tables&lt;a class=&quot;anchor-link&quot; href=&quot;#Turn-time-series-data-into-tables&quot;&gt; &lt;/a&gt;&lt;/h1&gt;&lt;p&gt;The CAN bus data comes in serialized form - written out in series in a nested format.&lt;/p&gt;
&lt;p&gt;To handle the CAN bus data more efficiently we'll turn it into tables that are easier to inspect and handle.&lt;/p&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;
&lt;div class=&quot;input&quot;&gt;

&lt;div class=&quot;inner_cell&quot;&gt;
    &lt;div class=&quot;input_area&quot;&gt;
&lt;div class=&quot; highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;data_driver_1&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{}&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;data_driver_2&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{}&lt;/span&gt;

&lt;span class=&quot;k&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;channel_name&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;channel_data&lt;/span&gt; &lt;span class=&quot;ow&quot;&gt;in&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;driver_1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;CAN&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;items&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;():&lt;/span&gt;
  &lt;span class=&quot;n&quot;&gt;data_driver_1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;channel_name&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;channel_data&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[:,&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;

&lt;span class=&quot;n&quot;&gt;table_driver_1&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;pd&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;DataFrame&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;data&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;data_driver_1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;index&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;channel_data&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[:,&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;table_driver_1&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;table_driver_1&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;loc&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[:,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;table_driver_1&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;nunique&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;

&lt;span class=&quot;k&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;channel_name&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;channel_data&lt;/span&gt; &lt;span class=&quot;ow&quot;&gt;in&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;driver_2&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;CAN&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;items&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;():&lt;/span&gt;
  &lt;span class=&quot;n&quot;&gt;data_driver_2&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;channel_name&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;channel_data&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[:,&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;

&lt;span class=&quot;n&quot;&gt;table_driver_2&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;pd&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;DataFrame&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;data&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;data_driver_2&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;index&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;channel_data&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[:,&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;table_driver_2&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;table_driver_2&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;loc&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[:,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;table_driver_2&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;nunique&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
    

&lt;div class=&quot;cell border-box-sizing text_cell rendered&quot;&gt;&lt;div class=&quot;inner_cell&quot;&gt;
&lt;div class=&quot;text_cell_render border-box-sizing rendered_html&quot;&gt;
&lt;p&gt;The tabular data for driver 1 looks as follows - it holds 158,659 measured time points in 28 channels that we deem relevant:&lt;/p&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;
&lt;div class=&quot;input&quot;&gt;

&lt;div class=&quot;inner_cell&quot;&gt;
    &lt;div class=&quot;input_area&quot;&gt;
&lt;div class=&quot; highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;table_driver_1&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;div class=&quot;output_wrapper&quot;&gt;
&lt;div class=&quot;output&quot;&gt;

&lt;div class=&quot;output_area&quot;&gt;


&lt;div class=&quot;output_html rendered_html output_subarea output_execute_result&quot;&gt;
&lt;div&gt;
&lt;style scoped=&quot;&quot;&gt;
    .dataframe tbody tr th:only-of-type {
        vertical-align: middle;
    }

    .dataframe tbody tr th {
        vertical-align: top;
    }

    .dataframe thead th {
        text-align: right;
    }
&lt;/style&gt;
&lt;table border=&quot;1&quot; class=&quot;dataframe&quot;&gt;
  &lt;thead&gt;
    &lt;tr style=&quot;text-align: right;&quot;&gt;
      &lt;th&gt;&lt;/th&gt;
      &lt;th&gt;AccPedal&lt;/th&gt;
      &lt;th&gt;AirIntakeTemperature&lt;/th&gt;
      &lt;th&gt;AmbientTemperature&lt;/th&gt;
      &lt;th&gt;BoostPressure&lt;/th&gt;
      &lt;th&gt;BrkVoltage&lt;/th&gt;
      &lt;th&gt;ENG_Trq_DMD&lt;/th&gt;
      &lt;th&gt;ENG_Trq_ZWR&lt;/th&gt;
      &lt;th&gt;ENG_Trq_m_ex&lt;/th&gt;
      &lt;th&gt;EngineSpeed_CAN&lt;/th&gt;
      &lt;th&gt;EngineTemperature&lt;/th&gt;
      &lt;th&gt;Engine_02_BZ&lt;/th&gt;
      &lt;th&gt;Engine_02_CHK&lt;/th&gt;
      &lt;th&gt;OilTemperature1&lt;/th&gt;
      &lt;th&gt;SCS_01_BZ&lt;/th&gt;
      &lt;th&gt;SCS_01_CHK&lt;/th&gt;
      &lt;th&gt;SCS_Cancel&lt;/th&gt;
      &lt;th&gt;SCS_Tip_Down&lt;/th&gt;
      &lt;th&gt;SCS_Tip_Set&lt;/th&gt;
      &lt;th&gt;SCS_Tip_Up&lt;/th&gt;
      &lt;th&gt;SteerAngle1&lt;/th&gt;
      &lt;th&gt;Trq_FrictionLoss&lt;/th&gt;
      &lt;th&gt;Trq_Indicated&lt;/th&gt;
      &lt;th&gt;VehicleSpeed&lt;/th&gt;
      &lt;th&gt;WheelSpeed_FL&lt;/th&gt;
      &lt;th&gt;WheelSpeed_FR&lt;/th&gt;
      &lt;th&gt;WheelSpeed_RL&lt;/th&gt;
      &lt;th&gt;WheelSpeed_RR&lt;/th&gt;
      &lt;th&gt;Yawrate1&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;th&gt;0.000000&lt;/th&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;31.5&lt;/td&gt;
      &lt;td&gt;8.0&lt;/td&gt;
      &lt;td&gt;0.97&lt;/td&gt;
      &lt;td&gt;1.0&lt;/td&gt;
      &lt;td&gt;18.0&lt;/td&gt;
      &lt;td&gt;20.0&lt;/td&gt;
      &lt;td&gt;27.000000&lt;/td&gt;
      &lt;td&gt;809.500000&lt;/td&gt;
      &lt;td&gt;93.0&lt;/td&gt;
      &lt;td&gt;6.000000&lt;/td&gt;
      &lt;td&gt;168.000000&lt;/td&gt;
      &lt;td&gt;82.0&lt;/td&gt;
      &lt;td&gt;9.000000&lt;/td&gt;
      &lt;td&gt;27.000000&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;125.599998&lt;/td&gt;
      &lt;td&gt;29.0&lt;/td&gt;
      &lt;td&gt;27.000000&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.190000&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;0.050000&lt;/th&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;31.5&lt;/td&gt;
      &lt;td&gt;8.0&lt;/td&gt;
      &lt;td&gt;0.97&lt;/td&gt;
      &lt;td&gt;1.0&lt;/td&gt;
      &lt;td&gt;18.0&lt;/td&gt;
      &lt;td&gt;20.0&lt;/td&gt;
      &lt;td&gt;27.000000&lt;/td&gt;
      &lt;td&gt;809.500000&lt;/td&gt;
      &lt;td&gt;93.0&lt;/td&gt;
      &lt;td&gt;6.000000&lt;/td&gt;
      &lt;td&gt;168.000000&lt;/td&gt;
      &lt;td&gt;82.0&lt;/td&gt;
      &lt;td&gt;9.000000&lt;/td&gt;
      &lt;td&gt;27.000000&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;125.599998&lt;/td&gt;
      &lt;td&gt;29.0&lt;/td&gt;
      &lt;td&gt;27.000000&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.190000&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;0.100000&lt;/th&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;31.5&lt;/td&gt;
      &lt;td&gt;8.0&lt;/td&gt;
      &lt;td&gt;0.97&lt;/td&gt;
      &lt;td&gt;1.0&lt;/td&gt;
      &lt;td&gt;18.0&lt;/td&gt;
      &lt;td&gt;20.0&lt;/td&gt;
      &lt;td&gt;27.000000&lt;/td&gt;
      &lt;td&gt;810.215759&lt;/td&gt;
      &lt;td&gt;93.0&lt;/td&gt;
      &lt;td&gt;10.331579&lt;/td&gt;
      &lt;td&gt;163.663162&lt;/td&gt;
      &lt;td&gt;82.0&lt;/td&gt;
      &lt;td&gt;9.333000&lt;/td&gt;
      &lt;td&gt;26.000999&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;125.599998&lt;/td&gt;
      &lt;td&gt;29.0&lt;/td&gt;
      &lt;td&gt;27.000000&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.209900&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;0.150000&lt;/th&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;31.5&lt;/td&gt;
      &lt;td&gt;8.0&lt;/td&gt;
      &lt;td&gt;0.97&lt;/td&gt;
      &lt;td&gt;1.0&lt;/td&gt;
      &lt;td&gt;18.0&lt;/td&gt;
      &lt;td&gt;20.0&lt;/td&gt;
      &lt;td&gt;27.384237&lt;/td&gt;
      &lt;td&gt;807.657654&lt;/td&gt;
      &lt;td&gt;93.0&lt;/td&gt;
      &lt;td&gt;9.605911&lt;/td&gt;
      &lt;td&gt;165.674881&lt;/td&gt;
      &lt;td&gt;82.0&lt;/td&gt;
      &lt;td&gt;9.833000&lt;/td&gt;
      &lt;td&gt;24.500999&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;125.599998&lt;/td&gt;
      &lt;td&gt;29.0&lt;/td&gt;
      &lt;td&gt;27.384237&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.204887&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;0.200000&lt;/th&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;31.5&lt;/td&gt;
      &lt;td&gt;8.0&lt;/td&gt;
      &lt;td&gt;0.97&lt;/td&gt;
      &lt;td&gt;1.0&lt;/td&gt;
      &lt;td&gt;18.0&lt;/td&gt;
      &lt;td&gt;20.0&lt;/td&gt;
      &lt;td&gt;27.000000&lt;/td&gt;
      &lt;td&gt;805.500000&lt;/td&gt;
      &lt;td&gt;93.0&lt;/td&gt;
      &lt;td&gt;4.358586&lt;/td&gt;
      &lt;td&gt;172.641418&lt;/td&gt;
      &lt;td&gt;82.0&lt;/td&gt;
      &lt;td&gt;10.333000&lt;/td&gt;
      &lt;td&gt;24.333000&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;125.599998&lt;/td&gt;
      &lt;td&gt;28.0&lt;/td&gt;
      &lt;td&gt;27.000000&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.200000&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;...&lt;/th&gt;
      &lt;td&gt;...&lt;/td&gt;
      &lt;td&gt;...&lt;/td&gt;
      &lt;td&gt;...&lt;/td&gt;
      &lt;td&gt;...&lt;/td&gt;
      &lt;td&gt;...&lt;/td&gt;
      &lt;td&gt;...&lt;/td&gt;
      &lt;td&gt;...&lt;/td&gt;
      &lt;td&gt;...&lt;/td&gt;
      &lt;td&gt;...&lt;/td&gt;
      &lt;td&gt;...&lt;/td&gt;
      &lt;td&gt;...&lt;/td&gt;
      &lt;td&gt;...&lt;/td&gt;
      &lt;td&gt;...&lt;/td&gt;
      &lt;td&gt;...&lt;/td&gt;
      &lt;td&gt;...&lt;/td&gt;
      &lt;td&gt;...&lt;/td&gt;
      &lt;td&gt;...&lt;/td&gt;
      &lt;td&gt;...&lt;/td&gt;
      &lt;td&gt;...&lt;/td&gt;
      &lt;td&gt;...&lt;/td&gt;
      &lt;td&gt;...&lt;/td&gt;
      &lt;td&gt;...&lt;/td&gt;
      &lt;td&gt;...&lt;/td&gt;
      &lt;td&gt;...&lt;/td&gt;
      &lt;td&gt;...&lt;/td&gt;
      &lt;td&gt;...&lt;/td&gt;
      &lt;td&gt;...&lt;/td&gt;
      &lt;td&gt;...&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;7932.700195&lt;/th&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;25.5&lt;/td&gt;
      &lt;td&gt;9.5&lt;/td&gt;
      &lt;td&gt;0.98&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;20.0&lt;/td&gt;
      &lt;td&gt;19.0&lt;/td&gt;
      &lt;td&gt;29.000000&lt;/td&gt;
      &lt;td&gt;797.500000&lt;/td&gt;
      &lt;td&gt;96.0&lt;/td&gt;
      &lt;td&gt;8.174129&lt;/td&gt;
      &lt;td&gt;84.825874&lt;/td&gt;
      &lt;td&gt;96.0&lt;/td&gt;
      &lt;td&gt;10.493239&lt;/td&gt;
      &lt;td&gt;24.493240&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;14.100000&lt;/td&gt;
      &lt;td&gt;29.0&lt;/td&gt;
      &lt;td&gt;29.000000&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.130000&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;7932.750000&lt;/th&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;25.5&lt;/td&gt;
      &lt;td&gt;9.5&lt;/td&gt;
      &lt;td&gt;0.98&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;19.0&lt;/td&gt;
      &lt;td&gt;19.0&lt;/td&gt;
      &lt;td&gt;29.000000&lt;/td&gt;
      &lt;td&gt;800.500000&lt;/td&gt;
      &lt;td&gt;96.0&lt;/td&gt;
      &lt;td&gt;13.164251&lt;/td&gt;
      &lt;td&gt;145.835754&lt;/td&gt;
      &lt;td&gt;96.0&lt;/td&gt;
      &lt;td&gt;10.993991&lt;/td&gt;
      &lt;td&gt;24.993992&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;14.100000&lt;/td&gt;
      &lt;td&gt;29.0&lt;/td&gt;
      &lt;td&gt;29.000000&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.123609&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;7932.799805&lt;/th&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;25.5&lt;/td&gt;
      &lt;td&gt;9.5&lt;/td&gt;
      &lt;td&gt;0.98&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;19.0&lt;/td&gt;
      &lt;td&gt;19.0&lt;/td&gt;
      &lt;td&gt;29.000000&lt;/td&gt;
      &lt;td&gt;797.790588&lt;/td&gt;
      &lt;td&gt;96.0&lt;/td&gt;
      &lt;td&gt;2.177665&lt;/td&gt;
      &lt;td&gt;156.822342&lt;/td&gt;
      &lt;td&gt;96.0&lt;/td&gt;
      &lt;td&gt;11.494000&lt;/td&gt;
      &lt;td&gt;27.469999&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;14.100000&lt;/td&gt;
      &lt;td&gt;28.0&lt;/td&gt;
      &lt;td&gt;29.000000&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.178596&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;7932.850098&lt;/th&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;25.5&lt;/td&gt;
      &lt;td&gt;9.5&lt;/td&gt;
      &lt;td&gt;0.98&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;19.0&lt;/td&gt;
      &lt;td&gt;19.0&lt;/td&gt;
      &lt;td&gt;29.000000&lt;/td&gt;
      &lt;td&gt;796.000000&lt;/td&gt;
      &lt;td&gt;96.0&lt;/td&gt;
      &lt;td&gt;7.180095&lt;/td&gt;
      &lt;td&gt;153.739334&lt;/td&gt;
      &lt;td&gt;96.0&lt;/td&gt;
      &lt;td&gt;11.994000&lt;/td&gt;
      &lt;td&gt;29.969999&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;14.100000&lt;/td&gt;
      &lt;td&gt;28.0&lt;/td&gt;
      &lt;td&gt;29.000000&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.157268&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;7932.899902&lt;/th&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;25.5&lt;/td&gt;
      &lt;td&gt;9.5&lt;/td&gt;
      &lt;td&gt;0.98&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;19.0&lt;/td&gt;
      &lt;td&gt;19.0&lt;/td&gt;
      &lt;td&gt;29.000000&lt;/td&gt;
      &lt;td&gt;794.500000&lt;/td&gt;
      &lt;td&gt;96.0&lt;/td&gt;
      &lt;td&gt;12.155440&lt;/td&gt;
      &lt;td&gt;146.844559&lt;/td&gt;
      &lt;td&gt;96.0&lt;/td&gt;
      &lt;td&gt;12.494247&lt;/td&gt;
      &lt;td&gt;30.494247&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;14.100000&lt;/td&gt;
      &lt;td&gt;28.0&lt;/td&gt;
      &lt;td&gt;29.000000&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.140000&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;158659 rows × 28 columns&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
    

&lt;div class=&quot;cell border-box-sizing text_cell rendered&quot;&gt;&lt;div class=&quot;inner_cell&quot;&gt;
&lt;div class=&quot;text_cell_render border-box-sizing rendered_html&quot;&gt;
&lt;p&gt;The tabular data for driver 2 looks as follows - it holds 136,154 measured time points in 29 channels that we deem relevant:&lt;/p&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;
&lt;div class=&quot;input&quot;&gt;

&lt;div class=&quot;inner_cell&quot;&gt;
    &lt;div class=&quot;input_area&quot;&gt;
&lt;div class=&quot; highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;table_driver_2&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;div class=&quot;output_wrapper&quot;&gt;
&lt;div class=&quot;output&quot;&gt;

&lt;div class=&quot;output_area&quot;&gt;


&lt;div class=&quot;output_html rendered_html output_subarea output_execute_result&quot;&gt;
&lt;div&gt;
&lt;style scoped=&quot;&quot;&gt;
    .dataframe tbody tr th:only-of-type {
        vertical-align: middle;
    }

    .dataframe tbody tr th {
        vertical-align: top;
    }

    .dataframe thead th {
        text-align: right;
    }
&lt;/style&gt;
&lt;table border=&quot;1&quot; class=&quot;dataframe&quot;&gt;
  &lt;thead&gt;
    &lt;tr style=&quot;text-align: right;&quot;&gt;
      &lt;th&gt;&lt;/th&gt;
      &lt;th&gt;AccPedal&lt;/th&gt;
      &lt;th&gt;AirIntakeTemperature&lt;/th&gt;
      &lt;th&gt;AmbientTemperature&lt;/th&gt;
      &lt;th&gt;BoostPressure&lt;/th&gt;
      &lt;th&gt;BrkVoltage&lt;/th&gt;
      &lt;th&gt;ENG_Trq_DMD&lt;/th&gt;
      &lt;th&gt;ENG_Trq_ZWR&lt;/th&gt;
      &lt;th&gt;ENG_Trq_m_ex&lt;/th&gt;
      &lt;th&gt;EngineSpeed_CAN&lt;/th&gt;
      &lt;th&gt;EngineTemperature&lt;/th&gt;
      &lt;th&gt;Engine_02_BZ&lt;/th&gt;
      &lt;th&gt;Engine_02_CHK&lt;/th&gt;
      &lt;th&gt;OilTemperature1&lt;/th&gt;
      &lt;th&gt;SCS_01_BZ&lt;/th&gt;
      &lt;th&gt;SCS_01_CHK&lt;/th&gt;
      &lt;th&gt;SCS_Cancel&lt;/th&gt;
      &lt;th&gt;SCS_Tip_Down&lt;/th&gt;
      &lt;th&gt;SCS_Tip_Restart&lt;/th&gt;
      &lt;th&gt;SCS_Tip_Set&lt;/th&gt;
      &lt;th&gt;SCS_Tip_Up&lt;/th&gt;
      &lt;th&gt;SteerAngle1&lt;/th&gt;
      &lt;th&gt;Trq_FrictionLoss&lt;/th&gt;
      &lt;th&gt;Trq_Indicated&lt;/th&gt;
      &lt;th&gt;VehicleSpeed&lt;/th&gt;
      &lt;th&gt;WheelSpeed_FL&lt;/th&gt;
      &lt;th&gt;WheelSpeed_FR&lt;/th&gt;
      &lt;th&gt;WheelSpeed_RL&lt;/th&gt;
      &lt;th&gt;WheelSpeed_RR&lt;/th&gt;
      &lt;th&gt;Yawrate1&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;th&gt;0.000000&lt;/th&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;44.25&lt;/td&gt;
      &lt;td&gt;14.5&lt;/td&gt;
      &lt;td&gt;1.00&lt;/td&gt;
      &lt;td&gt;1.0&lt;/td&gt;
      &lt;td&gt;20.000000&lt;/td&gt;
      &lt;td&gt;21.0&lt;/td&gt;
      &lt;td&gt;30.000000&lt;/td&gt;
      &lt;td&gt;791.000000&lt;/td&gt;
      &lt;td&gt;96.0&lt;/td&gt;
      &lt;td&gt;6.000000&lt;/td&gt;
      &lt;td&gt;59.000000&lt;/td&gt;
      &lt;td&gt;94.0&lt;/td&gt;
      &lt;td&gt;10.000000&lt;/td&gt;
      &lt;td&gt;24.000000&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;4.800000&lt;/td&gt;
      &lt;td&gt;31.0&lt;/td&gt;
      &lt;td&gt;30.000000&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.140000&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;0.050000&lt;/th&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;44.25&lt;/td&gt;
      &lt;td&gt;14.5&lt;/td&gt;
      &lt;td&gt;1.00&lt;/td&gt;
      &lt;td&gt;1.0&lt;/td&gt;
      &lt;td&gt;21.000000&lt;/td&gt;
      &lt;td&gt;20.0&lt;/td&gt;
      &lt;td&gt;30.000000&lt;/td&gt;
      &lt;td&gt;791.000000&lt;/td&gt;
      &lt;td&gt;96.0&lt;/td&gt;
      &lt;td&gt;10.688680&lt;/td&gt;
      &lt;td&gt;102.688683&lt;/td&gt;
      &lt;td&gt;94.0&lt;/td&gt;
      &lt;td&gt;10.000000&lt;/td&gt;
      &lt;td&gt;24.000000&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;4.800000&lt;/td&gt;
      &lt;td&gt;31.0&lt;/td&gt;
      &lt;td&gt;30.000000&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.120000&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;0.100000&lt;/th&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;44.25&lt;/td&gt;
      &lt;td&gt;14.5&lt;/td&gt;
      &lt;td&gt;1.00&lt;/td&gt;
      &lt;td&gt;1.0&lt;/td&gt;
      &lt;td&gt;21.000000&lt;/td&gt;
      &lt;td&gt;20.0&lt;/td&gt;
      &lt;td&gt;30.000000&lt;/td&gt;
      &lt;td&gt;791.165039&lt;/td&gt;
      &lt;td&gt;96.0&lt;/td&gt;
      &lt;td&gt;4.381188&lt;/td&gt;
      &lt;td&gt;105.079208&lt;/td&gt;
      &lt;td&gt;94.0&lt;/td&gt;
      &lt;td&gt;10.110166&lt;/td&gt;
      &lt;td&gt;24.110165&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;4.800000&lt;/td&gt;
      &lt;td&gt;31.0&lt;/td&gt;
      &lt;td&gt;30.000000&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.148120&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;0.150000&lt;/th&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;44.25&lt;/td&gt;
      &lt;td&gt;14.5&lt;/td&gt;
      &lt;td&gt;1.00&lt;/td&gt;
      &lt;td&gt;1.0&lt;/td&gt;
      &lt;td&gt;21.000000&lt;/td&gt;
      &lt;td&gt;20.0&lt;/td&gt;
      &lt;td&gt;30.751268&lt;/td&gt;
      &lt;td&gt;787.500000&lt;/td&gt;
      &lt;td&gt;96.0&lt;/td&gt;
      &lt;td&gt;4.725888&lt;/td&gt;
      &lt;td&gt;104.725891&lt;/td&gt;
      &lt;td&gt;94.0&lt;/td&gt;
      &lt;td&gt;10.610916&lt;/td&gt;
      &lt;td&gt;24.610916&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;4.800000&lt;/td&gt;
      &lt;td&gt;31.0&lt;/td&gt;
      &lt;td&gt;30.751268&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.126384&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;0.200000&lt;/th&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;44.25&lt;/td&gt;
      &lt;td&gt;14.5&lt;/td&gt;
      &lt;td&gt;1.00&lt;/td&gt;
      &lt;td&gt;1.0&lt;/td&gt;
      &lt;td&gt;21.000000&lt;/td&gt;
      &lt;td&gt;20.0&lt;/td&gt;
      &lt;td&gt;31.000000&lt;/td&gt;
      &lt;td&gt;791.000000&lt;/td&gt;
      &lt;td&gt;96.0&lt;/td&gt;
      &lt;td&gt;9.733668&lt;/td&gt;
      &lt;td&gt;101.733665&lt;/td&gt;
      &lt;td&gt;94.0&lt;/td&gt;
      &lt;td&gt;11.111500&lt;/td&gt;
      &lt;td&gt;25.557501&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;4.800000&lt;/td&gt;
      &lt;td&gt;31.0&lt;/td&gt;
      &lt;td&gt;31.000000&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.135592&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;...&lt;/th&gt;
      &lt;td&gt;...&lt;/td&gt;
      &lt;td&gt;...&lt;/td&gt;
      &lt;td&gt;...&lt;/td&gt;
      &lt;td&gt;...&lt;/td&gt;
      &lt;td&gt;...&lt;/td&gt;
      &lt;td&gt;...&lt;/td&gt;
      &lt;td&gt;...&lt;/td&gt;
      &lt;td&gt;...&lt;/td&gt;
      &lt;td&gt;...&lt;/td&gt;
      &lt;td&gt;...&lt;/td&gt;
      &lt;td&gt;...&lt;/td&gt;
      &lt;td&gt;...&lt;/td&gt;
      &lt;td&gt;...&lt;/td&gt;
      &lt;td&gt;...&lt;/td&gt;
      &lt;td&gt;...&lt;/td&gt;
      &lt;td&gt;...&lt;/td&gt;
      &lt;td&gt;...&lt;/td&gt;
      &lt;td&gt;...&lt;/td&gt;
      &lt;td&gt;...&lt;/td&gt;
      &lt;td&gt;...&lt;/td&gt;
      &lt;td&gt;...&lt;/td&gt;
      &lt;td&gt;...&lt;/td&gt;
      &lt;td&gt;...&lt;/td&gt;
      &lt;td&gt;...&lt;/td&gt;
      &lt;td&gt;...&lt;/td&gt;
      &lt;td&gt;...&lt;/td&gt;
      &lt;td&gt;...&lt;/td&gt;
      &lt;td&gt;...&lt;/td&gt;
      &lt;td&gt;...&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;6807.450195&lt;/th&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;25.50&lt;/td&gt;
      &lt;td&gt;10.5&lt;/td&gt;
      &lt;td&gt;0.98&lt;/td&gt;
      &lt;td&gt;1.0&lt;/td&gt;
      &lt;td&gt;21.000000&lt;/td&gt;
      &lt;td&gt;21.0&lt;/td&gt;
      &lt;td&gt;31.000000&lt;/td&gt;
      &lt;td&gt;815.500000&lt;/td&gt;
      &lt;td&gt;94.5&lt;/td&gt;
      &lt;td&gt;10.693069&lt;/td&gt;
      &lt;td&gt;118.693069&lt;/td&gt;
      &lt;td&gt;95.0&lt;/td&gt;
      &lt;td&gt;5.992500&lt;/td&gt;
      &lt;td&gt;22.394501&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;37.400002&lt;/td&gt;
      &lt;td&gt;30.0&lt;/td&gt;
      &lt;td&gt;31.000000&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.130326&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;6807.500000&lt;/th&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;25.50&lt;/td&gt;
      &lt;td&gt;10.5&lt;/td&gt;
      &lt;td&gt;0.98&lt;/td&gt;
      &lt;td&gt;1.0&lt;/td&gt;
      &lt;td&gt;21.000000&lt;/td&gt;
      &lt;td&gt;21.0&lt;/td&gt;
      &lt;td&gt;30.682692&lt;/td&gt;
      &lt;td&gt;813.500000&lt;/td&gt;
      &lt;td&gt;94.5&lt;/td&gt;
      &lt;td&gt;5.192307&lt;/td&gt;
      &lt;td&gt;120.884613&lt;/td&gt;
      &lt;td&gt;95.0&lt;/td&gt;
      &lt;td&gt;0.100500&lt;/td&gt;
      &lt;td&gt;18.100500&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;37.400002&lt;/td&gt;
      &lt;td&gt;30.0&lt;/td&gt;
      &lt;td&gt;30.682692&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.150000&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;6807.549805&lt;/th&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;25.50&lt;/td&gt;
      &lt;td&gt;10.5&lt;/td&gt;
      &lt;td&gt;0.98&lt;/td&gt;
      &lt;td&gt;1.0&lt;/td&gt;
      &lt;td&gt;21.000000&lt;/td&gt;
      &lt;td&gt;21.0&lt;/td&gt;
      &lt;td&gt;31.000000&lt;/td&gt;
      &lt;td&gt;816.000000&lt;/td&gt;
      &lt;td&gt;94.5&lt;/td&gt;
      &lt;td&gt;4.676768&lt;/td&gt;
      &lt;td&gt;120.676765&lt;/td&gt;
      &lt;td&gt;95.0&lt;/td&gt;
      &lt;td&gt;0.600500&lt;/td&gt;
      &lt;td&gt;18.600500&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;37.476120&lt;/td&gt;
      &lt;td&gt;30.0&lt;/td&gt;
      &lt;td&gt;31.000000&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.140351&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;6807.600098&lt;/th&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;25.50&lt;/td&gt;
      &lt;td&gt;10.5&lt;/td&gt;
      &lt;td&gt;0.98&lt;/td&gt;
      &lt;td&gt;1.0&lt;/td&gt;
      &lt;td&gt;20.323383&lt;/td&gt;
      &lt;td&gt;21.0&lt;/td&gt;
      &lt;td&gt;30.000000&lt;/td&gt;
      &lt;td&gt;819.587524&lt;/td&gt;
      &lt;td&gt;94.5&lt;/td&gt;
      &lt;td&gt;9.676617&lt;/td&gt;
      &lt;td&gt;74.726372&lt;/td&gt;
      &lt;td&gt;95.0&lt;/td&gt;
      &lt;td&gt;1.100550&lt;/td&gt;
      &lt;td&gt;18.698349&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;37.476616&lt;/td&gt;
      &lt;td&gt;30.0&lt;/td&gt;
      &lt;td&gt;30.000000&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.140000&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;6807.649902&lt;/th&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;25.50&lt;/td&gt;
      &lt;td&gt;10.5&lt;/td&gt;
      &lt;td&gt;0.98&lt;/td&gt;
      &lt;td&gt;1.0&lt;/td&gt;
      &lt;td&gt;22.000000&lt;/td&gt;
      &lt;td&gt;21.0&lt;/td&gt;
      &lt;td&gt;30.722773&lt;/td&gt;
      &lt;td&gt;810.048096&lt;/td&gt;
      &lt;td&gt;94.5&lt;/td&gt;
      &lt;td&gt;14.693069&lt;/td&gt;
      &lt;td&gt;178.693069&lt;/td&gt;
      &lt;td&gt;95.0&lt;/td&gt;
      &lt;td&gt;1.600800&lt;/td&gt;
      &lt;td&gt;17.197599&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;37.500000&lt;/td&gt;
      &lt;td&gt;31.0&lt;/td&gt;
      &lt;td&gt;30.722773&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.0&lt;/td&gt;
      &lt;td&gt;0.129625&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;136154 rows × 29 columns&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
    

&lt;div class=&quot;cell border-box-sizing text_cell rendered&quot;&gt;&lt;div class=&quot;inner_cell&quot;&gt;
&lt;div class=&quot;text_cell_render border-box-sizing rendered_html&quot;&gt;
&lt;h1 id=&quot;Monitoring-engine-health&quot;&gt;Monitoring engine health&lt;a class=&quot;anchor-link&quot; href=&quot;#Monitoring-engine-health&quot;&gt; &lt;/a&gt;&lt;/h1&gt;&lt;p&gt;One use case of automated anomaly detection lies in checking the health status of a vehicle's engine.&lt;/p&gt;
&lt;p&gt;Here we'll look at engine oil temperature as a function of velocity: As you'll notice in the below plots, oil temperature goes up with higher velocity and increased operating duration.&lt;/p&gt;
&lt;h2 id=&quot;Engine-1---healthy&quot;&gt;Engine 1 - healthy&lt;a class=&quot;anchor-link&quot; href=&quot;#Engine-1---healthy&quot;&gt; &lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Let's look at the engine of the vehicle of driver 1 where engine oil temperature appears normal as it keeps to within a certain band:&lt;/p&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;
&lt;div class=&quot;input&quot;&gt;

&lt;div class=&quot;inner_cell&quot;&gt;
    &lt;div class=&quot;input_area&quot;&gt;
&lt;div class=&quot; highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;temperature_1&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;table_driver_1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[[&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;VehicleSpeed&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&amp;#39;OilTemperature1&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]]&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;copy&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;

&lt;span class=&quot;n&quot;&gt;sns&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;relplot&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;x&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;index&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;y&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;value&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;hue&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;channel&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;kind&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;line&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;data&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;temperature_1&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;reset_index&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;melt&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;id_vars&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;index&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;var_name&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;channel&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;div class=&quot;output_wrapper&quot;&gt;
&lt;div class=&quot;output&quot;&gt;

&lt;div class=&quot;output_area&quot;&gt;



&lt;div class=&quot;output_png output_subarea &quot;&gt;
&lt;img src=&quot;data:image/png;base64,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
ESX/HyxzIR4p+B/tAAAAAElFTkSuQmCC
&quot; /&gt;
&lt;/div&gt;

&lt;/div&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
    

&lt;div class=&quot;cell border-box-sizing text_cell rendered&quot;&gt;&lt;div class=&quot;inner_cell&quot;&gt;
&lt;div class=&quot;text_cell_render border-box-sizing rendered_html&quot;&gt;
&lt;p&gt;Plotting engine oil temperature against vehicle velocity makes the correlation between the two metrics more apparent:&lt;/p&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;
&lt;div class=&quot;input&quot;&gt;

&lt;div class=&quot;inner_cell&quot;&gt;
    &lt;div class=&quot;input_area&quot;&gt;
&lt;div class=&quot; highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;plot&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;sns&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;scatterplot&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;x&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;VehicleSpeed&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;y&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;OilTemperature1&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;data&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;temperature_1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;color&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;blue&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;alpha&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=.&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;plot&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;axes&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;set_ylim&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mf&quot;&gt;0.&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mf&quot;&gt;110.&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;div class=&quot;output_wrapper&quot;&gt;
&lt;div class=&quot;output&quot;&gt;

&lt;div class=&quot;output_area&quot;&gt;



&lt;div class=&quot;output_png output_subarea &quot;&gt;
&lt;img src=&quot;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAmsAAAJSCAYAAACcOYKBAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz
AAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjMsIGh0
dHA6Ly9tYXRwbG90bGliLm9yZy+AADFEAAAgAElEQVR4nOydaZBt11Xf17n39nB7nofXb37SG/Q0
2FiyIhtjbAtiY4Mpx2BXIA58SSgqfAjwgQ+ukEqgKk5IKhQVCqgUBlOkgp0QhA0CYxtsWRK2JGvW
k97Tm9/r1/PcfXu4t08+/PXrte7VYFmypJa9/1Vdt++55+yz5732Wv+1dpbneW4JCQkJCQkJCQm7
EoU3OgMJCQkJCQkJCQkvjiSsJSQkJCQkJCTsYiRhLSEhISEhISFhFyMJawkJCQkJCQkJuxhJWEtI
SEhISEhI2MVIwlpCQkJCQkJCwi5GEtYSEhISEhISEnYxSm90Bl5rzM+v2vb2axdKrr+/w2ZnV16z
9N/sSPXz0kj18+JIdfPSSPXz0kj189JI9fPSeCPqp1DIrLe3/QV/+54X1ra389dUWOMdCS+OVD8v
jVQ/L45UNy+NVD8vjVQ/L41UPy+N3VQ/yQyakJCQkJCQkLCLkYS1hISEhISEhIRdjCSsJSQkJCQk
JCTsYiRhLSEhISEhISFhFyMJawkJCQkJCQkJuxhJWEtISEhISEhI2MVIwlpCQkJCQkJCwi5GEtYS
EhISEhISEnYxkrCWkJCQkJCQkLCLkYS1hISEhISEhIRdjCSsJSQkJCQkJCTsYiRhLSEhISEhISFh
FyMJawkJCQkJCQkJuxhJWEtISEhISEhI2MVIwlpCQkJCQkJCwi5GEtYSEhISEhISEnYxkrCWkJCQ
kJCQkLCLkYS1hISEhISEhIRdjCSsJSQkJCQkJCTsYiRhLSEhISEhISFhFyMJawkJCQkJCQkJuxhJ
WEtISEhISEhI2MVIwlpCQkJCQkJCwi5GEtYSEhISEhISEnYxkrCWkJCQkJCQkLCLkYS1hISEhISE
hIRdjCSsJSQkJCQkJCTsYiRhLSEhISEhISFhFyMJawkJCQkJCQkJuxhJWEtISEhISEhI2MVIwlpC
QkJCQkJCwi5GEtYSEhISEhISEnYxkrCWkJCQkJCQkLCLUXqjM5CQkJCQkJDw5sL0tNmFC5lVKvqe
Zfrb3tZnsWi2taXvzc1mea77ajV9Fp5TFR0/bnbpkllHh9nFi2abm2ZdXWbXX2+2uKi/Usls377c
hoZe/3LuFiRhLSEhISEhIeFl46mnzB54oGRnz5pVqxLKwOKi2b59ZpWKBLqWFglizc0S0GZmzMpl
PfPLv2z2pS+ZjYyYPfCA2Wc/a7a6atbTY/bhD5u9/e1mp06ZPfqo2YEDZu98Z9Vuu+2NK/cbiSSs
JSQkJCQkJLwsXLtmdvFiyR591Ha0ajMzZv39Zk8/bXbypIS0ixelRRsdNZudlQD3zDO6b2ZGgttT
T5mdP2/W2ytBzUxaueVlsz//c11vb5eg99hjZr29Jdu7t2qjo29c+d8oJM5aQkJCQkJCwsvC4mJm
8/PSjBUK+otmz0JBJs9qVSbQPNenmYQ3TKXb2xLK2tv9M8v8PSsrEgx5tlIxW1vT+78fkYS1hISE
hISEhJeF7u7cenvNmppc6MpzCWJcyzLxzBDk4KcVi7oXIa+z0/+OHKl/T0uLBLTWVn0vl83a2vT+
70ckM2hCQkJCQsKbDKdOmU1NZZZlEpIQmAoFfYfc39oqgYnvxaJrwbIss1JJ/+d5vbCFlisPslGx
qOs9PTW7+eainT2rd3Z06PfbbhNnbWREmrKZGQld/f0yZb71rW4y3doyu+EGaeAGB80+8hGzf/pP
lX5Xl/IxNqbv3/ym2XXXmY2M1KxSyWxy0qy9Pd957/cDkrCWkJCQkJDwJsL/+39mjz1WsuVlCVAt
LWbr6y441WrysBwakkaqqUlC0fq6fq9UzDY2zAYGira2puulkjsLtLVJWCqVdJ+ZpzMzIyHqne80
O3zY85TnbuIsFHIrlZSuWbbjDZpl9d6gFy+anThhds89ZvfdZ3blivLwnveY9fWJp/bWt5p9/ONm
S0tmk5NFu+8+CX6jo9t23XXb3zf8tSSsJSQkJCQkvEnw2GNmDz9csslJCVaYCzc2JGQVCvKsHBnx
0BflstncnFl3t3hfFy+aHTtmNjFhNjWl54pFfR8ZkUNAuewOBHlutnev2eOPSwv27LNmTzxh9q1v
mR09qnAbPT0S4m66yaxazWx93ewb35B35/S02Y03ymHg7Fmzhx924e03f1P5vXRJedvcNPva18x+
7MdUpkceMTt0SPdPTen3piazzc2CbW6adXZuf19o2BJnLSEhISEh4U2C6WkJQnDF4IVFc+Xmpj4h
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
dUbUf36r1fwA9AiEQYQ4nstzJ+A3Og80Nene1lalW6mUrblZsTmam51vGJ0SqOumJq/nmD7macpI
H0Cga293AY0y5bk7GVC2YlFptbTUC6e9vdKetrfrt9lZmUPZLMzMSIu4slJ/SkKh4N6t1ENzs9nw
cNWmp19eX38jxlehkL2ogukNE9ZGR0dtcnLSarWaFYtFq9VqNjU1ZaOjo5bn+Yv+lpCQkPD9hPl5
kfkJYzA4+MYcuaMQC5ndfrvZLbf4og6pu79fGqZ9+yQIwXGqVsXBmp4u2sMP12xjwzVCPJ/nBbvh
BmneCNLa2uoBXJubXYPDooz2JsskKPX3K62REeXnt35LiznmsfV1md8qFbMPflBmPwLI3n9/wR54
ILeeHtcwIUQgeCK4HD8ucj1OBMWiCP1bWy6c4Bxwxx2unSoU1JYTE57u2Jiub2zonu7ues0k7+7r
U16rVV2/8UaViRhqY2P6vHpVddjWpr/WVpkYh4Zc8O3t9RAZe/fqHkyxpZL+39rS7/39yuvAgDs6
dHUp7ZUV5blScVPl3r2q181N5Zf2K5c9nltzs/K7tqa8Li46Z+0jH3HOWm+vOGu33qo2fuQR5SHP
da21VZuAWk0m4I4OaUuPHdM9PT31nLXR0TevCdTsDRTW+vv77cSJE/aFL3zBPvzhD9sXvvAFO3Hi
xI6Z86V+S0hISPh+wJkzZl//etGeeUbCWn+/osZfd13N2tpe37w89FBmV64UbHZW3DTe39Fh9ra3
KQp9V5eEg5UVN48eO2Z2//26trlZtAsX3MyH6RDtErG24EThQFAuow3yiP21mntCtrTIPIuggNmT
uF8zM+I7nTmj+8wkcN12m4K49vaaffrTRbvjDt2LWbOvT8IE5lOOSSIYrZkLk5gX0U6trip/CwsS
IEdGxA+77Ta9A4/J8XF/X3+/yqADy2U+7ulRPtra3IyJ5hHBpFTSM0eOSIjZ2nLhas8efa6sSGg5
fNg9U3muudnrbf9+/U4b4tCAFq25WULR8LB+f9vbVMa5OeVxaMi1XdWqTiiYnnZPVkB4DniHHR1m
73636gdv0GPH9MzysurgZ3/W2/uWW1THzc2ukUOTZpZbnm8nb9DvFL/xG79hX/ziF21mZsZ+/ud/
3np6euyv/uqv7N//+39vv/Zrv2a/+7u/a11dXfapT31q55mX+i0hISHhex3z82aPPFK0J57IbH7e
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
Zo3e/va368orr9Ttt98uic+Z+8UvfqF3vetdWrVqlVauXKlHH31U0sztn3Xr1umSSy4Z8lmSRu+P
mdRXI/XPaMdoaeYci4723nHDj9FSQvomxLhce+214cMPPxyGYRg+/PDD4bXXXjvNLZpehw4dCp94
4onc7//0T/8U/sM//EOYyWTCt73tbeHTTz8dhmEY3nvvveGtt946Xc2cVlu2bAlvuOGG8E//9E/D
F154gb6JWbt2bfi5z30uzGazYRiG4YEDB8Iw5HMWhmGYzWbD5cuXhy+88EIYhmG4devW8Nxzzw0z
mcyM7Z+nn3463LNnT+6z5Ebrj5nUVyP1z9GO0WEYzqhj0dHeO2H42mN0GCanbwjWxuHgwYPhsmXL
wsHBwTAMw3BwcDBctmxZ2NLSMs0tS44NGzaEf/VXfxX+9re/DS+//PLc5S0tLeG55547jS2bHn19
feF73vOecOfOnbkDAX1jOjs7w2XLloWdnZ1DLudzZrLZbPjGN74x3LRpUxiGYfjUU0+Fb3/72+mf
MBxyUh2tP2ZqX40UkDg/RodhOCOPRcP7ZqRjdBgmp28SvZF7Uk3EBvN/zLLZrL73ve/pkksu0d69
ezVnzpzc32pqapTNZtXW1qaqqqppbOXU+vKXv6yVK1eqqakpdxl9Y3bu3Kmqqirdc889evLJJ1Va
WqqPfvSjKioq4nMmKQgCfelLX9JHPvIRlZSUqKurS1//+tc5Dg0zWn+EYUhfxcSP0RLHImnkY7SU
nL4hZw0Tbu3atSopKdH73//+6W5KImzevFlbtmzRNddcM91NSaRMJqOdO3fq7LPP1r//+7/rpptu
0v/5P/9H3d3d0920RBgcHNT999+vr371q/rFL36hr33ta/rYxz5G/2DcOEYPdTIcoxlZG4f4BvPp
dJoN5mPWrVunV155Rffdd59SqZRmz56tPXv25P7e2tqqVCo1Y76tSdLTTz+tbdu26a1vfaskad++
fbrhhht07bXXzvi+kezzlJeXpyuuuEKStHTpUlVXV6uoqIjPmaStW7equblZy5YtkyQtW7ZMxcXF
/7+9+4+pqv7jOP4E4YZmBpPJLXD+WtqmgqYMURSDa0JDAUuma7lKZyYm2C+Yf+BidhnpFEUW0moj
cmNkjbGpya7oQKMauQk6nSbMDIU7IRgzfoT39gd2xg21b2ZfT/p6/Hd+fc6H97jvvfc5n3M+PPLI
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
oDvmpgURHqgAAAAASUVORK5CYII=
&quot; /&gt;
&lt;/div&gt;

&lt;/div&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
    

&lt;div class=&quot;cell border-box-sizing text_cell rendered&quot;&gt;&lt;div class=&quot;inner_cell&quot;&gt;
&lt;div class=&quot;text_cell_render border-box-sizing rendered_html&quot;&gt;
&lt;h2 id=&quot;Engine-2---unhealthy&quot;&gt;Engine 2 - unhealthy&lt;a class=&quot;anchor-link&quot; href=&quot;#Engine-2---unhealthy&quot;&gt; &lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Let's look at velocity and engine oil temperature for vehicle 2 (where I deliberately introduce an anomaly between 5000 and 5500 seconds of the trace).&lt;/p&gt;
&lt;p&gt;You'll notice a spike in engine oil temperature which indicates unhealthy behavior of the vehicle's engine:&lt;/p&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;
&lt;div class=&quot;input&quot;&gt;

&lt;div class=&quot;inner_cell&quot;&gt;
    &lt;div class=&quot;input_area&quot;&gt;
&lt;div class=&quot; highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;temperature_2&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;table_driver_2&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[[&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;VehicleSpeed&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&amp;#39;OilTemperature1&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]]&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;copy&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;temperature_2&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;loc&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;5000&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;5500&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&amp;#39;OilTemperature1&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;*=&lt;/span&gt; &lt;span class=&quot;mf&quot;&gt;1.15&lt;/span&gt;

&lt;span class=&quot;n&quot;&gt;sns&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;relplot&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;x&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;index&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;y&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;value&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;hue&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;channel&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;kind&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;line&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;data&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;temperature_2&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;reset_index&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;melt&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;id_vars&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;index&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;var_name&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;channel&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;div class=&quot;output_wrapper&quot;&gt;
&lt;div class=&quot;output&quot;&gt;

&lt;div class=&quot;output_area&quot;&gt;



&lt;div class=&quot;output_png output_subarea &quot;&gt;
&lt;img src=&quot;data:image/png;base64,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
&quot; /&gt;
&lt;/div&gt;

&lt;/div&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
    

    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;
&lt;div class=&quot;input&quot;&gt;

&lt;div class=&quot;inner_cell&quot;&gt;
    &lt;div class=&quot;input_area&quot;&gt;
&lt;div class=&quot; highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;plot&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;sns&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;scatterplot&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;x&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;VehicleSpeed&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;y&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;OilTemperature1&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;data&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;temperature_2&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;color&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;blue&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;alpha&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=.&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;plot&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;axes&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;set_ylim&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mf&quot;&gt;0.&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mf&quot;&gt;140.&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;div class=&quot;output_wrapper&quot;&gt;
&lt;div class=&quot;output&quot;&gt;

&lt;div class=&quot;output_area&quot;&gt;



&lt;div class=&quot;output_png output_subarea &quot;&gt;
&lt;img src=&quot;data:image/png;base64,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
9nHInDUAAAAMHYI1AACACCNYAwAAiDCCNQAAgAgjWAMAAIgwgjUAAIAII1gDAACIMII1AACACCNY
AwAAiDCCNQAAgAgjWAMAAIgwgjUAAIAII1gDAACIMII1AACACCNYAwAAiDCCNQAAgAgjWAMAAIgw
gjUAAIAII1gDAACIMII1AACACCNYAwAAiDCCNQAAgAgjWAMAAIgwgjUAAIAII1gDAACIMII1AACA
CCNYAwAAiDCCNQAAgAgjWAMAAIgwgjUAAIAII1gDAACIMII1AACACCNYAwAAiDCCNQAAgAgjWAMA
AIgwgjUAAIAII1gDAACIMII1AACACCNYAwAAiDCCNQAAgAgjWAMAAIgwgjUAAIAII1gDAACIMII1
AACACCNYAwAAiDCCNQAAgAgjWAMAAIgwgjUAAIAII1gDAACIMII1AACACCNYAwAAiDCCNQAAgAgj
WAMAAIgwgjUAAIAII1gDAACIMII1AACACCNYAwAAiDCCNQAAgAgjWAMAAIiwSAVrd911l0455RS9
9tprkqQXX3xRl1xyiS644AJ97nOfU3Nz8xCXEAAA4NiKTLD26quv6sUXX9To0aMlSalUSl/96lc1
b948rVy5UtOnT9dtt902xKUEAAA4tiIRrPX09Ojmm2/WggUL0j9bs2aNcnNzNX36dEnSZZddphUr
VgxRCQEAAIZGJIK1O++8U5dcconq6urSP2toaFBtbW36/2VlZUqlUmpraxuKIgIAAAyJrKEuwOrV
q7VmzRp95StfGZTXLy8vHJTXDausLBr09zieUB/9USeZqI/+qJNM1Ecm6qO/4VQnQx6sPfvss1q/
fr0+8IEPSJK2bdumq666SldccYW2bt2aflxLS4vi8bhKSkre0es3N3colQqOapnDKiuLtH17+6C9
/vGG+uiPOslEffRHnWSiPjJRH/2diHUSj8cO2ME05MOg11xzjX7/+9/rkUce0SOPPKLq6mrde++9
uvrqq7Vnzx4999xzkqQlS5bowgsvHOLSAgAAHFtD3rN2IPF4XIsWLdL8+fPV3d2t0aNH67vf/e5Q
FwsAAOCYilyw9sgjj6T/fdZZZ2nZsmVDWBoAAIChNeTDoAAAADgwgjUAAIAII1gDAACIMII1AACA
CCNYAwAAiDCCNQAAgAgjWAMAAIgwgjUAAIAII1gDAACIMII1AACACCNYAwAAiDCCNQAAgAgjWAMA
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
eLFeeOEFzZ8/X93d3Ro9erS++93vqqKiYohLfGzNnj1bd999t04++eRhXR+bNm3S17/+dbW1tSkr
K0s33HCDzjvvvGF7/jz44IP68Y9/rFgsJkn6+7//e51//vnDqj7+6Z/+SQ899JB27Nih0tJSlZSU
6Ne//vVB6+BErp/91ccdd9xxwPZV0gnfphzoGAkLt7HSiV8nBGsAAAARxjAoAABAhBGsAQAARBjB
GgAAQIQRrAEAAEQYwRoAAECEEawBOGE8/fTTOvfccw/4+3nz5qWXPziYK664Qr/85S+PZtEG3ezZ
s/XHP/5xqIsBYBAQrAGIlKuuukp33nlnv5+vWrVKZ599tvr6+g77tW+++WZde+21R1K8flatWqVL
L71UZ511lmbOnKnPfOYz2rRp01F9DwDDG8EagEj52Mc+pgcffFD7LgH54IMP6iMf+YiysqKzS97b
b7+tm266SXPnztXzzz+vhx9+WJ/61KfSm44DwNFAsAYgUs4//3y1tbWlt46RpJ07d+rRRx/VRz/6
UfX09GjhwoX6y7/8S733ve/VvHnztGfPnozX+MlPfqJZs2bpnHPO0QMPPJD++dy5c/Wv//qv6f+H
e8XOP/98Pf744/st069+9StddNFFmjFjhq666ipt2bJFktvvs66uTrNmzVIsFlNhYaEuuOAC1dbW
SpK+//3v6+///u91ww036Mwzz9THPvYx/elPf0q/bmNjo770pS/pPe95j2bPnq377rsv/btUKqUf
/ehHOv/88zVz5kxdf/31amtrS/9+6dKlev/736+ZM2fqhz/84eFUNYDjBMEagEjJy8vTRRddpKVL
l6Z/9pvf/EYTJkzQqaeeqttuu00bNmzQ0qVL9dBDD6mpqSkjD23Hjh1qb2/X448/ru985zu6+eab
tXPnzn7v8/LLL+umm27S1772NT333HO6//77NXr06H6PW7Vqle655x7dddddevLJJzVt2jR9+ctf
liSddtppevPNN3XrrbfqqaeeUmdnZ7/nP/zww7rwwgv1zDPPaM6cOfriF7+o3t5epVIpfeELX9Ap
p5yixx9/XD/96U/105/+VE888YQk6Wc/+5lWrVqln//853riiSc0cuRI3XzzzZKkN954Q9/+9re1
aNEiPfHEE2pra9O2bduOrOIBRBbBGoDI+ehHP6qVK1equ7tbkutF+tjHPqYgCPRf//Vf+vrXv66S
khIVFhbq85//fMa+gVlZWbr22muVnZ2t8847TwUFBdqwYUO/9/jVr36lv/qrv9LZZ5+teDyuqqoq
TZw4sd/jlixZomuuuUYTJ05UVlaW/u7v/k7r1q3Tli1bVF9fr5/97GdqbGzUDTfcoPe85z2aO3du
RtB22mmn6cILL1R2drauvPJK9fT06KWXXtIrr7yilpYWXXfddcrJyVF9fb0++clP6n//93/T73vj
jTequrpaOTk5uu6667Ry5Ur19fVpxYoV+su//EvNmDFDOTk5uv766xWP05wDJ6roJH8AwF7Tp09X
aWmpVq1apdNPP12vvPKK7rrrLrW0tKirq0sf//jH048NgkCpVCr9/5KSkoy8tvz8fO3evbvfezQ0
NOi88847ZFm2bt2qW2+9VQsXLsx4z8bGRo0ePVpTp05NT4h4+eWXdeONN+ruu+9O975VV1enn2dB
YVNTkySpqalJ06dPT/8+mUym/79161Zde+21GUFYPB5Xc3OzmpqaMl63oKBAJSUlh/wsAI5PBGsA
IunSSy/V0qVLtWHDBp1zzjmqqKhQKpVSXl6efv3rX6uqquqIXr+mpkYb/387dwzSOBTHcfx7iC5F
QSzRoSAOXVPETXCKrdRBOlSxi4g4OIoobh0jgkMxFKSbawdHhSKhW5ZOgiBKh4oOCuogklLUOohB
z4M74eBy8vtseXnv8cYf//9Lzs//aN7S0hJTU1O/nWuaJqlUirOzs2DsfXvy+fmZq6srDMOgo6OD
WCxGpVL55V4DAwPYts3IyMind4ZhUK/Xg2ff9z/cZxOR70V1cxEJpUwmg+d5lMtlMpkM8FpZmp6e
xrZtbm5ugNdL+m/3vL4im82yt7eH53lBiHofgN7Mzs5SKpWCAHZ/f8/BwQEAtVqNcrkcnKVer+O6
LolEIlh/fHxMpVLh8fGR3d1durq6SCQSmKZJJBKhVCrRbDZ5enri9PSUo6MjAHK5HIVCIfiY4fb2
lsPDQwAmJiaoVqvUajVarRbb29sfqosi8r2osiYioRSLxRgeHubk5ATLsoLxtbU1isUiMzMz3N3d
0d/fTy6XY2xs7Ev7m6bJxsYGtm1zcXFBNBoln89/ureWTCZ5eHhgZWWFy8tLuru7GR0dJZ1O09PT
g+u6FAoFfN+nt7eXdDrN4uJisN6yLPb391lfX2dwcBDHcejs7ARgZ2eHzc1NLMui1WoxNDTE8vIy
AHNzc7TbbRYWFri+vqavr4/JyUnGx8eJx+Pk83lWV1fxfZ/5+fkPbVER+V5+tH/+mZGIiPwVjuPQ
aDTY2tr610cRkf+Y2qAiIiIiIaawJiIiIhJiaoOKiIiIhJgqayIiIiIhprAmIiIiEmIKayIiIiIh
prAmIiIiEmIKayIiIiIhprAmIiIiEmIvA38hN7FZCJsAAAAASUVORK5CYII=
&quot; /&gt;
&lt;/div&gt;

&lt;/div&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
    

&lt;div class=&quot;cell border-box-sizing text_cell rendered&quot;&gt;&lt;div class=&quot;inner_cell&quot;&gt;
&lt;div class=&quot;text_cell_render border-box-sizing rendered_html&quot;&gt;
&lt;h1 id=&quot;Anomaly-detection-algorithm:-learn-what-observations-to-expect-to-recognize-anomalies&quot;&gt;Anomaly detection algorithm: learn what observations to expect to recognize anomalies&lt;a class=&quot;anchor-link&quot; href=&quot;#Anomaly-detection-algorithm:-learn-what-observations-to-expect-to-recognize-anomalies&quot;&gt; &lt;/a&gt;&lt;/h1&gt;&lt;p&gt;Let's look at the visual distribution of engine oil temperature and velocity again and directly compare vehicle 1 with vehicle 2.&lt;/p&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;
&lt;div class=&quot;input&quot;&gt;

&lt;div class=&quot;inner_cell&quot;&gt;
    &lt;div class=&quot;input_area&quot;&gt;
&lt;div class=&quot; highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;temperature_1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;vehicle&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&amp;#39;vehicle 1&amp;#39;&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;temperature_2&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;vehicle&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&amp;#39;vehicle 2&amp;#39;&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;combined&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;pd&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;concat&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;([&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;temperature_1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;temperature_2&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;],&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;axis&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;sort&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;kc&quot;&gt;True&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;

&lt;span class=&quot;n&quot;&gt;plot&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;sns&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;scatterplot&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;x&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;VehicleSpeed&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;y&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;OilTemperature1&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;data&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;combined&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;hue&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;vehicle&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;alpha&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=.&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;plot&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;axes&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;set_ylim&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mf&quot;&gt;0.&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mf&quot;&gt;140.&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;div class=&quot;output_wrapper&quot;&gt;
&lt;div class=&quot;output&quot;&gt;

&lt;div class=&quot;output_area&quot;&gt;



&lt;div class=&quot;output_png output_subarea &quot;&gt;
&lt;img src=&quot;data:image/png;base64,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
TXrTm96kl770pXrDG94gSbrtttt01VVXHfwgrNWuXWHrbNeuXZo6daq2b9+uBx98UAsWLJAkLViw
QA8++KC2bdt20O8HAABwpBhxWFu8eLHmzp2rVatWKY7D7um8efN09913H9QAjDH67Gc/q7e//e16
2ctepssuu0xLlizRhg0bdNRRRymKwiH1KIo0depUbdiw4aDeDwAA4Egy4qK4q1at0rJlyxRF0VBf
ygkTJmjnzp0HNYAsy/TFL35Rn//85zV37lz98pe/1Lvf/W4tXbr0oF530KRJo1+UdcqUjlF/jyMJ
87E35mQ45mNvzMlwzMdwzMfextOcjDisTZw4UevWrdMxxxwz9NiaNWs0bdq0gxrAQw89pM2bN2vu
3LmSpLlz56qlpUXValWbNm1SnueKokh5nmvz5s2aPn3603r9np4+OTd69eC4/Tgc87E35mQ45mNv
zMlwzMdwzMfenolzYq150gWmEW+DXnTRRXrb296m5cuXK89z/ehHP9J73/tevfnNbz6owU2bNk0b
N27Uo48+Kkl65JFH1NPTo2OPPVZz5szR8uXLJUnLly/XnDlz1N3dfVDvBwAAcCQZ8cra+eefr87O
Tt18882aOHGibrrpJl166aV61atedVADmDJliq666ipdfvnlQ9ur1157rbq6unTVVVdp4cKF+vzn
P6/Ozk4tWbLkoN4LAADgSGP8CHpG5XmuL3/5y7r44otVqVQOx7gOGbZBDy/mY2/MyXDMx96Yk+GY
j+GYj709E+fkoLdBoyjSV7/6VSVJckgHBgAAgP0b8Zm1BQsW6Hvf+95ojgUAAABPMOIza4888oi+
/e1v61//9V81ffr0ofNlkvTVr351VAYHAAAw3o04rJ1zzjk655xzRnMsAAAAeIKndRsUAAAAh9eI
w9qtt976pM+9+tWvPiSDAQAAwHAjDmvf+MY3hv1+y5Yt2rx5s0488UTCGgAAwCgZcVj7j//4j70e
++Y3v6nNmzcf0gEBAADgcSMu3bEvf//3f6+bb775UI0FAAAATzDilbUnStNUt956q9ra2g7leAAA
ALCHEYe1F7zgBcNqq+V5ru7ubl1zzTWjMjAAAAAcxG3Q1tZWTZ06VdYe1E4qAAAA9mPESes73/mO
jjvuuKF/pk2bJmutrrvuutEcHwAAwLg24rC2r9ugUghxAAAAGB1PuQ06uP2Z57mWL18u7/3Qc2vX
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
pxe96EWaN2+e3vSmN2nt2rWH9D0AjG+ENQCl8trXvlY/+MEP9MQSkD/4wQ/06le/WnFcni55jz32
mK688kotXLhQv/zlL3XHHXfoDW94w1DTcQA4FAhrAErlzDPPVG9v71DrGEnasWOH7rrrLr3mNa9R
s9nUkiVL9Fd/9Vf6y7/8Sy1atEj1en3Ya3z1q1/VqaeeqtNPP13f+973hh5fuHChPvOZzwz9fs9V
sTPPPFN33333Psf03e9+V+ecc45e/OIX65JLLtG6deskhX6fs2bN0qmnnipjjNrb23XWWWdpxowZ
kqTPfe5zete73qV3v/vdeuELX6jXvva1+s1vfjP0ups2bdI73/lO/cVf/IXmz5+vm266aeg555y+
9KUv6cwzz9S8efN0+eWXq7e3d+j5W265RS972cs0b948feELXziQqQZwhCCsASiVWq2mc845R7fc
csvQYz/84Q913HHH6fnPf76uu+46rVmzRrfccotuu+02bd68edg5tK1bt2rXrl26++679fGPf1xX
X321duzYsdf7/PrXv9aVV16pD3zgA7r//vv1zW9+UzNnztzr626//XZ98Ytf1A033KB77rlHc+fO
1fve9z5J0gte8AI9+uijuvbaa3Xvvfeqv79/rz9/xx136Oyzz9YvfvELLViwQG9/+9uVpqmcc3rb
296m448/Xnfffbe+9rWv6Wtf+5p+/OMfS5K+/vWv6/bbb9c3vvEN/fjHP9aECRN09dVXS5J+//vf
62Mf+5iWLl2qH//4x+rt7dXGjRsPbuIBlBZhDUDpvOY1r9HKlSvVaDQkhVWk1772tfLe69vf/rY+
9KEPqaurS+3t7XrrW986rG9gHMe67LLLlCSJzjjjDLW2tmrNmjV7vcd3v/v/t3N/IU2vcRzH32e1
kUmxkWyLJiHSVbQVGoQlBktzXejQGu4mNCIEhTSKutrlQvBCtEB2F92EHMSblolId9544yQUZUTh
jA1cF2KLsT/notOPdjzQiXPg/JLP6+75/Z7n+T27GR++z/P7/U53dzcXL17EYrHgcrmor6/f0+/F
ixfcuXOH+vp6Dh48SH9/P6urq6RSKWpra3n+/DnpdJqhoSEuXLjAo0ePKkLb6dOnaW9vx2q10tfX
Rz6fZ3l5mZWVFbLZLIODg9hsNmprawmFQsTjceO5w8PDuN1ubDYbg4ODvH79mkKhwOzsLJcvX+b8
+fPYbDbu3r2LxaK/c5H9yjyHP0RE/tTY2IjD4WB+fp4zZ86wsrLCkydPyGaz5HI5urq6jL7lcplS
qWS07XZ7xbm2qqoqPn/+vOcZHz9+pKWl5Ydr2draIhqNMjIyUvHMdDrNiRMnOHv2rPFCRCKRYHh4
mMnJSaP65na7jXHfQmEmkwEgk8nQ2Nho3C8Wi0Z7a2uLgYGBihBmsVjY3t4mk8lUzHv48GHsdvsP
f4uI/JoU1kTElDo7O5mZmeHdu3dcunSJmpoaSqUShw4d4uXLl7hcrn81//Hjx/nw4cM/6tff309H
R8cP+3q9Xtra2tjY2DCufb89WSqVSKfTOJ1ODhw4gMfjYW5u7m/ncrvdRKNRGhoa9txzOp0kk0mj
ncvlKs6zicj+orq5iJhSMBhkcXGRqakpgsEg8LWydOPGDaLRKNvb28DXQ/rfznn9jOvXrzM9Pc3i
4qIRor4PQN/09PQQi8WMALazs8OrV68AWFpaYmpqylhLMplkYWEBn89njH/79i1zc3MUCgWePXuG
zWbD5/Ph9Xqprq4mFovx5csXisUi6+vrJBIJAMLhMGNjY8bLDNlslvn5eQCuXr3KmzdvWFpaIp/P
Mz4+XlFdFJH9RZU1ETElj8fDuXPnWFtbw+/3G9cfPHjA06dPCYVCfPr0CZfLRTgcprm5+afm93q9
PH78mGg0yubmJjU1NUQikT3n1lpbW9nd3eXevXukUimOHDlCU1MTgUCAo0ePsrCwwNjYGLlcDofD
QSAQ4Pbt28Z4v99PPB7n4cOHnDx5komJCaxWKwCTk5OMjIzg9/vJ5/PU1dUxNDQEwM2bNymXy9y6
dYtMJsOxY8e4du0aV65c4dSpU0QiEe7fv08ul6O3t7diW1RE9pffyn/9mJGIiPwnJiYmeP/+PaOj
o//3UkTkF6ZtUBERERETU1gTERERMTFtg4qIiIiYmCprIiIiIiamsCYiIiJiYgprIiIiIiamsCYi
IiJiYgprIiIiIiamsCYiIiJiYn8ADnDH6qLW56wAAAAASUVORK5CYII=
&quot; /&gt;
&lt;/div&gt;

&lt;/div&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
    

&lt;div class=&quot;cell border-box-sizing text_cell rendered&quot;&gt;&lt;div class=&quot;inner_cell&quot;&gt;
&lt;div class=&quot;text_cell_render border-box-sizing rendered_html&quot;&gt;
&lt;p&gt;You'll notice that the engine oil temperature of vehicle 2 tends to be higher than of vehicle 1 and vehicle 2 shows an island of high engine oil temperature separated from the bulk of data points.&lt;/p&gt;
&lt;p&gt;We can use this by modelling the distribution of value pairs velocity and oil temperature that we would usually expect to observe.&lt;/p&gt;
&lt;p&gt;Let's model the expected distribution of data points with a model called &lt;a href=&quot;https://scikit-learn.org/stable/modules/mixture.html&quot;&gt;Gaussian mixture models&lt;/a&gt;.
This model fits a set of &lt;a href=&quot;https://en.wikipedia.org/wiki/Normal_distribution&quot;&gt;Gaussian distributions&lt;/a&gt; to the distribution of value pairs we observed for vehicle 1 - thus defining what a healthy distribution of values looks like.&lt;/p&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;
&lt;div class=&quot;input&quot;&gt;

&lt;div class=&quot;inner_cell&quot;&gt;
    &lt;div class=&quot;input_area&quot;&gt;
&lt;div class=&quot; highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;model&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;GaussianMixture&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;n_components&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
    

    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;
&lt;div class=&quot;input&quot;&gt;

&lt;div class=&quot;inner_cell&quot;&gt;
    &lt;div class=&quot;input_area&quot;&gt;
&lt;div class=&quot; highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;model&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;fit&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;temperature_1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[[&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;VehicleSpeed&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&amp;#39;OilTemperature1&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]])&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;div class=&quot;output_wrapper&quot;&gt;
&lt;div class=&quot;output&quot;&gt;

&lt;div class=&quot;output_area&quot;&gt;



&lt;div class=&quot;output_text output_subarea output_execute_result&quot;&gt;
&lt;pre&gt;GaussianMixture(covariance_type=&amp;#39;full&amp;#39;, init_params=&amp;#39;kmeans&amp;#39;, max_iter=100,
                means_init=None, n_components=4, n_init=1, precisions_init=None,
                random_state=None, reg_covar=1e-06, tol=0.001, verbose=0,
                verbose_interval=10, warm_start=False, weights_init=None)&lt;/pre&gt;
&lt;/div&gt;

&lt;/div&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
    

&lt;div class=&quot;cell border-box-sizing text_cell rendered&quot;&gt;&lt;div class=&quot;inner_cell&quot;&gt;
&lt;div class=&quot;text_cell_render border-box-sizing rendered_html&quot;&gt;
&lt;p&gt;After training our model on the observations for vehicle 1, let's score the likelihood of observing each observation we have on vehicle 2:&lt;/p&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;
&lt;div class=&quot;input&quot;&gt;

&lt;div class=&quot;inner_cell&quot;&gt;
    &lt;div class=&quot;input_area&quot;&gt;
&lt;div class=&quot; highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;temperature_2&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;health_score&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;model&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;score_samples&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;temperature_2&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[[&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;VehicleSpeed&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&amp;#39;OilTemperature1&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]])&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
    

    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;
&lt;div class=&quot;input&quot;&gt;

&lt;div class=&quot;inner_cell&quot;&gt;
    &lt;div class=&quot;input_area&quot;&gt;
&lt;div class=&quot; highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;sns&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;relplot&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;x&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;index&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;y&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;value&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;hue&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;metric&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;kind&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;line&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;data&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;temperature_2&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[[&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;OilTemperature1&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&amp;#39;health_score&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]]&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;reset_index&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;melt&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;id_vars&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;index&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;var_name&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;metric&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;  
&lt;/pre&gt;&lt;/div&gt;

    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;div class=&quot;output_wrapper&quot;&gt;
&lt;div class=&quot;output&quot;&gt;

&lt;div class=&quot;output_area&quot;&gt;



&lt;div class=&quot;output_png output_subarea &quot;&gt;
&lt;img src=&quot;data:image/png;base64,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
PHiQp556iiVLlvDDDz/gcDh46aWXaNeuHQBz5szhvffew+l0EhkZybhx44iJieHll18mNzeXtLQ0
evTowWOPPUaHDh245557WLx4MRdeeCGtW7dm8eLFvPzyywB8/PHHvPPOOwCEhIQwffp0GjduXGdf
h2BU5SDdsGFDbdbBypUrWbNmDf/85z9rZf+Zmbm4XGaVto2PjyIjI6dW6jgeqsc/1eOf6vHPVz3B
GqzR0dHMnj2bL774grvvvpvnn3+eBx54gNdff51XX32VZ599luXLl/PFF18wc+ZM7HY73333HY88
8gizZs1i5MiRXiF5RGhoKLNnzwbgk08+8SxftmwZ06dP57333iM+Pp68vDzPWOtyVNB8RX755Re2
bNnCwIEDAfdVwrfccgs33HADe/bs8WyXlZWFxWKpVmtURORkcMkllwBw1llnAe6BcgA6derEwoUL
Afj222/ZsGEDV199NQCmaXL48GG/+7388st9Ll+8eDFpaWnEx8cD0KBBg8DfxEnIb5D27dvXM0C9
P4sXLw64kNtvv53bb7/d83zAgAFMmzaN008/nQ8//JDly5eTnJzMrFmzSElJCfh4IiL1TWhoKAAW
iwW73e5ZbrFYcDgcgDs4r7zyymrd3x8REVGzhZ5i/Abp5MmTT1QdlbJYLEyaNImxY8d63f4iIiIV
DRgwgIceeohhw4bRrFkznE4n69evp1OnTkRGRpKTU/Vu9X79+vHYY48xfPhwGjdu7OnaPRLo4uY3
SM8999wTVUcF3377redx9+7dmTt3bp3VIiJSX/To0YP77ruPu+66C6fTSUlJCSkpKXTq1Inzzz+f
t956iyFDhnDuuefy2GOP+d1Xz549uf3227npppswDAO73c60adMUpOUY5pHLcKtg/fr1LF++nOzs
bMq+rD4MEaiLjWqO6vFP9fhXH+oJ1ouNJDhV+T7SDz74gGuvvZaffvqJ119/nU2bNvH222+zY8eO
2qxPREQkqFU5SN944w3eeOMNpkyZQlhYGFOmTOGll17SpdAiInJKq3KQZmZmekYXslgsuFwu+vbt
y6JFi2qtOBERkWBX5eZks2bN2LlzJ61atSIxMZFvvvmGmJgYQkJCarM+ERGRoFblIL311lv5888/
adWqFXfffTf33nsvJSUlPProo7VZn4iISFCrcpCuX7+ewYMHA+6BGn7++WdKSko00oWIiJzSqnWl
0N13301ERASpqakMHjyYNm3a1FZdIiIi9UKVLzZ69NFH+f777xk7dizp6elcc801XHHFFbz99tu1
WZ+IiJQqLi7mmWee4aKLLiIlJYWhQ4d65oQuO4/osmXLuOKKK8jOziYtLY20tDQuvvhiunbt6nn+
wgsv1OVbqbalS5eyZMmSWjAsB8gAACAASURBVNn3nDlzGDx4MB07duT999+v9uur1SK1WCz07t2b
3r17c9999/Hwww8zadIkbrrppmofWEREqmfcuHHk5+czf/58QkND2bRpE7feeisNGzZk4MCBnkk/
joiJieGzzz4D3OE6ceJEr9ldgonD4fB7O+VPP/2E0+mkV69e1d630+nEarVWur5jx468+OKLTJ06
tdr7hmoGaX5+PgsXLmT+/Pn8/PPP9OjRo0bnIxURCVbfLt/Bwp9rZwCai89tzYDk1n632b17N198
8QWLFi3yDNHXvn177rzzTl555RXS0tJ8TpHmj2maTJ8+na+//hqHw0FCQgJPPfUUcXFxvPDCC+za
tYtDhw6xbds2unTpws0338ykSZPYs2cPl1xyCQ888AAA1157LZ07d2bFihUcPnyY1NRUz4h3+/bt
46mnniI9PZ2ioiKGDBnCbbfdBkCfPn1IS0tj6dKlJCUlcc899/DPf/6TvLw8CgsLueiii/jHP/7B
+vXr+fjjjzFNkx9++MHTenzxxRf58MMPAViyZInn+ZIlS5g0aRLt27dnw4YNPPDAA3Tv3p0JEyaw
efNmioqK6NWrFw899BAWi4UOHToAVGmSFl+qHKQjR47khx9+oGPHjlx22WU888wzxMbGHtdBRUSk
ejZt2kTr1q0rTCHZrVs3XnrpJdLS0qq9zzlz5rB3714+/PBDLBYL7777LpMmTfJ0Ea9Zs4bZs2cT
FhbG0KFDefnll3njjTcoLi5m4MCBXHPNNbRq1QqArVu38sEHH1BYWMiwYcM4++yz6dOnD//85z+5
//776d69O8XFxfzlL3+hc+fOnHfeeQAUFBTw8ccfA1BYWMj06dOJiIiguLiYm266iSVLltCrVy+u
uuoqnE6nZ87qY3Xzbty4kSeffJIuXboAMHr0aC644AKefvppXC4X999/P3PmzOHKK6+s9tetvCoH
aefOnRk9ejTNmzcP+KAiIvXNgORjtxprUzWGRa+yb7/9lvXr13vmI3U6nV5B3adPHyIjIwF367dL
ly7Y7XbsdjuJiYmesQXAPaepzWYjMjKSSy65hJ9++onu3bvz66+/8sQTT3j2mZeXx5YtWzxBWvYD
gNPpZOLEiaxcuRKAjIwM1q9ff1zdue3atfOE6JH3unbtWl5//XXAHdqtW9fM97PKQXqkKS4iIide
+/bt2bFjBwcPHvQKu1WrVnm6JqvLNE3+/ve/M3ToUJ/ry87yYrFYKjw/MgdqZVwuF4ZhMHv27ErP
f5adC/XNN98kPz+f2bNnY7fbefjhhykqKvL5OqvVisvl8jwvv135OVaPdGPXRmOwylftiohI3WnZ
siUpKSmMGzfOExqbNm1i2rRp3HPPPce1zwEDBjBz5kwOHz4MuMNow4YNx7Wvzz77DKfTSV5eHgsW
LOC8884jOjqabt268eabb3q22717NwcOHPC5j8OHDxMfH4/dbic9Pd1rCNryc6m2atWKHTt2kJOT
g8vlYv78+cd8r6+99hpOpxOArKwsdu7ceVzvtTwFqYhIPTF27FiaNGnCpZdeSkpKCqNGjeLRRx89
7rmjr7zySlJSUrjuuusYPHgwV155JatWrTqufSUmJjJs2DCGDh3KRRddRJ8+fQB4/vnnPQP6pKam
8sADD5Cbm+tzH3/9619ZtmwZqampPP74457uX4BBgwaxcuVK0tLSeOONN2jevDk33HADQ4cOZcSI
ETRt2tRvfY8//jgul4u0tDQGDx7MbbfdRkZGBuD+ENCnTx++/vprnn/+efr06cOff/5Z5fderflI
6zPNR1pzVI9/qse/+lCP5iOtnmuvvZa77rrLE56nGrVIRUREAqDJREVEJCDHMxrQyUQtUhERkQAo
SEVERAKgIBUREQmAglRERCQAClIREZEAKEhFROqBDh06kJeXV2P7++STTxg5ciQAu3bt4oMPPvBa
P2DAADZt2lRjxzuZKUhFRE5xu3fvrhCkweJY4/kGA91HKiJSBTmrF5Pz27e1su+orgOI6tLvmNu9
++67LFy4kIMHD/Lggw8yaNAgAH777TeeffZZT4t15MiR9OvXD4fDwR133EF2djZFRUV06dKFJ554
Arvd7rXfJ598kl27dpGWlsZpp53mmdP0iy++4PHHHycjI4Obb76Z66+/vtLafv31V8aPH4/L5cLh
cHDXXXeRmppKTk4OEyZMYM2aNRiGQXJyMmPGjCEvL4+nnnqK33//HXDPAnNkcpQbbriBM888k99+
+42GDRvy+uuv89133/Hqq69SXFxMSEgIDz/8MN26dav217o2BE2QZmdn8+CDD7Jjxw7sdjunnXYa
Tz75JLGxsaxatYoxY8ZQVFREixYtmDx5MnFxcXVdsojICRUZGcns2bNZsWIF9913H4MGDeLw4cOM
HTuW1157jSZNmrB//36uuuoq5s2bR1RUFM8++ywxMTGYpslDDz3E7Nmzufbaa732O2bMGCZOnMgn
n3zitbywsJAPPviAXbt2MXjwYC6//HIaNGjgs7bXX3+dW265hdTUVEzT9AwwP2HCBCIiIvjss8+w
WCxkZWUBMHXqVFwuF3PnziUvL49hw4bRvn17+vbtC8DOnTt57733sNls7Nixg6lTp/Lmm28SGRnJ
5s2bue2221i8eHENf4WPT9AEqWEY3HrrrfTs2ROAiRMn8uyzz/LUU08xatQonn76aZKTk5k6dSrP
PvssTz/9dB1XLCKnkqgu/arUaqxNl156KeCezHv//v0UFRWxcuVKdu3a5TXVpWEYbN++nY4dO/LW
W2/x/fff43K5OHToEGFhYdU+XsuWLYmOjmbv3r20a9fO57Y9e/bk1VdfZceOHfTu3ZuuXbsCsGjR
Ij755BMsFveZxNjYWACWLl3KI488gmEYREZGctlll7F06VJPkA4ePNgz9doPP/zAjh07uO666zzH
czgcHDhwgMaNG1f5/dSWoAnSRo0aeUIU3D8o77//PmvWrCE0NJTk5GQAhg8fzsCBAxWkInLKOTIf
qNVqBdxhYpomHTp0YObMmRW2//TTT1mxYgUzZ84kMjKSadOmsW3btmof78gxj0xB5suNN97IgAED
WLJkCePHj6d3797cf//9VT5WeeXnE73wwguZNGnSce+vNgVNkJblcrl4//33GTBgAOnp6V4TscbG
xuJyuSpMbnsscXGR1aoh2GZ/UD3+qR7/VI9/wVZPdZx99tls376dn376yTPt2OrVq+ncuTM5OTnE
xMR45vKcN28enTp1qrCPyMjISqc2q6qtW7fSpk0bWrduTUREBJ9++ikA/fv358033+Sxxx7DMAyy
srKIjY3l/PPPZ/bs2Zxzzjnk5eXx+eef8+CDD/rcd+/evXnllVfYvHkzZ5xxhuc9dunSJaCaa0pQ
Bun48eOJiIjg+uuvZ+HChTWyT02jVnNUj3+qx7/6UE99CtaGDRsydepUJk+ezIQJEygpKaFVq1ZM
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
b6sW6+mOAAAAAElFTkSuQmCC
&quot; /&gt;
&lt;/div&gt;

&lt;/div&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
    

&lt;div class=&quot;cell border-box-sizing text_cell rendered&quot;&gt;&lt;div class=&quot;inner_cell&quot;&gt;
&lt;div class=&quot;text_cell_render border-box-sizing rendered_html&quot;&gt;
&lt;p&gt;To clarify what we did here: We learned what a healthy distribution of vehicle velocity and engine oil temperature looks like based on data from vehicle 1 and applied this model to data from vehicle 2.&lt;/p&gt;
&lt;p&gt;Looking at the health score we compute for vehicle 2 we notice that our health score drops markdely between 5000 and 5500 seconds into our CAN bus trace - exactly where oil temperature spikes unhealthily.&lt;/p&gt;
&lt;p&gt;While we would need to do a lot more validation and model calibration before we could use this approach in a live environment, we can already see the potential of this approach.&lt;/p&gt;
&lt;p&gt;With this approach we can start devising data-driven products and services for smart telematics and smart maintenance applications.&lt;/p&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;</content><author><name></name></author><category term="python" /><category term="numpy" /><category term="data-driven products" /><category term="smart maintenance" /><category term="scikit-learn" /><summary type="html"></summary></entry><entry><title type="html">Multiclass classification applied to a stream of documents in Python</title><link href="https://georg.io/2014/10/10/Classifying_Wikipedia_Changes" rel="alternate" type="text/html" title="Multiclass classification applied to a stream of documents in Python" /><published>2014-10-10T00:00:00-05:00</published><updated>2014-10-10T00:00:00-05:00</updated><id>https://georg.io/2014/10/10/Classifying_Wikipedia_Changes</id><content type="html" xml:base="https://georg.io/2014/10/10/Classifying_Wikipedia_Changes">&lt;!--
#################################################
### THIS FILE WAS AUTOGENERATED! DO NOT EDIT! ###
#################################################
# file to edit: _notebooks/2014-10-10-Classifying_Wikipedia_Changes.ipynb
--&gt;

&lt;div class=&quot;container&quot; id=&quot;notebook-container&quot;&gt;
        
    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;

&lt;/div&gt;
    

&lt;div class=&quot;cell border-box-sizing text_cell rendered&quot;&gt;&lt;div class=&quot;inner_cell&quot;&gt;
&lt;div class=&quot;text_cell_render border-box-sizing rendered_html&quot;&gt;
&lt;h1 id=&quot;Classifying-Wikipedia-Changes&quot;&gt;Classifying Wikipedia Changes&lt;a class=&quot;anchor-link&quot; href=&quot;#Classifying-Wikipedia-Changes&quot;&gt; &lt;/a&gt;&lt;/h1&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;cell border-box-sizing text_cell rendered&quot;&gt;&lt;div class=&quot;inner_cell&quot;&gt;
&lt;div class=&quot;text_cell_render border-box-sizing rendered_html&quot;&gt;
&lt;p&gt;I recently joined a Kaggle competition on &lt;a href=&quot;http://www.kaggle.com/c/tradeshift-text-classification&quot;&gt;multilabel text classification&lt;/a&gt; 
and have learned a ton from basic code that one of the competitors 
&lt;a href=&quot;http://www.kaggle.com/c/tradeshift-text-classification/forums/t/10537/beat-the-benchmark-with-less-than-400mb-of-memory&quot;&gt;shared in the forums&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The code of the genereous competitor does logistic regression classification for multiple classes with stochastic gradient ascent.
It is further well-suited for online learning as it uses the hashing trick to one-hot encode boolean, string, and categorial features.&lt;/p&gt;
&lt;p&gt;To better understand these methods and tricks I here apply some of them to a multilabel problem I chose mostly for the easy access to a constant stream of training data:&lt;/p&gt;
&lt;p&gt;All recent changes on Wikipedia are tracked on &lt;a href=&quot;http://en.wikipedia.org/wiki/Special:RecentChanges&quot;&gt;this special page&lt;/a&gt;
where we can see a number of interesting features such as the length of the change, the contributor's username,
the title of the changed article, and the contributor's comment for a given change.&lt;/p&gt;
&lt;p&gt;Using the Wikipedia API to look at this stream of changes we can also see how contributors classify their changes as &lt;strong&gt;bot&lt;/strong&gt;, &lt;strong&gt;minor&lt;/strong&gt;, and &lt;strong&gt;new&lt;/strong&gt;.
Multiple label assignments are possible, so that one contribution may be classified as both bot and new.&lt;/p&gt;
&lt;p&gt;Here I will listen to this stream of changes, extract four features (length of change, comment string, username, and article title), and train three logistic regression classifiers (one for each class) to predict the likelihood of a change belonging to each one of them.
The training is done with the stochastic gradient ascent method.&lt;/p&gt;
&lt;p&gt;One caveat: I am a complete novice when it comes to most of this stuff so please take everything that follows with a grain of salt - on the same note I would be forever grateful for any feedback especially of the critical kind so that I can learn and improve.&lt;/p&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;
&lt;div class=&quot;input&quot;&gt;

&lt;div class=&quot;inner_cell&quot;&gt;
    &lt;div class=&quot;input_area&quot;&gt;
&lt;div class=&quot; highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;%&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;matplotlib&lt;/span&gt; inline
&lt;span class=&quot;kn&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;matplotlib&lt;/span&gt;
&lt;span class=&quot;kn&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;matplotlib&lt;/span&gt; &lt;span class=&quot;kn&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;pyplot&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;as&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;pt&lt;/span&gt;
&lt;span class=&quot;kn&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;requests&lt;/span&gt;
&lt;span class=&quot;kn&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;json&lt;/span&gt;
&lt;span class=&quot;kn&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;math&lt;/span&gt; &lt;span class=&quot;kn&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;log&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;exp&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;sqrt&lt;/span&gt;
&lt;span class=&quot;kn&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;datetime&lt;/span&gt; &lt;span class=&quot;kn&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;datetime&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;timedelta&lt;/span&gt;
&lt;span class=&quot;kn&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;itertools&lt;/span&gt;
&lt;span class=&quot;kn&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;collections&lt;/span&gt; &lt;span class=&quot;kn&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;defaultdict&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
    

&lt;div class=&quot;cell border-box-sizing text_cell rendered&quot;&gt;&lt;div class=&quot;inner_cell&quot;&gt;
&lt;div class=&quot;text_cell_render border-box-sizing rendered_html&quot;&gt;
&lt;p&gt;The API that Wikipedia offer to listen to the stream of recent changes is described 
&lt;a href=&quot;http://www.mediawiki.org/wiki/API:Recentchanges&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;
&lt;div class=&quot;input&quot;&gt;

&lt;div class=&quot;inner_cell&quot;&gt;
    &lt;div class=&quot;input_area&quot;&gt;
&lt;div class=&quot; highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;URL&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;http://en.wikipedia.org/w/api.php?format=json&amp;amp;action=query&amp;amp;list=recentchanges&amp;amp;rcprop=parsedcomment&amp;#39;&lt;/span&gt;
      &lt;span class=&quot;s1&quot;&gt;&amp;#39;%7Ctimestamp%7Ctitle%7Cflags%7Cids%7Csizes%7Cflags%7Cuser&amp;amp;rclimit=100&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
    

&lt;div class=&quot;cell border-box-sizing text_cell rendered&quot;&gt;&lt;div class=&quot;inner_cell&quot;&gt;
&lt;div class=&quot;text_cell_render border-box-sizing rendered_html&quot;&gt;
&lt;p&gt;The logistic regression classifier requires us to compute the dot product between a feature vector $\mathbf{x}$
and a weight vector $\mathbf{w}$.&lt;/p&gt;
&lt;p&gt;
$$\mathbf{w}^\text{T} \mathbf{x} = w_0 x_0 + w_1 x_1 + w_2 x_2 + \ldots + w_N x_N.$$
&lt;/p&gt;
&lt;p&gt;As by convention, the bias of the model is encoded with feature $x_0 = 1$ for all observations -
the only thing that will change about the $w_0 x_0$-term is weight $w_0$ upon training.
The length of the article change is tracked with numerical feature $x_1$ which equals the number of character changes
(hence $x_1$ is either positive or negative for text addition and removal respectively).&lt;/p&gt;
&lt;p&gt;As in the Kaggle code that our code is mostly based upon, string features are one-hot encoded using the
&lt;a href=&quot;https://en.wikipedia.org/wiki/Feature_hashing&quot;&gt;hashing trick&lt;/a&gt;:&lt;/p&gt;
&lt;p&gt;The string features extracted for each observed article change are username, a parse of the comment, and the title of article.
Since this is an online learning problem there is no way of knowing how many unique usernames, comment strings, and article titles
are going to be observed.&lt;/p&gt;
&lt;p&gt;With the hashing trick we decide &lt;em&gt;ab initio&lt;/em&gt; that &lt;code&gt;D_sparse&lt;/code&gt;-many unique values across these three features are sufficient to care about:
Our one-hot encoded feature space has dimension &lt;code&gt;D_sparse&lt;/code&gt; and can be represented as a &lt;code&gt;D_sparse&lt;/code&gt;-dimensional vector filled
with &lt;code&gt;0&lt;/code&gt;'s and &lt;code&gt;1&lt;/code&gt;'s (feature not present / present respectively).&lt;/p&gt;
&lt;p&gt;The &lt;em&gt;hash&lt;/em&gt; in &lt;em&gt;hashing trick&lt;/em&gt; comes from the fact that we use a hash function to convert strings to integers.
Suppose now that we chose &lt;code&gt;D_sparse = 3&lt;/code&gt; and our hash function produces
&lt;code&gt;hash(&quot;georg&quot;) = 0&lt;/code&gt;, &lt;code&gt;hash(&quot;georgwalther&quot;) = 2&lt;/code&gt;, and &lt;code&gt;hash(&quot;walther&quot;) = 3&lt;/code&gt; for three observed usernames.&lt;/p&gt;
&lt;p&gt;For username &lt;code&gt;georg&lt;/code&gt; we get feature vector $[1, 0, 0]$ and for username &lt;code&gt;georgwalther&lt;/code&gt; we get $[0, 0, 1]$.
The hash function maps username &lt;code&gt;walther&lt;/code&gt; outside our 3-dimensional feature space and to close this loop we not only
use the &lt;code&gt;hash&lt;/code&gt; function but also the &lt;code&gt;modulus&lt;/code&gt; (which defines an &lt;a href=&quot;https://en.wikipedia.org/wiki/Equivalence_relation&quot;&gt;equivalence relation&lt;/a&gt;?):&lt;/p&gt;
&lt;p&gt;&lt;code&gt;hash(&quot;georg&quot;) % D_sparse = 0&lt;/code&gt;, &lt;code&gt;hash(&quot;georgwalther&quot;) % D_sparse = 2&lt;/code&gt;, and &lt;code&gt;hash(&quot;walther&quot;) % D_sparse = 0&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;This illustrates one downside of using the hashing trick since we will now map usernames &lt;code&gt;georg&lt;/code&gt; and &lt;code&gt;walther&lt;/code&gt; to the same feature vector $[1, 0, 0]$.
We are therefore best adviced to choose a big &lt;code&gt;D_sparse&lt;/code&gt; to avoid mapping different feature values to the same one-hot-encoded feature - but probably not too big to preserve memory.&lt;/p&gt;
&lt;p&gt;For each article change observation we only map three string features into this &lt;code&gt;D_sparse&lt;/code&gt;-dimensional one-hot-encoded feature space - out of &lt;code&gt;D_sparse&lt;/code&gt;-many vector elements there will only ever be three ones among (&lt;code&gt;D_sparse&lt;/code&gt;-3) zeros (if we do not map to the same vector index multiple times).
We will therefore use sparse encoding for these feature vectors (hence the &lt;code&gt;sparse&lt;/code&gt; in &lt;code&gt;D_sparse&lt;/code&gt;).&lt;/p&gt;
&lt;p&gt;We will also normalize the length of change on the fly using
an 
&lt;a href=&quot;https://en.wikipedia.org/wiki/Algorithms_for_calculating_variance#Incremental_algorithm&quot;&gt;online algorithm for mean and variance estimation&lt;/a&gt;.&lt;/p&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;
&lt;div class=&quot;input&quot;&gt;

&lt;div class=&quot;inner_cell&quot;&gt;
    &lt;div class=&quot;input_area&quot;&gt;
&lt;div class=&quot; highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;D&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;2&lt;/span&gt;  &lt;span class=&quot;c1&quot;&gt;# number of non-sparse features&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;D_sparse&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;**&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;18&lt;/span&gt;  &lt;span class=&quot;c1&quot;&gt;# number of sparsely-encoded features&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
    

    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;
&lt;div class=&quot;input&quot;&gt;

&lt;div class=&quot;inner_cell&quot;&gt;
    &lt;div class=&quot;input_area&quot;&gt;
&lt;div class=&quot; highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;get_length_statistics&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;length&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;n&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;mean&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;M2&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;):&lt;/span&gt;
    &lt;span class=&quot;sd&quot;&gt;&amp;quot;&amp;quot;&amp;quot; https://en.wikipedia.org/wiki/Algorithms_for_calculating_variance#Incremental_algorithm &amp;quot;&amp;quot;&amp;quot;&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;n&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;+=&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;delta&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;length&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;mean&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;mean&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;+=&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;float&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;delta&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;n&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;M2&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;+=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;delta&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;length&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;mean&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
    
    &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;n&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;
        &lt;span class=&quot;k&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;mean&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mf&quot;&gt;0.&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;M2&lt;/span&gt;

    &lt;span class=&quot;n&quot;&gt;variance&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;float&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;M2&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;n&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;std&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;sqrt&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;variance&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
    &lt;span class=&quot;k&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;mean&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;std&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;M2&lt;/span&gt;

&lt;span class=&quot;k&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;get_data&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;():&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;X&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;mf&quot;&gt;1.&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mf&quot;&gt;0.&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;  &lt;span class=&quot;c1&quot;&gt;# bias term, length of edit&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;X_sparse&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;  &lt;span class=&quot;c1&quot;&gt;# hash of comment, hash of username, hash of title&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;Y&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;  &lt;span class=&quot;c1&quot;&gt;# bot, minor, new&lt;/span&gt;

    &lt;span class=&quot;n&quot;&gt;length_n&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;length_mean&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;mf&quot;&gt;0.&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;length_M2&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;mf&quot;&gt;0.&lt;/span&gt;
    
    &lt;span class=&quot;k&quot;&gt;while&lt;/span&gt; &lt;span class=&quot;kc&quot;&gt;True&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;
        &lt;span class=&quot;n&quot;&gt;r&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;requests&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;get&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;URL&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
        &lt;span class=&quot;n&quot;&gt;r_json&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;json&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;loads&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;r&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;text&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)[&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;query&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;][&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;recentchanges&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;
        &lt;span class=&quot;k&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;el&lt;/span&gt; &lt;span class=&quot;ow&quot;&gt;in&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;r_json&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;
            &lt;span class=&quot;n&quot;&gt;length&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;abs&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;el&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;newlen&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;el&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;oldlen&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;])&lt;/span&gt;
            &lt;span class=&quot;n&quot;&gt;length_n&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;+=&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;
            &lt;span class=&quot;n&quot;&gt;length_mean&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;length_std&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;length_M2&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;get_length_statistics&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;length&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;length_n&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;length_mean&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;length_M2&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
            &lt;span class=&quot;n&quot;&gt;X&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;length&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;length_mean&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;length_std&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;length_std&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;mf&quot;&gt;0.&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;length&lt;/span&gt;

            &lt;span class=&quot;n&quot;&gt;X_sparse&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;abs&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;hash&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;comment_&amp;#39;&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;el&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;parsedcomment&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]))&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;%&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;D_sparse&lt;/span&gt;
            &lt;span class=&quot;n&quot;&gt;X_sparse&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;abs&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;hash&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;username_&amp;#39;&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;el&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;user&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]))&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;%&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;D_sparse&lt;/span&gt;
            &lt;span class=&quot;n&quot;&gt;X_sparse&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;abs&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;hash&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;title_&amp;#39;&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;el&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;title&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]))&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;%&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;D_sparse&lt;/span&gt;

            &lt;span class=&quot;n&quot;&gt;Y&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;el&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;get&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;bot&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;ow&quot;&gt;is&lt;/span&gt; &lt;span class=&quot;kc&quot;&gt;None&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;
            &lt;span class=&quot;n&quot;&gt;Y&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;el&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;get&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;minor&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;ow&quot;&gt;is&lt;/span&gt; &lt;span class=&quot;kc&quot;&gt;None&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;
            &lt;span class=&quot;n&quot;&gt;Y&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;el&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;get&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;new&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;ow&quot;&gt;is&lt;/span&gt; &lt;span class=&quot;kc&quot;&gt;None&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;

            &lt;span class=&quot;k&quot;&gt;yield&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;Y&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;X&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;X_sparse&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
    

    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;
&lt;div class=&quot;input&quot;&gt;

&lt;div class=&quot;inner_cell&quot;&gt;
    &lt;div class=&quot;input_area&quot;&gt;
&lt;div class=&quot; highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;predict&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;w&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;w_sparse&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;x&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;x_sparse&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;):&lt;/span&gt;
    &lt;span class=&quot;sd&quot;&gt;&amp;quot;&amp;quot;&amp;quot; P(y = 1 | (x, x_sparse), (w, w_sparse)) &amp;quot;&amp;quot;&amp;quot;&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;wTx&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;mf&quot;&gt;0.&lt;/span&gt;
    &lt;span class=&quot;k&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;i&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;val&lt;/span&gt; &lt;span class=&quot;ow&quot;&gt;in&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;enumerate&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;x&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;):&lt;/span&gt;
        &lt;span class=&quot;n&quot;&gt;wTx&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;+=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;w&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;i&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;*&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;val&lt;/span&gt;

    &lt;span class=&quot;k&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;i&lt;/span&gt; &lt;span class=&quot;ow&quot;&gt;in&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;x_sparse&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;
        &lt;span class=&quot;n&quot;&gt;wTx&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;+=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;w_sparse&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;i&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;  &lt;span class=&quot;c1&quot;&gt;# *1 if i in x_sparse&lt;/span&gt;

    &lt;span class=&quot;k&quot;&gt;try&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;
        &lt;span class=&quot;n&quot;&gt;wTx&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;min&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;max&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;wTx&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;mf&quot;&gt;100.&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;),&lt;/span&gt; &lt;span class=&quot;mf&quot;&gt;100.&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
        &lt;span class=&quot;n&quot;&gt;res&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;mf&quot;&gt;1.&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mf&quot;&gt;1.&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;exp&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;wTx&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;))&lt;/span&gt;
    &lt;span class=&quot;k&quot;&gt;except&lt;/span&gt; &lt;span class=&quot;ne&quot;&gt;OverflowError&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;
        &lt;span class=&quot;nb&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;wTx&lt;/span&gt;
        &lt;span class=&quot;k&quot;&gt;raise&lt;/span&gt;
        
    &lt;span class=&quot;k&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;res&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
    

    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;
&lt;div class=&quot;input&quot;&gt;

&lt;div class=&quot;inner_cell&quot;&gt;
    &lt;div class=&quot;input_area&quot;&gt;
&lt;div class=&quot; highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;update&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;alpha&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;w&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;w_sparse&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;x&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;x_sparse&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;p&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;y&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;):&lt;/span&gt;
    &lt;span class=&quot;k&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;i&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;val&lt;/span&gt; &lt;span class=&quot;ow&quot;&gt;in&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;enumerate&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;x&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;):&lt;/span&gt;
        &lt;span class=&quot;n&quot;&gt;w&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;i&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;+=&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;y&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;p&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;*&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;alpha&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;*&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;val&lt;/span&gt;
    &lt;span class=&quot;k&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;i&lt;/span&gt; &lt;span class=&quot;ow&quot;&gt;in&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;x_sparse&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;
        &lt;span class=&quot;n&quot;&gt;w_sparse&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;i&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;+=&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;y&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;p&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;*&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;alpha&lt;/span&gt;  &lt;span class=&quot;c1&quot;&gt;# * feature[i] but feature[i] == 1 if i in x&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
    

    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;
&lt;div class=&quot;input&quot;&gt;

&lt;div class=&quot;inner_cell&quot;&gt;
    &lt;div class=&quot;input_area&quot;&gt;
&lt;div class=&quot; highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;K&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;3&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;w&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;[[&lt;/span&gt;&lt;span class=&quot;mf&quot;&gt;0.&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;*&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;D&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;k&lt;/span&gt; &lt;span class=&quot;ow&quot;&gt;in&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;range&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;K&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)]&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;w_sparse&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;[[&lt;/span&gt;&lt;span class=&quot;mf&quot;&gt;0.&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;*&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;D_sparse&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;k&lt;/span&gt; &lt;span class=&quot;ow&quot;&gt;in&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;range&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;K&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)]&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;predictions&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;mf&quot;&gt;0.&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;*&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;K&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;alpha&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
    

    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;
&lt;div class=&quot;input&quot;&gt;

&lt;div class=&quot;inner_cell&quot;&gt;
    &lt;div class=&quot;input_area&quot;&gt;
&lt;div class=&quot; highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;time0&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;datetime&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;now&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;training_time&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;timedelta&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;minutes&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;

&lt;span class=&quot;n&quot;&gt;ctr&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;y&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;x&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;x_sparse&lt;/span&gt; &lt;span class=&quot;ow&quot;&gt;in&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;get_data&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;():&lt;/span&gt;
    &lt;span class=&quot;k&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;k&lt;/span&gt; &lt;span class=&quot;ow&quot;&gt;in&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;range&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;K&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;):&lt;/span&gt;
        &lt;span class=&quot;n&quot;&gt;p&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;predict&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;w&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;k&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;],&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;w_sparse&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;k&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;],&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;x&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;x_sparse&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
        &lt;span class=&quot;n&quot;&gt;predictions&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;k&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;float&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;p&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
        &lt;span class=&quot;n&quot;&gt;update&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;alpha&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;w&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;k&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;],&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;w_sparse&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;k&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;],&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;x&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;x_sparse&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;p&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;y&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;k&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;])&lt;/span&gt;

    &lt;span class=&quot;n&quot;&gt;ctr&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;+=&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;
    
    &lt;span class=&quot;c1&quot;&gt;# if ctr % 10000 == 0:&lt;/span&gt;
        &lt;span class=&quot;c1&quot;&gt;# print &amp;#39;samples seen&amp;#39;, ctr&lt;/span&gt;
        &lt;span class=&quot;c1&quot;&gt;# print &amp;#39;sample&amp;#39;, y&lt;/span&gt;
        &lt;span class=&quot;c1&quot;&gt;# print &amp;#39;predicted&amp;#39;, predictions&lt;/span&gt;
        &lt;span class=&quot;c1&quot;&gt;# print &amp;#39;&amp;#39;&lt;/span&gt;

    &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;datetime&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;now&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;time0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;training_time&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;
        &lt;span class=&quot;k&quot;&gt;break&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
    

    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;
&lt;div class=&quot;input&quot;&gt;

&lt;div class=&quot;inner_cell&quot;&gt;
    &lt;div class=&quot;input_area&quot;&gt;
&lt;div class=&quot; highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;ctr&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
    

&lt;div class=&quot;cell border-box-sizing text_cell rendered&quot;&gt;&lt;div class=&quot;inner_cell&quot;&gt;
&lt;div class=&quot;text_cell_render border-box-sizing rendered_html&quot;&gt;
&lt;p&gt;As we can see, we crunched through 106,401 article changes during our ten-minute online training.&lt;/p&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;cell border-box-sizing text_cell rendered&quot;&gt;&lt;div class=&quot;inner_cell&quot;&gt;
&lt;div class=&quot;text_cell_render border-box-sizing rendered_html&quot;&gt;
&lt;p&gt;It would be fairly hard to understand the link between the &lt;code&gt;D_sparse&lt;/code&gt;-dimensional one-hot-encoded feature space and
the observed / predicted classes.
However we can still look at the influence that the length of the article change has on our classification problem&lt;/p&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;
&lt;div class=&quot;input&quot;&gt;

&lt;div class=&quot;inner_cell&quot;&gt;
    &lt;div class=&quot;input_area&quot;&gt;
&lt;div class=&quot; highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;w&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;
&lt;span class=&quot;nb&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;w&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;
&lt;span class=&quot;nb&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;w&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
    

&lt;div class=&quot;cell border-box-sizing text_cell rendered&quot;&gt;&lt;div class=&quot;inner_cell&quot;&gt;
&lt;div class=&quot;text_cell_render border-box-sizing rendered_html&quot;&gt;
&lt;p&gt;Here we can see that the weight of the length of change for class &lt;code&gt;0&lt;/code&gt; (&lt;strong&gt;bot&lt;/strong&gt;) is &lt;code&gt;-1.12&lt;/code&gt;, for class &lt;code&gt;1&lt;/code&gt; (&lt;strong&gt;minor&lt;/strong&gt;) is &lt;code&gt;-0.97&lt;/code&gt;, and for class &lt;code&gt;2&lt;/code&gt; (&lt;strong&gt;new&lt;/strong&gt;) is &lt;code&gt;2.11&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Intuitively this makes sense since many added characters (big positive change) should make classification as a &lt;strong&gt;minor&lt;/strong&gt; change
less likely and classification as a &lt;strong&gt;new&lt;/strong&gt; article more likely:
For an observed positive character count change $C$, $2.11 C$ will place us further to the right, and $-0.97 C$ further to the left along the $x$-axis of the sigmoid function:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://gaelvaroquaux.github.io/scikit-learn-tutorial/_images/logistic_regression1.png&quot; alt=&quot;img&quot; /&gt;
(from &lt;a href=&quot;http://gaelvaroquaux.github.io/scikit-learn-tutorial/supervised_learning.html#classification&quot;&gt;http://gaelvaroquaux.github.io/scikit-learn-tutorial/supervised_learning.html#classification&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;Further below we will see that the vast majority of &lt;strong&gt;bot&lt;/strong&gt; changes are classified as &lt;strong&gt;minor&lt;/strong&gt; changes hence we would expect to see correlation between the weights of this feature for these two classes.&lt;/p&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;cell border-box-sizing text_cell rendered&quot;&gt;&lt;div class=&quot;inner_cell&quot;&gt;
&lt;div class=&quot;text_cell_render border-box-sizing rendered_html&quot;&gt;
&lt;p&gt;To further evaluate our three classifiers, we observe another 10,000 Wikipedia changes and construct a confusion matrix.&lt;/p&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;
&lt;div class=&quot;input&quot;&gt;

&lt;div class=&quot;inner_cell&quot;&gt;
    &lt;div class=&quot;input_area&quot;&gt;
&lt;div class=&quot; highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;no_test&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;10000&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;test_ctr&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;

&lt;span class=&quot;n&quot;&gt;classes&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;c&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;c_i&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;c_i&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;c&lt;/span&gt; &lt;span class=&quot;ow&quot;&gt;in&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;enumerate&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;list&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;itertools&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;product&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;([&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;],&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;repeat&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)))}&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;confusion_matrix&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;[[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;j&lt;/span&gt; &lt;span class=&quot;ow&quot;&gt;in&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;range&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;len&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;classes&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;))]&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;i&lt;/span&gt; &lt;span class=&quot;ow&quot;&gt;in&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;range&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;len&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;classes&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;))]&lt;/span&gt;

&lt;span class=&quot;n&quot;&gt;predicted&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;y&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;x&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;x_sparse&lt;/span&gt; &lt;span class=&quot;ow&quot;&gt;in&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;get_data&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;():&lt;/span&gt;
    &lt;span class=&quot;k&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;k&lt;/span&gt; &lt;span class=&quot;ow&quot;&gt;in&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;range&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;K&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;):&lt;/span&gt;
        &lt;span class=&quot;n&quot;&gt;p&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;predict&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;w&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;k&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;],&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;w_sparse&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;k&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;],&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;x&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;x_sparse&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
        &lt;span class=&quot;n&quot;&gt;predicted&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;k&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;p&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;5&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;i&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;classes&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;tuple&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;y&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)]&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;j&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;classes&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;tuple&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;predicted&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)]&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;confusion_matrix&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;i&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;][&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;j&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;+=&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;test_ctr&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;+=&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;
    
    &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;test_ctr&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;no_test&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;
        &lt;span class=&quot;k&quot;&gt;break&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
    

    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;
&lt;div class=&quot;input&quot;&gt;

&lt;div class=&quot;inner_cell&quot;&gt;
    &lt;div class=&quot;input_area&quot;&gt;
&lt;div class=&quot; highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;matplotlib&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;rcParams&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;font.size&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;15&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;fig&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;pt&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;figure&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;figsize&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;11&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;11&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;))&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;pt&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;clf&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;ax&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;fig&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;add_subplot&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;111&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;ax&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;set_aspect&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;res&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;ax&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;imshow&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;confusion_matrix&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;cmap&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;pt&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;cm&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;jet&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;interpolation&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;nearest&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;cb&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;fig&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;colorbar&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;res&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;labels&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;[{&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;v&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;k&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;k&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;v&lt;/span&gt; &lt;span class=&quot;ow&quot;&gt;in&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;classes&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;iteritems&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()}[&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;i&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;i&lt;/span&gt; &lt;span class=&quot;ow&quot;&gt;in&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;range&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;len&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;classes&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;))]&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;pt&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;xticks&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;range&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;len&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;classes&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)),&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;labels&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;pt&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;yticks&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;range&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;len&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;classes&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)),&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;labels&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;pt&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;show&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
    

&lt;div class=&quot;cell border-box-sizing text_cell rendered&quot;&gt;&lt;div class=&quot;inner_cell&quot;&gt;
&lt;div class=&quot;text_cell_render border-box-sizing rendered_html&quot;&gt;
&lt;p&gt;The confusion matrix shows actual classes along the vertical and predicted classes along the horizontal axis.&lt;/p&gt;
&lt;p&gt;The vast majority of observed classes are $(0, 0, 0)$ and our classifiers get most of these right except that some
are misclassified as $(0, 0, 1)$ and $(0, 1, 0)$.&lt;/p&gt;
&lt;p&gt;All observed bot-related changes (classes starting with a $1$) are $(1, 1, 0)$ (i.e. minor bot-effected changes) and
our classifiers get all of those right.&lt;/p&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;</content><author><name></name></author><category term="python" /><category term="scikit-learn" /><category term="nlp" /><summary type="html"></summary></entry><entry><title type="html">Linkage discovery between scientific articles in Python and with graphs</title><link href="https://georg.io/2014/03/22/PLOS_Biology-Inspired_PLOS_Biology" rel="alternate" type="text/html" title="Linkage discovery between scientific articles in Python and with graphs" /><published>2014-03-22T00:00:00-05:00</published><updated>2014-03-22T00:00:00-05:00</updated><id>https://georg.io/2014/03/22/PLOS_Biology-Inspired_PLOS_Biology</id><content type="html" xml:base="https://georg.io/2014/03/22/PLOS_Biology-Inspired_PLOS_Biology">&lt;!--
#################################################
### THIS FILE WAS AUTOGENERATED! DO NOT EDIT! ###
#################################################
# file to edit: _notebooks/2014-03-22-PLOS_Biology-Inspired_PLOS_Biology.ipynb
--&gt;

&lt;div class=&quot;container&quot; id=&quot;notebook-container&quot;&gt;
        
    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;

&lt;/div&gt;
    

&lt;div class=&quot;cell border-box-sizing text_cell rendered&quot;&gt;&lt;div class=&quot;inner_cell&quot;&gt;
&lt;div class=&quot;text_cell_render border-box-sizing rendered_html&quot;&gt;
&lt;h1 id=&quot;PLOS-Biology-Inspired-PLOS-Biology-Articles&quot;&gt;PLOS Biology-Inspired PLOS Biology Articles&lt;a class=&quot;anchor-link&quot; href=&quot;#PLOS-Biology-Inspired-PLOS-Biology-Articles&quot;&gt; &lt;/a&gt;&lt;/h1&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;cell border-box-sizing text_cell rendered&quot;&gt;&lt;div class=&quot;inner_cell&quot;&gt;
&lt;div class=&quot;text_cell_render border-box-sizing rendered_html&quot;&gt;
&lt;p&gt;This past week I had my first encounter with the concept of &lt;a href=&quot;https://en.wikipedia.org/wiki/Graph_database&quot;&gt;graph databases&lt;/a&gt;
which lend themselves perfectly to modeling and capturing linked data.&lt;/p&gt;
&lt;p&gt;I started reading the free and brilliant book &lt;a href=&quot;http://www.graphdatabases.com/&quot;&gt;Graph Databases&lt;/a&gt; by Robinson, Webber, and Eifrem and
began playing around with &lt;a href=&quot;http://bulbflow.com/&quot;&gt;Python bulbs&lt;/a&gt; by James Thornton.&lt;/p&gt;
&lt;p&gt;I further took the data set of 1754 PLOS Biology articles that I have examined on this blog multiple times and created a
&lt;a href=&quot;https://github.com/tinkerpop/rexster/wiki&quot;&gt;Rexster&lt;/a&gt;-based graph database from them.
Apart from the obvious authors, DOIs, and titles I also extracted references to other PLOS Biology articles.&lt;/p&gt;
&lt;p&gt;In this blog post I will examine these links between PLOS Biology articles.&lt;/p&gt;
&lt;p&gt;Let us first take a look at my database to get an idea of what this looks like.&lt;/p&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;
&lt;div class=&quot;input&quot;&gt;

&lt;div class=&quot;inner_cell&quot;&gt;
    &lt;div class=&quot;input_area&quot;&gt;
&lt;div class=&quot; highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;%&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;matplotlib&lt;/span&gt; inline
&lt;span class=&quot;kn&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;matplotlib&lt;/span&gt; &lt;span class=&quot;kn&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;pyplot&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
    

    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;
&lt;div class=&quot;input&quot;&gt;

&lt;div class=&quot;inner_cell&quot;&gt;
    &lt;div class=&quot;input_area&quot;&gt;
&lt;div class=&quot; highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;kn&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;bulbs.rexster&lt;/span&gt; &lt;span class=&quot;kn&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;Graph&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;Config&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;REXSTER_URI&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
    

    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;
&lt;div class=&quot;input&quot;&gt;

&lt;div class=&quot;inner_cell&quot;&gt;
    &lt;div class=&quot;input_area&quot;&gt;
&lt;div class=&quot; highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;REXSTER_URI&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&amp;#39;http://localhost:8182/graphs/plos&amp;#39;&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;config&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;Config&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;REXSTER_URI&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
    

    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;
&lt;div class=&quot;input&quot;&gt;

&lt;div class=&quot;inner_cell&quot;&gt;
    &lt;div class=&quot;input_area&quot;&gt;
&lt;div class=&quot; highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;g&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;Graph&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;config&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
    

&lt;div class=&quot;cell border-box-sizing text_cell rendered&quot;&gt;&lt;div class=&quot;inner_cell&quot;&gt;
&lt;div class=&quot;text_cell_render border-box-sizing rendered_html&quot;&gt;
&lt;p&gt;The label &lt;code&gt;g&lt;/code&gt; now holds a reference to our graph database.&lt;/p&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;cell border-box-sizing text_cell rendered&quot;&gt;&lt;div class=&quot;inner_cell&quot;&gt;
&lt;div class=&quot;text_cell_render border-box-sizing rendered_html&quot;&gt;
&lt;p&gt;Python bulbs allows us to define classes for our data model which is something I did when creating this graph database in the first place.
These are the node (vertex) types and edge (relationship) types I defined:&lt;/p&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;
&lt;div class=&quot;input&quot;&gt;

&lt;div class=&quot;inner_cell&quot;&gt;
    &lt;div class=&quot;input_area&quot;&gt;
&lt;div class=&quot; highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;c1&quot;&gt;# Bulbs Models&lt;/span&gt;
&lt;span class=&quot;kn&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;bulbs.model&lt;/span&gt; &lt;span class=&quot;kn&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;Node&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;Relationship&lt;/span&gt;
&lt;span class=&quot;kn&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;bulbs.property&lt;/span&gt; &lt;span class=&quot;kn&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;String&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;Integer&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;DateTime&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;List&lt;/span&gt;

&lt;span class=&quot;k&quot;&gt;class&lt;/span&gt; &lt;span class=&quot;nc&quot;&gt;Author&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;Node&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;):&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;element_type&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&amp;#39;author&amp;#39;&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;name&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;String&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;nullable&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;kc&quot;&gt;False&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
    
&lt;span class=&quot;k&quot;&gt;class&lt;/span&gt; &lt;span class=&quot;nc&quot;&gt;Article&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;Node&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;):&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;element_type&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&amp;#39;article&amp;#39;&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;title&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;String&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;nullable&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;kc&quot;&gt;False&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;published&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;DateTime&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;doi&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;String&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;
    
&lt;span class=&quot;k&quot;&gt;class&lt;/span&gt; &lt;span class=&quot;nc&quot;&gt;Authorship&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;Relationship&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;):&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;label&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&amp;#39;authored&amp;#39;&lt;/span&gt;

&lt;span class=&quot;k&quot;&gt;class&lt;/span&gt; &lt;span class=&quot;nc&quot;&gt;Citation&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;Relationship&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;):&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;label&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&amp;#39;cites&amp;#39;&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;reference_count&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;Integer&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;nullable&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;kc&quot;&gt;False&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;tag&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;String&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
    

&lt;div class=&quot;cell border-box-sizing text_cell rendered&quot;&gt;&lt;div class=&quot;inner_cell&quot;&gt;
&lt;div class=&quot;text_cell_render border-box-sizing rendered_html&quot;&gt;
&lt;p&gt;This is a very basic model of PLOS Biology articles that captures nothing more than authorship (edges between authors and articles) and
citations (edges between articles).&lt;/p&gt;
&lt;p&gt;Some of these concepts can and should probably be decorated further: for instance &lt;code&gt;Authorship&lt;/code&gt; edges could include author contributions (as provided at the bottom of most PLOS Biology articles).&lt;/p&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;
&lt;div class=&quot;input&quot;&gt;

&lt;div class=&quot;inner_cell&quot;&gt;
    &lt;div class=&quot;input_area&quot;&gt;
&lt;div class=&quot; highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;g&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;add_proxy&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;authors&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;Author&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;g&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;add_proxy&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;articles&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;Article&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;g&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;add_proxy&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;authored&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;Authorship&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;g&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;add_proxy&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;cites&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;Citation&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
    

&lt;div class=&quot;cell border-box-sizing text_cell rendered&quot;&gt;&lt;div class=&quot;inner_cell&quot;&gt;
&lt;div class=&quot;text_cell_render border-box-sizing rendered_html&quot;&gt;
&lt;p&gt;Usually we would use Rexster/Bulbs-builtin functions that rely on some internal index but since that index seems to be broken for me right now
I will simply collect all nodes and edges by hand and create Python dictionaries as indeces.&lt;/p&gt;
&lt;p&gt;This is okay here to do since our database is very small but would likely be prohibitive for anything marginally bigger.&lt;/p&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;
&lt;div class=&quot;input&quot;&gt;

&lt;div class=&quot;inner_cell&quot;&gt;
    &lt;div class=&quot;input_area&quot;&gt;
&lt;div class=&quot; highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;nodes&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;g&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;V&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;edges&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;g&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;E&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
    

    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;
&lt;div class=&quot;input&quot;&gt;

&lt;div class=&quot;inner_cell&quot;&gt;
    &lt;div class=&quot;input_area&quot;&gt;
&lt;div class=&quot; highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;authors&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;n&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;n&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;n&lt;/span&gt; &lt;span class=&quot;ow&quot;&gt;in&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;nodes&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;n&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;element_type&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&amp;#39;author&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
    

    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;
&lt;div class=&quot;input&quot;&gt;

&lt;div class=&quot;inner_cell&quot;&gt;
    &lt;div class=&quot;input_area&quot;&gt;
&lt;div class=&quot; highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;authors&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;keys&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()[:&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;div class=&quot;output_wrapper&quot;&gt;
&lt;div class=&quot;output&quot;&gt;

&lt;div class=&quot;output_area&quot;&gt;



&lt;div class=&quot;output_text output_subarea output_execute_result&quot;&gt;
&lt;pre&gt;[u&amp;#39;Shuguang Zhang&amp;#39;,
 u&amp;#39;Ernst Hafen&amp;#39;,
 u&amp;#39;Maren Brockmeyer&amp;#39;,
 u&amp;#39;Bruno Eschli&amp;#39;,
 u&amp;#39;David B. Gurevich&amp;#39;,
 u&amp;#39;Michael Lynch&amp;#39;,
 u&amp;#39;Alejandro Valbuena&amp;#39;,
 u&amp;#39;Claudia Rutte&amp;#39;,
 u&amp;#39;Matthew M Wyatt&amp;#39;,
 u&amp;#39;Brianna B. Williams&amp;#39;]&lt;/pre&gt;
&lt;/div&gt;

&lt;/div&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
    

    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;
&lt;div class=&quot;input&quot;&gt;

&lt;div class=&quot;inner_cell&quot;&gt;
    &lt;div class=&quot;input_area&quot;&gt;
&lt;div class=&quot; highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;articles&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;n&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;doi&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;n&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;n&lt;/span&gt; &lt;span class=&quot;ow&quot;&gt;in&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;nodes&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;n&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;element_type&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&amp;#39;article&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
    

    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;
&lt;div class=&quot;input&quot;&gt;

&lt;div class=&quot;inner_cell&quot;&gt;
    &lt;div class=&quot;input_area&quot;&gt;
&lt;div class=&quot; highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;articles&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;keys&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()[:&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;div class=&quot;output_wrapper&quot;&gt;
&lt;div class=&quot;output&quot;&gt;

&lt;div class=&quot;output_area&quot;&gt;



&lt;div class=&quot;output_text output_subarea output_execute_result&quot;&gt;
&lt;pre&gt;[u&amp;#39;10.1371/journal.pbio.0040216&amp;#39;,
 u&amp;#39;10.1371/journal.pbio.0040215&amp;#39;,
 u&amp;#39;10.1371/journal.pbio.0040210&amp;#39;,
 u&amp;#39;10.1371/journal.pbio.0040368&amp;#39;,
 u&amp;#39;10.1371/journal.pbio.0040369&amp;#39;,
 u&amp;#39;10.1371/journal.pbio.0040362&amp;#39;,
 u&amp;#39;10.1371/journal.pbio.0040363&amp;#39;,
 u&amp;#39;10.1371/journal.pbio.0040360&amp;#39;,
 u&amp;#39;10.1371/journal.pbio.0020275&amp;#39;,
 u&amp;#39;10.1371/journal.pbio.0040366&amp;#39;]&lt;/pre&gt;
&lt;/div&gt;

&lt;/div&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
    

&lt;div class=&quot;cell border-box-sizing text_cell rendered&quot;&gt;&lt;div class=&quot;inner_cell&quot;&gt;
&lt;div class=&quot;text_cell_render border-box-sizing rendered_html&quot;&gt;
&lt;p&gt;Let us now do a brief sanity check and count the number of PLOS Biology articles in our data set (this should equal 1754).&lt;/p&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;
&lt;div class=&quot;input&quot;&gt;

&lt;div class=&quot;inner_cell&quot;&gt;
    &lt;div class=&quot;input_area&quot;&gt;
&lt;div class=&quot; highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;len&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;articles&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;keys&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;())&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;div class=&quot;output_wrapper&quot;&gt;
&lt;div class=&quot;output&quot;&gt;

&lt;div class=&quot;output_area&quot;&gt;



&lt;div class=&quot;output_text output_subarea output_execute_result&quot;&gt;
&lt;pre&gt;1754&lt;/pre&gt;
&lt;/div&gt;

&lt;/div&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
    

&lt;div class=&quot;cell border-box-sizing text_cell rendered&quot;&gt;&lt;div class=&quot;inner_cell&quot;&gt;
&lt;div class=&quot;text_cell_render border-box-sizing rendered_html&quot;&gt;
&lt;p&gt;Let us now pick an article at random and see how this article is connected to the remainder of the graph.&lt;/p&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;
&lt;div class=&quot;input&quot;&gt;

&lt;div class=&quot;inner_cell&quot;&gt;
    &lt;div class=&quot;input_area&quot;&gt;
&lt;div class=&quot; highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;article&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;articles&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;10.1371/journal.pbio.1000584&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
    

&lt;div class=&quot;cell border-box-sizing text_cell rendered&quot;&gt;&lt;div class=&quot;inner_cell&quot;&gt;
&lt;div class=&quot;text_cell_render border-box-sizing rendered_html&quot;&gt;
&lt;p&gt;This is the title of &lt;code&gt;article&lt;/code&gt;:&lt;/p&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;
&lt;div class=&quot;input&quot;&gt;

&lt;div class=&quot;inner_cell&quot;&gt;
    &lt;div class=&quot;input_area&quot;&gt;
&lt;div class=&quot; highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;article&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;title&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;div class=&quot;output_wrapper&quot;&gt;
&lt;div class=&quot;output&quot;&gt;

&lt;div class=&quot;output_area&quot;&gt;



&lt;div class=&quot;output_text output_subarea output_execute_result&quot;&gt;
&lt;pre&gt;u&amp;#39;Clusters of Temporal Discordances Reveal Distinct Embryonic Patterning Mechanisms in Drosophila and Anopheles&amp;#39;&lt;/pre&gt;
&lt;/div&gt;

&lt;/div&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
    

&lt;div class=&quot;cell border-box-sizing text_cell rendered&quot;&gt;&lt;div class=&quot;inner_cell&quot;&gt;
&lt;div class=&quot;text_cell_render border-box-sizing rendered_html&quot;&gt;
&lt;p&gt;These are the edges pointing to this article:&lt;/p&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;
&lt;div class=&quot;input&quot;&gt;

&lt;div class=&quot;inner_cell&quot;&gt;
    &lt;div class=&quot;input_area&quot;&gt;
&lt;div class=&quot; highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;list&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;article&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;inE&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;())&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;div class=&quot;output_wrapper&quot;&gt;
&lt;div class=&quot;output&quot;&gt;

&lt;div class=&quot;output_area&quot;&gt;



&lt;div class=&quot;output_text output_subarea output_execute_result&quot;&gt;
&lt;pre&gt;[&amp;lt;Authorship: http://localhost:8182/graphs/plos/edges/21895&amp;gt;,
 &amp;lt;Authorship: http://localhost:8182/graphs/plos/edges/21893&amp;gt;,
 &amp;lt;Authorship: http://localhost:8182/graphs/plos/edges/21891&amp;gt;]&lt;/pre&gt;
&lt;/div&gt;

&lt;/div&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
    

&lt;div class=&quot;cell border-box-sizing text_cell rendered&quot;&gt;&lt;div class=&quot;inner_cell&quot;&gt;
&lt;div class=&quot;text_cell_render border-box-sizing rendered_html&quot;&gt;
&lt;p&gt;There are three &lt;code&gt;Authorship&lt;/code&gt; edges that point to this specific article.&lt;/p&gt;
&lt;p&gt;To get the node at the &lt;em&gt;base&lt;/em&gt; of a directed edge we can either query &lt;code&gt;article.inE().inV()&lt;/code&gt; (i.e. the &lt;em&gt;in-node&lt;/em&gt; of this edge)
or simply ask for the &lt;em&gt;in-node&lt;/em&gt; of the &lt;code&gt;article&lt;/code&gt; node straight away - this should be equivalent!&lt;/p&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;
&lt;div class=&quot;input&quot;&gt;

&lt;div class=&quot;inner_cell&quot;&gt;
    &lt;div class=&quot;input_area&quot;&gt;
&lt;div class=&quot; highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;author&lt;/span&gt; &lt;span class=&quot;ow&quot;&gt;in&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;article&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;inV&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;():&lt;/span&gt;
    &lt;span class=&quot;nb&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;author&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;name&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;div class=&quot;output_wrapper&quot;&gt;
&lt;div class=&quot;output&quot;&gt;

&lt;div class=&quot;output_area&quot;&gt;

&lt;div class=&quot;output_subarea output_stream output_stdout output_text&quot;&gt;
&lt;pre&gt;Yury Goltsev
Michael Levine
Dmitri Papatsenko
&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
    

&lt;div class=&quot;cell border-box-sizing text_cell rendered&quot;&gt;&lt;div class=&quot;inner_cell&quot;&gt;
&lt;div class=&quot;text_cell_render border-box-sizing rendered_html&quot;&gt;
&lt;p&gt;A quick check online confirms that these are indeed the authors of &lt;code&gt;article&lt;/code&gt;.&lt;/p&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;cell border-box-sizing text_cell rendered&quot;&gt;&lt;div class=&quot;inner_cell&quot;&gt;
&lt;div class=&quot;text_cell_render border-box-sizing rendered_html&quot;&gt;
&lt;p&gt;As I mentioned above, I also collected all references to other PLOS Biology articles in my data set and modeled those as &lt;code&gt;Citation&lt;/code&gt; relationships (edges) between articles.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;article&lt;/code&gt; we are currently looking at has one such out-edge to another PLOS Biology article:&lt;/p&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;
&lt;div class=&quot;input&quot;&gt;

&lt;div class=&quot;inner_cell&quot;&gt;
    &lt;div class=&quot;input_area&quot;&gt;
&lt;div class=&quot; highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;list&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;article&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;outE&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;())&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;div class=&quot;output_wrapper&quot;&gt;
&lt;div class=&quot;output&quot;&gt;

&lt;div class=&quot;output_area&quot;&gt;



&lt;div class=&quot;output_text output_subarea output_execute_result&quot;&gt;
&lt;pre&gt;[&amp;lt;Citation: http://localhost:8182/graphs/plos/edges/29290&amp;gt;]&lt;/pre&gt;
&lt;/div&gt;

&lt;/div&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
    

    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;
&lt;div class=&quot;input&quot;&gt;

&lt;div class=&quot;inner_cell&quot;&gt;
    &lt;div class=&quot;input_area&quot;&gt;
&lt;div class=&quot; highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;citation&lt;/span&gt; &lt;span class=&quot;ow&quot;&gt;in&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;article&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;outV&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;():&lt;/span&gt;
    &lt;span class=&quot;nb&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;citation&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;title&lt;/span&gt;
    &lt;span class=&quot;nb&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;n&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;name&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;n&lt;/span&gt; &lt;span class=&quot;ow&quot;&gt;in&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;citation&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;inV&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;n&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;element_type&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&amp;#39;author&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;
    &lt;span class=&quot;nb&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;citation&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;doi&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;div class=&quot;output_wrapper&quot;&gt;
&lt;div class=&quot;output&quot;&gt;

&lt;div class=&quot;output_area&quot;&gt;

&lt;div class=&quot;output_subarea output_stream output_stdout output_text&quot;&gt;
&lt;pre&gt;The Cell Cycle–Regulated Genes of Schizosaccharomyces pombe
[u&amp;#39;Saumyadipta Pyne&amp;#39;, u&amp;#39;Janet Leatherwood&amp;#39;, u&amp;#39;Anna Oliva&amp;#39;, u&amp;#39;Bruce Futcher&amp;#39;, u&amp;#39;Adam Rosebrock&amp;#39;, u&amp;#39;Steve Skiena&amp;#39;, u&amp;#39;Francisco Ferrezuelo&amp;#39;, u&amp;#39;Haiying Chen&amp;#39;]
10.1371/journal.pbio.0030225
&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
    

&lt;div class=&quot;cell border-box-sizing text_cell rendered&quot;&gt;&lt;div class=&quot;inner_cell&quot;&gt;
&lt;div class=&quot;text_cell_render border-box-sizing rendered_html&quot;&gt;
&lt;p&gt;As you can see above, querying our database for the authors of the PLOS Biology article that our current article (&lt;code&gt;article&lt;/code&gt;) cites is simple.&lt;/p&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;cell border-box-sizing text_cell rendered&quot;&gt;&lt;div class=&quot;inner_cell&quot;&gt;
&lt;div class=&quot;text_cell_render border-box-sizing rendered_html&quot;&gt;
&lt;p&gt;How many PLOS Biology articles in our data set of 1754 articles cite other PLOS Biology articles?&lt;/p&gt;
&lt;p&gt;(caveat: this only represents those citations that I detected when parsing my set of articles)&lt;/p&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;
&lt;div class=&quot;input&quot;&gt;

&lt;div class=&quot;inner_cell&quot;&gt;
    &lt;div class=&quot;input_area&quot;&gt;
&lt;div class=&quot; highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;sum&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;n&lt;/span&gt; &lt;span class=&quot;ow&quot;&gt;in&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;nodes&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;n&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;element_type&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&amp;#39;article&amp;#39;&lt;/span&gt; &lt;span class=&quot;ow&quot;&gt;and&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;n&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;outV&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;div class=&quot;output_wrapper&quot;&gt;
&lt;div class=&quot;output&quot;&gt;

&lt;div class=&quot;output_area&quot;&gt;



&lt;div class=&quot;output_text output_subarea output_execute_result&quot;&gt;
&lt;pre&gt;526&lt;/pre&gt;
&lt;/div&gt;

&lt;/div&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
    

&lt;div class=&quot;cell border-box-sizing text_cell rendered&quot;&gt;&lt;div class=&quot;inner_cell&quot;&gt;
&lt;div class=&quot;text_cell_render border-box-sizing rendered_html&quot;&gt;
&lt;p&gt;I did not only extract citation edges between PLOS Biology articles but also counted how often such a citation occurs in the body of the article.&lt;/p&gt;
&lt;p&gt;For our &lt;code&gt;article&lt;/code&gt; and its one cited PLOS Biology article I counted:&lt;/p&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;
&lt;div class=&quot;input&quot;&gt;

&lt;div class=&quot;inner_cell&quot;&gt;
    &lt;div class=&quot;input_area&quot;&gt;
&lt;div class=&quot; highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;citation&lt;/span&gt; &lt;span class=&quot;ow&quot;&gt;in&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;article&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;outE&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;():&lt;/span&gt;
    &lt;span class=&quot;nb&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;citation&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;reference_count&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;div class=&quot;output_wrapper&quot;&gt;
&lt;div class=&quot;output&quot;&gt;

&lt;div class=&quot;output_area&quot;&gt;

&lt;div class=&quot;output_subarea output_stream output_stdout output_text&quot;&gt;
&lt;pre&gt;2
&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
    

&lt;div class=&quot;cell border-box-sizing text_cell rendered&quot;&gt;&lt;div class=&quot;inner_cell&quot;&gt;
&lt;div class=&quot;text_cell_render border-box-sizing rendered_html&quot;&gt;
&lt;p&gt;Just to verify this, look up &lt;code&gt;article&lt;/code&gt; online (DOI = 10.1371/journal.pbio.0030225) and look for reference &lt;em&gt;[4]&lt;/em&gt; which corresponds to this one cited PLOS Biology article.&lt;/p&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;cell border-box-sizing text_cell rendered&quot;&gt;&lt;div class=&quot;inner_cell&quot;&gt;
&lt;div class=&quot;text_cell_render border-box-sizing rendered_html&quot;&gt;
&lt;p&gt;Let us now take a look at the observed distribution of how often cited PLOS Biology articles are referenced in the main text of the citing PLOS Biology article.&lt;/p&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;
&lt;div class=&quot;input&quot;&gt;

&lt;div class=&quot;inner_cell&quot;&gt;
    &lt;div class=&quot;input_area&quot;&gt;
&lt;div class=&quot; highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;citation_counts&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;[]&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;doi&lt;/span&gt; &lt;span class=&quot;ow&quot;&gt;in&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;articles&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;keys&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;():&lt;/span&gt;
    &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;articles&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;doi&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;outE&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;():&lt;/span&gt;
        &lt;span class=&quot;k&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;e&lt;/span&gt; &lt;span class=&quot;ow&quot;&gt;in&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;articles&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;doi&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;outE&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;():&lt;/span&gt;
            &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;e&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;label&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&amp;#39;cites&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;
                &lt;span class=&quot;n&quot;&gt;citation_counts&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;append&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;e&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;reference_count&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
    

    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;
&lt;div class=&quot;input&quot;&gt;

&lt;div class=&quot;inner_cell&quot;&gt;
    &lt;div class=&quot;input_area&quot;&gt;
&lt;div class=&quot; highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;pyplot&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;hist&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;citation_counts&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;bins&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;range&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;20&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;))&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;pyplot&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;xlabel&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;number of times cited&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;pyplot&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;ylabel&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;count&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;div class=&quot;output_wrapper&quot;&gt;
&lt;div class=&quot;output&quot;&gt;

&lt;div class=&quot;output_area&quot;&gt;



&lt;div class=&quot;output_text output_subarea output_execute_result&quot;&gt;
&lt;pre&gt;&amp;lt;matplotlib.text.Text at 0x9a293d0&amp;gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;/div&gt;

&lt;div class=&quot;output_area&quot;&gt;



&lt;div class=&quot;output_png output_subarea &quot;&gt;
&lt;img src=&quot;data:image/png;base64,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
&quot; /&gt;
&lt;/div&gt;

&lt;/div&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
    

&lt;div class=&quot;cell border-box-sizing text_cell rendered&quot;&gt;&lt;div class=&quot;inner_cell&quot;&gt;
&lt;div class=&quot;text_cell_render border-box-sizing rendered_html&quot;&gt;
&lt;p&gt;This histogram has a surprisingly long tail. Let us take a look at some of the bigger values to see if these make sense.&lt;/p&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;
&lt;div class=&quot;input&quot;&gt;

&lt;div class=&quot;inner_cell&quot;&gt;
    &lt;div class=&quot;input_area&quot;&gt;
&lt;div class=&quot; highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;article_pp&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;article&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;):&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;authors&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;unicode&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;, &amp;#39;&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;join&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;([&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;n&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;name&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;n&lt;/span&gt; &lt;span class=&quot;ow&quot;&gt;in&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;article&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;inV&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;n&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;element_type&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&amp;#39;author&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]))&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;s&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;Title: &lt;/span&gt;&lt;span class=&quot;si&quot;&gt;%s&lt;/span&gt;&lt;span class=&quot;se&quot;&gt;\n&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;&lt;/span&gt;
        &lt;span class=&quot;s1&quot;&gt;&amp;#39;Authors: &lt;/span&gt;&lt;span class=&quot;si&quot;&gt;%s&lt;/span&gt;&lt;span class=&quot;se&quot;&gt;\n&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;&lt;/span&gt;
        &lt;span class=&quot;s1&quot;&gt;&amp;#39;DOI: &lt;/span&gt;&lt;span class=&quot;si&quot;&gt;%s&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;%&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;article&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;title&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;authors&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;article&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;doi&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;))&lt;/span&gt;
    
    &lt;span class=&quot;k&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;s&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
    

    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;
&lt;div class=&quot;input&quot;&gt;

&lt;div class=&quot;inner_cell&quot;&gt;
    &lt;div class=&quot;input_area&quot;&gt;
&lt;div class=&quot; highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;edge&lt;/span&gt; &lt;span class=&quot;ow&quot;&gt;in&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;edges&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;
    &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;edge&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;label&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&amp;#39;cites&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;
        &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;edge&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;reference_count&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;gt;=&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;21&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;
            &lt;span class=&quot;nb&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;Citer:&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
            &lt;span class=&quot;nb&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;article_pp&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;edge&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;outV&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()))&lt;/span&gt;
            &lt;span class=&quot;nb&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
            &lt;span class=&quot;nb&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;Citee&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
            &lt;span class=&quot;nb&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;article_pp&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;edge&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;inV&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()))&lt;/span&gt;
            &lt;span class=&quot;nb&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
            &lt;span class=&quot;nb&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;Citer cites citee &lt;/span&gt;&lt;span class=&quot;si&quot;&gt;%d&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt; times.&amp;#39;&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;%&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;edge&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;reference_count&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
            &lt;span class=&quot;nb&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;-----------------------------------------------------&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;div class=&quot;output_wrapper&quot;&gt;
&lt;div class=&quot;output&quot;&gt;

&lt;div class=&quot;output_area&quot;&gt;

&lt;div class=&quot;output_subarea output_stream output_stdout output_text&quot;&gt;
&lt;pre&gt;Citer:
Title: A Feedback Loop between Dynamin and Actin Recruitment during Clathrin-Mediated Endocytosis
Authors: Marko Lampe, Christien J. Merrifield, Marcus J. Taylor
DOI: 10.1371/journal.pbio.1001302

Citee
Title: A High Precision Survey of the Molecular Dynamics of Mammalian Clathrin-Mediated Endocytosis
Authors: Marcus J. Taylor, David Perrais, Christien J. Merrifield
DOI: 10.1371/journal.pbio.1000604

Citer cites citee 21 times.
-----------------------------------------------------
Citer:
Title: H2A.Z-Mediated Localization of Genes at the Nuclear Periphery Confers Epigenetic Memory of Previous Transcriptional State 
Authors: Yvonne Fondufe-Mittendorf, Sara Ahmed, Jason H Brickner, Donna Garvey Brickner, Jonathan Widom, Ivelisse Cajigas, Pei-Chih Lee
DOI: 10.1371/journal.pbio.0050081

Citee
Title: Gene Recruitment of the Activated INO1 Locus to the Nuclear Membrane
Authors: Peter Walter, Jason H Brickner
DOI: 10.1371/journal.pbio.0020342

Citer cites citee 21 times.
-----------------------------------------------------
&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
    

&lt;div class=&quot;cell border-box-sizing text_cell rendered&quot;&gt;&lt;div class=&quot;inner_cell&quot;&gt;
&lt;div class=&quot;text_cell_render border-box-sizing rendered_html&quot;&gt;
&lt;p&gt;Checking these by hand we verify that our counts are correct.&lt;/p&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;cell border-box-sizing text_cell rendered&quot;&gt;&lt;div class=&quot;inner_cell&quot;&gt;
&lt;div class=&quot;text_cell_render border-box-sizing rendered_html&quot;&gt;
&lt;p&gt;I think it is sensible to postulate that the more often one article cites another one, the more heavily the work presented in the &lt;em&gt;citer&lt;/em&gt; was influenced by the &lt;em&gt;citee&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;There is certainly some cut-off at which &lt;em&gt;importance&lt;/em&gt; stops increasing - my point is simply that citing another article multiple times in your manuscript probably means that you are basing your work at least partially on the article you cite.&lt;/p&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;cell border-box-sizing text_cell rendered&quot;&gt;&lt;div class=&quot;inner_cell&quot;&gt;
&lt;div class=&quot;text_cell_render border-box-sizing rendered_html&quot;&gt;
&lt;p&gt;In the above list we can already see that one article titled &lt;em&gt;A sex-ratio Meiotic Drive System in Drosophila simulans. II: An X-linked Distorter&lt;/em&gt; is a clear follow-up to the article titled &lt;em&gt;A sex-ratio Meiotic Drive System in Drosophila simulans. I: An Autosomal Suppressor&lt;/em&gt;.&lt;/p&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;cell border-box-sizing text_cell rendered&quot;&gt;&lt;div class=&quot;inner_cell&quot;&gt;
&lt;div class=&quot;text_cell_render border-box-sizing rendered_html&quot;&gt;
&lt;p&gt;One question I am interested in is: How inspired are authors by their own work (generally &lt;em&gt;very inspired&lt;/em&gt; I would presume), and how inspiring are articles to a completely different group of authors?&lt;/p&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;cell border-box-sizing text_cell rendered&quot;&gt;&lt;div class=&quot;inner_cell&quot;&gt;
&lt;div class=&quot;text_cell_render border-box-sizing rendered_html&quot;&gt;
&lt;p&gt;In my opinion, if one group of authors inspires a completely different group of authors to carry out scientific work (be it to follw up, refute, or whatever) then that defines &lt;em&gt;knowledge transfer&lt;/em&gt; and a point at which scientific knowledge really becomes worth the time and resources it cost to produce this knowledge in the first place.&lt;/p&gt;
&lt;p&gt;(I am certain this statement can be refined further but roughly speaking this is what I think)&lt;/p&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;cell border-box-sizing text_cell rendered&quot;&gt;&lt;div class=&quot;inner_cell&quot;&gt;
&lt;div class=&quot;text_cell_render border-box-sizing rendered_html&quot;&gt;
&lt;p&gt;Let us redo the above histogram but exclude all cited PLOS Biology articles that have one or more authors in common with the citing article.&lt;/p&gt;
&lt;p&gt;(one more bracketed caveat: When constructing my database I assumed that every author name occurs exactly once and is therefore unique - this is a heuristic that breaks easily)&lt;/p&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;
&lt;div class=&quot;input&quot;&gt;

&lt;div class=&quot;inner_cell&quot;&gt;
    &lt;div class=&quot;input_area&quot;&gt;
&lt;div class=&quot; highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;are_different_authors&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;article_1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;article_2&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;):&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;authors_1&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;[]&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;authors_2&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;[]&lt;/span&gt;
    
    &lt;span class=&quot;k&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;n&lt;/span&gt; &lt;span class=&quot;ow&quot;&gt;in&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;article_1&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;inV&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;():&lt;/span&gt;
        &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;n&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;element_type&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&amp;#39;author&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;
            &lt;span class=&quot;n&quot;&gt;authors_1&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;append&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;n&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
    &lt;span class=&quot;k&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;n&lt;/span&gt; &lt;span class=&quot;ow&quot;&gt;in&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;article_2&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;inV&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;():&lt;/span&gt;
        &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;n&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;element_type&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&amp;#39;author&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;
            &lt;span class=&quot;n&quot;&gt;authors_2&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;append&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;n&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
            
    &lt;span class=&quot;n&quot;&gt;authors_1&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;set&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;authors_1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;authors_2&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;set&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;authors_2&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
    
    &lt;span class=&quot;k&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;len&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;authors_1&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;intersection&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;authors_2&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;))&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
    

    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;
&lt;div class=&quot;input&quot;&gt;

&lt;div class=&quot;inner_cell&quot;&gt;
    &lt;div class=&quot;input_area&quot;&gt;
&lt;div class=&quot; highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;citation_counts&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;[]&lt;/span&gt;

&lt;span class=&quot;k&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;edge&lt;/span&gt; &lt;span class=&quot;ow&quot;&gt;in&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;edges&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;
    &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;edge&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;label&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&amp;#39;cites&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;
        &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;are_different_authors&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;edge&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;inV&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(),&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;edge&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;outV&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()):&lt;/span&gt;
            &lt;span class=&quot;n&quot;&gt;citation_counts&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;append&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;edge&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;reference_count&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
    

    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;
&lt;div class=&quot;input&quot;&gt;

&lt;div class=&quot;inner_cell&quot;&gt;
    &lt;div class=&quot;input_area&quot;&gt;
&lt;div class=&quot; highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;pyplot&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;hist&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;citation_counts&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;bins&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;range&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;20&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;))&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;pyplot&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;xlabel&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;number of times cited&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;pyplot&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;ylabel&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;count&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;div class=&quot;output_wrapper&quot;&gt;
&lt;div class=&quot;output&quot;&gt;

&lt;div class=&quot;output_area&quot;&gt;



&lt;div class=&quot;output_text output_subarea output_execute_result&quot;&gt;
&lt;pre&gt;&amp;lt;matplotlib.text.Text at 0xaa25310&amp;gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;/div&gt;

&lt;div class=&quot;output_area&quot;&gt;



&lt;div class=&quot;output_png output_subarea &quot;&gt;
&lt;img src=&quot;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAYQAAAEKCAYAAAASByJ7AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz
AAALEgAACxIB0t1+/AAAHEhJREFUeJzt3X9s1PUdx/Hnt6VMIlSU0mI4IgYV6PWOHpU6XGFFV0uP
HwN1tmjrJiSzTEVxGmcWoWhmNydBDMxgENy8zFDF+WMtTR2j/kD5YVGxcWk2pLNXU3ql/CiUUgqf
/dHjRilYrnfttfB6JJfcffv9fO5918v3dZ/v5/v9nmWMMYiIyCUvKtIFiIhI36BAEBERQIEgIiJ+
CgQREQEUCCIi4qdAEBERoAcCoaWlhUmTJuFyubjhhhtYvHgxAI2NjWRkZOB0OsnMzOTgwYOBNoWF
hSQmJuJwOCgrKwt3SSIicgGsnjgP4dixYwwaNIi2tjbS0tIoLCzkrbfeYsyYMTzyyCO88MIL7N27
l5UrV1JRUUF+fj7btm2jrq6OtLQ0qqqqGDhwYLjLEhGR79Eju4wGDRoEQGtrKydPniQ+Pp6SkhLy
8vIAyM3Npbi4GIDi4mJycnKIjo5m5MiR2O12duzY0RNliYjI9+iRQDh16hTJyckkJCQwbdo07HY7
Pp+PYcOGARAXF0d9fT0AtbW12Gy2QFubzYbX6+2JskRE5HsM6IlOo6Ki+OKLLzh06BCZmZls2bIl
pP4sywpTZSIil5ZgZgV69CijK664ghkzZrB9+3aGDx9OQ0MDAD6fj/j4eKB9RFBTUxNo4/V6GTVq
VKe+jDG6hem2dOnSiNdwMd30fuq97Ku3YIU9EPbv309TUxPQPrn8/vvv43A4cLvdeDweADweD263
GwC3282GDRtoa2vD6/VSWVlJampquMsSEZEuhH2X0Xfffce9996LMYaWlhbuvvtuZsyYweTJk8nO
zmbdunWMGDGCoqIiAFJSUpg7dy5Op5OoqCjWrFlDTExMuMsSEZEu9Mhhp+FmWVa3hj9ybuXl5aSn
p0e6jIuG3s/w0XsZXsFuOxUIIiIXqWC3nZfMpStiY6/CsqyQbrGxV0X6ZYiI9JhLZoTQfuhqqC9V
IxUR6T80QhARkW5RIIiICKBAEBERPwWCiIgACgQREfFTIIiICKBAEBERPwWCiIgACgQREfFTIIiI
CKBAEBERPwWCiIgACgQREfFTIIiICKBAEBERPwWCiIgACgQREfFTIIiICKBAEBERPwWCiIgACgQR
EfFTIIiICKBAEBERPwWCiIgACgQREfELeyDU1NQwdepUHA4HY8eO5bnnngOgoKAAm82Gy+XC5XKx
adOmQJvCwkISExNxOByUlZWFuyQREbkAljHGhLPDffv24fP5SEpK4siRI0ycOJE33niDt99+myFD
hvDoo492WL+iooL8/Hy2bdtGXV0daWlpVFVVMXDgwP8XaVmEWqZlWUCoLzX0OkREekuw286wjxAS
EhJISkoCYPDgwTidTmprawHOWVhxcTE5OTlER0czcuRI7HY7O3bsCHdZIiLShR6dQ6iurmbnzp1M
mTIFgNWrVzN+/Hhyc3NpbGwEoLa2FpvNFmhjs9nwer09WZaIiJzDgJ7q+MiRI/zsZz9j5cqVDBky
hAceeIAlS5YA7fMJixYtwuPxXHB/BQUFgfvp6emkp6eHuWIRkf6tvLyc8vLybrcP+xwCwIkTJ5g5
cybTp09n8eLFnf7+3XffMW3aNKqqqnjmmWcYNGgQjz32GAAzZ87kySef5Ec/+tH/i9QcgohI0CI+
h2CMYcGCBSQmJnYIg/r6+sD9jRs3YrfbAXC73WzYsIG2tja8Xi+VlZWkpqaGuywREelC2HcZbd26
FY/Hg9PpxOVyAfDss8/y17/+ld27d9Pa2so111zDK6+8AkBKSgpz587F6XQSFRXFmjVriImJCXdZ
IiLShR7ZZRRu2mUkIhK8iO8yEhGR/kmBICIigAJBRET8FAgiIgIoEERExE+BICIigAJBRET8FAgi
IgIoEERExE+BICIigAJBRET8FAgiIgIoEERExE+BICIigAJBRET8FAgiIgIoEERExE+BICIigAJB
RET8FAgiIgIoEERExE+BICIigAJBRET8FAgiIgIoEERExE+BICIigAJBRET8FAgiIgIoEERExC/s
gVBTU8PUqVNxOByMHTuW5557DoDGxkYyMjJwOp1kZmZy8ODBQJvCwkISExNxOByUlZWFuyQREbkA
ljHGhLPDffv24fP5SEpK4siRI0ycOJE33niDtWvXMmbMGB555BFeeOEF9u7dy8qVK6moqCA/P59t
27ZRV1dHWloaVVVVDBw48P9FWhahlmlZFhDqSw29DhGR3hLstjPsI4SEhASSkpIAGDx4ME6nk9ra
WkpKSsjLywMgNzeX4uJiAIqLi8nJySE6OpqRI0dit9vZsWNHuMsSEZEuDOjJzqurq9m5cyfr1q3D
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
9S9z6tQpk5KSYnbu3Gnq6urM5MmTTXNzszHGmN///vfmt7/9ramvrzd2uz3Q75EjRzo996JFi8xj
jz0WeHzo0KEOtVZXV3e4vPQ777xjfvnLXxpjjDl58qSZOXOmef/9980nn3xiHA6HaW1tNUePHjXX
XXedLkN9CYr4L6bJpePaa68NXJ43JSWlw3WqzmfatGlcdtllXHbZZQwdOjRw2r3D4eCLL74A2ndv
3HXXXQDcfPPNtLS04PP5KCsr4/333+f5558HoK2tjW+//TZwxdchQ4Z0er6PP/6Y22+/nYEDBwJw
++238+GHH37vjwkZY857yWbLspgxYwYASUlJjBgxgnHjxgFgt9upqamhurqaf//739x8881A+6jj
pptu4qqrriImJoYFCxbgdruZNWtWp/43b97MO++8E3h89sXMzq6rrKyMsrIyXC4X0H4Jk71793Lw
4EFuv/12YmJiiImJYfbs2boM9SVIgSC95gc/+EHgfnR0dGCDExUVxalTpwBoaWk5b5uoqKjA4zPb
nMvpfeDvvvtuYBfUaZ999hmXX375eduduSE0xnS5P72rv58OlzPrP/s1ZGVl8Ze//KVT2+3bt7N5
82Y2btzI6tWr+ec//9lpnWA33E899RTz58/vsOz555/v9Lrl0qM5BImY0xsdm83GZ599BsDf/va3
oNqevv/mm28C8OmnnzJo0CDi4uLIzMzsMKFaWVnZqe3Z0tLSePvtt2ltbaWlpYW3336bqVOnfm8t
gwYNClw0sKv+z2ZZFlOmTGHLli18++23QHso7tmzh6NHj9LU1ERWVhbLly9n165dndpnZGSwZs2a
wOPDhw9/b22ZmZmsX78+ELz79u2joaGhw+tubm7m73//uyaWL0EKBOk1Z29gTj9+/PHHWbFiBZMm
TaK+vj6w/PRlkM/V/sy/WZbFwIEDuemmm7jvvvtYt24dAM888wz19fUkJibidDoDk6pn93umyZMn
k52dzYQJE3C5XOTl5TFp0qRz1n/atGnTqKioYMKECRQVFXVZ99kSEhJ4+eWXmT17NsnJyaSmpvL1
119z+PBhpk+fjsvlYsqUKaxYsaJT22eeeYZvv/2WxMREkpOT2bx5c6e+k5OTSUxM5IknnmDWrFnM
nDmTiRMnkpyczOzZs2lqauKHP/whc+bMITExEbfbrd/bvkTp4nYiIgJohCAiIn4KBBERARQIIiLi
p0AQERFAgSAiIn4KBBERAeB/+GL357hEL2gAAAAASUVORK5CYII=
&quot; /&gt;
&lt;/div&gt;

&lt;/div&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
    

&lt;div class=&quot;cell border-box-sizing text_cell rendered&quot;&gt;&lt;div class=&quot;inner_cell&quot;&gt;
&lt;div class=&quot;text_cell_render border-box-sizing rendered_html&quot;&gt;
&lt;p&gt;This histogram does not look very different from the one above.&lt;/p&gt;
&lt;p&gt;Let us take a look at data points in the tail:&lt;/p&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;
&lt;div class=&quot;input&quot;&gt;

&lt;div class=&quot;inner_cell&quot;&gt;
    &lt;div class=&quot;input_area&quot;&gt;
&lt;div class=&quot; highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;edge&lt;/span&gt; &lt;span class=&quot;ow&quot;&gt;in&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;edges&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;
    &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;edge&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;label&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&amp;#39;cites&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;
        &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;edge&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;reference_count&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;gt;=&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;16&lt;/span&gt; &lt;span class=&quot;ow&quot;&gt;and&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;are_different_authors&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;edge&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;inV&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(),&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;edge&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;outV&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()):&lt;/span&gt;
            &lt;span class=&quot;nb&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;Citer:&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
            &lt;span class=&quot;nb&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;article_pp&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;edge&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;outV&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()))&lt;/span&gt;
            &lt;span class=&quot;nb&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
            &lt;span class=&quot;nb&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;Citee&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
            &lt;span class=&quot;nb&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;article_pp&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;edge&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;inV&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()))&lt;/span&gt;
            &lt;span class=&quot;nb&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
            &lt;span class=&quot;nb&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;Citer cites citee &lt;/span&gt;&lt;span class=&quot;si&quot;&gt;%d&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt; times.&amp;#39;&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;%&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;edge&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;reference_count&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
            &lt;span class=&quot;nb&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;-----------------------------------------------------&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;div class=&quot;output_wrapper&quot;&gt;
&lt;div class=&quot;output&quot;&gt;

&lt;div class=&quot;output_area&quot;&gt;

&lt;div class=&quot;output_subarea output_stream output_stdout output_text&quot;&gt;
&lt;pre&gt;Citer:
Title: Lack of Support for the Association between GAD2 Polymorphisms and Severe Human Obesity
Authors: Frank Geller, John P Kane, Raphael Merriman, Christian Vaisse, Winfried Rief, Robert Dent, Johannes Hebebrand, Björn Waldenmaier, Franck Mauvais-Jarvis, Anke Hinney, Michael M Swarbrick, Clive R Pullinger, Mary Malloy, Len A Pennacchio, Anna Ustaszewska, Denise L Lind, Wen-Chi Hsueh, Ruth McPherson, Martha M Cavazos, André Scherag, Pui-Yan Kwok
DOI: 10.1371/journal.pbio.0030315

Citee
Title: GAD2 on Chromosome 10p12 Is a Candidate Gene for Human Obesity
Authors: Lynn Bekris, Valérie Vasseur-Delannoy, Philippe Boutin, Karin Séron, Philippe Froguel, Mohamed Chikri, Christian Dina, Laetitia Corset, M. Aline Charles, Séverine Dubois, Francis Vasseur, Janice Cabellon, Ake Lernmark, Bernadette Neve, Karine Clement
DOI: 10.1371/journal.pbio.0000068

Citer cites citee 17 times.
-----------------------------------------------------
Citer:
Title: Structural Basis of Rap Phosphatase Inhibition by Phr Peptides
Authors: Alberto Marina, Francisca Gallego del Sol
DOI: 10.1371/journal.pbio.1001511

Citee
Title: Structural Basis of Response Regulator Inhibition by a Bacterial Anti-Activator Protein
Authors: Matthew B. Neiditch, Melinda D. Baker
DOI: 10.1371/journal.pbio.1001226

Citer cites citee 16 times.
-----------------------------------------------------
&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
    

&lt;div class=&quot;cell border-box-sizing text_cell rendered&quot;&gt;&lt;div class=&quot;inner_cell&quot;&gt;
&lt;div class=&quot;text_cell_render border-box-sizing rendered_html&quot;&gt;
&lt;p&gt;As we can see the two article pairs in the tail of this updated distribution are linked with lower reference counts than what we observed before filtering for author disjointedness.&lt;/p&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;cell border-box-sizing text_cell rendered&quot;&gt;&lt;div class=&quot;inner_cell&quot;&gt;
&lt;div class=&quot;text_cell_render border-box-sizing rendered_html&quot;&gt;
&lt;p&gt;Now, how inspiring are PLOS Biology authors for other (different) PLOS Biology authors?&lt;/p&gt;
&lt;p&gt;To answer this question, I would like to propose a measure that I have called &lt;strong&gt;Inspiration Factor&lt;/strong&gt; in my own head for some time now and one variant of the model I have had in mind is this:&lt;/p&gt;
&lt;p&gt;Inspiration is an increasing function of the number of authors (unrelated to you) that you inspired to carry out scientific work.&lt;/p&gt;
&lt;p&gt;Since I do not want to count citations that are mentioned only once in the main text of an article, I will impose a threshold of at least &lt;em&gt;three references&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;I should refine the way I parse articles to account for the context that citations are referenced in.&lt;/p&gt;
&lt;p&gt;Anyways, let us take a look at those PLOS Biology articles that have inspired at least three other PLOS Biology articles.&lt;/p&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;
&lt;div class=&quot;input&quot;&gt;

&lt;div class=&quot;inner_cell&quot;&gt;
    &lt;div class=&quot;input_area&quot;&gt;
&lt;div class=&quot; highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;inspirators&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;[]&lt;/span&gt;

&lt;span class=&quot;k&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;article&lt;/span&gt; &lt;span class=&quot;ow&quot;&gt;in&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;articles&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;values&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;():&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;in_nodes&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;[]&lt;/span&gt;
    &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;article&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;inE&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;():&lt;/span&gt;
        &lt;span class=&quot;k&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;edge&lt;/span&gt; &lt;span class=&quot;ow&quot;&gt;in&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;article&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;inE&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;():&lt;/span&gt;
            &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;edge&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;label&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&amp;#39;cites&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;
                &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;are_different_authors&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;edge&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;inV&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(),&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;edge&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;outV&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;())&lt;/span&gt; &lt;span class=&quot;ow&quot;&gt;and&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;edge&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;reference_count&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;gt;=&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;
                    &lt;span class=&quot;n&quot;&gt;in_nodes&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;append&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;([&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;edge&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;outV&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(),&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;edge&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;reference_count&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;])&lt;/span&gt;
                    
    &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;len&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;in_nodes&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;gt;=&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;
        &lt;span class=&quot;n&quot;&gt;inspirators&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;append&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;([&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;article&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;in_nodes&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;])&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
    

    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;
&lt;div class=&quot;input&quot;&gt;

&lt;div class=&quot;inner_cell&quot;&gt;
    &lt;div class=&quot;input_area&quot;&gt;
&lt;div class=&quot; highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;len&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;inspirators&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;div class=&quot;output_wrapper&quot;&gt;
&lt;div class=&quot;output&quot;&gt;

&lt;div class=&quot;output_area&quot;&gt;



&lt;div class=&quot;output_text output_subarea output_execute_result&quot;&gt;
&lt;pre&gt;2&lt;/pre&gt;
&lt;/div&gt;

&lt;/div&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
    

    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;
&lt;div class=&quot;input&quot;&gt;

&lt;div class=&quot;inner_cell&quot;&gt;
    &lt;div class=&quot;input_area&quot;&gt;
&lt;div class=&quot; highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;inspirator&lt;/span&gt; &lt;span class=&quot;ow&quot;&gt;in&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;inspirators&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;
    &lt;span class=&quot;nb&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;Inspirator&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
    &lt;span class=&quot;nb&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;article_pp&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;inspirator&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;])&lt;/span&gt;
    &lt;span class=&quot;nb&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
    &lt;span class=&quot;k&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;el&lt;/span&gt; &lt;span class=&quot;ow&quot;&gt;in&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;inspirator&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]:&lt;/span&gt;
        &lt;span class=&quot;nb&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;Inspired Article&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
        &lt;span class=&quot;nb&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;article_pp&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;el&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;])&lt;/span&gt;
        &lt;span class=&quot;nb&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;Cites inspirator &lt;/span&gt;&lt;span class=&quot;si&quot;&gt;%d&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt; times.&amp;#39;&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;%&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;el&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;])&lt;/span&gt;
        &lt;span class=&quot;nb&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
    &lt;span class=&quot;nb&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;--------------------------------------&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
    &lt;span class=&quot;nb&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;div class=&quot;output_wrapper&quot;&gt;
&lt;div class=&quot;output&quot;&gt;

&lt;div class=&quot;output_area&quot;&gt;

&lt;div class=&quot;output_subarea output_stream output_stdout output_text&quot;&gt;
&lt;pre&gt;Inspirator
Title: The Evolution of Combinatorial Gene Regulation in Fungi
Authors: Alexander D Johnson, Aaron D Hernday, Hao Li, Brian B Tuch, David J Galgoczy
DOI: 10.1371/journal.pbio.0060038

Inspired Article
Title: Biofilm Matrix Regulation by Candida albicans Zap1
Authors: Oliver R. Homann, Clarissa J. Nobile, Jean-Sebastien Deneault, Aaron P. Mitchell, Andre Nantel, Aaron D. Hernday, David R. Andes, Jeniel E. Nett, Alexander D. Johnson
DOI: 10.1371/journal.pbio.1000133
Cites inspirator 3 times.

Inspired Article
Title: Evolutionary Tinkering with Conserved Components of a Transcriptional Regulatory Network
Authors: Jaideep Mallick, Adnane Sellam, Hugo Lavoie, Hervé Hogues, Malcolm Whiteway, André Nantel
DOI: 10.1371/journal.pbio.1000329
Cites inspirator 6 times.

Inspired Article
Title: Evolution of Phosphoregulation: Comparison of Phosphorylation Patterns across Yeast Species
Authors: Assen Roguev, Dorothea Fiedler, Jonathan C. Trinidad, Wendell A. Lim, Pedro Beltrao, Kevan M. Shokat, Alma L. Burlingame, Nevan J. Krogan
DOI: 10.1371/journal.pbio.1000134
Cites inspirator 3 times.

--------------------------------------

Inspirator
Title: Transcription Factors Bind Thousands of Active and Inactive Regions in the Drosophila Blastoderm 
Authors: Lisa Simirenko, Michael B Eisen, Mark Stapleton, Richard Weiszmann, Cris L. Luengo Hendriks, Tom Gingeras, Amy Beaton, Hou Cheng Chu, Xiao-yong Li, Terence P Speed, Victor Sementchenko, Mark D Biggin, Richard Bourgon, Stewart MacArthur, William Inwood, Susan E Celniker, Nobuo Ogawa, Venky N Iyer, David W Knowles, Daniel A Pollard, David Nix, Aaron Hechmer
DOI: 10.1371/journal.pbio.0060027

Inspired Article
Title: Target Genes of the MADS Transcription Factor SEPALLATA3: Integration of Developmental and Hormonal Pathways in the Arabidopsis Flower
Authors: Cezary Smaczniak, Kerstin Kaufmann, Pawel Krajewski, Ruy Jauregui, Chiara A Airoldi, Gerco C Angenent, Jose M Muiño
DOI: 10.1371/journal.pbio.1000090
Cites inspirator 3 times.

Inspired Article
Title: Evolutionary Plasticity of Polycomb/Trithorax Response Elements in Drosophila Species
Authors: Arne Hauenschild, Leonie Ringrose, Renato Paro, Christina Altmutter, Marc Rehmsmeier
DOI: 10.1371/journal.pbio.0060261
Cites inspirator 6 times.

Inspired Article
Title: Quantitative Analysis of the Drosophila Segmentation Regulatory Network Using Pattern Generating Potentials
Authors: Sudhir Kumar, Susan E. Celniker, Ann S. Hammonds, Saurabh Sinha, Majid Kazemian, Charles Blatti, Noriko Wakabayashi-Ito, Scot A. Wolfe, Adam Richards, Michael McCutchan, Michael H. Brodsky
DOI: 10.1371/journal.pbio.1000456
Cites inspirator 7 times.

--------------------------------------

&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
    

&lt;div class=&quot;cell border-box-sizing text_cell rendered&quot;&gt;&lt;div class=&quot;inner_cell&quot;&gt;
&lt;div class=&quot;text_cell_render border-box-sizing rendered_html&quot;&gt;
&lt;p&gt;And that is it for now.&lt;/p&gt;
&lt;p&gt;I will expand my dataset to include more articles and think about how to enrich the data I extract from these articles.&lt;/p&gt;
&lt;p&gt;One question that I am very intrigued to tackle soon is: How long of a chain of scientific discovery do you trigger?&lt;/p&gt;
&lt;p&gt;I imagine that an article that lies at the beginning of a long chain of articles that inspired one another would have some significance.&lt;/p&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;</content><author><name></name></author><category term="python" /><category term="scikit-learn" /><category term="nlp" /><summary type="html"></summary></entry><entry><title type="html">Topic discovery in scientific articles with Python</title><link href="https://georg.io/2014/02/16/PLOS_Biology_Topics" rel="alternate" type="text/html" title="Topic discovery in scientific articles with Python" /><published>2014-02-16T00:00:00-06:00</published><updated>2014-02-16T00:00:00-06:00</updated><id>https://georg.io/2014/02/16/PLOS_Biology_Topics</id><content type="html" xml:base="https://georg.io/2014/02/16/PLOS_Biology_Topics">&lt;!--
#################################################
### THIS FILE WAS AUTOGENERATED! DO NOT EDIT! ###
#################################################
# file to edit: _notebooks/2014-02-16-PLOS_Biology_Topics.ipynb
--&gt;

&lt;div class=&quot;container&quot; id=&quot;notebook-container&quot;&gt;
        
    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;

&lt;/div&gt;
    

&lt;div class=&quot;cell border-box-sizing text_cell rendered&quot;&gt;&lt;div class=&quot;inner_cell&quot;&gt;
&lt;div class=&quot;text_cell_render border-box-sizing rendered_html&quot;&gt;
&lt;h1 id=&quot;PLOS-Biology-Topics&quot;&gt;PLOS Biology Topics&lt;a class=&quot;anchor-link&quot; href=&quot;#PLOS-Biology-Topics&quot;&gt; &lt;/a&gt;&lt;/h1&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;cell border-box-sizing text_cell rendered&quot;&gt;&lt;div class=&quot;inner_cell&quot;&gt;
&lt;div class=&quot;text_cell_render border-box-sizing rendered_html&quot;&gt;
&lt;p&gt;Ever wonder what topics are discussed in PLOS Biology articles?
Here I will apply an implementation of &lt;a href=&quot;https://en.wikipedia.org/wiki/Latent_Dirichlet_allocation&quot;&gt;Latent Dirichlet Allocation&lt;/a&gt; (LDA)
on a set of 1,754 PLOS Biology articles to work out what a possible collection of underlying topics could be.&lt;/p&gt;
&lt;p&gt;I first read about LDA in &lt;a href=&quot;http://www.packtpub.com/building-machine-learning-systems-with-python/book&quot;&gt;Building Machine Learning Systems with Python&lt;/a&gt;
co-authored by &lt;a href=&quot;https://twitter.com/luispedrocoelho&quot;&gt;Luis Coelho&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;LDA seems to have been first described by &lt;a href=&quot;http://jmlr.org/papers/volume3/blei03a/blei03a.pdf&quot;&gt;Blei &lt;em&gt;et al.&lt;/em&gt;&lt;/a&gt; and
I will use the implementation provided by
&lt;a href=&quot;http://radimrehurek.com/gensim/wiki.html#latent-dirichlet-allocation&quot;&gt;gensim&lt;/a&gt; which was written by
&lt;a href=&quot;https://twitter.com/RadimRehurek&quot;&gt;Radim Řehůřek&lt;/a&gt;.&lt;/p&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;
&lt;div class=&quot;input&quot;&gt;

&lt;div class=&quot;inner_cell&quot;&gt;
    &lt;div class=&quot;input_area&quot;&gt;
&lt;div class=&quot; highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;kn&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;gensim&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
    

    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;
&lt;div class=&quot;input&quot;&gt;

&lt;div class=&quot;inner_cell&quot;&gt;
    &lt;div class=&quot;input_area&quot;&gt;
&lt;div class=&quot; highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;kn&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;plospy&lt;/span&gt;
&lt;span class=&quot;kn&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;os&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
    

    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;
&lt;div class=&quot;input&quot;&gt;

&lt;div class=&quot;inner_cell&quot;&gt;
    &lt;div class=&quot;input_area&quot;&gt;
&lt;div class=&quot; highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;kn&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;nltk&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
    

    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;
&lt;div class=&quot;input&quot;&gt;

&lt;div class=&quot;inner_cell&quot;&gt;
    &lt;div class=&quot;input_area&quot;&gt;
&lt;div class=&quot; highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;kn&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;cPickle&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;as&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;pickle&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
    

&lt;div class=&quot;cell border-box-sizing text_cell rendered&quot;&gt;&lt;div class=&quot;inner_cell&quot;&gt;
&lt;div class=&quot;text_cell_render border-box-sizing rendered_html&quot;&gt;
&lt;p&gt;With the following lines of code we open, parse, and tokenize all 1,754 PLOS Biology articles in our collection.&lt;/p&gt;
&lt;p&gt;As this takes a bit of time and memory, I carried out all of these steps once and stored the resulting data structures to my hard disk for later reuse - see further below.&lt;/p&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;
&lt;div class=&quot;input&quot;&gt;

&lt;div class=&quot;inner_cell&quot;&gt;
    &lt;div class=&quot;input_area&quot;&gt;
&lt;div class=&quot; highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;all_names&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;name&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;name&lt;/span&gt; &lt;span class=&quot;ow&quot;&gt;in&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;os&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;listdir&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;../plos/plos_biology/plos_biology_data&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&amp;#39;.dat&amp;#39;&lt;/span&gt; &lt;span class=&quot;ow&quot;&gt;in&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
    

    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;
&lt;div class=&quot;input&quot;&gt;

&lt;div class=&quot;inner_cell&quot;&gt;
    &lt;div class=&quot;input_area&quot;&gt;
&lt;div class=&quot; highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;article_bodies&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;[]&lt;/span&gt;

&lt;span class=&quot;k&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;name_i&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;name&lt;/span&gt; &lt;span class=&quot;ow&quot;&gt;in&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;enumerate&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;all_names&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;):&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;docs&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;plospy&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;PlosXml&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;../plos/plos_biology/plos_biology_data/&amp;#39;&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;+&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
    &lt;span class=&quot;k&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;article&lt;/span&gt; &lt;span class=&quot;ow&quot;&gt;in&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;docs&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;docs&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;
        &lt;span class=&quot;n&quot;&gt;article_bodies&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;append&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;article&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;body&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;])&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
    

&lt;div class=&quot;cell border-box-sizing text_cell rendered&quot;&gt;&lt;div class=&quot;inner_cell&quot;&gt;
&lt;div class=&quot;text_cell_render border-box-sizing rendered_html&quot;&gt;
&lt;p&gt;We have 1,754 PLOS Biology articles in our collection:&lt;/p&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;
&lt;div class=&quot;input&quot;&gt;

&lt;div class=&quot;inner_cell&quot;&gt;
    &lt;div class=&quot;input_area&quot;&gt;
&lt;div class=&quot; highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;len&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;article_bodies&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
    

    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;
&lt;div class=&quot;input&quot;&gt;

&lt;div class=&quot;inner_cell&quot;&gt;
    &lt;div class=&quot;input_area&quot;&gt;
&lt;div class=&quot; highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;punkt_param&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;nltk&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;tokenize&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;punkt&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;PunktParameters&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;punkt_param&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;abbrev_types&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;set&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;([&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;et al&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&amp;#39;i.e&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&amp;#39;e.g&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&amp;#39;ref&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&amp;#39;c.f&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
                                &lt;span class=&quot;s1&quot;&gt;&amp;#39;fig&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&amp;#39;Fig&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&amp;#39;Eq&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&amp;#39;eq&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&amp;#39;eqn&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&amp;#39;Eqn&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
                                &lt;span class=&quot;s1&quot;&gt;&amp;#39;dr&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&amp;#39;Dr&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;])&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;sentence_splitter&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;nltk&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;tokenize&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;punkt&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;PunktSentenceTokenizer&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;punkt_param&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
    

    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;
&lt;div class=&quot;input&quot;&gt;

&lt;div class=&quot;inner_cell&quot;&gt;
    &lt;div class=&quot;input_area&quot;&gt;
&lt;div class=&quot; highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;sentences&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;[]&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;body&lt;/span&gt; &lt;span class=&quot;ow&quot;&gt;in&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;article_bodies&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;sentences&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;append&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;sentence_splitter&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;tokenize&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;body&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;))&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
    

    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;
&lt;div class=&quot;input&quot;&gt;

&lt;div class=&quot;inner_cell&quot;&gt;
    &lt;div class=&quot;input_area&quot;&gt;
&lt;div class=&quot; highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;articles&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;[]&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;body&lt;/span&gt; &lt;span class=&quot;ow&quot;&gt;in&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;sentences&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;this_article&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;[]&lt;/span&gt;
    &lt;span class=&quot;k&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;sentence&lt;/span&gt; &lt;span class=&quot;ow&quot;&gt;in&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;body&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;
        &lt;span class=&quot;n&quot;&gt;this_article&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;append&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;nltk&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;tokenize&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;word_tokenize&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;sentence&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;))&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;articles&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;append&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;this_article&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
    

    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;
&lt;div class=&quot;input&quot;&gt;

&lt;div class=&quot;inner_cell&quot;&gt;
    &lt;div class=&quot;input_area&quot;&gt;
&lt;div class=&quot; highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;pickle&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;dump&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;articles&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;open&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;plos_biology_articles_tokenized.list&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&amp;#39;w&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;))&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
    

    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;
&lt;div class=&quot;input&quot;&gt;

&lt;div class=&quot;inner_cell&quot;&gt;
    &lt;div class=&quot;input_area&quot;&gt;
&lt;div class=&quot; highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;articles&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;pickle&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;load&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;open&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;plos_biology_articles_tokenized.list&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&amp;#39;r&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;))&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
    

    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;
&lt;div class=&quot;input&quot;&gt;

&lt;div class=&quot;inner_cell&quot;&gt;
    &lt;div class=&quot;input_area&quot;&gt;
&lt;div class=&quot; highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;is_stopword&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;lambda&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;w&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;len&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;w&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;4&lt;/span&gt; &lt;span class=&quot;ow&quot;&gt;or&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;w&lt;/span&gt; &lt;span class=&quot;ow&quot;&gt;in&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;nltk&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;corpus&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;stopwords&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;words&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;english&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
    

&lt;div class=&quot;cell border-box-sizing text_cell rendered&quot;&gt;&lt;div class=&quot;inner_cell&quot;&gt;
&lt;div class=&quot;text_cell_render border-box-sizing rendered_html&quot;&gt;
&lt;p&gt;Save each article as one list of tokens and filter out stopwords:&lt;/p&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;
&lt;div class=&quot;input&quot;&gt;

&lt;div class=&quot;inner_cell&quot;&gt;
    &lt;div class=&quot;input_area&quot;&gt;
&lt;div class=&quot; highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;articles_unfurled&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;[]&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;article&lt;/span&gt; &lt;span class=&quot;ow&quot;&gt;in&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;articles&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;this_article&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;[]&lt;/span&gt;
    &lt;span class=&quot;k&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;sentence&lt;/span&gt; &lt;span class=&quot;ow&quot;&gt;in&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;article&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;
        &lt;span class=&quot;n&quot;&gt;this_article&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;+=&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;token&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;lower&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;encode&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;utf-8&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;token&lt;/span&gt; &lt;span class=&quot;ow&quot;&gt;in&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;sentence&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;ow&quot;&gt;not&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;is_stopword&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;token&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)]&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;articles_unfurled&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;append&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;this_article&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
    

    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;
&lt;div class=&quot;input&quot;&gt;

&lt;div class=&quot;inner_cell&quot;&gt;
    &lt;div class=&quot;input_area&quot;&gt;
&lt;div class=&quot; highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;pickle&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;dump&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;articles_unfurled&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;open&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;plos_biology_articles_unfurled.list&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&amp;#39;w&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;))&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
    

    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;
&lt;div class=&quot;input&quot;&gt;

&lt;div class=&quot;inner_cell&quot;&gt;
    &lt;div class=&quot;input_area&quot;&gt;
&lt;div class=&quot; highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;articles_unfurled&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;pickle&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;load&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;open&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;plos_biology_articles_unfurled.list&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&amp;#39;r&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;))&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
    

&lt;div class=&quot;cell border-box-sizing text_cell rendered&quot;&gt;&lt;div class=&quot;inner_cell&quot;&gt;
&lt;div class=&quot;text_cell_render border-box-sizing rendered_html&quot;&gt;
&lt;h2 id=&quot;Dictionary-and-Corpus-Creation&quot;&gt;Dictionary and Corpus Creation&lt;a class=&quot;anchor-link&quot; href=&quot;#Dictionary-and-Corpus-Creation&quot;&gt; &lt;/a&gt;&lt;/h2&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;cell border-box-sizing text_cell rendered&quot;&gt;&lt;div class=&quot;inner_cell&quot;&gt;
&lt;div class=&quot;text_cell_render border-box-sizing rendered_html&quot;&gt;
&lt;p&gt;Create a dictionary of all words (tokens) that appear in our collection of PLOS Biology articles
and create a bag of words object for each article (&lt;code&gt;doc2bow&lt;/code&gt;).&lt;/p&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;
&lt;div class=&quot;input&quot;&gt;

&lt;div class=&quot;inner_cell&quot;&gt;
    &lt;div class=&quot;input_area&quot;&gt;
&lt;div class=&quot; highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;dictionary&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;gensim&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;corpora&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;Dictionary&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;articles_unfurled&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
    

    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;
&lt;div class=&quot;input&quot;&gt;

&lt;div class=&quot;inner_cell&quot;&gt;
    &lt;div class=&quot;input_area&quot;&gt;
&lt;div class=&quot; highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;dictionary&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;save&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;plos_biology.dict&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
    

    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;
&lt;div class=&quot;input&quot;&gt;

&lt;div class=&quot;inner_cell&quot;&gt;
    &lt;div class=&quot;input_area&quot;&gt;
&lt;div class=&quot; highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;dictionary&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;gensim&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;corpora&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;dictionary&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;Dictionary&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;load&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;plos_biology.dict&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
    

&lt;div class=&quot;cell border-box-sizing text_cell rendered&quot;&gt;&lt;div class=&quot;inner_cell&quot;&gt;
&lt;div class=&quot;text_cell_render border-box-sizing rendered_html&quot;&gt;
&lt;p&gt;I noticed that the word &lt;em&gt;figure&lt;/em&gt; occurs rather frequently in these articles, so let us exclude this and any other words
that appear in more than half of the articles in this data set (&lt;a href=&quot;https://twitter.com/RadimRehurek/status/436136774906044416&quot;&gt;thanks to Radim&lt;/a&gt;
for pointing this out to me).&lt;/p&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;
&lt;div class=&quot;input&quot;&gt;

&lt;div class=&quot;inner_cell&quot;&gt;
    &lt;div class=&quot;input_area&quot;&gt;
&lt;div class=&quot; highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;dictionary&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;filter_extremes&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
    

    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;
&lt;div class=&quot;input&quot;&gt;

&lt;div class=&quot;inner_cell&quot;&gt;
    &lt;div class=&quot;input_area&quot;&gt;
&lt;div class=&quot; highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;corpus&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;dictionary&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;doc2bow&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;article&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;article&lt;/span&gt; &lt;span class=&quot;ow&quot;&gt;in&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;articles_unfurled&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
    

    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;
&lt;div class=&quot;input&quot;&gt;

&lt;div class=&quot;inner_cell&quot;&gt;
    &lt;div class=&quot;input_area&quot;&gt;
&lt;div class=&quot; highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;gensim&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;corpora&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;MmCorpus&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;serialize&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;plos_biology_corpus.mm&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;corpus&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
    

    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;
&lt;div class=&quot;input&quot;&gt;

&lt;div class=&quot;inner_cell&quot;&gt;
    &lt;div class=&quot;input_area&quot;&gt;
&lt;div class=&quot; highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;corpus&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;gensim&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;corpora&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;MmCorpus&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;plos_biology_corpus.mm&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
    

    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;
&lt;div class=&quot;input&quot;&gt;

&lt;div class=&quot;inner_cell&quot;&gt;
    &lt;div class=&quot;input_area&quot;&gt;
&lt;div class=&quot; highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;model&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;gensim&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;models&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;ldamodel&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;LdaModel&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;corpus&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;id2word&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;dictionary&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;update_every&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;chunksize&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;100&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;passes&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;num_topics&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;20&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
    

    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;
&lt;div class=&quot;input&quot;&gt;

&lt;div class=&quot;inner_cell&quot;&gt;
    &lt;div class=&quot;input_area&quot;&gt;
&lt;div class=&quot; highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;model&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;save&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;plos_biology.lda_model&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
    

    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;
&lt;div class=&quot;input&quot;&gt;

&lt;div class=&quot;inner_cell&quot;&gt;
    &lt;div class=&quot;input_area&quot;&gt;
&lt;div class=&quot; highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;model&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;gensim&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;models&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;ldamodel&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;LdaModel&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;load&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;plos_biology.lda_model&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
    

&lt;div class=&quot;cell border-box-sizing text_cell rendered&quot;&gt;&lt;div class=&quot;inner_cell&quot;&gt;
&lt;div class=&quot;text_cell_render border-box-sizing rendered_html&quot;&gt;
&lt;p&gt;And these are the twenty topics we find in 1,754 PLOS Biology articles:&lt;/p&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;
&lt;div class=&quot;input&quot;&gt;

&lt;div class=&quot;inner_cell&quot;&gt;
    &lt;div class=&quot;input_area&quot;&gt;
&lt;div class=&quot; highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;topic_i&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;topic&lt;/span&gt; &lt;span class=&quot;ow&quot;&gt;in&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;enumerate&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;model&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;print_topics&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;20&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)):&lt;/span&gt;
    &lt;span class=&quot;nb&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;topic # &lt;/span&gt;&lt;span class=&quot;si&quot;&gt;%d&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;: &lt;/span&gt;&lt;span class=&quot;si&quot;&gt;%s&lt;/span&gt;&lt;span class=&quot;se&quot;&gt;\n&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;%&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;topic_i&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;+&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;topic&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;))&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
    

&lt;div class=&quot;cell border-box-sizing text_cell rendered&quot;&gt;&lt;div class=&quot;inner_cell&quot;&gt;
&lt;div class=&quot;text_cell_render border-box-sizing rendered_html&quot;&gt;
&lt;h2 id=&quot;Topics-with-Lemmatized-Tokens&quot;&gt;Topics with Lemmatized Tokens&lt;a class=&quot;anchor-link&quot; href=&quot;#Topics-with-Lemmatized-Tokens&quot;&gt; &lt;/a&gt;&lt;/h2&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;cell border-box-sizing text_cell rendered&quot;&gt;&lt;div class=&quot;inner_cell&quot;&gt;
&lt;div class=&quot;text_cell_render border-box-sizing rendered_html&quot;&gt;
&lt;p&gt;As we can notice, some of the tokens in the above topics are just singular and plural forms of the same word.&lt;/p&gt;
&lt;p&gt;Let us see what topics we find after lemmatizing all of our tokens.&lt;/p&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;
&lt;div class=&quot;input&quot;&gt;

&lt;div class=&quot;inner_cell&quot;&gt;
    &lt;div class=&quot;input_area&quot;&gt;
&lt;div class=&quot; highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;kn&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;nltk.stem&lt;/span&gt; &lt;span class=&quot;kn&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;WordNetLemmatizer&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;wnl&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;WordNetLemmatizer&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;articles_lemmatized&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;[]&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;article&lt;/span&gt; &lt;span class=&quot;ow&quot;&gt;in&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;articles_unfurled&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;articles_lemmatized&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;append&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;([&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;wnl&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;lemmatize&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;token&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;token&lt;/span&gt; &lt;span class=&quot;ow&quot;&gt;in&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;article&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;])&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
    

    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;
&lt;div class=&quot;input&quot;&gt;

&lt;div class=&quot;inner_cell&quot;&gt;
    &lt;div class=&quot;input_area&quot;&gt;
&lt;div class=&quot; highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;pickle&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;dump&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;articles_lemmatized&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;open&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;plos_biology_articles_lemmatized.list&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&amp;#39;w&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;))&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
    

    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;
&lt;div class=&quot;input&quot;&gt;

&lt;div class=&quot;inner_cell&quot;&gt;
    &lt;div class=&quot;input_area&quot;&gt;
&lt;div class=&quot; highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;dictionary_lemmatized&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;gensim&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;corpora&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;Dictionary&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;articles_lemmatized&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
    

    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;
&lt;div class=&quot;input&quot;&gt;

&lt;div class=&quot;inner_cell&quot;&gt;
    &lt;div class=&quot;input_area&quot;&gt;
&lt;div class=&quot; highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;dictionary_lemmatized&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;save&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;plos_biology_lemmatized.dict&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
    

    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;
&lt;div class=&quot;input&quot;&gt;

&lt;div class=&quot;inner_cell&quot;&gt;
    &lt;div class=&quot;input_area&quot;&gt;
&lt;div class=&quot; highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;dictionary_lemmatized&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;filter_extremes&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
    

    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;
&lt;div class=&quot;input&quot;&gt;

&lt;div class=&quot;inner_cell&quot;&gt;
    &lt;div class=&quot;input_area&quot;&gt;
&lt;div class=&quot; highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;corpus_lemmatized&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;dictionary_lemmatized&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;doc2bow&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;article&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;article&lt;/span&gt; &lt;span class=&quot;ow&quot;&gt;in&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;articles_lemmatized&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
    

    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;
&lt;div class=&quot;input&quot;&gt;

&lt;div class=&quot;inner_cell&quot;&gt;
    &lt;div class=&quot;input_area&quot;&gt;
&lt;div class=&quot; highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;gensim&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;corpora&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;MmCorpus&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;serialize&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;plos_biology_corpus_lemmatized.mm&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;corpus_lemmatized&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
    

    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;
&lt;div class=&quot;input&quot;&gt;

&lt;div class=&quot;inner_cell&quot;&gt;
    &lt;div class=&quot;input_area&quot;&gt;
&lt;div class=&quot; highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;model_lemmatized&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;gensim&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;models&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;ldamodel&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;LdaModel&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;corpus_lemmatized&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;id2word&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;dictionary_lemmatized&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;update_every&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;chunksize&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;100&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;passes&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;num_topics&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;20&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
    

    
    
&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;
&lt;div class=&quot;input&quot;&gt;

&lt;div class=&quot;inner_cell&quot;&gt;
    &lt;div class=&quot;input_area&quot;&gt;
&lt;div class=&quot; highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;topic_i&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;topic&lt;/span&gt; &lt;span class=&quot;ow&quot;&gt;in&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;enumerate&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;model_lemmatized&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;print_topics&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;20&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)):&lt;/span&gt;
    &lt;span class=&quot;nb&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;topic # &lt;/span&gt;&lt;span class=&quot;si&quot;&gt;%d&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;: &lt;/span&gt;&lt;span class=&quot;si&quot;&gt;%s&lt;/span&gt;&lt;span class=&quot;se&quot;&gt;\n&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;%&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;topic_i&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;+&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;topic&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;))&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
    

&lt;/div&gt;</content><author><name></name></author><category term="python" /><category term="scikit-learn" /><category term="nlp" /><summary type="html"></summary></entry></feed>