Skip to content

Instantly share code, notes, and snippets.

@Saurabh7
Created July 27, 2017 08:18
Show Gist options
  • Save Saurabh7/cb16c8cd56dc5cb338ef2bf802feaac6 to your computer and use it in GitHub Desktop.
Save Saurabh7/cb16c8cd56dc5cb338ef2bf802feaac6 to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 70,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<script>jQuery(function() {if (jQuery(\"body.notebook_app\").length == 0) { jQuery(\".input_area\").toggle(); jQuery(\".prompt\").toggle();}});</script>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"<button onclick=\"jQuery('.input_area').toggle(); jQuery('.prompt').toggle();\">Toggle code</button>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"import IPython.core.display as di\n",
"\n",
"# This line will hide code by default when the notebook is exported as HTML\n",
"di.display_html('<script>jQuery(function() {if (jQuery(\"body.notebook_app\").length == 0) { jQuery(\".input_area\").toggle(); jQuery(\".prompt\").toggle();}});</script>', raw=True)\n",
"\n",
"# This line will add a button to toggle visibility of code blocks, for use with the HTML export version\n",
"di.display_html('''<button onclick=\"jQuery('.input_area').toggle(); jQuery('.prompt').toggle();\">Toggle code</button>''', raw=True)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Path analysis flow\n",
"\n",
"- Find check threshold.\n",
"- Find paths satisfy threshold.\n",
"- Filter according to impact factor."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Evaluation information:\n",
"\n",
"- Evaluation metrics: precision, recall, MCC, f1 score\n",
"- Length of positive set\n",
"- Total length\n",
"- overall_goal_metric\n",
"- check threshold\n",
"- check threshold * overall_goal_metric "
]
},
{
"cell_type": "code",
"execution_count": 60,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"from jarvis.mongo.mongo_paths import MongoPaths"
]
},
{
"cell_type": "code",
"execution_count": 61,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"import pandas as pd\n",
"from IPython.display import display"
]
},
{
"cell_type": "code",
"execution_count": 66,
"metadata": {},
"outputs": [],
"source": [
"def evaluate(account_list, metric):\n",
"\n",
" document_list = list(MongoPaths._get_collection().find({'account_ids': account_list, 'impact_factor': 'v0', 'goal_metric': 'ga_fb_roas'}))\n",
" df = pd.DataFrame(document_list)\n",
" df1 = df[['start_date', 'end_date', 'precision', 'recall', 'mcc', 'f1', 'check_threshold', 'true_spend_prop', 'goal_metric']][1:]\n",
"\n",
" document_list = list(MongoPaths._get_collection().find({'account_ids': account_list, 'impact_factor': 'spend_prop', 'goal_metric': 'ga_fb_roas'}))\n",
" df = pd.DataFrame(document_list)\n",
" df2 = df[['start_date', 'end_date', 'precision', 'recall', 'mcc', 'f1', 'check_threshold', 'true_spend_prop', 'goal_metric']][1:]\n",
"\n",
" display((df1.merge(df2, on=['start_date', 'end_date'], how='inner', suffixes=('_imp_factor', '_spend_prop'))\n",
" [['start_date', 'end_date', 'precision_imp_factor', 'precision_spend_prop', 'recall_imp_factor',\n",
" 'recall_spend_prop','mcc_imp_factor', 'mcc_spend_prop', 'check_threshold_imp_factor', 'true_spend_prop_imp_factor', 'check_threshold_spend_prop', 'true_spend_prop_spend_prop']]))# 'true_spend_prop', 'goal_metric'])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Zivame\n",
"#### GA: ROAS"
]
},
{
"cell_type": "code",
"execution_count": 67,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>start_date</th>\n",
" <th>end_date</th>\n",
" <th>precision_imp_factor</th>\n",
" <th>precision_spend_prop</th>\n",
" <th>recall_imp_factor</th>\n",
" <th>recall_spend_prop</th>\n",
" <th>mcc_imp_factor</th>\n",
" <th>mcc_spend_prop</th>\n",
" <th>check_threshold_imp_factor</th>\n",
" <th>true_spend_prop_imp_factor</th>\n",
" <th>check_threshold_spend_prop</th>\n",
" <th>true_spend_prop_spend_prop</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>2017-07-26</td>\n",
" <td>2017-07-26</td>\n",
" <td>0.985856</td>\n",
" <td>0.625602</td>\n",
" <td>0.623090</td>\n",
" <td>0.610104</td>\n",
" <td>0.672847</td>\n",
" <td>0.290224</td>\n",
" <td>0.365622</td>\n",
" <td>0.467380</td>\n",
" <td>0.365622</td>\n",
" <td>0.467380</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>2017-07-21</td>\n",
" <td>2017-07-27</td>\n",
" <td>0.891673</td>\n",
" <td>0.456556</td>\n",
" <td>0.493252</td>\n",
" <td>0.535627</td>\n",
" <td>0.479706</td>\n",
" <td>-0.125919</td>\n",
" <td>0.367768</td>\n",
" <td>0.508143</td>\n",
" <td>0.367573</td>\n",
" <td>0.508343</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>2017-07-14</td>\n",
" <td>2017-07-27</td>\n",
" <td>0.730230</td>\n",
" <td>0.646686</td>\n",
" <td>0.281958</td>\n",
" <td>0.488759</td>\n",
" <td>0.222045</td>\n",
" <td>0.222988</td>\n",
" <td>0.321573</td>\n",
" <td>0.504526</td>\n",
" <td>0.321622</td>\n",
" <td>0.504718</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>2017-06-30</td>\n",
" <td>2017-07-27</td>\n",
" <td>0.868042</td>\n",
" <td>0.706758</td>\n",
" <td>0.335098</td>\n",
" <td>0.599827</td>\n",
" <td>0.328902</td>\n",
" <td>0.288096</td>\n",
" <td>0.333902</td>\n",
" <td>0.555038</td>\n",
" <td>0.333952</td>\n",
" <td>0.555048</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>2017-07-01</td>\n",
" <td>2017-07-27</td>\n",
" <td>0.752315</td>\n",
" <td>0.727771</td>\n",
" <td>0.195121</td>\n",
" <td>0.586357</td>\n",
" <td>0.173911</td>\n",
" <td>0.332155</td>\n",
" <td>0.341408</td>\n",
" <td>0.536647</td>\n",
" <td>0.341453</td>\n",
" <td>0.538686</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>2017-06-01</td>\n",
" <td>2017-06-30</td>\n",
" <td>0.711727</td>\n",
" <td>0.654874</td>\n",
" <td>0.361724</td>\n",
" <td>0.500136</td>\n",
" <td>0.281152</td>\n",
" <td>0.290710</td>\n",
" <td>0.386157</td>\n",
" <td>0.457136</td>\n",
" <td>0.386157</td>\n",
" <td>0.457136</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>2017-05-01</td>\n",
" <td>2017-05-31</td>\n",
" <td>0.705761</td>\n",
" <td>0.667950</td>\n",
" <td>0.197365</td>\n",
" <td>0.172454</td>\n",
" <td>0.166123</td>\n",
" <td>0.129532</td>\n",
" <td>0.388255</td>\n",
" <td>0.499663</td>\n",
" <td>0.388255</td>\n",
" <td>0.499663</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>2017-06-01</td>\n",
" <td>2017-06-27</td>\n",
" <td>0.773614</td>\n",
" <td>0.662033</td>\n",
" <td>0.327819</td>\n",
" <td>0.521711</td>\n",
" <td>0.308334</td>\n",
" <td>0.303502</td>\n",
" <td>0.383123</td>\n",
" <td>0.462081</td>\n",
" <td>0.383123</td>\n",
" <td>0.462081</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>2017-07-17</td>\n",
" <td>2017-07-20</td>\n",
" <td>0.806707</td>\n",
" <td>0.737156</td>\n",
" <td>0.491152</td>\n",
" <td>0.724679</td>\n",
" <td>0.425757</td>\n",
" <td>0.494192</td>\n",
" <td>0.341671</td>\n",
" <td>0.472006</td>\n",
" <td>0.341671</td>\n",
" <td>0.472006</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" start_date end_date precision_imp_factor precision_spend_prop \\\n",
"0 2017-07-26 2017-07-26 0.985856 0.625602 \n",
"1 2017-07-21 2017-07-27 0.891673 0.456556 \n",
"2 2017-07-14 2017-07-27 0.730230 0.646686 \n",
"3 2017-06-30 2017-07-27 0.868042 0.706758 \n",
"4 2017-07-01 2017-07-27 0.752315 0.727771 \n",
"5 2017-06-01 2017-06-30 0.711727 0.654874 \n",
"6 2017-05-01 2017-05-31 0.705761 0.667950 \n",
"7 2017-06-01 2017-06-27 0.773614 0.662033 \n",
"8 2017-07-17 2017-07-20 0.806707 0.737156 \n",
"\n",
" recall_imp_factor recall_spend_prop mcc_imp_factor mcc_spend_prop \\\n",
"0 0.623090 0.610104 0.672847 0.290224 \n",
"1 0.493252 0.535627 0.479706 -0.125919 \n",
"2 0.281958 0.488759 0.222045 0.222988 \n",
"3 0.335098 0.599827 0.328902 0.288096 \n",
"4 0.195121 0.586357 0.173911 0.332155 \n",
"5 0.361724 0.500136 0.281152 0.290710 \n",
"6 0.197365 0.172454 0.166123 0.129532 \n",
"7 0.327819 0.521711 0.308334 0.303502 \n",
"8 0.491152 0.724679 0.425757 0.494192 \n",
"\n",
" check_threshold_imp_factor true_spend_prop_imp_factor \\\n",
"0 0.365622 0.467380 \n",
"1 0.367768 0.508143 \n",
"2 0.321573 0.504526 \n",
"3 0.333902 0.555038 \n",
"4 0.341408 0.536647 \n",
"5 0.386157 0.457136 \n",
"6 0.388255 0.499663 \n",
"7 0.383123 0.462081 \n",
"8 0.341671 0.472006 \n",
"\n",
" check_threshold_spend_prop true_spend_prop_spend_prop \n",
"0 0.365622 0.467380 \n",
"1 0.367573 0.508343 \n",
"2 0.321622 0.504718 \n",
"3 0.333952 0.555048 \n",
"4 0.341453 0.538686 \n",
"5 0.386157 0.457136 \n",
"6 0.388255 0.499663 \n",
"7 0.383123 0.462081 \n",
"8 0.341671 0.472006 "
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"evaluate(account_list = [15],\n",
" metric = 'ga_fb_roas')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Faballey\n",
"#### GA: ROAS"
]
},
{
"cell_type": "code",
"execution_count": 68,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>start_date</th>\n",
" <th>end_date</th>\n",
" <th>precision_imp_factor</th>\n",
" <th>precision_spend_prop</th>\n",
" <th>recall_imp_factor</th>\n",
" <th>recall_spend_prop</th>\n",
" <th>mcc_imp_factor</th>\n",
" <th>mcc_spend_prop</th>\n",
" <th>check_threshold_imp_factor</th>\n",
" <th>true_spend_prop_imp_factor</th>\n",
" <th>check_threshold_spend_prop</th>\n",
" <th>true_spend_prop_spend_prop</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>2017-07-26</td>\n",
" <td>2017-07-26</td>\n",
" <td>0.857461</td>\n",
" <td>0.661257</td>\n",
" <td>0.618888</td>\n",
" <td>0.725246</td>\n",
" <td>0.470142</td>\n",
" <td>0.200697</td>\n",
" <td>0.384966</td>\n",
" <td>0.587946</td>\n",
" <td>0.384966</td>\n",
" <td>0.587946</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>2017-07-21</td>\n",
" <td>2017-07-27</td>\n",
" <td>0.889858</td>\n",
" <td>0.748645</td>\n",
" <td>0.470549</td>\n",
" <td>0.626804</td>\n",
" <td>0.508153</td>\n",
" <td>0.488517</td>\n",
" <td>0.397425</td>\n",
" <td>0.421081</td>\n",
" <td>0.398098</td>\n",
" <td>0.422468</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>2017-06-30</td>\n",
" <td>2017-07-27</td>\n",
" <td>0.780119</td>\n",
" <td>0.639036</td>\n",
" <td>0.223097</td>\n",
" <td>0.321420</td>\n",
" <td>0.197702</td>\n",
" <td>0.106914</td>\n",
" <td>0.417940</td>\n",
" <td>0.553471</td>\n",
" <td>0.418004</td>\n",
" <td>0.553462</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>2017-07-01</td>\n",
" <td>2017-07-27</td>\n",
" <td>0.778153</td>\n",
" <td>0.679230</td>\n",
" <td>0.229371</td>\n",
" <td>0.357024</td>\n",
" <td>0.205005</td>\n",
" <td>0.163396</td>\n",
" <td>0.417788</td>\n",
" <td>0.544720</td>\n",
" <td>0.417770</td>\n",
" <td>0.552168</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>2017-06-01</td>\n",
" <td>2017-06-30</td>\n",
" <td>0.691892</td>\n",
" <td>0.674774</td>\n",
" <td>0.358297</td>\n",
" <td>0.437282</td>\n",
" <td>0.204466</td>\n",
" <td>0.215669</td>\n",
" <td>0.470869</td>\n",
" <td>0.524732</td>\n",
" <td>0.470869</td>\n",
" <td>0.524732</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>2017-05-01</td>\n",
" <td>2017-05-31</td>\n",
" <td>0.499722</td>\n",
" <td>0.499722</td>\n",
" <td>0.426176</td>\n",
" <td>0.426176</td>\n",
" <td>0.258217</td>\n",
" <td>0.258217</td>\n",
" <td>0.642795</td>\n",
" <td>0.297185</td>\n",
" <td>0.642795</td>\n",
" <td>0.297185</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>2017-06-01</td>\n",
" <td>2017-06-27</td>\n",
" <td>0.719273</td>\n",
" <td>0.689721</td>\n",
" <td>0.367034</td>\n",
" <td>0.444675</td>\n",
" <td>0.249019</td>\n",
" <td>0.252497</td>\n",
" <td>0.466602</td>\n",
" <td>0.509151</td>\n",
" <td>0.466602</td>\n",
" <td>0.509151</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>2017-07-17</td>\n",
" <td>2017-07-20</td>\n",
" <td>0.878365</td>\n",
" <td>0.779726</td>\n",
" <td>0.296798</td>\n",
" <td>0.770325</td>\n",
" <td>0.361235</td>\n",
" <td>0.587379</td>\n",
" <td>0.502676</td>\n",
" <td>0.457521</td>\n",
" <td>0.502676</td>\n",
" <td>0.457521</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" start_date end_date precision_imp_factor precision_spend_prop \\\n",
"0 2017-07-26 2017-07-26 0.857461 0.661257 \n",
"1 2017-07-21 2017-07-27 0.889858 0.748645 \n",
"2 2017-06-30 2017-07-27 0.780119 0.639036 \n",
"3 2017-07-01 2017-07-27 0.778153 0.679230 \n",
"4 2017-06-01 2017-06-30 0.691892 0.674774 \n",
"5 2017-05-01 2017-05-31 0.499722 0.499722 \n",
"6 2017-06-01 2017-06-27 0.719273 0.689721 \n",
"7 2017-07-17 2017-07-20 0.878365 0.779726 \n",
"\n",
" recall_imp_factor recall_spend_prop mcc_imp_factor mcc_spend_prop \\\n",
"0 0.618888 0.725246 0.470142 0.200697 \n",
"1 0.470549 0.626804 0.508153 0.488517 \n",
"2 0.223097 0.321420 0.197702 0.106914 \n",
"3 0.229371 0.357024 0.205005 0.163396 \n",
"4 0.358297 0.437282 0.204466 0.215669 \n",
"5 0.426176 0.426176 0.258217 0.258217 \n",
"6 0.367034 0.444675 0.249019 0.252497 \n",
"7 0.296798 0.770325 0.361235 0.587379 \n",
"\n",
" check_threshold_imp_factor true_spend_prop_imp_factor \\\n",
"0 0.384966 0.587946 \n",
"1 0.397425 0.421081 \n",
"2 0.417940 0.553471 \n",
"3 0.417788 0.544720 \n",
"4 0.470869 0.524732 \n",
"5 0.642795 0.297185 \n",
"6 0.466602 0.509151 \n",
"7 0.502676 0.457521 \n",
"\n",
" check_threshold_spend_prop true_spend_prop_spend_prop \n",
"0 0.384966 0.587946 \n",
"1 0.398098 0.422468 \n",
"2 0.418004 0.553462 \n",
"3 0.417770 0.552168 \n",
"4 0.470869 0.524732 \n",
"5 0.642795 0.297185 \n",
"6 0.466602 0.509151 \n",
"7 0.502676 0.457521 "
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"evaluate(account_list = [261, 260],\n",
" metric = 'ga_fb_roas')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Zivame\n",
"#### FB: CTR"
]
},
{
"cell_type": "code",
"execution_count": 69,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>start_date</th>\n",
" <th>end_date</th>\n",
" <th>precision_imp_factor</th>\n",
" <th>precision_spend_prop</th>\n",
" <th>recall_imp_factor</th>\n",
" <th>recall_spend_prop</th>\n",
" <th>mcc_imp_factor</th>\n",
" <th>mcc_spend_prop</th>\n",
" <th>check_threshold_imp_factor</th>\n",
" <th>true_spend_prop_imp_factor</th>\n",
" <th>check_threshold_spend_prop</th>\n",
" <th>true_spend_prop_spend_prop</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>2017-07-26</td>\n",
" <td>2017-07-26</td>\n",
" <td>0.985856</td>\n",
" <td>0.625602</td>\n",
" <td>0.623090</td>\n",
" <td>0.610104</td>\n",
" <td>0.672847</td>\n",
" <td>0.290224</td>\n",
" <td>0.365622</td>\n",
" <td>0.467380</td>\n",
" <td>0.365622</td>\n",
" <td>0.467380</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>2017-07-21</td>\n",
" <td>2017-07-27</td>\n",
" <td>0.891673</td>\n",
" <td>0.456556</td>\n",
" <td>0.493252</td>\n",
" <td>0.535627</td>\n",
" <td>0.479706</td>\n",
" <td>-0.125919</td>\n",
" <td>0.367768</td>\n",
" <td>0.508143</td>\n",
" <td>0.367573</td>\n",
" <td>0.508343</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>2017-07-14</td>\n",
" <td>2017-07-27</td>\n",
" <td>0.730230</td>\n",
" <td>0.646686</td>\n",
" <td>0.281958</td>\n",
" <td>0.488759</td>\n",
" <td>0.222045</td>\n",
" <td>0.222988</td>\n",
" <td>0.321573</td>\n",
" <td>0.504526</td>\n",
" <td>0.321622</td>\n",
" <td>0.504718</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>2017-06-30</td>\n",
" <td>2017-07-27</td>\n",
" <td>0.868042</td>\n",
" <td>0.706758</td>\n",
" <td>0.335098</td>\n",
" <td>0.599827</td>\n",
" <td>0.328902</td>\n",
" <td>0.288096</td>\n",
" <td>0.333902</td>\n",
" <td>0.555038</td>\n",
" <td>0.333952</td>\n",
" <td>0.555048</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>2017-07-01</td>\n",
" <td>2017-07-27</td>\n",
" <td>0.752315</td>\n",
" <td>0.727771</td>\n",
" <td>0.195121</td>\n",
" <td>0.586357</td>\n",
" <td>0.173911</td>\n",
" <td>0.332155</td>\n",
" <td>0.341408</td>\n",
" <td>0.536647</td>\n",
" <td>0.341453</td>\n",
" <td>0.538686</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>2017-06-01</td>\n",
" <td>2017-06-30</td>\n",
" <td>0.711727</td>\n",
" <td>0.654874</td>\n",
" <td>0.361724</td>\n",
" <td>0.500136</td>\n",
" <td>0.281152</td>\n",
" <td>0.290710</td>\n",
" <td>0.386157</td>\n",
" <td>0.457136</td>\n",
" <td>0.386157</td>\n",
" <td>0.457136</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>2017-05-01</td>\n",
" <td>2017-05-31</td>\n",
" <td>0.705761</td>\n",
" <td>0.667950</td>\n",
" <td>0.197365</td>\n",
" <td>0.172454</td>\n",
" <td>0.166123</td>\n",
" <td>0.129532</td>\n",
" <td>0.388255</td>\n",
" <td>0.499663</td>\n",
" <td>0.388255</td>\n",
" <td>0.499663</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>2017-06-01</td>\n",
" <td>2017-06-27</td>\n",
" <td>0.773614</td>\n",
" <td>0.662033</td>\n",
" <td>0.327819</td>\n",
" <td>0.521711</td>\n",
" <td>0.308334</td>\n",
" <td>0.303502</td>\n",
" <td>0.383123</td>\n",
" <td>0.462081</td>\n",
" <td>0.383123</td>\n",
" <td>0.462081</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>2017-07-17</td>\n",
" <td>2017-07-20</td>\n",
" <td>0.806707</td>\n",
" <td>0.737156</td>\n",
" <td>0.491152</td>\n",
" <td>0.724679</td>\n",
" <td>0.425757</td>\n",
" <td>0.494192</td>\n",
" <td>0.341671</td>\n",
" <td>0.472006</td>\n",
" <td>0.341671</td>\n",
" <td>0.472006</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" start_date end_date precision_imp_factor precision_spend_prop \\\n",
"0 2017-07-26 2017-07-26 0.985856 0.625602 \n",
"1 2017-07-21 2017-07-27 0.891673 0.456556 \n",
"2 2017-07-14 2017-07-27 0.730230 0.646686 \n",
"3 2017-06-30 2017-07-27 0.868042 0.706758 \n",
"4 2017-07-01 2017-07-27 0.752315 0.727771 \n",
"5 2017-06-01 2017-06-30 0.711727 0.654874 \n",
"6 2017-05-01 2017-05-31 0.705761 0.667950 \n",
"7 2017-06-01 2017-06-27 0.773614 0.662033 \n",
"8 2017-07-17 2017-07-20 0.806707 0.737156 \n",
"\n",
" recall_imp_factor recall_spend_prop mcc_imp_factor mcc_spend_prop \\\n",
"0 0.623090 0.610104 0.672847 0.290224 \n",
"1 0.493252 0.535627 0.479706 -0.125919 \n",
"2 0.281958 0.488759 0.222045 0.222988 \n",
"3 0.335098 0.599827 0.328902 0.288096 \n",
"4 0.195121 0.586357 0.173911 0.332155 \n",
"5 0.361724 0.500136 0.281152 0.290710 \n",
"6 0.197365 0.172454 0.166123 0.129532 \n",
"7 0.327819 0.521711 0.308334 0.303502 \n",
"8 0.491152 0.724679 0.425757 0.494192 \n",
"\n",
" check_threshold_imp_factor true_spend_prop_imp_factor \\\n",
"0 0.365622 0.467380 \n",
"1 0.367768 0.508143 \n",
"2 0.321573 0.504526 \n",
"3 0.333902 0.555038 \n",
"4 0.341408 0.536647 \n",
"5 0.386157 0.457136 \n",
"6 0.388255 0.499663 \n",
"7 0.383123 0.462081 \n",
"8 0.341671 0.472006 \n",
"\n",
" check_threshold_spend_prop true_spend_prop_spend_prop \n",
"0 0.365622 0.467380 \n",
"1 0.367573 0.508343 \n",
"2 0.321622 0.504718 \n",
"3 0.333952 0.555048 \n",
"4 0.341453 0.538686 \n",
"5 0.386157 0.457136 \n",
"6 0.388255 0.499663 \n",
"7 0.383123 0.462081 \n",
"8 0.341671 0.472006 "
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"evaluate(account_list = [15],\n",
" metric = 'fb_ctr')"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"account_list = [15]\n",
"metric = 'ga_fb_cpt'\n",
"imp_factor = 'v0'\n",
"document_list = list(MongoPaths._get_collection().find({'account_ids': account_list, 'impact_factor':imp_factor, 'goal_metric': metric}))\n",
"df = pd.DataFrame(document_list)\n",
"df[['start_date', 'end_date', 'precision', 'recall', 'mcc', 'f1', 'check_threshold', 'true_spend_prop']]"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"account_list = [15]\n",
"metric = 'ga_fb_cpt'\n",
"imp_factor = 'spend_prop'\n",
"document_list = list(MongoPaths._get_collection().find({'account_ids': account_list, 'impact_factor':imp_factor, 'goal_metric': metric}))\n",
"df = pd.DataFrame(document_list)\n",
"df[['start_date', 'end_date', 'precision', 'recall', 'mcc', 'f1', 'check_threshold', 'true_spend_prop']]"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"document_list = list(MongoPaths._get_collection().find({'account_ids': account_list, 'impact_factor': 'spend_prop', 'goal_metric': metric}))\n",
"pd.DataFrame(document_list)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"def print_scores(account_list, metric):\n",
" print('\\n imp_factor:')\n",
" document_list = list(MongoPaths._get_collection().find({'account_ids': account_list, 'impact_factor': 'v0', 'goal_metric': metric}))\n",
"\n",
" print('precision:', pd.np.mean([doc['precision'] for doc in document_list]))\n",
" print('recall:',pd.np.mean([doc['recall'] for doc in document_list]))\n",
" print('f1:',pd.np.mean([doc['f1'] for doc in document_list]))\n",
" print('mcc:',pd.np.mean([doc['mcc'] for doc in document_list]))\n",
"\n",
" print('\\n Spend prop:')\n",
" document_list = list(MongoPaths._get_collection().find({'account_ids': account_list, 'impact_factor': 'spend_prop', 'goal_metric': metric}))\n",
"\n",
" print('precision:', pd.np.mean([doc['precision'] for doc in document_list]))\n",
" print('recall:',pd.np.mean([doc['recall'] for doc in document_list]))\n",
" print('f1:',pd.np.mean([doc['f1'] for doc in document_list]))\n",
" print('mcc:',pd.np.mean([doc['mcc'] for doc in document_list]))"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"print(\"Cars24\")\n",
"print('ga_fb_cpt')\n",
"print_scores([136], 'ga_fb_cpt')\n",
"\n",
"print('-'*10)\n",
"print(\"Zivame\")\n",
"print('ga_fb_cpt')\n",
"print_scores([15], 'ga_fb_cpt')\n",
"print('ga_fb_roas')\n",
"print_scores([15], 'ga_fb_roas')\n",
"\n",
"print('-'*10)\n",
"print(\"Faballey\")\n",
"print('ga_fb_cpt')\n",
"print_scores([261, 260], 'ga_fb_cpt')\n",
"print('ga_fb_roas')\n",
"print_scores([261, 260], 'ga_fb_roas')\n",
"\n"
]
}
],
"metadata": {
"anaconda-cloud": {},
"kernelspec": {
"display_name": "Python [jarvis1]",
"language": "python",
"name": "Python [jarvis1]"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.5.2"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment