{ "cells": [ { "cell_type": "code", "execution_count": 9, "metadata": { "collapsed": true, "pycharm": { "name": "#%%\n" } }, "outputs": [], "source": [ "from typing import Any\n", "import pandas as pd\n", "from sklearn.model_selection import train_test_split\n", "from sklift.datasets import fetch_hillstrom\n", "from sklift.metrics import uplift_at_k\n", "from sklift.viz import plot_uplift_preds\n", "from sklift.models import SoloModel\n", "from catboost import CatBoostClassifier\n", "from category_encoders import CatBoostEncoder" ] }, { "cell_type": "code", "execution_count": 2, "outputs": [], "source": [ "def get_data() -> tuple[Any, Any, Any]:\n", "\t# получаем датасет\n", "\tdataset = fetch_hillstrom(target_col='visit')\n", "\tdataset, target, treatment = dataset['data'], dataset['target'], dataset['treatment']\n", "\t# выбираем два сегмента\n", "\tdataset = dataset[treatment != 'Mens E-Mail']\n", "\ttarget = target[treatment != 'Mens E-Mail']\n", "\ttreatment = treatment[treatment != 'Mens E-Mail'].map({\n", "\t\t'Womens E-Mail': 1,\n", "\t\t'No E-Mail': 0\n", "\t})\n", "\n", "\treturn dataset, target, treatment" ], "metadata": { "collapsed": false, "pycharm": { "name": "#%%\n" } } }, { "cell_type": "code", "execution_count": 3, "outputs": [], "source": [ "data, target, treatment = get_data()" ], "metadata": { "collapsed": false, "pycharm": { "name": "#%%\n" } } }, { "cell_type": "code", "execution_count": 4, "outputs": [ { "data": { "text/plain": " recency history_segment history mens womens zip_code newbie channel\n0 10 2) $100 - $200 142.44 1 0 Surburban 0 Phone\n1 6 3) $200 - $350 329.08 1 1 Rural 1 Web\n2 7 2) $100 - $200 180.65 0 1 Surburban 1 Web\n4 2 1) $0 - $100 45.34 1 0 Urban 0 Web\n5 6 2) $100 - $200 134.83 0 1 Surburban 0 Phone", "text/html": "
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
recencyhistory_segmenthistorymenswomenszip_codenewbiechannel
0102) $100 - $200142.4410Surburban0Phone
163) $200 - $350329.0811Rural1Web
272) $100 - $200180.6501Surburban1Web
421) $0 - $10045.3410Urban0Web
562) $100 - $200134.8301Surburban0Phone
\n
" }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "data.head()" ], "metadata": { "collapsed": false, "pycharm": { "name": "#%%\n" } } }, { "cell_type": "code", "execution_count": 5, "outputs": [ { "data": { "text/plain": "0 0\n1 0\n2 0\n4 0\n5 1\nName: visit, dtype: int64" }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "target.head()" ], "metadata": { "collapsed": false, "pycharm": { "name": "#%%\n" } } }, { "cell_type": "code", "execution_count": 6, "outputs": [ { "data": { "text/plain": "0 1\n1 0\n2 1\n4 1\n5 1\nName: segment, dtype: int64" }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "treatment.head()" ], "metadata": { "collapsed": false, "pycharm": { "name": "#%%\n" } } }, { "cell_type": "code", "execution_count": 23, "outputs": [ { "data": { "text/plain": "visit 0 1\nsegment \n0 0.893833 0.106167\n1 0.848600 0.151400", "text/html": "
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
visit01
segment
00.8938330.106167
10.8486000.151400
\n
" }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pd.crosstab(treatment, target, normalize='index')" ], "metadata": { "collapsed": false, "pycharm": { "name": "#%%\n" } } }, { "cell_type": "code", "execution_count": 50, "outputs": [ { "data": { "text/plain": "1 50.261167\n0 49.738833\nName: newbie, dtype: float64" }, "metadata": {}, "output_type": "display_data" } ], "source": [ "res = data.newbie.value_counts(normalize=True) * 100\n", "display(res)" ], "metadata": { "collapsed": false, "pycharm": { "name": "#%%\n" } } }, { "cell_type": "code", "execution_count": 54, "outputs": [ { "data": { "text/plain": "Surburban 19275\nUrban 17098\nRural 6320\nName: zip_code, dtype: int64" }, "execution_count": 54, "metadata": {}, "output_type": "execute_result" } ], "source": [ "data.zip_code.value_counts()" ], "metadata": { "collapsed": false, "pycharm": { "name": "#%%\n" } } }, { "cell_type": "code", "execution_count": 12, "outputs": [], "source": [ "X_train, X_val, y_train, y_val, trmnt_train, trmnt_val = train_test_split(\n", " data, target, treatment, test_size=0.3, random_state=42\n", ")\n", "\n", "models_results = {\n", " 'approach': [],\n", " 'uplift@30%': []\n", "}" ], "metadata": { "collapsed": false, "pycharm": { "name": "#%%\n" } } }, { "cell_type": "markdown", "source": [ "## Single model" ], "metadata": { "collapsed": false, "pycharm": { "name": "#%% md\n" } } }, { "cell_type": "code", "execution_count": 13, "outputs": [ { "data": { "text/plain": "
", "image/png": "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JEmSJNVlw1YHMBrbbrttTp8+vdVhSFLbWbRo0R8zc3Kr42g12wlJGpjtRMV2QpIGNlQ70dGJpOnTp7Nw4cJWhyFJbSciftfqGNqB7YQkDcx2omI7IUkDG6qdcGibJEmSJEmS6mIiSZIkSZIkSXUxkSRJkiRJkqS6dPQcSZLGvyeffJJly5bx2GOPtTqUtjRp0iSmTp3KRhtt1OpQJKku3teby3ZCkuozUdunkbQTJpIktbVly5ax+eabM336dCKi1eG0lczkvvvuY9myZXR1dbU6HEmqi/f15rGdkKT6TcT2aaTthEPbJLW1xx57jG222WbC3MyHIyLYZpttJty3JpI6m/f15rGdkKT6TcT2aaTthIkkSW1vIt3Mh8v3RlIn8t7VPL7XklS/iXjPHMk1m0iSJEmSJElSXZwjSVJHmT9/bI83c+bQ2++77z723XdfAO6++2422GADJk+eDMCNN97IxhtvPOxzLliwgI033phXvepVw9pv+vTpLFy4kG233XbY55SkdtXb2zOmx+vqWv/xIoITTzyRz3/+8wCcfvrpPPLII/T0DL7vZZddxgtf+EJe8pKXDGvbSIz0eJttthmPPPLImMQgSRNdz4KesT3ejPUfb+nSpRx44IHccssta/fr6WGzzTbjwx/+8ID7nHfeeSxcuJAvf/nLnH322Tz72c/myCOP5Ne//jWHHXYYEcEll1zCDTfcwBFHHDEm12KPJEkawjbbbMPixYtZvHgxxx57LB/84AfXrG+88casXr162MdcsGABP//5zxsQrSSpHptssgmXXnopf/zjH+ve57LLLuO2224b9raRtBNDHU+SpMEce+yxHHnkkUDVlhx88MH84he/4K677uKb3/zmmJ3HRJIkDdNRRx3Fsccey1577cVHP/pRfvvb37L//vvz8pe/nNe85jX8+te/BmD+/Pnstdde7L777rzhDW/gnnvuYenSpZx99tmcccYZ7LbbbvzkJz9h5cqVvP3tb2ePPfZgjz324Gc/+xlQ9YZ605vexM4778zf/u3fkpmtvGxJGjc23HBD5syZwxlnnPGMbUuXLmWfffZhl112Yd999+X3v/89P//5z7niiiv4yEc+wm677cZvf/vbNfUH2jZjxgxOOOEEuru7OfPMM1m0aBGve93rePnLX85+++3HihUrAPja177GHnvswa677srb3/52Hn300QGPN1g709vbyytf+Ur+6q/+ilNOOaU5b54kqSVmzJjB8ccfz2677cZLX/pSbrzxxmfU6enp4fTTT+fKK6/ki1/8Il/96ld5/etfz8knn8xPfvITdttttwHbvuFyaJskjcCyZcv4+c9/zgYbbMC+++7L2WefzU477cQNN9zA3//933P11Vez9957c/311xMRfP3rX+dzn/scn//85zn22GPX6Z56xBFH8MEPfpC9996b3//+9+y3337cfvvt/NM//RN77703//iP/8j3vvc9zjnnnBZftSSNH8cddxy77LILH/3oR9cpf//738/s2bOZPXs25557Lh/4wAe47LLLeOtb38qBBx7IwQcfvE79V73qVQNue+KJJ1i4cCFPPvkkr3vd67j88suZPHkyF110EZ/4xCc499xzedvb3sZ73vMeAE455RTOOecc3v/+9z/jeIO1M8cffzzvfe97OfLII/nKV77S4HdMktRqjz76KIsXL+baa6/l3e9+9zpD4GodcMAB63zmWLBgAaeffjrf/e53xyQOE0mSNAKHHHIIG2ywAY888gg///nPOeSQQ9Zse/zxx4Eq2fSOd7yDFStW8MQTT9DV1TXgsX70ox+tM4ThoYce4pFHHuHaa6/l0ksvBeAtb3kLW221VQOvSJImluc+97kceeSRnHXWWWy66aZryq+77ro19953vetdz0g01esd73gHAHfccQe33HILb3zjGwF46qmnmDJlCgC33HILp5xyCg888ACPPPII++233zOOM1Q787Of/Yxvf/vba2I96aSTRhSrJKk9DPYEtb7yww8/HIDXvva1PPTQQzzwwAPNCm0dJpIkaQSe85znAPD000+z5ZZbsnjx4mfUef/738+JJ57IW9/6VhYsWDDoJK5PP/00119/PZMmTWpgxJKk/k444QRe9rKXcfTRR4/5sfvaicxk55135rrrrntGnaOOOorLLruMXXfdlfPOO48FCxY8o85Q7QxMzEdVS9J4tc0227Bq1ap1yu6///41X0j3v+e3qg1wjiRJGoXnPve5dHV18V//9V9A9YHhl7/8JQAPPvggO+ywAwDz5s1bs8/mm2/Oww8/vGb9TW96E1/60pfWrPd9WHjta1+7ZlK873//+89oVCRJo7P11ltz6KGHrjN0+FWvehUXXnghABdccAGvec1rgGfeu2sNte1F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\n" }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "sm = SoloModel(CatBoostClassifier(iterations=1000, task_type=\"GPU\", random_state=42, silent=True))\n", "sm = sm.fit(X_train, y_train, trmnt_train, estimator_fit_params={'cat_features': ['history_segment', 'zip_code', 'channel']})\n", "\n", "uplift_sm = sm.predict(X_val)\n", "\n", "sm_score = uplift_at_k(y_true=y_val, uplift=uplift_sm, treatment=trmnt_val, strategy='by_group', k=0.3)\n", "\n", "models_results['approach'].append('SoloModel')\n", "models_results['uplift@30%'].append(sm_score)\n", "\n", "# Получим условные вероятности выполнения целевого действия при взаимодействии для каждого объекта\n", "sm_trmnt_preds = sm.trmnt_preds_\n", "# И условные вероятности выполнения целевого действия без взаимодействия для каждого объекта\n", "sm_ctrl_preds = sm.ctrl_preds_\n", "\n", "# Отрисуем распределения вероятностей и их разность (uplift)\n", "plot_uplift_preds(trmnt_preds=sm_trmnt_preds, ctrl_preds=sm_ctrl_preds);" ], "metadata": { "collapsed": false, "pycharm": { "name": "#%%\n" } } }, { "cell_type": "code", "execution_count": 14, "outputs": [ { "data": { "text/plain": " feature_name feature_score\n0 newbie 16.159375\n1 history 15.380477\n2 recency 15.057106\n3 womens 12.918455\n4 treatment 12.083391\n5 channel 9.437116\n6 zip_code 9.357430\n7 mens 6.807001\n8 history_segment 2.799648", "text/html": "
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
feature_namefeature_score
0newbie16.159375
1history15.380477
2recency15.057106
3womens12.918455
4treatment12.083391
5channel9.437116
6zip_code9.357430
7mens6.807001
8history_segment2.799648
\n
" }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sm_fi = pd.DataFrame({\n", " 'feature_name': sm.estimator.feature_names_,\n", " 'feature_score': sm.estimator.feature_importances_\n", "}).sort_values('feature_score', ascending=False).reset_index(drop=True)\n", "\n", "sm_fi" ], "metadata": { "collapsed": false, "pycharm": { "name": "#%%\n" } } }, { "cell_type": "markdown", "source": [ "## Class transform" ], "metadata": { "collapsed": false, "pycharm": { "name": "#%% md\n" } } }, { "cell_type": "code", "execution_count": 15, "outputs": [], "source": [ "from sklift.models import ClassTransformation\n", "\n", "\n", "ct = ClassTransformation(CatBoostClassifier(iterations=1000, task_type='GPU', random_state=42, silent=True))\n", "ct = ct.fit(X_train, y_train, trmnt_train, estimator_fit_params={'cat_features': ['history_segment', 'zip_code', 'channel']})\n", "\n", "uplift_ct = ct.predict(X_val)\n", "\n", "ct_score = uplift_at_k(y_true=y_val, uplift=uplift_ct, treatment=trmnt_val, strategy='by_group', k=0.3)\n", "\n", "models_results['approach'].append('ClassTransformation')\n", "models_results['uplift@30%'].append(ct_score)" ], "metadata": { "collapsed": false, "pycharm": { "name": "#%%\n" } } }, { "cell_type": "markdown", "source": [ "## Two independent models" ], "metadata": { "collapsed": false, "pycharm": { "name": "#%% md\n" } } }, { "cell_type": "code", "execution_count": 16, "outputs": [ { "data": { "text/plain": "
", "image/png": "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1bHRRhvx9a9/nd/97ne117n44ov55S9/OeJlo6knhtueJEntHH300Rx++OFAVZcceOCB/OQnP+GOO+7gy1/+8rjtx0SSJI3QEUccwdFHH81uu+3Ghz/8YW699VZe97rXscsuu/Dyl7+cX/3qVwAsXLiQ3XbbjZ133plXv/rV3H333SxbtowzzjiDk08+mZ122okf/OAHrFy5kje/+c3suuuu7LrrrvzoRz8CqtZQr33ta9lhhx14xzveQfUwGknSWK2//vosWLCAk08++UnLli1bxl577cWLXvQi9t57b37zm99w9dVXc+mll/KhD32InXbaiVtvvXV1+aGWzZ07l2OPPZY5c+ZwyimncMMNN/DKV76SXXbZhX322Yc777wTgM9//vPsuuuu7Ljjjrz5zW/m4YcfHnJ77eqZpUuX8tKXvpS//Mu/5IQTTujOyZMk9cTcuXN53/vex0477cQLX/hCrr/++ieV6e/v56STTuKyyy7jM5/5DKeffjqvetWrOP744/nBD37ATjvtNGTdN1J2bZOkUVi+fDlXX3016623HnvvvTdnnHEG22+/Pddddx3vfve7ufLKK9lzzz259tpriQi+8IUv8KlPfYpPf/rTHH300Ws1Tz3ssMN4//vfz5577slvfvMb9tlnH26++Wb+/u//nj333JO/+7u/41vf+hZnnXVWj49akiaPY445hhe96EV8+MMfXmv+e97zHubPn8/8+fM5++yzee9738vFF1/M/vvvz3777ceBBx64Vvk99thjyGWPPvooixcv5rHHHuOVr3wll1xyCdOnT+eCCy7gox/9KGeffTZvetObeOc73wnACSecwFlnncV73vOeJ22vXT3zvve9j3e9610cfvjhfO5zn+vwGZMk9drDDz/MjTfeyFVXXcXb3/72tbrAtdp3333XuudYtGgRJ510Et/85jfHJQ4TSZI0CgcddBDrrbceDz30EFdffTUHHXTQ6mV//OMfgSrZdMghh3DnnXfy6KOP0tfXN+S2vve9763VheH3v/89Dz30EFdddRVf//rXAXjDG97AFlts0cEjkqSpZdNNN+Xwww/n1FNP5alPferq+ddcc83qa+/b3va2JyWa6jrkkEMAuOWWW7jpppt4zWteA8Cf/vQnZsyYAcBNN93ECSecwP33389DDz3EPvvs86TtDFfP/OhHP+JrX/va6lg/8pGPjCpWSVIztHuC2sD8t7zlLQC84hWv4Pe//z33339/t0Jbi4kkSRqFpz/96QA88cQTbL755tx4441PKvOe97yH4447jv33359Fixa1HcT1iSee4Nprr2XatGkdjFiSNNixxx7Li1/8Yo488shx3/ZAPZGZ7LDDDlxzzTVPKnPEEUdw8cUXs+OOO/KlL32JRYsWPanMcPUMTM1HVUvSZLXVVltx3333rTXv3nvvXf2F9OBrfq/qAMdIkqQx2HTTTenr6+OrX/0qUN0w/PSnPwXggQceYNtttwXgnHPOWb3OJptswoMPPrj6/Wtf+1o++9nPrn4/cLPwile8YvWgeN/+9refVKlIksZmyy235OCDD16r6/Aee+zB+eefD8B5553Hy1/+cuDJ1+5Wwy173vOex8qVK1cnkh577DF+8YtfAPDggw8yY8YMHnvsMc4777whtzdcPfOyl71srVglSRPbxhtvzIwZM7jyyiuBKon0ne98hz333BOACy64AIAf/vCHbLbZZmy22Wa1tjtcPTUatkiSNKHMm9frCJ7svPPO413vehcf//jHeeyxxzj00EPZcccd6e/v56CDDmKLLbZgr732YunSpQDMmzePAw88kEsuuYTPfvaznHrqqavH6nj88cd5xStewRlnnMGJJ57IW97yFnbYYQf22GMPZs2a1eMjlaTx19fX39P9f+ADH+C0005b/f6zn/0sRx55JP/yL//C9OnT+eIXvwjAoYceyjvf+U5OPfVULrroIp797GevXmfwslYbbrghF110Ee9973t54IEHePzxxzn22GPZYYcd+NjHPsZuu+3G9OnT2W233Vb/kz94e+3qmVNOOYXDDjuMT37ykxxwwAFdOFuSNHX0z+3vyX7PPfdcjjnmGI477jgATjzxxNV1zrRp09h555157LHHOPvss2tv80UvehHrrbceO+64I0cccQTvf//7xxRjTOSnAM2ZMycXL17c6zB6YuHCNdNNvLGWxsvNN9/MX/zFX/Q6jEYb6hxFxA2ZOadHITXGZKonli7tXz3d6xtvaSy8rnef9UR7k6memAj6F/Wvme7RTbrUTtPrp7lz53LSSScxZ874X7pHWk/YtU2SJEmSJEm12LVNktQzEbEMeBD4E/B4Zs6JiC2BC4DZwDLg4My8L6rRBE8B9gUeBo7IzB/3Im5JkiSpm4Z6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\n" }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "from sklift.models import TwoModels\n", "\n", "\n", "tm = TwoModels(\n", " estimator_trmnt=CatBoostClassifier(iterations=1000, task_type='GPU', random_state=42, silent=True),\n", " estimator_ctrl=CatBoostClassifier(iterations=1000, task_type='GPU', random_state=42, silent=True),\n", " method='vanilla'\n", ")\n", "tm = tm.fit(\n", " X_train, y_train, trmnt_train,\n", " estimator_trmnt_fit_params={'cat_features': ['history_segment', 'zip_code', 'channel']},\n", " estimator_ctrl_fit_params={'cat_features': ['history_segment', 'zip_code', 'channel']}\n", ")\n", "\n", "uplift_tm = tm.predict(X_val)\n", "\n", "tm_score = uplift_at_k(y_true=y_val, uplift=uplift_tm, treatment=trmnt_val, strategy='by_group', k=0.3)\n", "\n", "models_results['approach'].append('TwoModels')\n", "models_results['uplift@30%'].append(tm_score)\n", "\n", "plot_uplift_preds(trmnt_preds=tm.trmnt_preds_, ctrl_preds=tm.ctrl_preds_);" ], "metadata": { "collapsed": false, "pycharm": { "name": "#%%\n" } } }, { "cell_type": "markdown", "source": [ "## Two dependend models" ], "metadata": { "collapsed": false, "pycharm": { "name": "#%% md\n" } } }, { "cell_type": "code", "execution_count": 36, "outputs": [ { "data": { "text/plain": "
", "image/png": "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aNEivvnNb3L22Wfz0pe+lOnTp/OHP/yBQw89lIjgkksu4dprr+Xwww9f53rY40mS+tkWW2zBTTfdxE033cQxxxzDRz/60dX7o0aNYtWqVWt8zQULFvDb3/62htJKkvpi/fXX58c//jF//vOf+3zOpZdeyu23377Gx9amnejpeoNZZv4lM7fIzEcb0h7OzL0zc2Jmvr0jiJSV4zLzlZn5D5m5qOGcWZn5qvL6bkP6oszcoZzzwTJnlCQNG8cccwzTp08HqrbkoIMO4sYbb2Tp0qV8//vf75d7GHiSpCY44ogjOOaYY9htt9341Kc+xd13382UKVPYZZddePOb38wf/vAHAObOnctuu+3GTjvtxNvf/nYefPBB7r33Xs4++2xOO+00Jk2axK9+9SuWL1/Oe97zHl7/+tfz+te/nt/85jdA1dtqn332Yfvtt+df/uVf8P2zJPWPkSNHMnPmTE477bQXHbv33nvZa6+9eN3rXsfee+/NH//4R377298yZ84cPvnJTzJp0iTuvvvu1fm7Orbnnnty/PHHM3nyZE4//XRuuOEG3vrWt7LLLruw7777cv/91SJu3/72t3n961/PjjvuyHve8x6efPLJLq/XXTuzZMkS3vCGN/AP//APfP7zn2/OL0+S1BJ77rknH/nIR5g0aRI77LAD11133YvytLW18ZWvfIV58+bx9a9/nbPOOou3ve1tnHDCCfzqV79i0qRJXbZ9a8KhdpLUJO3t7fz2t79lxIgR7L333px99tlMnDiRa6+9lmOPPZarrrqKPfbYg4ULFxIRfOc73+HLX/4yX/3qVznmmGNe0F328MMP56Mf/Sh77LEHf/zjH9l333254447+MIXvsAee+zBv/3bv/Gzn/2Mc889t8W1lqSh47jjjuN1r3sdn/rUp16Q/qEPfYgZM2YwY8YMZs2axYc//GEuvfRSDjjgAN71rndx0EEHvSD/G9/4xi6PPfPMMyxatIhnn32Wt771rVx22WWMGTOGiy66iM997nPMmjWLd7/73Rx99NEAfP7zn+fcc8/lQx/60Iuu110785GPfIQPfOADTJ8+nTPPPLPm35gkqdWefPJJbrrpJq6++mr++Z//+QVD8hrtv//+L/jMsWDBAr7yla/w05/+dJ3LYOBJkprk4IMPZsSIETzxxBP89re/5eCDD1597Omnnwaq4NR73/te7r//fp555hkmTJjQ5bV+8YtfvGBIxWOPPcYTTzzB1VdfzY9//GMA3vnOdzJ69OgaayRJw8smm2zC9OnTOeOMM9hwww1Xp19zzTWrn73vf//7XxSY6qv3vve9ANx5553ceuutvOMd7wDgueeeY+uttwbg1ltv5fOf/zyPPPIITzzxBPvuu++LrtNTO/Ob3/yGH/3oR6vL+ulPf3qtyipJGhi6W2GuI/2www4D4C1veQuPPfYYjzzySLOKtpqBJ0lqkpe97GUA/PWvf2WzzTbjpptuelGeD33oQ3zsYx/jgAMOYMGCBd1OWvvXv/6VhQsXssEGG9RYYklSZ8cffzw777wzRx55ZL9fu6OdyEy23357rrnmmhflOeKII7j00kvZcccdOe+881iwYMGL8vTUzsDwXPpbkoaqLbbYgpUrV74gbcWKFau/wO78zG9FG+AcT5LUZJtssgkTJkzghz/8IVB9wPj9738PwKOPPsrYsWMBmD179upzNt54Yx5//PHV+/vssw/f+MY3Vu93fLh4y1vesnoSwMsvv/xFjZAkad1svvnmHHLIIS8YyvzGN76RCy+8EIALLriAN7/5zcCLn92Nejr2mte8huXLl68OPD377LPcdtttADz++ONsvfXWPPvss1xwwQVdXq+nduZNb3rTC8oqSRrcNtpoI7beemuuuuoqoAo6/fd//zd77LEHABdddBEAv/71r9l0003ZdNNN+3TdntqpNWWPJ0lD3tSprS7Bi11wwQV84AMf4OSTT+bZZ5/l0EMPZccdd6StrY2DDz6Y0aNHs9dee7FkyRIApk6dykEHHcRll13GN77xDc4444zVc42sWrWKt7zlLZx99tmceOKJHHbYYWy//fa88Y1vZNttt21xTSWp/02Y0NbS+3/84x/nm9/85ur9b3zjGxx55JH853/+J2PGjOG7360WTTv00EM5+uijOeOMM7jkkkt45StfufqczscajRo1iksuuYQPf/jDPProo6xatYrjjz+e7bffnpNOOonddtuNMWPGsNtuu63+UND5et21M6effjqHH344X/rSl5g2bVoTfluSNHy07dnWkvuef/75HHfccXzsYx8D4MQTT1zd5mywwQbstNNOPPvss8yaNavP13zd617HiBEj2HHHHTniiCP46Ec/utbli+G24tHkyZNz0aJFvWfswty5z28PxA+y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\n" }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "tm_ctrl = TwoModels(\n", " estimator_trmnt=CatBoostClassifier(iterations=1000, task_type='GPU', random_state=42, silent=True),\n", " estimator_ctrl=CatBoostClassifier(iterations=1000, task_type='GPU', random_state=42, silent=True),\n", " method='ddr_control'\n", ")\n", "tm_ctrl = tm_ctrl.fit(\n", " X_train, y_train, trmnt_train,\n", " estimator_trmnt_fit_params={'cat_features': ['gender']},\n", " estimator_ctrl_fit_params={'cat_features': ['gender']}\n", ")\n", "\n", "uplift_tm_ctrl = tm_ctrl.predict(X_val)\n", "\n", "tm_ctrl_score = uplift_at_k(y_true=y_val, uplift=uplift_tm_ctrl, treatment=trmnt_val, strategy='by_group', k=0.3)\n", "\n", "models_results['approach'].append('TwoModels_ddr_control')\n", "models_results['uplift@30%'].append(tm_ctrl_score)\n", "\n", "plot_uplift_preds(trmnt_preds=tm_ctrl.trmnt_preds_, ctrl_preds=tm_ctrl.ctrl_preds_);" ], "metadata": { "collapsed": false, "pycharm": { "name": "#%%\n" } } }, { "cell_type": "code", "execution_count": 47, "outputs": [ { "data": { "text/plain": " 0 1 2 3 4 5 6 \\\n0 0.116088 0.269822 0.049340 0.038516 0.143292 0.047044 0.018165 \n1 0.045442 0.041342 -0.018277 0.012866 0.028861 0.007020 -0.001542 \n\n 7 8 9 ... 206099 206100 206101 206102 \\\n0 0.086771 0.137409 0.029504 ... 0.191889 0.044686 0.069574 0.170429 \n1 0.047911 -0.013122 -0.004837 ... 0.076940 -0.005309 0.033985 -0.097014 \n\n 206103 206104 206105 206106 206107 206108 \n0 0.384708 0.022230 0.020183 0.043997 0.283808 0.053526 \n1 -0.093607 0.002797 0.000479 0.014596 -0.098411 0.024334 \n\n[2 rows x 206109 columns]", "text/html": "
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
0123456789...206099206100206101206102206103206104206105206106206107206108
00.1160880.2698220.0493400.0385160.1432920.0470440.0181650.0867710.1374090.029504...0.1918890.0446860.0695740.1704290.3847080.0222300.0201830.0439970.2838080.053526
10.0454420.041342-0.0182770.0128660.0288610.007020-0.0015420.047911-0.013122-0.004837...0.076940-0.0053090.033985-0.097014-0.0936070.0027970.0004790.014596-0.0984110.024334
\n

2 rows × 206109 columns

\n
" }, "execution_count": 47, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pd.DataFrame([tm_ctrl.trmnt_preds_, uplift_tm_ctrl])" ], "metadata": { "collapsed": false, "pycharm": { "name": "#%%\n" } } }, { "cell_type": "markdown", "source": [ "## Results" ], "metadata": { "collapsed": false, "pycharm": { "name": "#%% md\n" } } }, { "cell_type": "code", "execution_count": 37, "outputs": [ { "data": { "text/plain": " approach uplift@30%\n3 ClassTransformation 0.031702\n4 TwoModels 0.016004\n1 SoloModel 0.013953\n2 SoloModel 0.013411\n5 TwoModels_ddr_control 0.011537\n0 SoloModel 0.006042", "text/html": "
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
approachuplift@30%
3ClassTransformation0.031702
4TwoModels0.016004
1SoloModel0.013953
2SoloModel0.013411
5TwoModels_ddr_control0.011537
0SoloModel0.006042
\n
" }, "execution_count": 37, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pd.DataFrame(data=models_results).sort_values('uplift@30%', ascending=False)" ], "metadata": { "collapsed": false, "pycharm": { "name": "#%%\n" } } }, { "cell_type": "code", "execution_count": 39, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "C:\\Users\\HardWorkingStation\\PyProjects\\uplift_lab\\venv\\lib\\site-packages\\numpy\\core\\fromnumeric.py:3156: VisibleDeprecationWarning: Creating an ndarray from ragged nested sequences (which is a list-or-tuple of lists-or-tuples-or ndarrays with different lengths or shapes) is deprecated. If you meant to do this, you must specify 'dtype=object' when creating the ndarray.\n", " return asarray(a).ndim\n" ] }, { "data": { "text/plain": "
", "image/png": "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3kbgeWBtSb1JCcB+5PWNnQ2W0S03LakGODnry9zMzFq5efPmMXnyZL788svGV24hOnToQM+ePWnXrl1R61d1IhAR8yUdAzwItAWujIhxks4GRkfEqMpGaGZm1Wzy5Ml07tyZXr16sfBo1S1TRDB9+nQmT55M7969i3pNVScCABFxHwVDikbEmfWsO7gcMZmZWfPw5ZdftpokAEASK664IovSFq7a2wiYmZktkdaSBOQs6vt1ImBmZlZFrr76ao455hgALrvsMq699loA/vvf/9K3b1/69evHW2+9xQ033NAk+3MiYGZmrYfUtI8SO+qoozjkkEMAuOuuu9h777158cUXmTRpUpMlAlXfRsDMzKw5mzhxIrvtthuvvvoqABdccAGzZ8+mpqaGTTbZhMcee4z58+dz5ZVXMnDgwIVeO2LECDp16sQGG2zAn/70J9q2bcu///1vvvjiC8aPH0/fvn059NBDOfHEExc7PicCZmZmFfL5558zduxYHn/8cQ477LDaZKHQ9773PY466ig6derEySefTE1NDRdccAH33HPPEsfgqgEzM7MK2X///QHYZpttmDlzJp988knZY3AiYGZmVkJLLbUUX331Ve10fudGhS38K3GHgxMBMzOzElp55ZX56KOPmD59OnPmzFmoOP/mm28G4Mknn6RLly506dKlqG127tyZWbNmNUl8biNgZmZWQu3atePMM89k4MCBrLLKKqy33nq1yzp06EC/fv2YN28eV155ZdHb7NOnD23btmWTTTZh+PDhS9RYUBGx2C9urvr37x+jR3s4AjOzlm78+PGsv/76lQ6jToMHD+aCCy6gf/9vjJO3xOp635JeiIhv7MxVA2ZmZq2YqwbMzMwqoKamptIhAC4RMDMza9WcCJiZWYvW2trCLer7dSJgZmYtVocOHZg+fXqrSQYigunTp9OhQ4eiX+M2AmZm1mL17NmTyZMnM3Xq1EqHUjYdOnSgZ8+eRa/vRMDMzFqsdu3a0bt370qHUdVcNWBmZtaKNZoIKDlI0pnZ9GqSBjb2OjMzM6t+xZQI/AXYAtg/m54FXFKyiMzMzKxsimkjsFlEbCrpRYCImCFp6RLHZWZmZmVQTInAPEltgQCQ1B34quGXmJmZWXNQTCJwMXAnsJKk3wJPAr8raVRmZmZWFo1WDUTE9ZJeALYHBOwZEeNLHpmZmZmV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hc4991xeffVVxo4dS01NDbvuuiuvvvoqvXv35oorrqBLly48//zzzJkzh6222oqddtqJVVddlTvvvJPllluOadOmsfnmmzN06NCFtgXpLq+XXnqJ8ePHs8IKK7DGGmtw+OGH89xzz3HRRRcxcuRI/vSnP3H88cdz4oknsvXWW/Pee+8xZMgQxo8fD8B///tfHn30UWbNmsW6667LT37yk2/sp5oU01jwFKBfREwHkLQiqYTAiYCZmVXcwIEDa2+Ve+ihh3j55Ze57bZ0Y9unn37Km2++Sc+ePfnFL37B448/Tps2bXj//ff53//+V+f2BgwYwLe//W0A1lxzTXbaKQ24u/HGG/Poo48C8PDDD/Paa18PezNz5kxmz54NwK677kr79u1p3749K620Ur37qRbFJALTgVl507OyeWZmZhXXsWPH2ucRwciRIxkyZMhC61x99dVMnTqVF154gXbt2tGrV696O0Rq37597fM2bdrUTrdp06a2HcJXX33Fs88+S4cOHRp8fdu2bRer7UI5FdNGYALwH0kjJJ0FPAu8IekkSSeVNjwzM7OFde7cmVmzZtW5bMiQIVx66aXMmzcPgDfeeIPPPvuMTz/9lJVWWol27drx6KOP8u677za6rYbstNNOjBw5sna6sSL/xd1PORRTIvBW9si5O/vbuenDMTOz5qa+vlIWV2N9rKy44opstdVWbLTRRiyzzDKsvPLKtcsOP/xwJk6cyKabbkpE0L17d+666y4OPPBAdt99dzbeeGP69+/Peuut941t7bLLLuy6665FxXjxxRdz9NFH06dPH+bPn88222zDZZddVlTMu+yyC+eff35R+ykHRRQ//k422l+niJhZupBKr3///jF6dNMNR7C4XwJ3KGRmzdH48eNZf/31a6fLnQhY4wo/IwBJL0RE/8J1G60akHSDpOUkdQReJQ1JXF33PpiZmdliKaaNwAZZCcCewP1Ab+DgUgZlZmZm5VFMItBOUjtSIjAqIuYBxdcnmJmZWdUqJhG4HJgIdAQel7Q60KzbCJiZmTUHNTU1PP300yXdRzFjDVwcEatExPcieRf4bkmjMjMzK0JE8NVXX1U6jCXSUD8D5UgEiulieGXg/4AeEbGLpA2ALYC/lzQyMzNrFsrdyn/ixIkMGTKEzTbbjBdeeIH77ruPW265hVtuuYU5c+bw/e9/n1//+td89tln7LvvvkyePJkFCxbwq1/9imHDhtGrVy/23Xdf7r//fpZZZhluuOEG1lprLSZOnMhhhx3GtGnT6N69O1dddRWrrbYaw4cPZ7nllmP06NF8+OGHnHfeeey999588MEHDBs2jJkzZzJ//nwuvfRSBg0axEMPPcRZZ53FnDlzWHPNNbnqqqvo1KnTQu9h8ODB9O3blyeffJL999+fddZZh3POOYe5c+ey4oorcv311/PFF19w2WWX0bZtW6677jpGjhzJeuutx1FHHcV7770HwJ/+9Ce22mqrJTqexVQNXA08COTG030DOGGJ9mpmZrYE3nzzTX76058ybtw4Xn/9dd58802ee+45xo4dywsvvMDjjz/OAw88QI8ePXjppZd49dVX2XnnnWtf36VLF1555RWOOeYYTjjhBACOPfZYDj30UF5++WUOPPBAjjvuuNr1P/jgA5588knuueceTjvtNABuuOEGhgwZwtixY3nppZfo27cv06ZN45xzzuHhhx9mzJgx9O/fnwsvvLDO9zB37lxGjx7Nz372M7beemueffZZXnzxRfbbbz/OO+88evXqxVFHHcWJJ57I2LFjGTRoUO0YB88//zy33347hx9++BIfy2I6FOoWEbdIOh0gIuZLWrDEezYzM1tMq6++OptvvjmQxhd46KGH6NevH5BGGnzzzTcZNGgQP/vZzzj11FPZbbfdGDRoUO3r999//9q/J554IgDPPPMMd9xxBwAHH3wwP//5z2vX33PPPWnTpg0bbLBB7dgBAwYM4LDDDmPevHnsueee9O3bl8cee4zXXnut9ip97ty5bLHFFnW+h2HDhtU+nzx5MsOGDeODDz5g7ty5tWMnFKpvjIPCEodFUUwi8Fk20FAASNoc+HSx92hmZraECscXOP300znyyCO/sd6YMWO47777OOOMM9h+++0588wzAZBUu07+8/rkjx+Q64hvm2224fHHH+fee+9l+PDhnHTSSXTt2pUdd9yRG2+8cZHew7HHHstJJ53E0KFDqampYcSIEXW+pqExDhZXMVUDJwGjgDUlPQVcCxzbZBGYmZktgSFDhnDllVfWjv73/vvv89FHHzFlyhSWXXZZDjroIE455RTGjBlT+5qbb7659m/uin3LLbfkpptuAuD6669fqAShLu+++y4rr7wyP/7xjzn88MMZM2YMm2++OU899RQTJkwA4LPPPuONN95o9D18+umnrLLKKgBcc801tfMLxyhY1DEOitFgiYCktsC22WNdQMDrWV8CZmZmFbfTTjsxfvz42hN6p06duO6665gwYQKnnHIKbdq0oV27dlx66aW1r5kxYwZ9+vShffv2tVfvI0eO5Ic//CHnn39+bWPBhtTU1HD++efTrl07OnXqxLXXXkv37t25+uqr2X///ZkzZw4A55xzDuuss06D2xoxYgT77LMPXbt2ZbvttuOdd94BYPfdd2fvvffm7rvvZuTIkYs8xkExGh1rQNJzETFwifZSZTzWgJnZ4qurH/vmpFevXowePZpu3bpVOpSSWZSxBoppI/CUpD8DNwOf5WZGxJj6X2JmZmbNQTGJQN/s79l58wLYrsmjMTMzK7GJEydWOoSq0mgiEBHuRdDMzKyFKuauATMzM2uhqj4RkLSzpNclTZB0Wh3Lj5L0iqSxkp7MukA2MzOzIjSaCEhqX8y8UshuX7wE2AXYANi/jhP9DRGxcUT0Bc4D6u7L0czMzL6hmBKBZ4qcVwoDgQkR8XZEzAVuAvbIXyEi8odE7kjWA6KZmVl9Jk6cyA033LDIr7v66qs55phjShBR5dSbCEj6lqTvAMtI6idp0+wxGFi2TPGtAkzKm56czVuIpKMlvUUqETiucHm2zhGSRksaPXXq1JIEa2ZmzUNDiUBDwwK3RA3dNTAEGA70ZOHi9lnAL0oY0yKLiEuASyQdAJwBHFrHOlcAV0DqUKi8EZqZWVO69tprueCCC5BEnz59+M1vfrNIQwifdtppjB8/nr59+3LooYfStWtX7rjjDmbPns2CBQu48847Oeyww3j77bdZdtllueKKK+jTp0+l33ZJ1JsIRMQ1wDWS9oqI28sYU773gVXzpntm8+pzE3BpA8vNzKyZGzduHOeccw5PP/003bp14+OPP+bQQw+tfVx55ZUcd9xx3HXXXcDXQwj/97//ZejQoey9996ce+65XHDBBdxzzz1AKvIfM2YML7/8MiussALHHnss/fr146677uKRRx7hkEMOaZJ+/atRMR0K3ZNdaffKXz8izq73FU3neWBtSb1JCcB+wAH5K0haOyLezCZ3Bd7EzMxarEceeYR99tmntovgFVZYYZGHEK7LjjvuyAorrADAk08+ye23p2vg7bbbjunTpzNz5sx6X9ucFZMI3E0advgFYE5pw1lYRMyXdAzwINAWuDIixkk6GxgdEaOAYyTtAMwDZlBHtYCZmbVedQ0hXJf8YYFbk2LuGugZEcMi4ryI+EPuUfLIMhFxX0SsExFrRsRvs3lnZkkAEXF8RGwYEX0j4rsRMa5csZmZWfltt9123HrrrUyfPh2Ajz/+eJGHEC4c3rfQoEGDuP7664E0ymC3bt1YbrnlmugdVJdiSgSelrRxRLxS8mjMzKz5uUFNu70DGm7PveGGG/LLX/6SbbfdlrZt29KvX79FHkK4T58+tG3blk022YThw4fTtWvXhZaPGDGCww47jD59+rDssstyzTXXLPHbqlbFDEP8GrAW8A6pakBARESzbT7pYYjNzBbfN4a4LXMiYI1r6mGId2mqwMzMzKy6NNpGICLeJd3Ct132/PNiXmdmZmbVr5ixBs4CTgVOz2a1A64rZVBmZmaWGio+/fTTJd1HMVf23weGAp8BRMQUoHMpgzIzMytGRPDVV19VOowl0lCXxtWSCMyN1KIwACS1zhstzcysKkycOJF1112XQw45hI022ohJkyZx/vnnM2DAAPr06cNZZ50FwGeffcauu+7KJptswkYbbcTNN98MQK9evfj5z3/OxhtvzMCBA5kwYULtdrfbbjv69OnD9ttvz3vvvQfA8OHDOe6449hyyy1ZY401uO2224DUY+E222xD37592WijjXjiiScAeOihh9hiiy3YdNNN2WeffZg9e/Y33sPgwYM54YQT6N+/PxdddBH//Oc/2WyzzejXrx877LAD//vf/5g4cSKXXXYZf/zjH+nbty9PPPEEU6dOZa+99mLAgAEMGDCAp556aomPZzGNBW+RdDmwvKQfA4cBf13iPZuZWctQgVb+b775Jtdccw2bb745Dz30EG+++SbPPfccEcHQoUN5/PHHmTp1Kj169ODee+8F4NNPP619fZcuXXjllVe49tprOeGEE7jnnns49thjF6mb4htuuIEhQ4bwy1/+kgULFvD5558zbdo0zjnnHB5++GE6duzI73//ey688ELOPPPMb7yHuXPnkruDbcaMGTz77LNI4m9/+xvnnXcef/jDHzjqqKPo1KkTJ598MgAHHHAAJ554IltvvTXvvfceQ4YMYfz48Ut0LBtNBCLiAkk7AjOBdYEzI+JfS7RXMzOzJbD66quz+eabA+kK/KGHHqJfv34AzJ49mzfffJNBgwbxs5/9jFNPPZXddtttoU6G9t9//9q/J554IsAid1M8YMAADjvsMObNm8eee+5J3759eeyxx3jttdfYaqutgHSy32KLLep8D8OGDat9PnnyZIYNG8YHH3zA3Llz6d27d52vefjhh3nttddqp2fOnMns2bPp1KnTIhy9hRVTIkBE/EvSf3LrS1ohIj5e7L2amZktgfzugCOC008/nSOPPPIb640ZM4b77ruPM844g+233772ylz6uu+D/Of1qaub4m222YbHH3+ce++9l+HDh3PSSSfRtWtXdtxxR2688cZFeg/HHnssJ510EkOHDqWmpoYRI0bU+ZqvvvqKZ599lg4dOjS6/WIVc9fAkZI+BF4GRpPGHGi63njMzMyWwJAhQ7jyyitr6+Lff/99PvroI6ZMmcKyyy7LQQcdxCmnnMKYMWNqX5NrL3DzzTfXXrEvajfF7777LiuvvDI//vGPOfzwwxkzZgybb745Tz31VG27g88++4w33nij0ffw6aefssoqqwAs1IthYVfIO+20EyNHjqydbooREYspETgZ2Cgipi3x3szMzJrYTjvtxPjx42tP6J06deK6665jwoQJnHLKKbRp04Z27dpx6aVfj1I/Y8YM+vTpQ/v27Wuv3he1m+KamhrOP/982rVrR6dOnbj22mvp3r07V199Nfvvvz9z5qRx+s455xzWWWedBrc1YsQI9tlnH7p27cp2223HO++8A8Duu+/O3nvvzd13383IkSO5+OKLOfroo+nTpw/z589nm2224bLLLlvsYwfFdTH8APCDiPh8ifZURdzFsJnZ4qur+9rmpFevXowePbp2GOOWqKm7GD6dNPDQf8gbhjgijlvSQM3MzKyyikkELgceAV4BmnevDWZm1upNnDix0iFUlWISgXYRcVLJIzEzM7OyK6ZnwfslHSHp25JWyD1KHpmZmVWtxtqXWeUs6mdTTInA/tnf0/PmBbDGIu3JqtbgwYOB1ALWzKwxHTp0YPr06ay44opF3YNv5RMRTJ8+fZH6GSgmEVg/Ir7MnyGp6XoysG8o1Ym5vrsbpkya0uBy391gZvl69uzJ5MmTmTp1aqVDsTp06NCBnj17Fr1+MYnA08CmRcyzZqrHT3pUOgQza0batWtXbxe41vzUmwhI+hawCrCMpH5ArvxnOWDZMsTW8t1QT5HaR40s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\n" }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "from sklift.viz import plot_uplift_by_percentile\n", "\n", "# line plot\n", "plot_uplift_by_percentile(y_val, uplift_ct, trmnt_val, strategy='overall', kind='bar');" ], "metadata": { "collapsed": false, "pycharm": { "name": "#%%\n" } } }, { "cell_type": "code", "execution_count": 48, "outputs": [ { "data": { "text/plain": "sklearn.utils._bunch.Bunch" }, "execution_count": 48, "metadata": {}, "output_type": "execute_result" } ], "source": [ "type(dataset)" ], "metadata": { "collapsed": false, "pycharm": { "name": "#%%\n" } } } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 2 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", "version": "2.7.6" } }, "nbformat": 4, "nbformat_minor": 0 }