Skip to content

Instantly share code, notes, and snippets.

@Saurabh7
Created August 15, 2017 08:50
Show Gist options
  • Save Saurabh7/50cda132f9d5f0af7cfcd97fc7dc6694 to your computer and use it in GitHub Desktop.
Save Saurabh7/50cda132f9d5f0af7cfcd97fc7dc6694 to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 66,
"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": "code",
"execution_count": 67,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"from IPython.display import display, HTML\n",
"from itertools import combinations, product\n",
"import pandas as pd\n",
"import json\n",
"from jarvis.brain.insights.paths import path_pipeline as pp"
]
},
{
"cell_type": "code",
"execution_count": 68,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"import importlib\n",
"import warnings\n",
"warnings.filterwarnings('ignore')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Multiple metrics"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Definition:\n",
"\n",
"Extension of single metric path analysis.\n",
"\n",
"- Positive set definition is now union of two separate conditions.\n",
"\n",
"- Ads satisfying condition:\n",
" \n",
"$$\n",
"\\left ( \\left | \\text{goal metric}_1 - \\text{overall}_1 \\right | / \\text{overall}_1 > \\text{threshold}_1 \\right ) \\mathbf{or} \\left ( \\left | \\text{goal metric}_2 - \\text{overall}_2 \\right | / \\text{overall}_2 > \\text{threshold}_2 \\right )\n",
"$$ \n"
]
},
{
"cell_type": "code",
"execution_count": 69,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"TIME USED 32.37569713592529\n",
"TIME USED 29.66770052909851\n"
]
}
],
"source": [
"account_ids = {'facebook': [15]}#{'adwords': [1]} #,\n",
"date_range = {'start': '2017-07-01', 'end': '2017-07-31'}\n",
"goal_metric = [{'value': 'ga_fb_cpv',\n",
" 'base_metrics': {'numerator': 'fb_spend',\n",
" 'denominator': 'ga_visits'},\n",
" 'diff': -1},\n",
" {'value': 'ga_cvr',\n",
" 'base_metrics': {'numerator': 'ga_transactions',\n",
" 'denominator': 'ga_visits'},\n",
" 'diff': 1,\n",
" 'percentage': True}] \n",
"\n",
"args = {}\n",
"args['account_ids'] = account_ids\n",
"args['dimensions'] = None\n",
"args['tag_list'] = None #[\"Adsets\",\"Audience Types\",\"Behaviors\",\n",
" #\"Custom Audiences\",\"Image\",\"Interests\",\"Lookalike Types\",\"Product Category\"]\n",
"args['goal'] = None\n",
"args['num_trees'] = 1\n",
"args['staging'] = None\n",
"args['filters'] = None\n",
"args['start_date'] = date_range['start']\n",
"args['end_date'] = date_range['end'] \n",
"args['goal_metric'] = goal_metric\n",
"args['num_results'] = 20\n",
"args['imp_factor'] = 8\n",
"args['spend_metric'] = None\n",
"args['target_value'] = None\n",
"path_pipeline = pp.PathPipeline(args)\n",
"df, tag_list, spend = path_pipeline.pre_process()\n",
"data = path_pipeline.execute()"
]
},
{
"cell_type": "code",
"execution_count": 70,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"for metric in goal_metric:\n",
" df[metric['value']] = df[metric['base_metrics']['numerator']] / df[metric['base_metrics']['denominator']]"
]
},
{
"cell_type": "code",
"execution_count": 71,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"path_model = path_pipeline.path_model"
]
},
{
"cell_type": "code",
"execution_count": 72,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"%matplotlib inline"
]
},
{
"cell_type": "code",
"execution_count": 73,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"binwidth=0.01"
]
},
{
"cell_type": "code",
"execution_count": 74,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"from matplotlib.pyplot import hist\n",
"import matplotlib.pyplot as plt\n",
"import matplotlib.ticker as ticker"
]
},
{
"cell_type": "code",
"execution_count": 75,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"data1 = []\n",
"data2 = []\n",
"dff= df[(df[path_model.goal_metrics[0]] != pd.np.inf) & (df[path_model.goal_metrics[1]] != pd.np.inf)]\n",
"for idx in range(len(dff)):\n",
" data1 += [dff[path_model.goal_metrics[0]].iloc[idx]]*int(dff[path_model.spend].iloc[idx])\n",
"for idx in range(len(dff)):\n",
" data2 += [dff[path_model.goal_metrics[1]].iloc[idx]]*int(dff[path_model.spend].iloc[idx]) "
]
},
{
"cell_type": "code",
"execution_count": 76,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"bins1 = pd.np.linspace((min(dff[path_model.goal_metrics[0]])),\n",
" (pd.np.percentile(data1, 95)), 30)\n",
"bins2 = pd.np.linspace((min(dff[path_model.goal_metrics[1]])),\n",
" (pd.np.percentile(data2, 95)), 30)"
]
},
{
"cell_type": "code",
"execution_count": 77,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"ths = path_model.check_threshold\n",
"t0 = ths[path_model.goal_metrics[0]]\n",
"t1 = ths[path_model.goal_metrics[1]]\n",
"overall0 = path_model.overall_goal_metric[path_model.goal_metrics[0]]\n",
"overall1 = path_model.overall_goal_metric[path_model.goal_metrics[1]]"
]
},
{
"cell_type": "code",
"execution_count": 78,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"from bisect import bisect\n",
"avg0 = bisect(bins1, path_model.overall_goal_metric[path_model.goal_metrics[0]])\n",
"avg1 = bisect(bins2, path_model.overall_goal_metric[path_model.goal_metrics[1]])\n",
"ths00 = bisect(bins1, overall0 + t0*overall0)\n",
"ths01 = bisect(bins1, overall0 - t0*overall0)\n",
"ths10 = bisect(bins2, overall1 + t1*overall1)\n",
"ths11 = bisect(bins2, overall1 - t1*overall1)"
]
},
{
"cell_type": "code",
"execution_count": 79,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"dff['bins {0}'.format(path_model.goal_metrics[0])] = pd.cut(dff[path_model.goal_metrics[0]], bins1)\n",
"dff['bins {0}'.format(path_model.goal_metrics[1])] = pd.cut(dff[path_model.goal_metrics[1]], bins2)"
]
},
{
"cell_type": "code",
"execution_count": 80,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"import seaborn as sns"
]
},
{
"cell_type": "code",
"execution_count": 81,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"df1 = dff.pivot_table(index='bins {0}'.format(path_model.goal_metrics[0]), columns='bins {0}'.format(path_model.goal_metrics[1]), values='fb_spend', aggfunc=pd.np.sum)\n",
"df1.fillna(0,inplace=True)\n",
"df1.replace(pd.np.nan, 0, inplace=True)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"- Positive set here is area outside of the center box.\n",
"- Intensity of color is spend."
]
},
{
"cell_type": "code",
"execution_count": 82,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"# s1 = df[ ( df.ga_fb_cpv < overall0 - t0*overall0 ) | (df.ga_fb_cpv > overall0 + t0*overall0) ].fb_spend.sum()"
]
},
{
"cell_type": "code",
"execution_count": 83,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.legend.Legend at 0x7f8eb4982a20>"
]
},
"execution_count": 83,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\nBaisrORnP/sZ99xzDytWrMgmuCtWrGDNmjVs2LBho/bdunXLHi9YsIDJkyfToUOH7Lk2bNjAySef\nXOP1HXPMMdmlofna1nQNhZLv3Liqe+ONN+jdu3eNMZnV4BvAmJz350o6mcxz23+YboErB/6d02Zx\nKhPwRk75ImDvtFHmOxFRmVNeno7Lq/pExAZJqyR1yLmlbhNOEs3MzMy2Yh9++CF33XUXlZWVdO7c\nGYC1a9eyatUqZs2axW677Ua/fv3o0aMHEyZMYMyYMYwY8fFjmbt3784tt9zCfvtt+hSvBQsWAGyU\naI0ePZrx48fz+OOP0717d1avXk379u2JCLbffnuaNWvGokWL6NOnD5BJuKp069aNgw46KLtsta5a\nt27NkUceyY033sjrr7++SX1N17Bw4cK8Y9Y0c9utWzfGjBlTsN4an4beTObF9WuYtf7j/S2HSgdF\nxJPV20lqDnyVzAacADcAV0RESLqSzHPfzyT/7GKQfyVo1Uab1ftU/WWqerly6vJqtMtNzcy2NipR\ng71sU1EZDfZqSOs/XN9gL8tvxasrPvWrMbvvvvto1qwZr7zyCjNnzmTmzJm88sorHHDAAYwc+fGT\nvUaMGMEf//hHnn76aY4//vhs+dlnn83PfvazbDK1fPnyjXZHrT5D+u6779KyZUvat2/P+++/z09/\n+tNswlVSUsKxxx7LZZddxgcffMCcOXM22pn0K1/5Cq+++iq3334769evZ926dTz//PPMmTOn1uv8\nzW9+w1NPPZV3BrCma9h+++0pKSlh/vz5tZ4jN84333yTP/7xj6xdu5b33nuPqVOn1rl/U9Vy25ab\nvCxj92ZtOLFVx+wrX4KYHAm8kJ7fTkQsz7nF7mYyy0khMxOY+8PcFViSyrtXL4+IFcDn0j2Lue03\nGktSKVBWtZlmIU4SzczMzLZio0aN4owzzqC8vJxOnTplX+eeey6jR4/O3ls4bNgwnnrqKQ455JDs\nck+A888/n6OPPprDDz+cdu3a8YUvfGGjhKj6jNspp5xC9+7dKS8vZ9ddd+ULX/jCRvXXXXcdq1at\nonPnzpx66qmMGDEie89f27ZtmTRpEnfccQddunShS5cuXHTRRaxduzbvteWee8cdd9zoXLl1NV1D\n69atufjii9l///3p0KFDnZK9tm3b8o9//INx48ax44470rdvX5588sla+1nxFHvjmhzDyVlqKmnH\nnLpjgapNMscBw9LOpD2BPsBU4Dmgj6Qe6bnyw4AHUp/Hgaq/8JyaUz4uvSfVf7xLVQHy3jBbH31n\nX39TbasWN05B396n9oaNTEPO+DXo7NaNU6AJft6WX1P999Po3TilqPccNmUXXXQRb775Jrfeemux\nQ7EaSKLlhV/cpPzDa55qEstZHu6w8xb9B3rEyrmbfC6SWgMLgV4R8W4qGwXsAVQC/wXOjog3U91P\nyexMug44PyImpfIjgD+QmfD7a0Rclcp7ktnIpj2Z56yfFBHrJLUE/gYMBN4GhqXNcAryPYlmZmZm\ntsXMnTuXtWvXsttuuzF16lT++te/cssttxQ7LNvKNYYH3EfEB8D21cpOqaH9b4Df5Cl/GNg5T/l/\ngE3+ChgRH5F5nEadOUk0MzMzsy3m3XffZfjw4SxdupROnTpx4YUXMnTo0GKHZWY5nCSamZmZ2Raz\n1157MW/evGKHYZ8xjWEmsSkp6sclqZWkJ5XRXdLzkqZJmiXp7Jx2T0iaI2l6qu+YZ6wektak+mmS\nbsjTZpykF3Pe35HT/j+SptUSb0tJU1IcsyRdWq3+V5LmSpot6bwCY1wt6aXU5tqc8uaS/pz6vyzp\nmGr9jpNUKWlQej8kjfFi9XOYmZmZmZl9UsWeSTwDuDc9F2QJsF+6ubINMFvSAxGxLLUdHhHTaxnv\ntYgYlK8iJV0VuWURMSyn/rfAqpoGj4iPJB0cEWvS9rHPSpoYEVMlnQaUR8TOabx8iex+wBciYldl\nttx6VtIXI+KfwMXAmzn9O+T0awt8F5icE8szko4CxtcUs5mZmZnZZ51nEuun2B/XiaStWSNifUSs\nS+Wt2fShj3WJNe/uSpK2AS4Arqyh7wnkbEdbSERUPSWzJZkku2qnpO8AV+S0y/fQpABaSWpF5hqb\nAW+mujPIuTE1Ilbm9PslcDXwUW3xmZmZmZmZfRpFSxIlNQd6RsTCnLKukmYCC4Crc2YRAW5Jy0J/\nXsOwO0l6IS1PHZJT/kvgt8AHBWI5AFgWEbU+RVVSiaTpwDLgHxHxXKrqTeZZJs9JekhSn+p9I2Iy\n8CSwFFgMPBIRcyW1S02uTPHfKWn7dL49gK4RMaG22MzMzMzMbFOStuirqSvmTGJHqi3vjIhFETGA\nzMMiT6tKlIARqfwA4ABJJ+UZbwnQPSL2BH4IjJbUVtIAoE9EjCMz05jvu7bRQy1rEhGVETEQ6Ars\nI6l/qmoJrImIwcBfgE32cpbUG9gF6AKUA4ekZLZZGu/pFP9k4LdpServ0/Vkh6k1yMUV8Nyij1+L\nK2rtYmZmZmZmBsVNEj8AWuWrSDOIs8kkhUTE0vT1fWA0sHeePusi4p10PA2YD/QF9gMGSXodeBro\nK+nxqn7p3sJjgTvrE3xEVJCZFTwiFb0BjE119wG75+l2DDA5Ij5Iy1YnAvtGxNvA+xFxf2p3NzAI\naAvsCjwp6T/AvsADVZvXFFReBoO7fvwqL6vPpZmZmdlnyOWXX87JJ5/c4OdZsGABJSUlVFZW1rvv\nU089Rbdu3QrWn3766VxyySWfJrzN4k9/+hM77rgjZWVlvPPOOzz77LP07duXsrIyxo0bt9nOU9vn\nYfZpFS1JjIhVQKmkFgCSytO9ekhqD+wPzJVUKmm7VN4c+ArwUvXxJHWUVJKOe5GZjXw9Im6MiK4R\n0QsYAsyNiC/ldD0MeCUiluSM1UXSowXO0S4dtwYOBeak6vuBQ1LdQcDcPJe9EDgwXVNz4EDglVQ3\nXtLB6fhQ4OWIeDcito+IXhHRk8wM49CUBJuZmZnVatttt6WsrIyysjJKS0tp06ZNtmzMmMxCqi21\nPO7TnGdLL+GrbyK2fv16fvjDH/Loo49SUVFB+/btufTSS/ne975HRUUFX/3qVzdrfFvDksYtqaRk\ny76aumJfwiQyiRtAP2BKut/vCeCaiJhNZhnnI5JmANOARcDNAJKGSros9f8i8GLqfxdwdkpEa/MN\nNl1q2hlYl6dtZ+CJFMsUMvcUVt0reDXw9fRIil8BZ6YY95R0U2pzD/A6MAuYDkyPiIdS3UXAZWns\nE9l4iWmVoC7LTc3MzMySd999l4qKCioqKujRowcPPfRQtmz48OH1GmvDhg0NFGXjExH1SsSWLVvG\nRx99RL9+/bJlCxYsoH///jX0Mmucip0kXg+cChARj0bEgIgYGBF7RMRfU/maiNgrle0WERdERKS6\n8RFxWToeGxG7pv575dvoJSIWRMTu1cpOj4ibqjXdN8VWvf+siBiUYtk9In6VU7c6Ir6SyvePiFmp\n/IWI+FY6royIb0dE/xTrhTn9F0bEgWnswyJiUZ7zf6naLKITRjMzM6uziCD9GrWRjz76iFNPPZWy\nsjJ22203pk37+NeNnj17cs011zBgwADatm1LZWUlS5cu5bjjjqNTp0707t2b6667Ltv+ueeeY/Dg\nwbRr147OnTvzox/9aKPz33777fTo0YNOnTrx61//Olu3du1avv/971NeXk7Xrl254IILWLcu39/s\nYfr06ey55560a9eOYcOG8eGHH9Z43TfffDP9+/enrKyMXXfdlRkzZgBQUlLC66+/nm1XtWx1zZo1\nHHXUUSxZsiQ767ps2bKCMc6bN49ddtkFgPbt23PooYfSp08fXn/9db7yla9QVla2ybVcffXVHH/8\n8RuVnX/++Xz/+98H4LbbbsvG3KdPH266qfqvqx8rdB1VHnzwQQYOHEj79u0ZMmQIs2bN2iiOrl27\nUlZWRr9+/XjiiSdq/CybKs8k1k9RLyEiZpCZmWtUyU5EXB8RDxY7jpqkDW/GAcuLHYuZmZk1bePH\nj2fEiBGsXr2aoUOHcu65525Uf8cddzBx4kRWrVqFJIYOHcrAgQNZunQpjz32GH/4wx/4xz/+AXyc\n6KxevZr58+dzwgknbDTWs88+y7x583j00Ue54oormDs3c4fOlVdeydSpU3nxxReZOXMmU6dO5cor\nN3162bp16zjmmGM49dRTWblyJccffzz33ntvwWu7++67ueKKK7j99tupqKhg3LhxbLfddkDhJZtt\n2rRh4sSJdOnSJTvruuOOOxaM8X/+53+YPXs2AKtXr+bRRx/ltddeo3v37jz00ENUVFTQvHnzjc4x\nfPhwJk6cyHvvvQdAZWUld999NyeeeCIAO+ywAxMmTKCiooJbb72VCy64IJvcVlfTr9LTpk3jm9/8\nJjfffDMrV67k7LPP5qtf/Srr1q3j1Vdf5frrr+eFF16goqKCRx55hJ122qngWPbZUfQ8NyJui3x/\n0rIaRcQzadbykGLHYmZmZnUgffpXAxkyZAhf/vKXkcTJJ5/Miy++uFH9+eefT5cuXWjZsiXPPfcc\nK1as4OKLL6a0tJSddtqJM888kzvuuAOA5s2b89prr/H222/Tpk0b9t774/0GJXHZZZfRokULdt99\ndwYMGMDMmTMBGD16NJdeeinbbbcd2223HZdeeil/+9vfNon13//+N+vXr+d73/sepaWlfP3rX2fw\n4MEFr+2vf/0rP/7xjxk0KLPvX69evbL3Gtb3V9B8MY4aNWqjsaqPWegc3bt3Z9CgQdx/f2bfwsce\ne4xtttkmey1HHnlkNmE74IADOPzww3n66afzjlXTdfzlL3/h29/+NnvttVf2+9uyZUsmT55MaWkp\n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\nNbSf5stLbwMetj2L5fc6/7TtV1JNH90IOKHRpDkEVXLZaspTX+UrJdNNIyIiIiIiVsG0393JtN/d\ntfT4C189ak/b02pV3gjsL+mtwJrAupLOtv1BANsLJZ0BfLLUnwNsUWs/CXiglO/ZVH5VH/UBHpL0\nYtsPS9oUeKS/+8lIYkRERERExCrY8w3b8rlPvW3ppylBxPaJtre0vTVwMHCl7Q+WpA1JonqH8ObS\n5CLgg+XcrsATZcro5cC+5R3FDYB9gcvLNNJ5knYpsT4IXFiLdVj5fmitvK2MJEZERERExMi2Gixc\n08a5kjammi46C/hHANuXSHqrpD8AzwB/X8ofl/TvwA1U00k/b7uxcthHgTOB8cAlti8r5V8Cfizp\ncOA+4D39dapnT0vSeEnTVNle0u8k3VRe2jyoVu+osj/IYkltlzfrY7+QsZL+p5TfKumdtfqPlP1I\nZpSH1ld/15R0saTbSj//X+3cMZJuKX3/paQt2sS4tOyBcpOkb5Ysn3L//1fO/V7Sa0v530maXeJe\n09g3pTy7mZIW9PVMIiIiIiJi9WL7atv7l+97297e9na2P2j72Vq9j9l+WTk/o1Z+pu2/sr2t7bNr\n5dNt/3U5d3St/DHb+9h+ue19a0llW70cSTwcON+2JT0LfMD23ZI2A6ZLusz2POAa4OdUS7W2VNsv\nZDJVFj5d0oVladh/oXpJ9OWlbj2p+qHtTwygz1+2fbWkMcCVkt5s+3JgBrCT7QWS/hH4MtUwcrP3\n2H669OM8qiz+x8DJwGdtTy17onyZannbe4DdbT8paT/gdGBX2wuAHSXdM4C+R0RERES8MPWxwX2s\nqJdJ4vuAQwBsL33L0/aDkh6hWpp1nu3ZsHSebjtvpsV+IcCPqJLRl9fiP1Zr1/GGaLbnA1eX74sk\nzaB6IRTbV9eqXlvurVWMRoI4FhjHshWHlgCNTTDXp1rKFtvXNsWdyPK6t6FbRERERES8IPUkSSxJ\n0la272txbhdgrO27BxCy5X4hkhqJ10mS9gT+AHzM9p9L+bskvQm4EzjWdn1vkb76vz7wduCUFqc/\nBFzaR9vLqJa4vRQ4rxQfA1wu6StUid8bWjT9cF9xlzN3Hjwwb9nx5hNg4oSOmkZEREREjDir7zuJ\nq6VePa2NgRXmwpappmezbPWdTrXbF2QM1Wjfb2zvRDUa95Vy/iLgpbZ3AH4FnNXRhaTRwPeBU2z/\n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\nSUVORK5CYII=\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f8ec72b0470>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"import matplotlib.pyplot as plt\n",
"fig, ax = plt.subplots(figsize=(15,10)) # Sample figsize in inches\n",
"ax = sns.heatmap(df1, cmap=\"RdYlGn_r\")\n",
"ax.invert_yaxis()\n",
"ax.hlines(avg0, *ax.get_xlim(), label='Average Metric')\n",
"ax.hlines(ths00, *ax.get_xlim(), colors='red', label='Threshold cutoff values')\n",
"ax.hlines(ths01, *ax.get_xlim(), colors='red')\n",
"ax.vlines(ths10, *ax.get_ylim(), colors='red')\n",
"ax.vlines(ths11, *ax.get_ylim(), colors='red')\n",
"ax.vlines(avg1, *ax.get_ylim())\n",
"plt.legend()"
]
},
{
"cell_type": "code",
"execution_count": 84,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"data_1 = {key: value for (key, value) in enumerate(data['q0'])}\n",
"data_2 = {key: value for (key, value) in enumerate(data['q1'])}\n",
"data_3 = {key: value for (key, value) in enumerate(data['q2'])}\n",
"data_4 = {key: value for (key, value) in enumerate(data['q3'])}\n",
"\n",
"df_1 = pd.DataFrame().from_dict(data_1, orient='index')\n",
"df_2 = pd.DataFrame().from_dict(data_2, orient='index')\n",
"df_3 = pd.DataFrame().from_dict(data_3, orient='index')\n",
"df_4 = pd.DataFrame().from_dict(data_4, orient='index')"
]
},
{
"cell_type": "code",
"execution_count": 85,
"metadata": {},
"outputs": [],
"source": [
"from bokeh.charts import Scatter, output_file, show\n",
"from bokeh.io import output_notebook, push_notebook\n",
"from bokeh.plotting import figure, ColumnDataSource\n",
"from bokeh.models import HoverTool\n",
"from bokeh.models.widgets.tables import DataTable, TableColumn\n",
"from bokeh.models import Span"
]
},
{
"cell_type": "code",
"execution_count": 86,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
" <div class=\"bk-root\">\n",
" <a href=\"http://bokeh.pydata.org\" target=\"_blank\" class=\"bk-logo bk-logo-small bk-logo-notebook\"></a>\n",
" <span id=\"9ec61e28-baf4-4fb3-b803-7eedcb5ccc4f\">Loading BokehJS ...</span>\n",
" </div>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"application/javascript": [
"\n",
"(function(global) {\n",
" function now() {\n",
" return new Date();\n",
" }\n",
"\n",
" var force = true;\n",
"\n",
" if (typeof (window._bokeh_onload_callbacks) === \"undefined\" || force === true) {\n",
" window._bokeh_onload_callbacks = [];\n",
" window._bokeh_is_loading = undefined;\n",
" }\n",
"\n",
"\n",
" \n",
" if (typeof (window._bokeh_timeout) === \"undefined\" || force === true) {\n",
" window._bokeh_timeout = Date.now() + 5000;\n",
" window._bokeh_failed_load = false;\n",
" }\n",
"\n",
" var NB_LOAD_WARNING = {'data': {'text/html':\n",
" \"<div style='background-color: #fdd'>\\n\"+\n",
" \"<p>\\n\"+\n",
" \"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \\n\"+\n",
" \"may be due to a slow or bad network connection. Possible fixes:\\n\"+\n",
" \"</p>\\n\"+\n",
" \"<ul>\\n\"+\n",
" \"<li>re-rerun `output_notebook()` to attempt to load from CDN again, or</li>\\n\"+\n",
" \"<li>use INLINE resources instead, as so:</li>\\n\"+\n",
" \"</ul>\\n\"+\n",
" \"<code>\\n\"+\n",
" \"from bokeh.resources import INLINE\\n\"+\n",
" \"output_notebook(resources=INLINE)\\n\"+\n",
" \"</code>\\n\"+\n",
" \"</div>\"}};\n",
"\n",
" function display_loaded() {\n",
" if (window.Bokeh !== undefined) {\n",
" var el = document.getElementById(\"9ec61e28-baf4-4fb3-b803-7eedcb5ccc4f\");\n",
" el.textContent = \"BokehJS \" + Bokeh.version + \" successfully loaded.\";\n",
" } else if (Date.now() < window._bokeh_timeout) {\n",
" setTimeout(display_loaded, 100)\n",
" }\n",
" }\n",
"\n",
" function run_callbacks() {\n",
" try {\n",
" window._bokeh_onload_callbacks.forEach(function(callback) { callback() });\n",
" }\n",
" finally {\n",
" delete window._bokeh_onload_callbacks\n",
" }\n",
" console.info(\"Bokeh: all callbacks have finished\");\n",
" }\n",
"\n",
" function load_libs(js_urls, callback) {\n",
" window._bokeh_onload_callbacks.push(callback);\n",
" if (window._bokeh_is_loading > 0) {\n",
" console.log(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n",
" return null;\n",
" }\n",
" if (js_urls == null || js_urls.length === 0) {\n",
" run_callbacks();\n",
" return null;\n",
" }\n",
" console.log(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n",
" window._bokeh_is_loading = js_urls.length;\n",
" for (var i = 0; i < js_urls.length; i++) {\n",
" var url = js_urls[i];\n",
" var s = document.createElement('script');\n",
" s.src = url;\n",
" s.async = false;\n",
" s.onreadystatechange = s.onload = function() {\n",
" window._bokeh_is_loading--;\n",
" if (window._bokeh_is_loading === 0) {\n",
" console.log(\"Bokeh: all BokehJS libraries loaded\");\n",
" run_callbacks()\n",
" }\n",
" };\n",
" s.onerror = function() {\n",
" console.warn(\"failed to load library \" + url);\n",
" };\n",
" console.log(\"Bokeh: injecting script tag for BokehJS library: \", url);\n",
" document.getElementsByTagName(\"head\")[0].appendChild(s);\n",
" }\n",
" };var element = document.getElementById(\"9ec61e28-baf4-4fb3-b803-7eedcb5ccc4f\");\n",
" if (element == null) {\n",
" console.log(\"Bokeh: ERROR: autoload.js configured with elementid '9ec61e28-baf4-4fb3-b803-7eedcb5ccc4f' but no matching script tag was found. \")\n",
" return false;\n",
" }\n",
"\n",
" var js_urls = [\"https://cdn.pydata.org/bokeh/release/bokeh-0.12.6.min.js\", \"https://cdn.pydata.org/bokeh/release/bokeh-widgets-0.12.6.min.js\"];\n",
"\n",
" var inline_js = [\n",
" function(Bokeh) {\n",
" Bokeh.set_log_level(\"info\");\n",
" },\n",
" \n",
" function(Bokeh) {\n",
" \n",
" },\n",
" \n",
" function(Bokeh) {\n",
" \n",
" document.getElementById(\"9ec61e28-baf4-4fb3-b803-7eedcb5ccc4f\").textContent = \"BokehJS is loading...\";\n",
" },\n",
" function(Bokeh) {\n",
" console.log(\"Bokeh: injecting CSS: https://cdn.pydata.org/bokeh/release/bokeh-0.12.6.min.css\");\n",
" Bokeh.embed.inject_css(\"https://cdn.pydata.org/bokeh/release/bokeh-0.12.6.min.css\");\n",
" console.log(\"Bokeh: injecting CSS: https://cdn.pydata.org/bokeh/release/bokeh-widgets-0.12.6.min.css\");\n",
" Bokeh.embed.inject_css(\"https://cdn.pydata.org/bokeh/release/bokeh-widgets-0.12.6.min.css\");\n",
" }\n",
" ];\n",
"\n",
" function run_inline_js() {\n",
" \n",
" if ((window.Bokeh !== undefined) || (force === true)) {\n",
" for (var i = 0; i < inline_js.length; i++) {\n",
" inline_js[i](window.Bokeh);\n",
" }if (force === true) {\n",
" display_loaded();\n",
" }} else if (Date.now() < window._bokeh_timeout) {\n",
" setTimeout(run_inline_js, 100);\n",
" } else if (!window._bokeh_failed_load) {\n",
" console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n",
" window._bokeh_failed_load = true;\n",
" } else if (force !== true) {\n",
" var cell = $(document.getElementById(\"9ec61e28-baf4-4fb3-b803-7eedcb5ccc4f\")).parents('.cell').data().cell;\n",
" cell.output_area.append_execute_result(NB_LOAD_WARNING)\n",
" }\n",
"\n",
" }\n",
"\n",
" if (window._bokeh_is_loading === 0) {\n",
" console.log(\"Bokeh: BokehJS loaded, going straight to plotting\");\n",
" run_inline_js();\n",
" } else {\n",
" load_libs(js_urls, function() {\n",
" console.log(\"Bokeh: BokehJS plotting callback run at\", now());\n",
" run_inline_js();\n",
" });\n",
" }\n",
"}(this));"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"output_notebook()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Results"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Based on the positive set definition, evaluation metrics of whole result (top 20 paths ) are:"
]
},
{
"cell_type": "code",
"execution_count": 88,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Precision: 0.81\n",
"Recall: 0.334\n",
"MCC: 0.325\n"
]
}
],
"source": [
"print('Precision:', data['precision'])\n",
"print('Recall:', data['recall'])\n",
"print('MCC:', data['mcc'])"
]
},
{
"cell_type": "code",
"execution_count": 89,
"metadata": {
"scrolled": false
},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
" <div class=\"bk-root\">\n",
" <div class=\"bk-plotdiv\" id=\"76fd1267-3b19-46cb-8ef7-94be7688eccf\"></div>\n",
" </div>\n",
"<script type=\"text/javascript\">\n",
" \n",
" (function(global) {\n",
" function now() {\n",
" return new Date();\n",
" }\n",
" \n",
" var force = false;\n",
" \n",
" if (typeof (window._bokeh_onload_callbacks) === \"undefined\" || force === true) {\n",
" window._bokeh_onload_callbacks = [];\n",
" window._bokeh_is_loading = undefined;\n",
" }\n",
" \n",
" \n",
" \n",
" if (typeof (window._bokeh_timeout) === \"undefined\" || force === true) {\n",
" window._bokeh_timeout = Date.now() + 0;\n",
" window._bokeh_failed_load = false;\n",
" }\n",
" \n",
" var NB_LOAD_WARNING = {'data': {'text/html':\n",
" \"<div style='background-color: #fdd'>\\n\"+\n",
" \"<p>\\n\"+\n",
" \"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \\n\"+\n",
" \"may be due to a slow or bad network connection. Possible fixes:\\n\"+\n",
" \"</p>\\n\"+\n",
" \"<ul>\\n\"+\n",
" \"<li>re-rerun `output_notebook()` to attempt to load from CDN again, or</li>\\n\"+\n",
" \"<li>use INLINE resources instead, as so:</li>\\n\"+\n",
" \"</ul>\\n\"+\n",
" \"<code>\\n\"+\n",
" \"from bokeh.resources import INLINE\\n\"+\n",
" \"output_notebook(resources=INLINE)\\n\"+\n",
" \"</code>\\n\"+\n",
" \"</div>\"}};\n",
" \n",
" function display_loaded() {\n",
" if (window.Bokeh !== undefined) {\n",
" var el = document.getElementById(\"76fd1267-3b19-46cb-8ef7-94be7688eccf\");\n",
" el.textContent = \"BokehJS \" + Bokeh.version + \" successfully loaded.\";\n",
" } else if (Date.now() < window._bokeh_timeout) {\n",
" setTimeout(display_loaded, 100)\n",
" }\n",
" }if ((window.Jupyter !== undefined) && Jupyter.notebook.kernel) {\n",
" comm_manager = Jupyter.notebook.kernel.comm_manager\n",
" comm_manager.register_target(\"75030f4a-8dc6-4da1-ad77-38e172c9161f\", function () {});\n",
" }\n",
" \n",
" function run_callbacks() {\n",
" try {\n",
" window._bokeh_onload_callbacks.forEach(function(callback) { callback() });\n",
" }\n",
" finally {\n",
" delete window._bokeh_onload_callbacks\n",
" }\n",
" console.info(\"Bokeh: all callbacks have finished\");\n",
" }\n",
" \n",
" function load_libs(js_urls, callback) {\n",
" window._bokeh_onload_callbacks.push(callback);\n",
" if (window._bokeh_is_loading > 0) {\n",
" console.log(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n",
" return null;\n",
" }\n",
" if (js_urls == null || js_urls.length === 0) {\n",
" run_callbacks();\n",
" return null;\n",
" }\n",
" console.log(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n",
" window._bokeh_is_loading = js_urls.length;\n",
" for (var i = 0; i < js_urls.length; i++) {\n",
" var url = js_urls[i];\n",
" var s = document.createElement('script');\n",
" s.src = url;\n",
" s.async = false;\n",
" s.onreadystatechange = s.onload = function() {\n",
" window._bokeh_is_loading--;\n",
" if (window._bokeh_is_loading === 0) {\n",
" console.log(\"Bokeh: all BokehJS libraries loaded\");\n",
" run_callbacks()\n",
" }\n",
" };\n",
" s.onerror = function() {\n",
" console.warn(\"failed to load library \" + url);\n",
" };\n",
" console.log(\"Bokeh: injecting script tag for BokehJS library: \", url);\n",
" document.getElementsByTagName(\"head\")[0].appendChild(s);\n",
" }\n",
" };var element = document.getElementById(\"76fd1267-3b19-46cb-8ef7-94be7688eccf\");\n",
" if (element == null) {\n",
" console.log(\"Bokeh: ERROR: autoload.js configured with elementid '76fd1267-3b19-46cb-8ef7-94be7688eccf' but no matching script tag was found. \")\n",
" return false;\n",
" }\n",
" \n",
" var js_urls = [];\n",
" \n",
" var inline_js = [\n",
" function(Bokeh) {\n",
" (function() {\n",
" var fn = function() {\n",
" var docs_json = {\"c84694ba-7322-485a-8f2a-08cd8fc41006\":{\"roots\":{\"references\":[{\"attributes\":{\"fill_color\":{\"value\":\"red\"},\"line_color\":{\"value\":\"#1f77b4\"},\"size\":{\"field\":\"size\",\"units\":\"screen\"},\"x\":{\"field\":\"ga_fb_cpv\"},\"y\":{\"field\":\"ga_cvr\"}},\"id\":\"118368bb-6958-4d82-8821-d3762433d523\",\"type\":\"Circle\"},{\"attributes\":{},\"id\":\"8fa2024e-bbc3-4630-96ac-6be63f73932f\",\"type\":\"LinearScale\"},{\"attributes\":{\"dimension\":\"height\",\"line_width\":{\"value\":3},\"location\":15.086951987159477,\"plot\":{\"id\":\"fe1b8826-606e-4d2f-b0c1-54aa03e306dd\",\"subtype\":\"Figure\",\"type\":\"Plot\"}},\"id\":\"ddf2a2f2-5eac-4d4f-a7f0-71c1208080c3\",\"type\":\"Span\"},{\"attributes\":{},\"id\":\"7389a3f0-176f-4067-a2cb-10eb74b65d74\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"plot\":{\"id\":\"fe1b8826-606e-4d2f-b0c1-54aa03e306dd\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"e55ddf54-cdd5-4fc0-8c69-9b788d9445ae\",\"type\":\"BasicTicker\"}},\"id\":\"c0a50f4f-32f3-41ad-bef5-ff7f286fbcc2\",\"type\":\"Grid\"},{\"attributes\":{\"axis_label\":\"ga_fb_cpv\",\"formatter\":{\"id\":\"9a63fe01-e9ad-494d-ad40-7824c1b6c715\",\"type\":\"BasicTickFormatter\"},\"plot\":{\"id\":\"fe1b8826-606e-4d2f-b0c1-54aa03e306dd\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"e55ddf54-cdd5-4fc0-8c69-9b788d9445ae\",\"type\":\"BasicTicker\"}},\"id\":\"54d6d4d8-4a18-478a-8bb2-3a6a490c74b7\",\"type\":\"LinearAxis\"},{\"attributes\":{\"axis_label\":\"ga_cvr\",\"formatter\":{\"id\":\"7389a3f0-176f-4067-a2cb-10eb74b65d74\",\"type\":\"BasicTickFormatter\"},\"plot\":{\"id\":\"fe1b8826-606e-4d2f-b0c1-54aa03e306dd\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"5aee137d-9d92-4fd4-9d0c-ebec28d2bd99\",\"type\":\"BasicTicker\"}},\"id\":\"07e223b9-2100-4151-96fd-377e476e5a15\",\"type\":\"LinearAxis\"},{\"attributes\":{},\"id\":\"e55ddf54-cdd5-4fc0-8c69-9b788d9445ae\",\"type\":\"BasicTicker\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"#1f77b4\"},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#1f77b4\"},\"size\":{\"field\":\"size\",\"units\":\"screen\"},\"x\":{\"field\":\"ga_fb_cpv\"},\"y\":{\"field\":\"ga_cvr\"}},\"id\":\"f73d9537-1bb4-4670-aaf1-94bdb1cc87e5\",\"type\":\"Circle\"},{\"attributes\":{\"fill_color\":{\"value\":\"blue\"},\"line_color\":{\"value\":\"#1f77b4\"},\"size\":{\"field\":\"size\",\"units\":\"screen\"},\"x\":{\"field\":\"ga_fb_cpv\"},\"y\":{\"field\":\"ga_cvr\"}},\"id\":\"e52e9e94-adb8-468c-b2c1-b1b9c0a6b56e\",\"type\":\"Circle\"},{\"attributes\":{},\"id\":\"44ef1f5d-2807-4651-9ff6-aca6be3318a4\",\"type\":\"LinearScale\"},{\"attributes\":{\"active_drag\":\"auto\",\"active_inspect\":\"auto\",\"active_scroll\":\"auto\",\"active_tap\":\"auto\",\"tools\":[{\"id\":\"ecb0948b-00e9-45d9-992c-c89a06fe1d82\",\"type\":\"HoverTool\"}]},\"id\":\"2f7b8346-a7a7-4c6a-842e-9613008d9b4b\",\"type\":\"Toolbar\"},{\"attributes\":{},\"id\":\"9a63fe01-e9ad-494d-ad40-7824c1b6c715\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"below\":[{\"id\":\"54d6d4d8-4a18-478a-8bb2-3a6a490c74b7\",\"type\":\"LinearAxis\"}],\"left\":[{\"id\":\"07e223b9-2100-4151-96fd-377e476e5a15\",\"type\":\"LinearAxis\"}],\"plot_height\":500,\"plot_width\":800,\"renderers\":[{\"id\":\"54d6d4d8-4a18-478a-8bb2-3a6a490c74b7\",\"type\":\"LinearAxis\"},{\"id\":\"c0a50f4f-32f3-41ad-bef5-ff7f286fbcc2\",\"type\":\"Grid\"},{\"id\":\"07e223b9-2100-4151-96fd-377e476e5a15\",\"type\":\"LinearAxis\"},{\"id\":\"e618ea92-154b-4d50-ad68-bdade961113e\",\"type\":\"Grid\"},{\"id\":\"c99596bd-2d1e-41af-b6bd-72aac1c5cde9\",\"type\":\"GlyphRenderer\"},{\"id\":\"8e3c9790-2655-4b1f-90cf-7854256a7b6b\",\"type\":\"GlyphRenderer\"},{\"id\":\"0af4383b-7772-4421-9170-4eed40787ec4\",\"type\":\"Span\"},{\"id\":\"ddf2a2f2-5eac-4d4f-a7f0-71c1208080c3\",\"type\":\"Span\"}],\"title\":{\"id\":\"4b4fc889-061b-4e04-add5-cfa928dc10ab\",\"type\":\"Title\"},\"tool_events\":{\"id\":\"7000214e-de9f-4d06-8f93-c37ea6333e80\",\"type\":\"ToolEvents\"},\"toolbar\":{\"id\":\"2f7b8346-a7a7-4c6a-842e-9613008d9b4b\",\"type\":\"Toolbar\"},\"x_range\":{\"id\":\"f57c17ee-2ea3-4027-9a8c-6a75cfe9e2dc\",\"type\":\"DataRange1d\"},\"x_scale\":{\"id\":\"8fa2024e-bbc3-4630-96ac-6be63f73932f\",\"type\":\"LinearScale\"},\"y_range\":{\"id\":\"1b1942e7-30e4-45c9-8376-864e8c5a5481\",\"type\":\"DataRange1d\"},\"y_scale\":{\"id\":\"44ef1f5d-2807-4651-9ff6-aca6be3318a4\",\"type\":\"LinearScale\"}},\"id\":\"fe1b8826-606e-4d2f-b0c1-54aa03e306dd\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{},\"id\":\"5aee137d-9d92-4fd4-9d0c-ebec28d2bd99\",\"type\":\"BasicTicker\"},{\"attributes\":{\"callback\":null,\"plot\":{\"id\":\"fe1b8826-606e-4d2f-b0c1-54aa03e306dd\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"tooltips\":[[\"lvl 0:\",\"@level_0\"],[\"lvl 1:\",\"@level_1\"],[\"lvl 2:\",\"@level_2\"],[\"lvl 3:\",\"@level_3\"],[\"ga_fb_cpv\",\"@ga_fb_cpv\"],[\"ga_cvr\",\"@ga_cvr\"],[\"Precision\",\"@precision\"],[\"Recall\",\"@recall\"],[\"mcc\",\"@imp_factor\"],[\"Spend Prop\",\"@spend_prop\"]]},\"id\":\"ecb0948b-00e9-45d9-992c-c89a06fe1d82\",\"type\":\"HoverTool\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"#1f77b4\"},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#1f77b4\"},\"size\":{\"field\":\"size\",\"units\":\"screen\"},\"x\":{\"field\":\"ga_fb_cpv\"},\"y\":{\"field\":\"ga_cvr\"}},\"id\":\"51e73f16-5904-49a0-8560-a082cd42b36f\",\"type\":\"Circle\"},{\"attributes\":{\"plot\":null,\"text\":\"Performance by paths.\"},\"id\":\"4b4fc889-061b-4e04-add5-cfa928dc10ab\",\"type\":\"Title\"},{\"attributes\":{\"callback\":null,\"column_names\":[\"ga_cvr\",\"precision\",\"level_1\",\"ga_fb_cpv\",\"imp_factor\",\"size\",\"level_0\",\"spend_prop\",\"level_3\",\"idx\",\"level_2\",\"levels\",\"index\",\"recall\"],\"data\":{\"ga_cvr\":{\"__ndarray__\":\"zczMzMzM5D8AAAAAAADoPw==\",\"dtype\":\"float64\",\"shape\":[2]},\"ga_fb_cpv\":{\"__ndarray__\":\"mpmZmZmZGUCamZmZmZkeQA==\",\"dtype\":\"float64\",\"shape\":[2]},\"idx\":[0,1],\"imp_factor\":{\"__ndarray__\":\"5KWbxCCw0j+YbhKDwMrRPw==\",\"dtype\":\"float64\",\"shape\":[2]},\"index\":[0,1],\"level_0\":[\"Audience Strategy : Prospecting\",\"Audience Strategy : Prospecting\"],\"level_1\":[\"Product Category : Mixed\",\"Product Category : Mixed\"],\"level_2\":[\"Landing Pages : www.zivame.com/get-flat-discount.html, www.zivame.com\",\"Landing Pages : www.zivame.com/get-flat-discount.html, www.zivame.com\"],\"level_3\":[\"Image : 42c040219048fd21f5a85b27ba660649\",\"- : -\"],\"levels\":[[{\"Audience Strategy\":{\"name\":\"Prospecting\",\"value\":\"Prospecting\"}},{\"Product Category\":{\"name\":\"Mixed\",\"value\":\"Mixed\"}},{\"Landing Pages\":{\"name\":\"www.zivame.com/get-flat-discount.html, www.zivame.com\",\"value\":\"www.zivame.com/get-flat-discount.html, www.zivame.com\"}},{\"Image\":{\"name\":\"42c040219048fd21f5a85b27ba660649\",\"value\":\"42c040219048fd21f5a85b27ba660649\"}}],[{\"Audience Strategy\":{\"name\":\"Prospecting\",\"value\":\"Prospecting\"}},{\"Product Category\":{\"name\":\"Mixed\",\"value\":\"Mixed\"}},{\"Landing Pages\":{\"name\":\"www.zivame.com/get-flat-discount.html, www.zivame.com\",\"value\":\"www.zivame.com/get-flat-discount.html, www.zivame.com\"}}]],\"precision\":{\"__ndarray__\":\"iUFg5dAi7z9/arx0kxjoPw==\",\"dtype\":\"float64\",\"shape\":[2]},\"recall\":{\"__ndarray__\":\"+n5qvHSTqD+kcD0K16OwPw==\",\"dtype\":\"float64\",\"shape\":[2]},\"size\":{\"__ndarray__\":\"AAAAAAAANECoUKFChQozQA==\",\"dtype\":\"float64\",\"shape\":[2]},\"spend_prop\":{\"__ndarray__\":\"CtejcD0KA0DNzMzMzMwQQA==\",\"dtype\":\"float64\",\"shape\":[2]}}},\"id\":\"d9da4855-29a2-4152-8a55-3593e5f0f191\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"data_source\":{\"id\":\"d9da4855-29a2-4152-8a55-3593e5f0f191\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"e52e9e94-adb8-468c-b2c1-b1b9c0a6b56e\",\"type\":\"Circle\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"f73d9537-1bb4-4670-aaf1-94bdb1cc87e5\",\"type\":\"Circle\"},\"selection_glyph\":null},\"id\":\"8e3c9790-2655-4b1f-90cf-7854256a7b6b\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"callback\":null},\"id\":\"f57c17ee-2ea3-4027-9a8c-6a75cfe9e2dc\",\"type\":\"DataRange1d\"},{\"attributes\":{\"dimension\":1,\"plot\":{\"id\":\"fe1b8826-606e-4d2f-b0c1-54aa03e306dd\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"5aee137d-9d92-4fd4-9d0c-ebec28d2bd99\",\"type\":\"BasicTicker\"}},\"id\":\"e618ea92-154b-4d50-ad68-bdade961113e\",\"type\":\"Grid\"},{\"attributes\":{\"callback\":null},\"id\":\"1b1942e7-30e4-45c9-8376-864e8c5a5481\",\"type\":\"DataRange1d\"},{\"attributes\":{\"data_source\":{\"id\":\"0ba951e9-3cfa-4c52-8b56-3f9013a755bc\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"118368bb-6958-4d82-8821-d3762433d523\",\"type\":\"Circle\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"51e73f16-5904-49a0-8560-a082cd42b36f\",\"type\":\"Circle\"},\"selection_glyph\":null},\"id\":\"c99596bd-2d1e-41af-b6bd-72aac1c5cde9\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"callback\":null,\"column_names\":[\"ga_cvr\",\"precision\",\"level_1\",\"ga_fb_cpv\",\"imp_factor\",\"size\",\"level_0\",\"spend_prop\",\"level_3\",\"idx\",\"level_2\",\"levels\",\"index\",\"recall\"],\"data\":{\"ga_cvr\":{\"__ndarray__\":\"7FG4HoXrAUDsUbgehesFQFyPwvUoXAVA7FG4HoXrBUAzMzMzMzMHQI/C9ShcjwJApHA9CtejAkCF61G4HoUNQAAAAAAAAAJA7FG4HoXrAUA=\",\"dtype\":\"float64\",\"shape\":[10]},\"ga_fb_cpv\":{\"__ndarray__\":\"cT0K16OwNECPwvUoXI88QKRwPQrXozpAexSuR+G6OkBcj8L1KHxDQHsUrkfhujZAmpmZmZmZNkBxPQrXo7A+QNejcD0K1zVAuB6F61G4NUA=\",\"dtype\":\"float64\",\"shape\":[10]},\"idx\":[0,1,2,3,4,5,6,7,8,9],\"imp_factor\":{\"__ndarray__\":\"rkfhehSu1z9cj8L1KFzXP9Ei2/l+atQ/001iEFg51D+MbOf7qfHSP5zEILByaNE/SOF6FK5H0T/4U+Olm8TQP1CNl24Sg9A//Knx0k1i0D8=\",\"dtype\":\"float64\",\"shape\":[10]},\"index\":[0,1,2,3,4,5,6,7,8,9],\"level_0\":[\"Audience Strategy : Retention\",\"Custom Audiences : avg value 1000-1500\",\"Audience Strategy : Retention\",\"Audience Strategy : Retention\",\"Custom Audiences : avg value 1500 plus\",\"Audience Strategy : Retention\",\"Audience Strategy : Retention\",\"Audience Strategy : Retention\",\"Audience Strategy : Retention\",\"Audience Strategy : Retention\"],\"level_1\":[\"Audience Types : Custom\",\"- : -\",\"Product Category : Shapewear\",\"Product Category : Shapewear\",\"- : -\",\"Product Category : Shapewear\",\"Audience Types : Website\",\"Audience Types : Custom\",\"Audience Types : Website\",\"Product Category : Shapewear\"],\"level_2\":[\"- : -\",\"- : -\",\"- : -\",\"Age Range : 24-45\",\"- : -\",\"Age Range : 24-45\",\"Age Range : 24-45\",\"Landing Pages : www.zivame.com\",\"Landing Pages : www.zivame.com/panties/tummy-tucker-shaping-panties.html, www.zivame.com\",\"Landing Pages : www.zivame.com/panties/tummy-tucker-shaping-panties.html, www.zivame.com\"],\"level_3\":[\"- : -\",\"- : -\",\"- : -\",\"- : -\",\"- : -\",\"Custom Audiences : Rem_Offer_30_2\",\"Image : bf65a692c33cf96e2820012c6b39af44\",\"Image : 3a98bd1039933d6ace79ebd87576c637\",\"- : -\",\"- : -\"],\"levels\":[[{\"Audience Strategy\":{\"name\":\"Retention\",\"value\":\"Retention\"}},{\"Audience Types\":{\"name\":\"Custom\",\"value\":\"Custom\"}}],[{\"Custom Audiences\":{\"name\":\"avg value 1000-1500\",\"value\":\"avg value 1000-1500\"}}],[{\"Audience Strategy\":{\"name\":\"Retention\",\"value\":\"Retention\"}},{\"Product Category\":{\"name\":\"Shapewear\",\"value\":\"Shapewear\"}}],[{\"Audience Strategy\":{\"name\":\"Retention\",\"value\":\"Retention\"}},{\"Product Category\":{\"name\":\"Shapewear\",\"value\":\"Shapewear\"}},{\"Age Range\":{\"name\":\"24-45\",\"value\":\"24-45\"}}],[{\"Custom Audiences\":{\"name\":\"avg value 1500 plus\",\"value\":\"avg value 1500 plus\"}}],[{\"Audience Strategy\":{\"name\":\"Retention\",\"value\":\"Retention\"}},{\"Product Category\":{\"name\":\"Shapewear\",\"value\":\"Shapewear\"}},{\"Age Range\":{\"name\":\"24-45\",\"value\":\"24-45\"}},{\"Custom Audiences\":{\"name\":\"Rem_Offer_30_2\",\"value\":\"Rem_Offer_30_2\"}}],[{\"Audience Strategy\":{\"name\":\"Retention\",\"value\":\"Retention\"}},{\"Audience Types\":{\"name\":\"Website\",\"value\":\"Website\"}},{\"Age Range\":{\"name\":\"24-45\",\"value\":\"24-45\"}},{\"Image\":{\"name\":\"bf65a692c33cf96e2820012c6b39af44\",\"value\":\"bf65a692c33cf96e2820012c6b39af44\"}}],[{\"Audience Strategy\":{\"name\":\"Retention\",\"value\":\"Retention\"}},{\"Audience Types\":{\"name\":\"Custom\",\"value\":\"Custom\"}},{\"Landing Pages\":{\"name\":\"www.zivame.com\",\"value\":\"www.zivame.com\"}},{\"Image\":{\"name\":\"3a98bd1039933d6ace79ebd87576c637\",\"value\":\"3a98bd1039933d6ace79ebd87576c637\"}}],[{\"Audience Strategy\":{\"name\":\"Retention\",\"value\":\"Retention\"}},{\"Audience Types\":{\"name\":\"Website\",\"value\":\"Website\"}},{\"Landing Pages\":{\"name\":\"www.zivame.com/panties/tummy-tucker-shaping-panties.html, www.zivame.com\",\"value\":\"www.zivame.com/panties/tummy-tucker-shaping-panties.html, www.zivame.com\"}}],[{\"Audience Strategy\":{\"name\":\"Retention\",\"value\":\"Retention\"}},{\"Product Category\":{\"name\":\"Shapewear\",\"value\":\"Shapewear\"}},{\"Landing Pages\":{\"name\":\"www.zivame.com/panties/tummy-tucker-shaping-panties.html, www.zivame.com\",\"value\":\"www.zivame.com/panties/tummy-tucker-shaping-panties.html, www.zivame.com\"}}]],\"precision\":{\"__ndarray__\":\"g8DKoUW24z/wp8ZLN4ntP23n+6nx0u0/O99PjZdu7j+kcD0K16PsPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPzVeukkMAu8/YhBYObTI7j8=\",\"dtype\":\"float64\",\"shape\":[10]},\"recall\":{\"__ndarray__\":\"TDeJQWDl2D+cxCCwcmixP4lBYOXQIqs/SgwCK4cWqT9aZDvfT42nP+xRuB6F66E/7FG4HoXroT/8qfHSTWKgP+xRuB6F66E/7FG4HoXroT8=\",\"dtype\":\"float64\",\"shape\":[10]},\"size\":{\"__ndarray__\":\"AAAAAAAANECtG0yRz7ozQOWzbjBFPjFATJHPusEUMUABAAAAAAAwQH3WDabIZy1ACFPks24wLUAwRT7rBlMsQEU+6wZT5CtA0LrBFPmsK0A=\",\"dtype\":\"float64\",\"shape\":[10]},\"spend_prop\":{\"__ndarray__\":\"CtejcD3KPkDNzMzMzMwMQGZmZmZmZgZAFK5H4XoUBEDsUbgehesDQFyPwvUoXPs/CtejcD0K+z9I4XoUrkf5P9ejcD0K1/s/KVyPwvUo/D8=\",\"dtype\":\"float64\",\"shape\":[10]}}},\"id\":\"0ba951e9-3cfa-4c52-8b56-3f9013a755bc\",\"type\":\"ColumnDataSource\"},{\"attributes\":{},\"id\":\"7000214e-de9f-4d06-8f93-c37ea6333e80\",\"type\":\"ToolEvents\"},{\"attributes\":{\"line_width\":{\"value\":3},\"location\":1.5030947565593908,\"plot\":{\"id\":\"fe1b8826-606e-4d2f-b0c1-54aa03e306dd\",\"subtype\":\"Figure\",\"type\":\"Plot\"}},\"id\":\"0af4383b-7772-4421-9170-4eed40787ec4\",\"type\":\"Span\"}],\"root_ids\":[\"fe1b8826-606e-4d2f-b0c1-54aa03e306dd\"]},\"title\":\"Bokeh Application\",\"version\":\"0.12.6\"}};\n",
" var render_items = [{\"docid\":\"c84694ba-7322-485a-8f2a-08cd8fc41006\",\"elementid\":\"76fd1267-3b19-46cb-8ef7-94be7688eccf\",\"modelid\":\"fe1b8826-606e-4d2f-b0c1-54aa03e306dd\",\"notebook_comms_target\":\"75030f4a-8dc6-4da1-ad77-38e172c9161f\"}];\n",
" \n",
" Bokeh.embed.embed_items(docs_json, render_items);\n",
" };\n",
" if (document.readyState != \"loading\") fn();\n",
" else document.addEventListener(\"DOMContentLoaded\", fn);\n",
" })();\n",
" },\n",
" function(Bokeh) {\n",
" }\n",
" ];\n",
" \n",
" function run_inline_js() {\n",
" \n",
" if ((window.Bokeh !== undefined) || (force === true)) {\n",
" for (var i = 0; i < inline_js.length; i++) {\n",
" inline_js[i](window.Bokeh);\n",
" }if (force === true) {\n",
" display_loaded();\n",
" }} else if (Date.now() < window._bokeh_timeout) {\n",
" setTimeout(run_inline_js, 100);\n",
" } else if (!window._bokeh_failed_load) {\n",
" console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n",
" window._bokeh_failed_load = true;\n",
" } else if (force !== true) {\n",
" var cell = $(document.getElementById(\"76fd1267-3b19-46cb-8ef7-94be7688eccf\")).parents('.cell').data().cell;\n",
" cell.output_area.append_execute_result(NB_LOAD_WARNING)\n",
" }\n",
" \n",
" }\n",
" \n",
" if (window._bokeh_is_loading === 0) {\n",
" console.log(\"Bokeh: BokehJS loaded, going straight to plotting\");\n",
" run_inline_js();\n",
" } else {\n",
" load_libs(js_urls, function() {\n",
" console.log(\"Bokeh: BokehJS plotting callback run at\", now());\n",
" run_inline_js();\n",
" });\n",
" }\n",
" }(this));\n",
"</script>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"q0\n",
"q1\n"
]
},
{
"data": {
"text/html": [
"\n",
"\n",
" <div class=\"bk-root\">\n",
" <div class=\"bk-plotdiv\" id=\"0eaf8070-5cfe-487d-a787-4f747f835ae9\"></div>\n",
" </div>\n",
"<script type=\"text/javascript\">\n",
" \n",
" (function(global) {\n",
" function now() {\n",
" return new Date();\n",
" }\n",
" \n",
" var force = false;\n",
" \n",
" if (typeof (window._bokeh_onload_callbacks) === \"undefined\" || force === true) {\n",
" window._bokeh_onload_callbacks = [];\n",
" window._bokeh_is_loading = undefined;\n",
" }\n",
" \n",
" \n",
" \n",
" if (typeof (window._bokeh_timeout) === \"undefined\" || force === true) {\n",
" window._bokeh_timeout = Date.now() + 0;\n",
" window._bokeh_failed_load = false;\n",
" }\n",
" \n",
" var NB_LOAD_WARNING = {'data': {'text/html':\n",
" \"<div style='background-color: #fdd'>\\n\"+\n",
" \"<p>\\n\"+\n",
" \"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \\n\"+\n",
" \"may be due to a slow or bad network connection. Possible fixes:\\n\"+\n",
" \"</p>\\n\"+\n",
" \"<ul>\\n\"+\n",
" \"<li>re-rerun `output_notebook()` to attempt to load from CDN again, or</li>\\n\"+\n",
" \"<li>use INLINE resources instead, as so:</li>\\n\"+\n",
" \"</ul>\\n\"+\n",
" \"<code>\\n\"+\n",
" \"from bokeh.resources import INLINE\\n\"+\n",
" \"output_notebook(resources=INLINE)\\n\"+\n",
" \"</code>\\n\"+\n",
" \"</div>\"}};\n",
" \n",
" function display_loaded() {\n",
" if (window.Bokeh !== undefined) {\n",
" var el = document.getElementById(\"0eaf8070-5cfe-487d-a787-4f747f835ae9\");\n",
" el.textContent = \"BokehJS \" + Bokeh.version + \" successfully loaded.\";\n",
" } else if (Date.now() < window._bokeh_timeout) {\n",
" setTimeout(display_loaded, 100)\n",
" }\n",
" }if ((window.Jupyter !== undefined) && Jupyter.notebook.kernel) {\n",
" comm_manager = Jupyter.notebook.kernel.comm_manager\n",
" comm_manager.register_target(\"d67d4b70-b720-4e69-a08e-8d81db226f62\", function () {});\n",
" }\n",
" \n",
" function run_callbacks() {\n",
" try {\n",
" window._bokeh_onload_callbacks.forEach(function(callback) { callback() });\n",
" }\n",
" finally {\n",
" delete window._bokeh_onload_callbacks\n",
" }\n",
" console.info(\"Bokeh: all callbacks have finished\");\n",
" }\n",
" \n",
" function load_libs(js_urls, callback) {\n",
" window._bokeh_onload_callbacks.push(callback);\n",
" if (window._bokeh_is_loading > 0) {\n",
" console.log(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n",
" return null;\n",
" }\n",
" if (js_urls == null || js_urls.length === 0) {\n",
" run_callbacks();\n",
" return null;\n",
" }\n",
" console.log(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n",
" window._bokeh_is_loading = js_urls.length;\n",
" for (var i = 0; i < js_urls.length; i++) {\n",
" var url = js_urls[i];\n",
" var s = document.createElement('script');\n",
" s.src = url;\n",
" s.async = false;\n",
" s.onreadystatechange = s.onload = function() {\n",
" window._bokeh_is_loading--;\n",
" if (window._bokeh_is_loading === 0) {\n",
" console.log(\"Bokeh: all BokehJS libraries loaded\");\n",
" run_callbacks()\n",
" }\n",
" };\n",
" s.onerror = function() {\n",
" console.warn(\"failed to load library \" + url);\n",
" };\n",
" console.log(\"Bokeh: injecting script tag for BokehJS library: \", url);\n",
" document.getElementsByTagName(\"head\")[0].appendChild(s);\n",
" }\n",
" };var element = document.getElementById(\"0eaf8070-5cfe-487d-a787-4f747f835ae9\");\n",
" if (element == null) {\n",
" console.log(\"Bokeh: ERROR: autoload.js configured with elementid '0eaf8070-5cfe-487d-a787-4f747f835ae9' but no matching script tag was found. \")\n",
" return false;\n",
" }\n",
" \n",
" var js_urls = [];\n",
" \n",
" var inline_js = [\n",
" function(Bokeh) {\n",
" (function() {\n",
" var fn = function() {\n",
" var docs_json = {\"4716681a-8c94-46f6-aab3-85c1428afd00\":{\"roots\":{\"references\":[{\"attributes\":{},\"id\":\"eb76be60-25b9-4544-8c95-a630d2b3b37f\",\"type\":\"StringEditor\"},{\"attributes\":{\"editor\":{\"id\":\"334e6738-c665-46bf-9a12-cc8515562ee1\",\"type\":\"StringEditor\"},\"field\":\"ga_fb_cpv\",\"formatter\":{\"id\":\"dded008e-2a3a-4e4b-896b-78eab4a7b315\",\"type\":\"StringFormatter\"},\"title\":\"ga_fb_cpv\"},\"id\":\"da2ad9d8-fbd6-4e2e-8740-2ae729fd57e7\",\"type\":\"TableColumn\"},{\"attributes\":{\"editor\":{\"id\":\"b015abba-c6dd-4800-b5fd-e09f8261ee1c\",\"type\":\"StringEditor\"},\"field\":\"level_0\",\"formatter\":{\"id\":\"dae05a16-1bb6-46b0-a2e7-99961905b494\",\"type\":\"StringFormatter\"},\"title\":\"level 0\"},\"id\":\"6d4df4d0-1e5d-4ee7-bfc2-91ad00fa104e\",\"type\":\"TableColumn\"},{\"attributes\":{},\"id\":\"9d547a02-f012-40ec-b314-dbccb40e78ba\",\"type\":\"StringFormatter\"},{\"attributes\":{\"callback\":null,\"column_names\":[\"ga_cvr\",\"precision\",\"level_1\",\"ga_fb_cpv\",\"imp_factor\",\"level_0\",\"spend_prop\",\"level_3\",\"level_2\",\"levels\",\"index\",\"recall\"],\"data\":{\"ga_cvr\":{\"__ndarray__\":\"7FG4HoXrAUDsUbgehesFQFyPwvUoXAVA7FG4HoXrBUAzMzMzMzMHQI/C9ShcjwJApHA9CtejAkCF61G4HoUNQAAAAAAAAAJA7FG4HoXrAUApXI/C9SgEQI/C9ShcjwJAMzMzMzMzBUDsUbgehesHQFK4HoXrUQZAZmZmZmZmCEDD9Shcj8IFQNejcD0K1xNA\",\"dtype\":\"float64\",\"shape\":[18]},\"ga_fb_cpv\":{\"__ndarray__\":\"cT0K16OwNECPwvUoXI88QKRwPQrXozpAexSuR+G6OkBcj8L1KHxDQHsUrkfhujZAmpmZmZmZNkBxPQrXo7A+QNejcD0K1zVAuB6F61G4NUCuR+F6FC46QArXo3A9SjRAPQrXo3A9OECkcD0K1+M2QFK4HoXrUTtA16NwPQrXO0CuR+F6FO43QFyPwvUofENA\",\"dtype\":\"float64\",\"shape\":[18]},\"imp_factor\":{\"__ndarray__\":\"rkfhehSu1z9cj8L1KFzXP9Ei2/l+atQ/001iEFg51D+LbOf7qfHSP5zEILByaNE/SOF6FK5H0T/4U+Olm8TQP1CNl24Sg9A//Knx0k1i0D9SuB6F61HQP1g5tMh2vs8/BFYOLbKdzz/FILByaJHNP3E9CtejcM0/LbKd76fGyz/ZzvdT46XLP+XQItv5fso/\",\"dtype\":\"float64\",\"shape\":[18]},\"index\":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17],\"level_0\":[\"Audience Strategy : Retention\",\"Custom Audiences : avg value 1000-1500\",\"Audience Strategy : Retention\",\"Audience Strategy : Retention\",\"Custom Audiences : avg value 1500 plus\",\"Audience Strategy : Retention\",\"Audience Strategy : Retention\",\"Audience Strategy : Retention\",\"Audience Strategy : Retention\",\"Audience Strategy : Retention\",\"Audience Strategy : Retention\",\"Audience Strategy : Retention\",\"Audience Strategy : Retention\",\"Audience Strategy : Retention\",\"Audience Strategy : Retention\",\"Audience Strategy : Retention\",\"Audience Strategy : Retention\",\"Audience Strategy : Retention\"],\"level_1\":[\"Audience Types : Custom\",\"- : -\",\"Product Category : Shapewear\",\"Product Category : Shapewear\",\"- : -\",\"Product Category : Shapewear\",\"Audience Types : Website\",\"Audience Types : Custom\",\"Audience Types : Website\",\"Product Category : Shapewear\",\"Product Category : Mixed\",\"Product Category : Mixed\",\"Audience Types : Custom\",\"Audience Types : Custom\",\"Product Category : Mixed\",\"Product Category : Mixed\",\"Product Category : Mixed\",\"Audience Types : Custom\"],\"level_2\":[\"- : -\",\"- : -\",\"- : -\",\"Age Range : 24-45\",\"- : -\",\"Age Range : 24-45\",\"Age Range : 24-45\",\"Landing Pages : www.zivame.com\",\"Landing Pages : www.zivame.com/panties/tummy-tucker-shaping-panties.html, www.zivame.com\",\"Landing Pages : www.zivame.com/panties/tummy-tucker-shaping-panties.html, www.zivame.com\",\"Landing Pages : www.zivame.com\",\"Age Range : 18-65\",\"Landing Pages : www.zivame.com/nov-buy-1-get-1-free.html, www.zivame.com\",\"Landing Pages : www.zivame.com/buy-3-bras-for-599.html, www.zivame.com\",\"Landing Pages : www.zivame.com\",\"Age Range : 18-65\",\"Age Range : 24-45\",\"Landing Pages : www.zivame.com/get-flat-discount.html, www.zivame.com\"],\"level_3\":[\"- : -\",\"- : -\",\"- : -\",\"- : -\",\"- : -\",\"Custom Audiences : Rem_Offer_30_2\",\"Image : bf65a692c33cf96e2820012c6b39af44\",\"Image : 3a98bd1039933d6ace79ebd87576c637\",\"- : -\",\"- : -\",\"Image : 4ab4d97c83abe520c12897c121d93325\",\"Custom Audiences : avg value 500-1000\",\"- : -\",\"- : -\",\"Image : 3a98bd1039933d6ace79ebd87576c637\",\"Image : 3a98bd1039933d6ace79ebd87576c637\",\"Image : 4ab4d97c83abe520c12897c121d93325\",\"Image : 14a83d502c3ecdf33a0db119fb6db17f\"],\"levels\":[[{\"Audience Strategy\":{\"name\":\"Retention\",\"value\":\"Retention\"}},{\"Audience Types\":{\"name\":\"Custom\",\"value\":\"Custom\"}}],[{\"Custom Audiences\":{\"name\":\"avg value 1000-1500\",\"value\":\"avg value 1000-1500\"}}],[{\"Audience Strategy\":{\"name\":\"Retention\",\"value\":\"Retention\"}},{\"Product Category\":{\"name\":\"Shapewear\",\"value\":\"Shapewear\"}}],[{\"Audience Strategy\":{\"name\":\"Retention\",\"value\":\"Retention\"}},{\"Product Category\":{\"name\":\"Shapewear\",\"value\":\"Shapewear\"}},{\"Age Range\":{\"name\":\"24-45\",\"value\":\"24-45\"}}],[{\"Custom Audiences\":{\"name\":\"avg value 1500 plus\",\"value\":\"avg value 1500 plus\"}}],[{\"Audience Strategy\":{\"name\":\"Retention\",\"value\":\"Retention\"}},{\"Product Category\":{\"name\":\"Shapewear\",\"value\":\"Shapewear\"}},{\"Age Range\":{\"name\":\"24-45\",\"value\":\"24-45\"}},{\"Custom Audiences\":{\"name\":\"Rem_Offer_30_2\",\"value\":\"Rem_Offer_30_2\"}}],[{\"Audience Strategy\":{\"name\":\"Retention\",\"value\":\"Retention\"}},{\"Audience Types\":{\"name\":\"Website\",\"value\":\"Website\"}},{\"Age Range\":{\"name\":\"24-45\",\"value\":\"24-45\"}},{\"Image\":{\"name\":\"bf65a692c33cf96e2820012c6b39af44\",\"value\":\"bf65a692c33cf96e2820012c6b39af44\"}}],[{\"Audience Strategy\":{\"name\":\"Retention\",\"value\":\"Retention\"}},{\"Audience Types\":{\"name\":\"Custom\",\"value\":\"Custom\"}},{\"Landing Pages\":{\"name\":\"www.zivame.com\",\"value\":\"www.zivame.com\"}},{\"Image\":{\"name\":\"3a98bd1039933d6ace79ebd87576c637\",\"value\":\"3a98bd1039933d6ace79ebd87576c637\"}}],[{\"Audience Strategy\":{\"name\":\"Retention\",\"value\":\"Retention\"}},{\"Audience Types\":{\"name\":\"Website\",\"value\":\"Website\"}},{\"Landing Pages\":{\"name\":\"www.zivame.com/panties/tummy-tucker-shaping-panties.html, www.zivame.com\",\"value\":\"www.zivame.com/panties/tummy-tucker-shaping-panties.html, www.zivame.com\"}}],[{\"Audience Strategy\":{\"name\":\"Retention\",\"value\":\"Retention\"}},{\"Product Category\":{\"name\":\"Shapewear\",\"value\":\"Shapewear\"}},{\"Landing Pages\":{\"name\":\"www.zivame.com/panties/tummy-tucker-shaping-panties.html, www.zivame.com\",\"value\":\"www.zivame.com/panties/tummy-tucker-shaping-panties.html, www.zivame.com\"}}],[{\"Audience Strategy\":{\"name\":\"Retention\",\"value\":\"Retention\"}},{\"Product Category\":{\"name\":\"Mixed\",\"value\":\"Mixed\"}},{\"Landing Pages\":{\"name\":\"www.zivame.com\",\"value\":\"www.zivame.com\"}},{\"Image\":{\"name\":\"4ab4d97c83abe520c12897c121d93325\",\"value\":\"4ab4d97c83abe520c12897c121d93325\"}}],[{\"Audience Strategy\":{\"name\":\"Retention\",\"value\":\"Retention\"}},{\"Product Category\":{\"name\":\"Mixed\",\"value\":\"Mixed\"}},{\"Age Range\":{\"name\":\"18-65\",\"value\":\"18-65\"}},{\"Custom Audiences\":{\"name\":\"avg value 500-1000\",\"value\":\"avg value 500-1000\"}}],[{\"Audience Strategy\":{\"name\":\"Retention\",\"value\":\"Retention\"}},{\"Audience Types\":{\"name\":\"Custom\",\"value\":\"Custom\"}},{\"Landing Pages\":{\"name\":\"www.zivame.com/nov-buy-1-get-1-free.html, www.zivame.com\",\"value\":\"www.zivame.com/nov-buy-1-get-1-free.html, www.zivame.com\"}}],[{\"Audience Strategy\":{\"name\":\"Retention\",\"value\":\"Retention\"}},{\"Audience Types\":{\"name\":\"Custom\",\"value\":\"Custom\"}},{\"Landing Pages\":{\"name\":\"www.zivame.com/buy-3-bras-for-599.html, www.zivame.com\",\"value\":\"www.zivame.com/buy-3-bras-for-599.html, www.zivame.com\"}}],[{\"Audience Strategy\":{\"name\":\"Retention\",\"value\":\"Retention\"}},{\"Product Category\":{\"name\":\"Mixed\",\"value\":\"Mixed\"}},{\"Landing Pages\":{\"name\":\"www.zivame.com\",\"value\":\"www.zivame.com\"}},{\"Image\":{\"name\":\"3a98bd1039933d6ace79ebd87576c637\",\"value\":\"3a98bd1039933d6ace79ebd87576c637\"}}],[{\"Audience Strategy\":{\"name\":\"Retention\",\"value\":\"Retention\"}},{\"Product Category\":{\"name\":\"Mixed\",\"value\":\"Mixed\"}},{\"Age Range\":{\"name\":\"18-65\",\"value\":\"18-65\"}},{\"Image\":{\"name\":\"3a98bd1039933d6ace79ebd87576c637\",\"value\":\"3a98bd1039933d6ace79ebd87576c637\"}}],[{\"Audience Strategy\":{\"name\":\"Retention\",\"value\":\"Retention\"}},{\"Product Category\":{\"name\":\"Mixed\",\"value\":\"Mixed\"}},{\"Age Range\":{\"name\":\"24-45\",\"value\":\"24-45\"}},{\"Image\":{\"name\":\"4ab4d97c83abe520c12897c121d93325\",\"value\":\"4ab4d97c83abe520c12897c121d93325\"}}],[{\"Audience Strategy\":{\"name\":\"Retention\",\"value\":\"Retention\"}},{\"Audience Types\":{\"name\":\"Custom\",\"value\":\"Custom\"}},{\"Landing Pages\":{\"name\":\"www.zivame.com/get-flat-discount.html, www.zivame.com\",\"value\":\"www.zivame.com/get-flat-discount.html, www.zivame.com\"}},{\"Image\":{\"name\":\"14a83d502c3ecdf33a0db119fb6db17f\",\"value\":\"14a83d502c3ecdf33a0db119fb6db17f\"}}]],\"precision\":{\"__ndarray__\":\"g8DKoUW24z/wp8ZLN4ntP23n+6nx0u0/O99PjZdu7j+kcD0K16PsPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPzVeukkMAu8/YhBYObTI7j8EVg4tsp3rPx+F61G4Huk/ukkMAiuH7j9YObTIdr7rP99PjZduEuc/6SYxCKwc6j9g5dAi2/nuPwaBlUOLbO8/\",\"dtype\":\"float64\",\"shape\":[18]},\"recall\":{\"__ndarray__\":\"TDeJQWDl2D+cxCCwcmixP4lBYOXQIqs/SgwCK4cWqT9aZDvfT42nP+xRuB6F66E/7FG4HoXroT/8qfHSTWKgP+xRuB6F66E/7FG4HoXroT97FK5H4XqkPxsv3SQGgbU/arx0kxgEpj+LbOf7qfGiP3sUrkfheqQ//Knx0k1ioD9aZDvfT42XPxsv3SQGgZU/\",\"dtype\":\"float64\",\"shape\":[18]},\"spend_prop\":{\"__ndarray__\":\"CtejcD3KPkDNzMzMzMwMQGZmZmZmZgZAFK5H4XoUBEDsUbgehesDQFyPwvUoXPs/CtejcD0K+z9I4XoUrkf5P9ejcD0K1/s/KVyPwvUo/D8AAAAAAAACQPYoXI/C9RRArkfhehSuAUDhehSuR+EAQIXrUbgehQVACtejcD0K/z+PwvUoXI/yP3sUrkfhevA/\",\"dtype\":\"float64\",\"shape\":[18]}}},\"id\":\"521f19f6-c42a-4c14-92a0-605b77a1cd8d\",\"type\":\"ColumnDataSource\"},{\"attributes\":{},\"id\":\"eaebf685-f96a-48e2-84b1-4a7fbd1d9fff\",\"type\":\"StringEditor\"},{\"attributes\":{},\"id\":\"770315d4-8643-48b1-b03f-9bd5515956e2\",\"type\":\"StringFormatter\"},{\"attributes\":{\"editor\":{\"id\":\"cb152525-e4d3-4258-a8ce-101380f0a7e7\",\"type\":\"StringEditor\"},\"field\":\"spend_prop\",\"formatter\":{\"id\":\"57ae6a1b-2ec1-47bc-b251-053582409648\",\"type\":\"StringFormatter\"},\"title\":\"Spend %\"},\"id\":\"96268c87-1c14-4700-8fc1-518fc6e4b047\",\"type\":\"TableColumn\"},{\"attributes\":{\"editor\":{\"id\":\"dfa4963d-a363-43ea-8e5e-cdec05921def\",\"type\":\"StringEditor\"},\"field\":\"imp_factor\",\"formatter\":{\"id\":\"738aa938-5572-4fec-85f7-74d40919e63d\",\"type\":\"StringFormatter\"},\"title\":\"MCC\"},\"id\":\"0281442d-35f6-4390-a46b-5d0f0fefb3ad\",\"type\":\"TableColumn\"},{\"attributes\":{\"editor\":{\"id\":\"6bc655af-bc86-4855-af0c-70455a94c70b\",\"type\":\"StringEditor\"},\"field\":\"precision\",\"formatter\":{\"id\":\"e2f417b1-0f29-44c8-94d7-c376fea84867\",\"type\":\"StringFormatter\"},\"title\":\"Precision\"},\"id\":\"b0a00fee-537d-4dd8-8d2d-538631a9251f\",\"type\":\"TableColumn\"},{\"attributes\":{},\"id\":\"b9316fbb-9075-4fca-a95c-3b24b3beb4d0\",\"type\":\"StringFormatter\"},{\"attributes\":{},\"id\":\"e2f417b1-0f29-44c8-94d7-c376fea84867\",\"type\":\"StringFormatter\"},{\"attributes\":{\"editor\":{\"id\":\"d2b183f9-3399-4502-b176-4f7fc9760898\",\"type\":\"StringEditor\"},\"field\":\"ga_cvr\",\"formatter\":{\"id\":\"7ad7eba8-11b4-4a6c-ac66-99fd9c29849a\",\"type\":\"StringFormatter\"},\"title\":\"ga_cvr\"},\"id\":\"d714f6e7-71ec-45ba-a575-cfa1cee65d7c\",\"type\":\"TableColumn\"},{\"attributes\":{},\"id\":\"6bc655af-bc86-4855-af0c-70455a94c70b\",\"type\":\"StringEditor\"},{\"attributes\":{},\"id\":\"57ae6a1b-2ec1-47bc-b251-053582409648\",\"type\":\"StringFormatter\"},{\"attributes\":{\"editor\":{\"id\":\"eb0beb86-f9f4-46f7-966b-4b0939f89c25\",\"type\":\"StringEditor\"},\"field\":\"recall\",\"formatter\":{\"id\":\"b9316fbb-9075-4fca-a95c-3b24b3beb4d0\",\"type\":\"StringFormatter\"},\"title\":\"Recall\"},\"id\":\"2f9eee87-473f-47b1-85da-a6416c5ee422\",\"type\":\"TableColumn\"},{\"attributes\":{},\"id\":\"cb152525-e4d3-4258-a8ce-101380f0a7e7\",\"type\":\"StringEditor\"},{\"attributes\":{},\"id\":\"7ad7eba8-11b4-4a6c-ac66-99fd9c29849a\",\"type\":\"StringFormatter\"},{\"attributes\":{},\"id\":\"e46fc3c4-0e05-4649-b4d9-13dd98aac6b6\",\"type\":\"StringEditor\"},{\"attributes\":{},\"id\":\"eb0beb86-f9f4-46f7-966b-4b0939f89c25\",\"type\":\"StringEditor\"},{\"attributes\":{\"columns\":[{\"id\":\"6d4df4d0-1e5d-4ee7-bfc2-91ad00fa104e\",\"type\":\"TableColumn\"},{\"id\":\"dd424548-e160-454c-913b-0535b28b3953\",\"type\":\"TableColumn\"},{\"id\":\"80e3bd2f-a98d-4caa-9ba9-530c786eb976\",\"type\":\"TableColumn\"},{\"id\":\"b877c5d7-c58c-43be-afed-2cffa1db8fba\",\"type\":\"TableColumn\"},{\"id\":\"da2ad9d8-fbd6-4e2e-8740-2ae729fd57e7\",\"type\":\"TableColumn\"},{\"id\":\"d714f6e7-71ec-45ba-a575-cfa1cee65d7c\",\"type\":\"TableColumn\"},{\"id\":\"96268c87-1c14-4700-8fc1-518fc6e4b047\",\"type\":\"TableColumn\"},{\"id\":\"b0a00fee-537d-4dd8-8d2d-538631a9251f\",\"type\":\"TableColumn\"},{\"id\":\"2f9eee87-473f-47b1-85da-a6416c5ee422\",\"type\":\"TableColumn\"},{\"id\":\"0281442d-35f6-4390-a46b-5d0f0fefb3ad\",\"type\":\"TableColumn\"}],\"source\":{\"id\":\"521f19f6-c42a-4c14-92a0-605b77a1cd8d\",\"type\":\"ColumnDataSource\"},\"width\":1000},\"id\":\"61df2016-0b01-41eb-8701-5e8a7a24703f\",\"type\":\"DataTable\"},{\"attributes\":{},\"id\":\"b015abba-c6dd-4800-b5fd-e09f8261ee1c\",\"type\":\"StringEditor\"},{\"attributes\":{},\"id\":\"738aa938-5572-4fec-85f7-74d40919e63d\",\"type\":\"StringFormatter\"},{\"attributes\":{},\"id\":\"d2505fa0-7a9d-44da-9b1a-0fafd8c98048\",\"type\":\"StringFormatter\"},{\"attributes\":{\"editor\":{\"id\":\"eb76be60-25b9-4544-8c95-a630d2b3b37f\",\"type\":\"StringEditor\"},\"field\":\"level_2\",\"formatter\":{\"id\":\"770315d4-8643-48b1-b03f-9bd5515956e2\",\"type\":\"StringFormatter\"},\"title\":\"level 2\"},\"id\":\"80e3bd2f-a98d-4caa-9ba9-530c786eb976\",\"type\":\"TableColumn\"},{\"attributes\":{},\"id\":\"334e6738-c665-46bf-9a12-cc8515562ee1\",\"type\":\"StringEditor\"},{\"attributes\":{},\"id\":\"dded008e-2a3a-4e4b-896b-78eab4a7b315\",\"type\":\"StringFormatter\"},{\"attributes\":{},\"id\":\"d2b183f9-3399-4502-b176-4f7fc9760898\",\"type\":\"StringEditor\"},{\"attributes\":{\"editor\":{\"id\":\"eaebf685-f96a-48e2-84b1-4a7fbd1d9fff\",\"type\":\"StringEditor\"},\"field\":\"level_1\",\"formatter\":{\"id\":\"d2505fa0-7a9d-44da-9b1a-0fafd8c98048\",\"type\":\"StringFormatter\"},\"title\":\"level 1\"},\"id\":\"dd424548-e160-454c-913b-0535b28b3953\",\"type\":\"TableColumn\"},{\"attributes\":{\"editor\":{\"id\":\"e46fc3c4-0e05-4649-b4d9-13dd98aac6b6\",\"type\":\"StringEditor\"},\"field\":\"level_3\",\"formatter\":{\"id\":\"9d547a02-f012-40ec-b314-dbccb40e78ba\",\"type\":\"StringFormatter\"},\"title\":\"level 3\"},\"id\":\"b877c5d7-c58c-43be-afed-2cffa1db8fba\",\"type\":\"TableColumn\"},{\"attributes\":{},\"id\":\"dfa4963d-a363-43ea-8e5e-cdec05921def\",\"type\":\"StringEditor\"},{\"attributes\":{},\"id\":\"dae05a16-1bb6-46b0-a2e7-99961905b494\",\"type\":\"StringFormatter\"}],\"root_ids\":[\"61df2016-0b01-41eb-8701-5e8a7a24703f\"]},\"title\":\"Bokeh Application\",\"version\":\"0.12.6\"}};\n",
" var render_items = [{\"docid\":\"4716681a-8c94-46f6-aab3-85c1428afd00\",\"elementid\":\"0eaf8070-5cfe-487d-a787-4f747f835ae9\",\"modelid\":\"61df2016-0b01-41eb-8701-5e8a7a24703f\",\"notebook_comms_target\":\"d67d4b70-b720-4e69-a08e-8d81db226f62\"}];\n",
" \n",
" Bokeh.embed.embed_items(docs_json, render_items);\n",
" };\n",
" if (document.readyState != \"loading\") fn();\n",
" else document.addEventListener(\"DOMContentLoaded\", fn);\n",
" })();\n",
" },\n",
" function(Bokeh) {\n",
" }\n",
" ];\n",
" \n",
" function run_inline_js() {\n",
" \n",
" if ((window.Bokeh !== undefined) || (force === true)) {\n",
" for (var i = 0; i < inline_js.length; i++) {\n",
" inline_js[i](window.Bokeh);\n",
" }if (force === true) {\n",
" display_loaded();\n",
" }} else if (Date.now() < window._bokeh_timeout) {\n",
" setTimeout(run_inline_js, 100);\n",
" } else if (!window._bokeh_failed_load) {\n",
" console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n",
" window._bokeh_failed_load = true;\n",
" } else if (force !== true) {\n",
" var cell = $(document.getElementById(\"0eaf8070-5cfe-487d-a787-4f747f835ae9\")).parents('.cell').data().cell;\n",
" cell.output_area.append_execute_result(NB_LOAD_WARNING)\n",
" }\n",
" \n",
" }\n",
" \n",
" if (window._bokeh_is_loading === 0) {\n",
" console.log(\"Bokeh: BokehJS loaded, going straight to plotting\");\n",
" run_inline_js();\n",
" } else {\n",
" load_libs(js_urls, function() {\n",
" console.log(\"Bokeh: BokehJS plotting callback run at\", now());\n",
" run_inline_js();\n",
" });\n",
" }\n",
" }(this));\n",
"</script>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"q2\n",
"q3\n"
]
},
{
"data": {
"text/html": [
"\n",
"\n",
" <div class=\"bk-root\">\n",
" <div class=\"bk-plotdiv\" id=\"c33f6923-747b-444a-a83e-622d417f87d7\"></div>\n",
" </div>\n",
"<script type=\"text/javascript\">\n",
" \n",
" (function(global) {\n",
" function now() {\n",
" return new Date();\n",
" }\n",
" \n",
" var force = false;\n",
" \n",
" if (typeof (window._bokeh_onload_callbacks) === \"undefined\" || force === true) {\n",
" window._bokeh_onload_callbacks = [];\n",
" window._bokeh_is_loading = undefined;\n",
" }\n",
" \n",
" \n",
" \n",
" if (typeof (window._bokeh_timeout) === \"undefined\" || force === true) {\n",
" window._bokeh_timeout = Date.now() + 0;\n",
" window._bokeh_failed_load = false;\n",
" }\n",
" \n",
" var NB_LOAD_WARNING = {'data': {'text/html':\n",
" \"<div style='background-color: #fdd'>\\n\"+\n",
" \"<p>\\n\"+\n",
" \"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \\n\"+\n",
" \"may be due to a slow or bad network connection. Possible fixes:\\n\"+\n",
" \"</p>\\n\"+\n",
" \"<ul>\\n\"+\n",
" \"<li>re-rerun `output_notebook()` to attempt to load from CDN again, or</li>\\n\"+\n",
" \"<li>use INLINE resources instead, as so:</li>\\n\"+\n",
" \"</ul>\\n\"+\n",
" \"<code>\\n\"+\n",
" \"from bokeh.resources import INLINE\\n\"+\n",
" \"output_notebook(resources=INLINE)\\n\"+\n",
" \"</code>\\n\"+\n",
" \"</div>\"}};\n",
" \n",
" function display_loaded() {\n",
" if (window.Bokeh !== undefined) {\n",
" var el = document.getElementById(\"c33f6923-747b-444a-a83e-622d417f87d7\");\n",
" el.textContent = \"BokehJS \" + Bokeh.version + \" successfully loaded.\";\n",
" } else if (Date.now() < window._bokeh_timeout) {\n",
" setTimeout(display_loaded, 100)\n",
" }\n",
" }if ((window.Jupyter !== undefined) && Jupyter.notebook.kernel) {\n",
" comm_manager = Jupyter.notebook.kernel.comm_manager\n",
" comm_manager.register_target(\"f4c4cb3d-068a-44dc-9ecf-b94211a39335\", function () {});\n",
" }\n",
" \n",
" function run_callbacks() {\n",
" try {\n",
" window._bokeh_onload_callbacks.forEach(function(callback) { callback() });\n",
" }\n",
" finally {\n",
" delete window._bokeh_onload_callbacks\n",
" }\n",
" console.info(\"Bokeh: all callbacks have finished\");\n",
" }\n",
" \n",
" function load_libs(js_urls, callback) {\n",
" window._bokeh_onload_callbacks.push(callback);\n",
" if (window._bokeh_is_loading > 0) {\n",
" console.log(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n",
" return null;\n",
" }\n",
" if (js_urls == null || js_urls.length === 0) {\n",
" run_callbacks();\n",
" return null;\n",
" }\n",
" console.log(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n",
" window._bokeh_is_loading = js_urls.length;\n",
" for (var i = 0; i < js_urls.length; i++) {\n",
" var url = js_urls[i];\n",
" var s = document.createElement('script');\n",
" s.src = url;\n",
" s.async = false;\n",
" s.onreadystatechange = s.onload = function() {\n",
" window._bokeh_is_loading--;\n",
" if (window._bokeh_is_loading === 0) {\n",
" console.log(\"Bokeh: all BokehJS libraries loaded\");\n",
" run_callbacks()\n",
" }\n",
" };\n",
" s.onerror = function() {\n",
" console.warn(\"failed to load library \" + url);\n",
" };\n",
" console.log(\"Bokeh: injecting script tag for BokehJS library: \", url);\n",
" document.getElementsByTagName(\"head\")[0].appendChild(s);\n",
" }\n",
" };var element = document.getElementById(\"c33f6923-747b-444a-a83e-622d417f87d7\");\n",
" if (element == null) {\n",
" console.log(\"Bokeh: ERROR: autoload.js configured with elementid 'c33f6923-747b-444a-a83e-622d417f87d7' but no matching script tag was found. \")\n",
" return false;\n",
" }\n",
" \n",
" var js_urls = [];\n",
" \n",
" var inline_js = [\n",
" function(Bokeh) {\n",
" (function() {\n",
" var fn = function() {\n",
" var docs_json = {\"0833964b-06cc-4de0-aecd-6dfbc09bc06e\":{\"roots\":{\"references\":[{\"attributes\":{},\"id\":\"b9316fbb-9075-4fca-a95c-3b24b3beb4d0\",\"type\":\"StringFormatter\"},{\"attributes\":{\"callback\":null,\"column_names\":[\"ga_cvr\",\"precision\",\"level_1\",\"ga_fb_cpv\",\"imp_factor\",\"level_0\",\"spend_prop\",\"level_3\",\"level_2\",\"levels\",\"index\",\"recall\"],\"data\":{\"ga_cvr\":{\"__ndarray__\":\"zczMzMzM5D8AAAAAAADoPw==\",\"dtype\":\"float64\",\"shape\":[2]},\"ga_fb_cpv\":{\"__ndarray__\":\"mpmZmZmZGUCamZmZmZkeQA==\",\"dtype\":\"float64\",\"shape\":[2]},\"imp_factor\":{\"__ndarray__\":\"46WbxCCw0j+YbhKDwMrRPw==\",\"dtype\":\"float64\",\"shape\":[2]},\"index\":[0,1],\"level_0\":[\"Audience Strategy : Prospecting\",\"Audience Strategy : Prospecting\"],\"level_1\":[\"Product Category : Mixed\",\"Product Category : Mixed\"],\"level_2\":[\"Landing Pages : www.zivame.com/get-flat-discount.html, www.zivame.com\",\"Landing Pages : www.zivame.com/get-flat-discount.html, www.zivame.com\"],\"level_3\":[\"Image : 42c040219048fd21f5a85b27ba660649\",\"- : -\"],\"levels\":[[{\"Audience Strategy\":{\"name\":\"Prospecting\",\"value\":\"Prospecting\"}},{\"Product Category\":{\"name\":\"Mixed\",\"value\":\"Mixed\"}},{\"Landing Pages\":{\"name\":\"www.zivame.com/get-flat-discount.html, www.zivame.com\",\"value\":\"www.zivame.com/get-flat-discount.html, www.zivame.com\"}},{\"Image\":{\"name\":\"42c040219048fd21f5a85b27ba660649\",\"value\":\"42c040219048fd21f5a85b27ba660649\"}}],[{\"Audience Strategy\":{\"name\":\"Prospecting\",\"value\":\"Prospecting\"}},{\"Product Category\":{\"name\":\"Mixed\",\"value\":\"Mixed\"}},{\"Landing Pages\":{\"name\":\"www.zivame.com/get-flat-discount.html, www.zivame.com\",\"value\":\"www.zivame.com/get-flat-discount.html, www.zivame.com\"}}]],\"precision\":{\"__ndarray__\":\"iUFg5dAi7z9/arx0kxjoPw==\",\"dtype\":\"float64\",\"shape\":[2]},\"recall\":{\"__ndarray__\":\"+n5qvHSTqD+kcD0K16OwPw==\",\"dtype\":\"float64\",\"shape\":[2]},\"spend_prop\":{\"__ndarray__\":\"CtejcD0KA0DNzMzMzMwQQA==\",\"dtype\":\"float64\",\"shape\":[2]}}},\"id\":\"ddf8bf2b-e616-4775-9fea-3cc91cba861d\",\"type\":\"ColumnDataSource\"},{\"attributes\":{},\"id\":\"eb76be60-25b9-4544-8c95-a630d2b3b37f\",\"type\":\"StringEditor\"},{\"attributes\":{\"editor\":{\"id\":\"334e6738-c665-46bf-9a12-cc8515562ee1\",\"type\":\"StringEditor\"},\"field\":\"ga_fb_cpv\",\"formatter\":{\"id\":\"dded008e-2a3a-4e4b-896b-78eab4a7b315\",\"type\":\"StringFormatter\"},\"title\":\"ga_fb_cpv\"},\"id\":\"da2ad9d8-fbd6-4e2e-8740-2ae729fd57e7\",\"type\":\"TableColumn\"},{\"attributes\":{\"editor\":{\"id\":\"b015abba-c6dd-4800-b5fd-e09f8261ee1c\",\"type\":\"StringEditor\"},\"field\":\"level_0\",\"formatter\":{\"id\":\"dae05a16-1bb6-46b0-a2e7-99961905b494\",\"type\":\"StringFormatter\"},\"title\":\"level 0\"},\"id\":\"6d4df4d0-1e5d-4ee7-bfc2-91ad00fa104e\",\"type\":\"TableColumn\"},{\"attributes\":{},\"id\":\"9d547a02-f012-40ec-b314-dbccb40e78ba\",\"type\":\"StringFormatter\"},{\"attributes\":{},\"id\":\"57ae6a1b-2ec1-47bc-b251-053582409648\",\"type\":\"StringFormatter\"},{\"attributes\":{},\"id\":\"eaebf685-f96a-48e2-84b1-4a7fbd1d9fff\",\"type\":\"StringEditor\"},{\"attributes\":{},\"id\":\"770315d4-8643-48b1-b03f-9bd5515956e2\",\"type\":\"StringFormatter\"},{\"attributes\":{\"editor\":{\"id\":\"cb152525-e4d3-4258-a8ce-101380f0a7e7\",\"type\":\"StringEditor\"},\"field\":\"spend_prop\",\"formatter\":{\"id\":\"57ae6a1b-2ec1-47bc-b251-053582409648\",\"type\":\"StringFormatter\"},\"title\":\"Spend %\"},\"id\":\"96268c87-1c14-4700-8fc1-518fc6e4b047\",\"type\":\"TableColumn\"},{\"attributes\":{\"editor\":{\"id\":\"dfa4963d-a363-43ea-8e5e-cdec05921def\",\"type\":\"StringEditor\"},\"field\":\"imp_factor\",\"formatter\":{\"id\":\"738aa938-5572-4fec-85f7-74d40919e63d\",\"type\":\"StringFormatter\"},\"title\":\"MCC\"},\"id\":\"0281442d-35f6-4390-a46b-5d0f0fefb3ad\",\"type\":\"TableColumn\"},{\"attributes\":{\"editor\":{\"id\":\"6bc655af-bc86-4855-af0c-70455a94c70b\",\"type\":\"StringEditor\"},\"field\":\"precision\",\"formatter\":{\"id\":\"e2f417b1-0f29-44c8-94d7-c376fea84867\",\"type\":\"StringFormatter\"},\"title\":\"Precision\"},\"id\":\"b0a00fee-537d-4dd8-8d2d-538631a9251f\",\"type\":\"TableColumn\"},{\"attributes\":{},\"id\":\"b015abba-c6dd-4800-b5fd-e09f8261ee1c\",\"type\":\"StringEditor\"},{\"attributes\":{},\"id\":\"e2f417b1-0f29-44c8-94d7-c376fea84867\",\"type\":\"StringFormatter\"},{\"attributes\":{\"editor\":{\"id\":\"d2b183f9-3399-4502-b176-4f7fc9760898\",\"type\":\"StringEditor\"},\"field\":\"ga_cvr\",\"formatter\":{\"id\":\"7ad7eba8-11b4-4a6c-ac66-99fd9c29849a\",\"type\":\"StringFormatter\"},\"title\":\"ga_cvr\"},\"id\":\"d714f6e7-71ec-45ba-a575-cfa1cee65d7c\",\"type\":\"TableColumn\"},{\"attributes\":{},\"id\":\"6bc655af-bc86-4855-af0c-70455a94c70b\",\"type\":\"StringEditor\"},{\"attributes\":{\"editor\":{\"id\":\"eb0beb86-f9f4-46f7-966b-4b0939f89c25\",\"type\":\"StringEditor\"},\"field\":\"recall\",\"formatter\":{\"id\":\"b9316fbb-9075-4fca-a95c-3b24b3beb4d0\",\"type\":\"StringFormatter\"},\"title\":\"Recall\"},\"id\":\"2f9eee87-473f-47b1-85da-a6416c5ee422\",\"type\":\"TableColumn\"},{\"attributes\":{},\"id\":\"cb152525-e4d3-4258-a8ce-101380f0a7e7\",\"type\":\"StringEditor\"},{\"attributes\":{},\"id\":\"7ad7eba8-11b4-4a6c-ac66-99fd9c29849a\",\"type\":\"StringFormatter\"},{\"attributes\":{},\"id\":\"e46fc3c4-0e05-4649-b4d9-13dd98aac6b6\",\"type\":\"StringEditor\"},{\"attributes\":{},\"id\":\"eb0beb86-f9f4-46f7-966b-4b0939f89c25\",\"type\":\"StringEditor\"},{\"attributes\":{\"columns\":[{\"id\":\"6d4df4d0-1e5d-4ee7-bfc2-91ad00fa104e\",\"type\":\"TableColumn\"},{\"id\":\"dd424548-e160-454c-913b-0535b28b3953\",\"type\":\"TableColumn\"},{\"id\":\"80e3bd2f-a98d-4caa-9ba9-530c786eb976\",\"type\":\"TableColumn\"},{\"id\":\"b877c5d7-c58c-43be-afed-2cffa1db8fba\",\"type\":\"TableColumn\"},{\"id\":\"da2ad9d8-fbd6-4e2e-8740-2ae729fd57e7\",\"type\":\"TableColumn\"},{\"id\":\"d714f6e7-71ec-45ba-a575-cfa1cee65d7c\",\"type\":\"TableColumn\"},{\"id\":\"96268c87-1c14-4700-8fc1-518fc6e4b047\",\"type\":\"TableColumn\"},{\"id\":\"b0a00fee-537d-4dd8-8d2d-538631a9251f\",\"type\":\"TableColumn\"},{\"id\":\"2f9eee87-473f-47b1-85da-a6416c5ee422\",\"type\":\"TableColumn\"},{\"id\":\"0281442d-35f6-4390-a46b-5d0f0fefb3ad\",\"type\":\"TableColumn\"}],\"source\":{\"id\":\"ddf8bf2b-e616-4775-9fea-3cc91cba861d\",\"type\":\"ColumnDataSource\"},\"width\":1000},\"id\":\"21cbf105-36b1-419b-a026-9be9ab390a9a\",\"type\":\"DataTable\"},{\"attributes\":{},\"id\":\"738aa938-5572-4fec-85f7-74d40919e63d\",\"type\":\"StringFormatter\"},{\"attributes\":{},\"id\":\"d2505fa0-7a9d-44da-9b1a-0fafd8c98048\",\"type\":\"StringFormatter\"},{\"attributes\":{\"editor\":{\"id\":\"eb76be60-25b9-4544-8c95-a630d2b3b37f\",\"type\":\"StringEditor\"},\"field\":\"level_2\",\"formatter\":{\"id\":\"770315d4-8643-48b1-b03f-9bd5515956e2\",\"type\":\"StringFormatter\"},\"title\":\"level 2\"},\"id\":\"80e3bd2f-a98d-4caa-9ba9-530c786eb976\",\"type\":\"TableColumn\"},{\"attributes\":{},\"id\":\"334e6738-c665-46bf-9a12-cc8515562ee1\",\"type\":\"StringEditor\"},{\"attributes\":{},\"id\":\"dded008e-2a3a-4e4b-896b-78eab4a7b315\",\"type\":\"StringFormatter\"},{\"attributes\":{},\"id\":\"d2b183f9-3399-4502-b176-4f7fc9760898\",\"type\":\"StringEditor\"},{\"attributes\":{\"editor\":{\"id\":\"eaebf685-f96a-48e2-84b1-4a7fbd1d9fff\",\"type\":\"StringEditor\"},\"field\":\"level_1\",\"formatter\":{\"id\":\"d2505fa0-7a9d-44da-9b1a-0fafd8c98048\",\"type\":\"StringFormatter\"},\"title\":\"level 1\"},\"id\":\"dd424548-e160-454c-913b-0535b28b3953\",\"type\":\"TableColumn\"},{\"attributes\":{\"editor\":{\"id\":\"e46fc3c4-0e05-4649-b4d9-13dd98aac6b6\",\"type\":\"StringEditor\"},\"field\":\"level_3\",\"formatter\":{\"id\":\"9d547a02-f012-40ec-b314-dbccb40e78ba\",\"type\":\"StringFormatter\"},\"title\":\"level 3\"},\"id\":\"b877c5d7-c58c-43be-afed-2cffa1db8fba\",\"type\":\"TableColumn\"},{\"attributes\":{},\"id\":\"dfa4963d-a363-43ea-8e5e-cdec05921def\",\"type\":\"StringEditor\"},{\"attributes\":{},\"id\":\"dae05a16-1bb6-46b0-a2e7-99961905b494\",\"type\":\"StringFormatter\"}],\"root_ids\":[\"21cbf105-36b1-419b-a026-9be9ab390a9a\"]},\"title\":\"Bokeh Application\",\"version\":\"0.12.6\"}};\n",
" var render_items = [{\"docid\":\"0833964b-06cc-4de0-aecd-6dfbc09bc06e\",\"elementid\":\"c33f6923-747b-444a-a83e-622d417f87d7\",\"modelid\":\"21cbf105-36b1-419b-a026-9be9ab390a9a\",\"notebook_comms_target\":\"f4c4cb3d-068a-44dc-9ecf-b94211a39335\"}];\n",
" \n",
" Bokeh.embed.embed_items(docs_json, render_items);\n",
" };\n",
" if (document.readyState != \"loading\") fn();\n",
" else document.addEventListener(\"DOMContentLoaded\", fn);\n",
" })();\n",
" },\n",
" function(Bokeh) {\n",
" }\n",
" ];\n",
" \n",
" function run_inline_js() {\n",
" \n",
" if ((window.Bokeh !== undefined) || (force === true)) {\n",
" for (var i = 0; i < inline_js.length; i++) {\n",
" inline_js[i](window.Bokeh);\n",
" }if (force === true) {\n",
" display_loaded();\n",
" }} else if (Date.now() < window._bokeh_timeout) {\n",
" setTimeout(run_inline_js, 100);\n",
" } else if (!window._bokeh_failed_load) {\n",
" console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n",
" window._bokeh_failed_load = true;\n",
" } else if (force !== true) {\n",
" var cell = $(document.getElementById(\"c33f6923-747b-444a-a83e-622d417f87d7\")).parents('.cell').data().cell;\n",
" cell.output_area.append_execute_result(NB_LOAD_WARNING)\n",
" }\n",
" \n",
" }\n",
" \n",
" if (window._bokeh_is_loading === 0) {\n",
" console.log(\"Bokeh: BokehJS loaded, going straight to plotting\");\n",
" run_inline_js();\n",
" } else {\n",
" load_libs(js_urls, function() {\n",
" console.log(\"Bokeh: BokehJS plotting callback run at\", now());\n",
" run_inline_js();\n",
" });\n",
" }\n",
" }(this));\n",
"</script>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"all_df = df_1.append(df_2, ignore_index=True)\n",
"all_df = all_df.append(df_3, ignore_index=True)\n",
"all_df = all_df.append(df_4, ignore_index=True)\n",
"\n",
"def round_float(s):\n",
" if s.dtype == 'float64':\n",
" s = s.round(3)\n",
" return s\n",
"\n",
"tooltips=[\n",
" ('lvl 0:', '@level_0'),\n",
" ('lvl 1:', '@level_1'),\n",
" ('lvl 2:', '@level_2'),\n",
" ('lvl 3:', '@level_3'),\n",
" (path_model.goal_metrics[0], '@{0}'.format(path_model.goal_metrics[0])),\n",
" (path_model.goal_metrics[1], '@{0}'.format(path_model.goal_metrics[1])),\n",
" ('Precision', '@precision'),\n",
" ('Recall', '@recall'),\n",
" ('mcc', '@imp_factor'),\n",
" ('Spend Prop', '@spend_prop')\n",
"]\n",
"\n",
"hover = HoverTool(tooltips=tooltips)\n",
"hover1 = HoverTool(tooltips=tooltips)\n",
"\n",
"def build_bokeh_trace(df_obj, num):\n",
" df_obj = df_obj.copy()\n",
" if len(df_obj):\n",
" df_obj = df_obj.sort_values(by='imp_factor', ascending=False)\n",
" df_plotly = df_obj.iloc[0:num].copy()\n",
" df_plotly['idx'] = df_plotly.index\n",
" df_plotly['size'] = df_plotly['imp_factor']\n",
" # range r1 to r2\n",
" r1=8\n",
" r2=30\n",
" min_r = df_plotly['size'].min()\n",
" max_r = df_plotly['size'].max()\n",
" df_plotly['size'] = ((df_plotly['size'])/ max_r)*20\n",
"# df_plotly['overall'] = data['goal_axis']\n",
"# df_plotly['overall_spend_prop'] = avg_spend_prop\n",
" else:\n",
" return ColumnDataSource(df_obj)\n",
"\n",
" source = ColumnDataSource(df_plotly)\n",
" return source\n",
"\n",
"spend_source_1 = build_bokeh_trace(df_1, 10)\n",
"spend_source_2 = build_bokeh_trace(df_2, 10)\n",
"spend_source_3 = build_bokeh_trace(df_3, 10)\n",
"spend_source_4 = build_bokeh_trace(df_4, 10)\n",
"\n",
"table_source_1 = ColumnDataSource(df_1.apply(round_float))\n",
"table_source_2 = ColumnDataSource(df_2.apply(round_float))\n",
"table_source_3 = ColumnDataSource(df_3.apply(round_float))\n",
"table_source_4 = ColumnDataSource(df_4.apply(round_float))\n",
"\n",
"columns = [\n",
" TableColumn(field=\"level_0\", title=\"level 0\"),\n",
" TableColumn(field=\"level_1\", title=\"level 1\"),\n",
" TableColumn(field=\"level_2\", title=\"level 2\"),\n",
" TableColumn(field=\"level_3\", title=\"level 3\"),\n",
"# TableColumn(field=\"other_{0}\".format(args['goal_metric'][\"value\"]), title=\"Other {0}\".format(args['goal_metric']['value'])),\n",
" TableColumn(field=path_model.goal_metrics[0], title=path_model.goal_metrics[0]),\n",
" TableColumn(field=path_model.goal_metrics[1], title=path_model.goal_metrics[1]),\n",
"# TableColumn(field=\"Projected_change\", title=\"Projected % CPT change\"),\n",
" TableColumn(field=\"spend_prop\", title=\"Spend %\"),\n",
"# TableColumn(field=\"imp_factor\", title=\"Impact factor\"),\n",
" TableColumn(field=\"precision\", title=\"Precision\"),\n",
" TableColumn(field=\"recall\", title=\"Recall\"),\n",
" TableColumn(field=\"imp_factor\", title=\"MCC\") \n",
"]\n",
"\n",
"# Spend sorted.\n",
"p1 = figure(plot_width=800, plot_height=500, tools=[hover1],\n",
" title=\"Performance by paths.\")\n",
"p1.xaxis.axis_label = path_model.goal_metrics[0]\n",
"p1.yaxis.axis_label = path_model.goal_metrics[1]\n",
"\n",
"if len(df_1):\n",
" prop_plot_1 = p1.circle(path_model.goal_metrics[0], path_model.goal_metrics[1], fill_color='orange', source=spend_source_1, size='size')\n",
"if len(df_2):\n",
" prop_plot_2 = p1.circle(path_model.goal_metrics[0], path_model.goal_metrics[1], fill_color='red', source=spend_source_2, size='size')\n",
"if len(df_3):\n",
" prop_plot_3 = p1.circle(path_model.goal_metrics[0], path_model.goal_metrics[1], fill_color='green', source=spend_source_3, size='size')\n",
"if len(df_4):\n",
" prop_plot_4 = p1.circle(path_model.goal_metrics[0], path_model.goal_metrics[1], fill_color='blue', source=spend_source_4, size='size')\n",
"\n",
"avg_spend = Span(location=data['y_axis'], dimension='width', line_color='black', line_width=3)\n",
"avg_cpt = Span(location=data['x_axis'], dimension='height', line_color='black', line_width=3)\n",
"\n",
"p1.add_layout(avg_spend)\n",
"p1.add_layout(avg_cpt)\n",
"\n",
"prop_plot = show(p1, notebook_handle=True)\n",
"\n",
"print('q0')\n",
"if len(df_1):\n",
" data_table_1 = DataTable(source=table_source_1, columns=columns, width=1000)\n",
" table_1 = show(data_table_1, notebook_handle=True)\n",
"\n",
"print('q1')\n",
"if len(df_2):\n",
" data_table_2 = DataTable(source=table_source_2, columns=columns, width=1000)\n",
" table_2 = show(data_table_2, notebook_handle=True)\n",
"\n",
"print('q2')\n",
"if len(df_3):\n",
" data_table_3 = DataTable(source=table_source_3, columns=columns, width=1000)\n",
" table_3 = show(data_table_3, notebook_handle=True)\n",
"\n",
"print('q3')\n",
"if len(df_4):\n",
" data_table_4 = DataTable(source=table_source_4, columns=columns, width=1000)\n",
" table_4 = show(data_table_4, notebook_handle=True)\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"df_4"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"df_bigger = df[(df['Audience Strategy'] == 'Retention') & (df['Ad Type'] == 'Carousel') & (df['Landing Pages'] == 'www.zivame.com/no-sag-flat-30.html, www.zivame.com')]\n",
"df_bigger.head()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"plt.figure(figsize=(20,10))\n",
"binwidth = 0.1\n",
"h = hist(df_bigger[goal_metric['value']], weights=df_bigger.fb_spend, bins=pd.np.linspace((min(df_bigger[goal_metric['value']])),\n",
" (max(df_bigger[goal_metric['value']])), 50))"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true,
"scrolled": false
},
"outputs": [],
"source": [
"df_smaller = df[(df['Audience Strategy'] == 'Prospecting') & (df['Product Category'] == 'Shapewear')]\n",
"df_smaller.head()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"plt.figure(figsize=(20,10))\n",
"binwidth = 0.1\n",
"h = hist(df_smaller[goal_metric['value']], weights=df_smaller.fb_spend, bins=pd.np.linspace((min(df_smaller[goal_metric['value']])),\n",
" (max(df_smaller[goal_metric['value']])), 50))"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"import numpy as np\n",
"from scipy.stats import norm\n",
"import matplotlib.pyplot as plt\n",
"\n",
"# Fit a normal distribution to the data:\n",
"\n",
"\n",
"mu, std = norm.fit(data, loc = path_model.overall_goal_metric)\n",
"\n",
"# Plot the histogram.\n",
"plt.hist(data, bins=25, normed=True, alpha=0.6, color='g')\n",
"\n",
"# Plot the PDF.\n",
"xmin, xmax = plt.xlim()\n",
"x = np.linspace(xmin, xmax, 100)\n",
"p = norm.pdf(x, mu, std)\n",
"plt.plot(x, p, 'k', linewidth=2)\n",
"title = \"Fit results: mu = %.2f, std = %.2f\" % (mu, std)\n",
"plt.title(title)\n",
"\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"check_threshold*mu"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"check_threshold = std*0.675 / mu"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"positive_df = df[abs(df[goal_metric['value']] - path_model.overall_goal_metric) > check_threshold*path_model.overall_goal_metric] "
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"positive_df.fb_spend.sum() / df.fb_spend.sum()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"path_model.check_threshold"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"(0.713 - 0.0181*0.430)/ (1-0.0181)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"(0.713 - 0.0189*0.410)/ (1-0.0189)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"path_model.overall_goal_metric - # + path_model.overall_goal_metric*path_model.check_threshold"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"(pd.np.percentile(data, 25) - path_model.overall_goal_metric) / path_model.overall_goal_metric"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"(pd.np.percentile(data, 75) - path_model.overall_goal_metric) / path_model.overall_goal_metric"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"pd.np.quant"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"from scipy.stats import t\n",
"t.fit(data, loc=path_model.overall_goal_metric)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"len([d for d in data if d > 1000])"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"df.fb_spend.sum()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
}
],
"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": 1
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment