-
Notifications
You must be signed in to change notification settings - Fork 261
Expand file tree
/
Copy pathcode_block_2.html
More file actions
19 lines (16 loc) · 3.73 KB
/
Copy pathcode_block_2.html
File metadata and controls
19 lines (16 loc) · 3.73 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<div class="highlight"><pre><span></span><span class="c1"># Define the inputs of our skrub pipeline</span>
<span class="n">products</span> <span class="o">=</span> <span class="n">skrub</span><span class="o">.</span><span class="n">var</span><span class="p">(</span><span class="s2">"products"</span><span class="p">,</span> <span class="n">products_df</span><span class="p">)</span>
<span class="n">baskets</span> <span class="o">=</span> <span class="n">skrub</span><span class="o">.</span><span class="n">var</span><span class="p">(</span><span class="s2">"baskets"</span><span class="p">,</span> <span class="n">baskets_df</span><span class="p">)</span>
<span class="c1"># Specify our "X" and "y" variables for machine learning</span>
<span class="n">basket_IDs</span> <span class="o">=</span> <span class="n">baskets</span><span class="p">[[</span><span class="s2">"basket_ID"</span><span class="p">]]</span><span class="o">.</span><span class="n">skb</span><span class="o">.</span><span class="n">mark_as_X</span><span class="p">()</span>
<span class="n">fraud_flags</span> <span class="o">=</span> <span class="n">baskets</span><span class="p">[</span><span class="s2">"fraud_flag"</span><span class="p">]</span><span class="o">.</span><span class="n">skb</span><span class="o">.</span><span class="n">mark_as_y</span><span class="p">()</span>
<span class="c1"># A pandas-based data-preparation pipeline that merges the tables</span>
<span class="n">aggregated_products</span> <span class="o">=</span> <span class="n">products</span><span class="o">.</span><span class="n">groupby</span><span class="p">(</span><span class="s2">"basket_ID"</span><span class="p">)</span><span class="o">.</span><span class="n">agg</span><span class="p">(</span>
<span class="n">skrub</span><span class="o">.</span><span class="n">choose_from</span><span class="p">((</span><span class="s2">"mean"</span><span class="p">,</span> <span class="s2">"max"</span><span class="p">,</span> <span class="s2">"count"</span><span class="p">)))</span><span class="o">.</span><span class="n">reset_index</span><span class="p">()</span>
<span class="n">features</span> <span class="o">=</span> <span class="n">basket_IDs</span><span class="o">.</span><span class="n">merge</span><span class="p">(</span><span class="n">aggregated_products</span><span class="p">,</span> <span class="n">on</span><span class="o">=</span><span class="s2">"basket_ID"</span><span class="p">)</span>
<span class="kn">from</span><span class="w"> </span><span class="nn">sklearn.ensemble</span><span class="w"> </span><span class="kn">import</span> <span class="n">ExtraTreesClassifier</span>
<span class="n">predictions</span> <span class="o">=</span> <span class="n">features</span><span class="o">.</span><span class="n">skb</span><span class="o">.</span><span class="n">apply</span><span class="p">(</span><span class="n">ExtraTreesClassifier</span><span class="p">(),</span> <span class="n">y</span><span class="o">=</span><span class="n">fraud_flags</span><span class="p">)</span>
<span class="c1"># Now use skrub to tune hyperparameters of the above pipeline</span>
<span class="n">search</span> <span class="o">=</span> <span class="n">predictions</span><span class="o">.</span><span class="n">skb</span><span class="o">.</span><span class="n">make_grid_search</span><span class="p">(</span><span class="n">fitted</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">scoring</span><span class="o">=</span><span class="s2">"roc_auc"</span><span class="p">)</span>
<span class="n">search</span><span class="o">.</span><span class="n">plot_results</span><span class="p">()</span>
</pre></div>