diff --git "a/src/test.ipynb" "b/src/test.ipynb" new file mode 100644--- /dev/null +++ "b/src/test.ipynb" @@ -0,0 +1,609 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 26, + "metadata": { + "collapsed": true, + "pycharm": { + "name": "#%%\n" + } + }, + "outputs": [], + "source": [ + "import pandas as pd\n", + "from sklearn.model_selection import train_test_split\n", + "from sklift.datasets import fetch_lenta\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" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Dataset type: \n", + "\n", + "Dataset features shape: (687029, 193)\n", + "Dataset target shape: (687029,)\n", + "Dataset treatment shape: (687029,)\n" + ] + } + ], + "source": [ + "dataset = fetch_lenta()\n", + "print(f\"Dataset type: {type(dataset)}\\n\")\n", + "print(f\"Dataset features shape: {dataset.data.shape}\")\n", + "print(f\"Dataset target shape: {dataset.target.shape}\")\n", + "print(f\"Dataset treatment shape: {dataset.treatment.shape}\")" + ], + "metadata": { + "collapsed": false, + "pycharm": { + "name": "#%%\n" + } + } + }, + { + "cell_type": "code", + "execution_count": 9, + "outputs": [], + "source": [ + "norm_columns = ['age', 'children', 'gender', 'main_format', 'months_from_register', 'response_sms', 'response_viber']" + ], + "metadata": { + "collapsed": false, + "pycharm": { + "name": "#%%\n" + } + } + }, + { + "cell_type": "code", + "execution_count": 10, + "outputs": [ + { + "data": { + "text/plain": " age children gender main_format months_from_register response_sms \\\n0 47.0 0.0 Ж 0 18.0 0.923077 \n1 57.0 0.0 Ж 1 4.0 1.000000 \n2 38.0 3.0 М 0 34.0 1.000000 \n3 65.0 0.0 Ж 1 40.0 0.909091 \n4 61.0 2.0 Ж 0 20.0 1.000000 \n\n response_viber \n0 0.071429 \n1 0.000000 \n2 0.250000 \n3 0.000000 \n4 0.100000 ", + "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
agechildrengendermain_formatmonths_from_registerresponse_smsresponse_viber
047.00.0Ж018.00.9230770.071429
157.00.0Ж14.01.0000000.000000
238.03.0М034.01.0000000.250000
365.00.0Ж140.00.9090910.000000
461.02.0Ж020.01.0000000.100000
\n
" + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "dataset.data[norm_columns].head()" + ], + "metadata": { + "collapsed": false, + "pycharm": { + "name": "#%%\n" + } + } + }, + { + "cell_type": "code", + "execution_count": 17, + "outputs": [ + { + "data": { + "text/plain": "0.0 416983\n1.0 126636\n2.0 109892\n3.0 24257\n4.0 530\n5.0 91\n6.0 46\n7.0 9\n9.0 2\n8.0 2\nName: children, dtype: int64" + }, + "execution_count": 17, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "dataset.data['children'].value_counts()" + ], + "metadata": { + "collapsed": false, + "pycharm": { + "name": "#%%\n" + } + } + }, + { + "cell_type": "code", + "execution_count": 11, + "outputs": [], + "source": [ + "treat_dict = {\n", + " 'test': 1,\n", + " 'control': 0\n", + "}\n", + "\n", + "dataset.treatment = dataset.treatment.map(treat_dict)" + ], + "metadata": { + "collapsed": false, + "pycharm": { + "name": "#%%\n" + } + } + }, + { + "cell_type": "code", + "execution_count": 12, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Ж 433448\n", + "М 243910\n", + "Не определен 9671\n", + "Name: gender, dtype: int64\n" + ] + } + ], + "source": [ + "dataset.data['gender'] = dataset.data['gender'].fillna(value='Не определен')\n", + "\n", + "print(dataset.data['gender'].value_counts(dropna=False))" + ], + "metadata": { + "collapsed": false, + "pycharm": { + "name": "#%%\n" + } + } + }, + { + "cell_type": "code", + "execution_count": 13, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Train shape: (480920, 193)\n", + "Validation shape: (206109, 193)\n" + ] + } + ], + "source": [ + "stratify_cols = pd.concat([dataset.treatment, dataset.target], axis=1)\n", + "\n", + "X_train, X_val, trmnt_train, trmnt_val, y_train, y_val = train_test_split(\n", + " dataset.data,\n", + " dataset.treatment,\n", + " dataset.target,\n", + " stratify=stratify_cols,\n", + " test_size=0.3,\n", + " random_state=42\n", + ")\n", + "\n", + "print(f\"Train shape: {X_train.shape}\")\n", + "print(f\"Validation shape: {X_val.shape}\")" + ], + "metadata": { + "collapsed": false, + "pycharm": { + "name": "#%%\n" + } + } + }, + { + "cell_type": "code", + "execution_count": 24, + "outputs": [ + { + "data": { + "text/plain": " age cheque_count_12m_g20 cheque_count_12m_g21 \\\n89820 36.0 2.0 3.0 \n539582 34.0 16.0 52.0 \n237165 39.0 0.0 0.0 \n653847 26.0 3.0 4.0 \n94205 46.0 0.0 7.0 \n\n cheque_count_12m_g25 cheque_count_12m_g32 cheque_count_12m_g33 \\\n89820 1.0 1.0 12.0 \n539582 17.0 66.0 59.0 \n237165 3.0 1.0 1.0 \n653847 5.0 0.0 3.0 \n94205 11.0 5.0 1.0 \n\n cheque_count_12m_g38 cheque_count_12m_g39 cheque_count_12m_g41 \\\n89820 13.0 2.0 2.0 \n539582 30.0 9.0 32.0 \n237165 0.0 1.0 1.0 \n653847 3.0 1.0 2.0 \n94205 6.0 0.0 6.0 \n\n cheque_count_12m_g42 ... sale_sum_6m_g24 sale_sum_6m_g25 \\\n89820 18.0 ... 932.78 0.00 \n539582 53.0 ... 3308.32 82.07 \n237165 1.0 ... 105.79 214.92 \n653847 3.0 ... 0.00 0.00 \n94205 0.0 ... 1513.76 1618.35 \n\n sale_sum_6m_g26 sale_sum_6m_g32 sale_sum_6m_g33 sale_sum_6m_g44 \\\n89820 47.88 0.00 145.87 470.92 \n539582 1541.52 1248.53 633.48 1841.38 \n237165 22.99 39.98 172.99 139.64 \n653847 0.00 0.00 0.00 0.00 \n94205 233.89 471.20 394.21 1384.44 \n\n sale_sum_6m_g54 stdev_days_between_visits_15d \\\n89820 38.99 0.0 \n539582 186.73 0.0 \n237165 69.57 0.0 \n653847 86.52 0.0 \n94205 402.20 0.0 \n\n stdev_discount_depth_15d stdev_discount_depth_1m \n89820 NaN 0.1969 \n539582 NaN 0.2559 \n237165 0.0 NaN \n653847 0.0 0.0000 \n94205 0.0 NaN \n\n[5 rows x 193 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 \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
agecheque_count_12m_g20cheque_count_12m_g21cheque_count_12m_g25cheque_count_12m_g32cheque_count_12m_g33cheque_count_12m_g38cheque_count_12m_g39cheque_count_12m_g41cheque_count_12m_g42...sale_sum_6m_g24sale_sum_6m_g25sale_sum_6m_g26sale_sum_6m_g32sale_sum_6m_g33sale_sum_6m_g44sale_sum_6m_g54stdev_days_between_visits_15dstdev_discount_depth_15dstdev_discount_depth_1m
8982036.02.03.01.01.012.013.02.02.018.0...932.780.0047.880.00145.87470.9238.990.0NaN0.1969
53958234.016.052.017.066.059.030.09.032.053.0...3308.3282.071541.521248.53633.481841.38186.730.0NaN0.2559
23716539.00.00.03.01.01.00.01.01.01.0...105.79214.9222.9939.98172.99139.6469.570.00.0NaN
65384726.03.04.05.00.03.03.01.02.03.0...0.000.000.000.000.000.0086.520.00.00.0000
9420546.00.07.011.05.01.06.00.06.00.0...1513.761618.35233.89471.20394.211384.44402.200.00.0NaN
\n

5 rows × 193 columns

\n
" + }, + "execution_count": 24, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "X_val.head()" + ], + "metadata": { + "collapsed": false, + "pycharm": { + "name": "#%%\n" + } + } + }, + { + "cell_type": "code", + "execution_count": 27, + "outputs": [], + "source": [ + "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": 30, + "outputs": [ + { + "data": { + "text/plain": "
", + "image/png": "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T2beB9wTEX9Xkg4CbgPmAe0r000HLi/b84Bjy+p2+wPrypC8K4CDI2JUmVT8YOCKsu/hiNi/jLQ4tuFckjQoPPbYYyxdupSvf/3rvPe9722a77DDDtvwnePqq6/m7LPP5vWvfz1Lly7lIx/5yBaVoc45nl4LHBERhwEjqOZ4+grVJH9blV5NjU8V2p9ErIyIrYAdgQdp/oSCLtIlqd85+uijGTZsGI8++ii//vWvOfroozfse+KJJ4AqOPWOd7yDe++9lyeffJJx48Z1eq6f//znzxpS8fDDD/Poo49yzTXX8IMf/ACAN7/5zYwaNarT4yVJPbfDDjtw7LHHcu6557LttttuSP/Nb36z4d777ne/m0984hObdf53vOMdANxxxx3ceuutvOlNbwLg6aef3hAkuvXWW/n0pz/NQw89xKOPPsohhxzynPN01c786le/4vvf//6Gsn7yk5/crLL2oQ8Bl5QFie4CjqN6eH5ZRBwP/AF4e8m7ADiMamqOx0peMnNNRJwB3FDyfTYz15TtDwIXAdsCPykvSRowmq0w155+zDHHAPCGN7yBhx9+mIceeqivirZBbYGnzDwNOA0gIg4APpaZ74qI7wFHUc3J1PEJxXTgN2X/VZmZETEP+E5EfIlqcvHxwPVAAOMjYhxVwGkasOWzXklSTV7wghcA8MwzzzBy5EiWLl36nDwf+tCHOOWUUzjiiCNYtGhR00lrn3nmGa699lpGjBhRY4klSR2dfPLJvPKVr+S4447r9XO3txOZyV577cVvfvOb5+R5z3vew49+9CP23ntvLrroIhYtWvScPF21MzCwlv7OzKXApE52HdRJ3gRmNjnPLGBWJ+mLgZdvWSklqXV23nln1q5d+6y0NWvWbHiA3fGe34o2oO45njrzSeCUiFhONYfThSX9QmDnkn4KZeLAzFwGXEbVrfanwMzMfLr0mDqRquvs7cBlJa8k9Ws77LAD48aN43vf+x5QfcG46aabAFi3bh27715NVzd79uwNx2y//fY88sgjG94ffPDBnHfeeRvet3+5eMMb3rBhEsCf/OQnz2mEJElbZqedduLtb387F1544Ya017zmNcyZMweASy65hNe//vXAc+/djbra93d/93esXr16Q+DpqaeeYtmy6mPuI488wm677cZTTz3FJZdc0un5umpnXvva1z6rrJKkgW277bZj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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': ['gender']})\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": 31, + "outputs": [ + { + "data": { + "text/plain": " feature_name feature_score\n0 k_var_days_between_visits_3m 10.261643\n1 k_var_days_between_visits_15d 5.330679\n2 food_share_1m 4.544786\n3 cheque_count_12m_g48 4.329268\n4 perdelta_days_between_visits_15_30d 4.319264\n.. ... ...\n189 k_var_count_per_cheque_6m_g32 0.023904\n190 sale_sum_12m_g54 0.023079\n191 sale_count_6m_g44 0.017349\n192 sale_count_6m_g57 0.009368\n193 gender 0.000000\n\n[194 rows x 2 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
feature_namefeature_score
0k_var_days_between_visits_3m10.261643
1k_var_days_between_visits_15d5.330679
2food_share_1m4.544786
3cheque_count_12m_g484.329268
4perdelta_days_between_visits_15_30d4.319264
.........
189k_var_count_per_cheque_6m_g320.023904
190sale_sum_12m_g540.023079
191sale_count_6m_g440.017349
192sale_count_6m_g570.009368
193gender0.000000
\n

194 rows × 2 columns

\n
" + }, + "execution_count": 31, + "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": 33, + "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': ['gender']})\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": 35, + "outputs": [ + { + "data": { + "text/plain": "
", + "image/png": "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JElSLdZpdwCtttlmm+XWW2/d7jAkacC58cYb/5yZY9odR7vZTkhS12wnbCMkqSfdtRPDLvG09dZbs3DhwnaHIUkDTkT8od0xDAS2E5LUNdsJ2whJ6kl37YRD7SRJkiRJklQLE0+SJEmSJEmqhYknSZIkSZIk1WLYzfEkaeh7+umnWbp0KU888US7QxmQRo0axbhx41h33XXbHYokNcXnemvZTkhSc4Zr+9TXdsLEk6QhZ+nSpWy44YZsvfXWRES7wxlQMpOHHnqIpUuXMn78+HaHI0lN8bneOrYTktS84dg+rUk74VA7SUPOE088waabbjpsHv59ERFsuummw+5bGUmDm8/11rGdkKTmDcf2aU3aCRNPkoak4fTw7yt/N5IGI59drePvWpKaNxyfmX29ZxNPkiRJkiRJqoVzPEka8ubO7d/zTZnS8/6HHnqIvffeG4D777+fESNGMGbMGACuv/56Ro4c2edrLliwgJEjR/KGN7yhT8dtvfXWLFy4kM0226zP15SkgWrJkhn9er7x43s/X0Rw7LHH8tWvfhWAU045hccee4wZM7o/9uKLL+Y1r3kN22yzTZ/2rYk1Pd8GG2zAY4891i8xSNJwN2PBjP493569n++ee+7hne98J7fccsvzx82YwQYbbMA///M/d3nMueeey8KFC/nmN7/JmWeeyUtf+lIOP/xwfv/733PIIYcQEVx00UVcd911HHbYYWt9H/Z4kqR+tummm7Jo0SIWLVrE0UcfzSc+8YnV70eOHMkzzzzT53MuWLCAX//61zVEK0lqxnrrrcePfvQj/vznPzd9zMUXX8xtt93W531r0k70dD5Jkrpz9NFHc/jhhwNVW3LQQQfx29/+lnvvvZfvfe97/XINE0+S1AIf+MAHOProo9ltt9349Kc/zV133cXkyZPZeeededOb3sTvf/97AObOnctuu+3GjjvuyNve9jYeeOAB7rnnHs4880xOPfVUJk6cyC9+8QuWL1/Ou9/9bnbZZRd22WUXfvWrXwFVb6t99tmHbbfdln/6p38iM9t525I0ZKyzzjpMnz6dU0899UX77rnnHvbaay+233579t57b/74xz/y61//mjlz5vCpT32KiRMnctddd62u39W+Pffck49//ONMmjSJr3/969x444285S1vYeedd2bfffflvvvuA+Db3/42u+yyCzvssAPv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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': ['gender']},\n", + " estimator_ctrl_fit_params={'cat_features': ['gender']}\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+ykip33HEHf//3f9/qYgxoXf2OIuKGzJzcoiINGOvSTixZ0ga0/kOxNNT4XG8+24murUsbIQ0EbQvant9uUZBkKBno7dOee+7JV77yFSZP7v9H95q0Ew61kyRJkiRJUi0caidJkiRJkjTEdLUARSvY40nSkDTchhGvCX83kgYjn13N4+9akvpuOD4z17TOBp4kDTkbbLABDz/88LBsBHqTmTz88MNssMEGrS6KJPWZz/XmsZ2QpL4bju3T2rQTDrWTNOSMGzeO9vZ2li9f3uqiDEgbbLAB48aNa3UxJKnPfK43l+2EJPXNcG2f1rSdMPAkachZb731mDBhQquLIUnqJz7XJUkDke1T39Q21C4iNoiI6yLi9xFxW0R8oaRPiIhrI2JxRFwUEaNK+vplf3E5Pr7hWp8p6XdGxL4N6VNK2uKIOKGuukiSJEmSJGnN1TnH09PAXpm5IzAJmBIRuwNfAk7LzFcBK4GjSv6jgJUl/bSSj4jYDjgU2B6YAnwrIkZExAjgTGA/YDvgsJJXkiRJkiRJA0BtgaesPFF21yuvBPYCLinps4EDy/a0sk85vndEREm/MDOfzswlwGJg1/JanJn3ZOYzwIUlryRJkiRJkgaAWle1Kz2TbgIeAuYDdwOPZOaqkqUdGFu2xwJLAcrxR4EtGtM7ndNdelflmBkRiyJi0XCb9EuSJEmSJKlVag08ZeZzmTkJGEfVQ+m1dd6vh3Kck5mTM3PymDFjWlEESZIkSZKkYafWwFOHzHwE+CXwBmCziOhYTW8csKxsLwO2ASjHNwUebkzvdE536ZIkSZIkSRoA6lzVbkxEbFa2NwTeAdxBFYA6qGSbAVxWtueUfcrxqzIzS/qhZdW7CcBE4DrgemBiWSVvFNUE5HPqqo8kSZIkSZLWzMjes6y1rYHZZfW5lwAXZ+ZPI+J24MKIOBm4ETi35D8X+F5ELAZWUAWSyMzbIuJi4HZgFXBcZj4HEBEfBK4ARgCzMvO2GusjSZIkSZKkNVBb4CkzbwZ26iL9Hqr5njqnPwUc3M21TgFO6SJ9HjBvnQsrSZIkSZKkfteUOZ4kSZIkSZI0/Bh4kiRJkiRJUi0MPEmSJEmSJKkWBp4kSZIkSZJUCwNPkiRJkiRJqoWBJ0mSJEmSJNXCwJMkSZIkSZJqYeBJktRSETEiIm6MiJ+W/QkRcW1ELI6IiyJiVElfv+wvLsfHN1zjMyX9zojYtyF9SklbHBEnNL1ykiRJ0jBn4EmS1GofAe5o2P8ScFpmvgpYCRxV0o8CVpb000o+ImI74FBge2AK8K0SzBoBnAnsB2wHHFbySpIkSWoSA0+SpJaJiHHAO4HvlP0A9gIuKVlmAweW7Wlln3J875J/GnBhZj6dmUuAxcCu5bU4M+/JzGeAC0teSZIkSU1i4EmS1EpfBz4F/LXsbwE8kpmryn47MLZsjwWWApTjj5b8q9M7ndNd+otExMyIWBQRi5YvX76OVZIkSZLUwcCTJKklIuJdwEOZeUOry5KZ52Tm5MycPGbMmFYXR5IkSRoyRra6AJKkYetNwAERsT+wAbAJcDqwWUSMLL2axgHLSv5lwDZAe0SMBDYFHm5I79B4TnfpkiRJkprAHk+SpJbIzM9k5rjMHE81OfhVmfk+4JfAQSXbDOCysj2n7FOOX5WZWdIPLaveTQAmAtcB1wMTyyp5o8o95jShapIkSZIKezxJkgaaTwMXRsTJwI3AuSX9XOB7EbEYWEEVSCIzb4uIi4HbgVXAcZn5HEBEfBC4AhgBzMrM25paE0mSJGmYM/AkSWq5zFwALCjb91CtSNc5z1PAwd2cfwpwShfp84B5/VhUSZIkSWvAoXaSJEmSJEmqhYEnSZIkSZIk1cLAkyRJkiRJkmph4EmSJEmSJEm1MPAkSZIkSZKkWhh4kiRJkiRJUi0MPEmSJEmSJKkWBp4kSZIkDUgRsVlEXBIRf4iIOyLiDRGxeUTMj4i7ys/RJW9ExBkRsTgibo6InRuuM6PkvysiZjSk7xIRt5RzzoiIaEU9JWkoM/AkSZIkaaA6HfjvzHwtsCNwB3ACcGVmTgSuLPsA+wETy2smcBZARGwOnAjsBuwKnNgRrCp5jm44b0oT6iRJw4qBJ0mSJEkDTkRsCrwFOBcgM5/JzEeAacDskm02cGDZngacn5WFwGYRsTWwLzA/M1dk5kpgPjClHNskMxdmZgLnN1xLktRPDDxJkiRJGogmAMuB70bEjRHxnYh4GbBVZt5f8jwAbFW2xwJLG85vL2k9pbd3kf4CETEzIhZFxKLly5f3Q7UkaXgx8CRJkiRpIBoJ7AyclZk7AX/h+WF1AJSeSllnITLznMycnJmTx4wZU+etJGlIMvAkSZIkaSBqB9oz89qyfwlVIOrBMkyO8vOhcnwZsE3D+eNKWk/p47pIlyT1IwNPkiRJkgaczHwAWBoRrylJewO3A3OAjpXpZgCXle05wPSyut3uwKNlSN4VwD4RMbpMKr4PcEU59lhE7F5Ws5vecC1JUj8Z2eoCSJIkSVI3PgRcEBGjgHuAI6m+PL84Io4C7gMOKXnnAfsDi4EnS14yc0VEnARcX/J9MTNXlO1jgfOADYHLy0uS1I8MPEmSJEkakDLzJmByF4f27iJvAsd1c51ZwKwu0hcBO6xbKSVJPXGonSRJkiRJkmph4EmSJEmSJEm1MPAkSZIkSZKkWhh4kiRJkiRJUi0MPEmSJEmSJKkWBp4kSZIkSZJUCwNPkiRJkiRJqoWBJ0mSJEmSJNXCwJMkSZIkSZJqYeBJkiRJkiRJtTDwJEmSJEmSpFoYeJIkSZIkSVItDDxJkiRJkiSpFgaeJEmSJEmSVAsDT5IkSZIkSaqFgSdJkiRJkiTVwsCTJEmSJEmSalFb4CkitomIX0bE7RFxW0R8pKS3RcSyiLipvPZvOOczEbE4Iu6MiH0b0qeUtMURcUJD+oSIuLakXxQRo+qqjyRJkiRJktZMnT2eVgEfz8ztgN2B4yJiu3LstMycVF7zAMqxQ4HtgSnAtyJiRESMAM4E9gO2Aw5ruM6XyrVeBawEjqqxPpIkSZIkSVoDtQWeMvP+zPxd2X4cuAMY28Mp04ALM/PpzFwCLAZ2La/FmXlPZj4DXAhMi4gA9gIuKefPBg6spTKSJEmSJElaY02Z4ykixgM7AdeWpA9GxM0RMSsiRpe0scDShtPaS1p36VsAj2Tmqk7pkiRJkiRJGgBqDzxFxEbAj4DjM/Mx4CzglcAk4H7gq00ow8yIWBQRi5YvX1737SRJkiRJkkTNgaeIWI8q6HRBZv4YIDMfzMznMvOvwLephtIBLAO2aTh9XEnrLv1hYLOIGNkp/UUy85zMnJyZk8eMGdM/lZMkSZIkSVKP6lzVLoBzgTsy82sN6Vs3ZPtH4NayPQc4NCLWj4gJwETgOuB6YGJZwW4U1QTkczIzgV8CB5XzZwCX1VUfSZIkSZIkrZmRvWdZa28C3g/cEhE3lbTPUq1KNwlI4F7g/wBk5m0RcTFwO9WKeMdl5nMAEfFB4ApgBDArM28r1/s0cGFEnAzcSBXokiRJkiRJ0gBQW+ApM38NRBeH5vVwzinAKV2kz+vqvMy8h+eH6kmSJEmSJGkAqbPH05A2d+7z21Ontq4ckiRJkiRJA1Xtq9pJkiRJkiRpeDLwJEmSJEmSpFoYeJIkSZIkSVItDDxJkiRJkiSpFgaeJEmSJEmSVAsDT5IkSZIkSaqFgSdJkiRJkiTVwsCTJEmSJEmSamHgSZIkSZIkSbUw8CRJkiRJkqRaGHiSJEmSJElSLQw8SZIkSZIkqRYGniRJkiRJklQLA0+SJEmSJEmqhYEnSZIkSZIk1cLAkyRJkiRJkmph4EmSJEmSJEm1MPAkSZIkaUCKiHsj4paIuCkiFpW0zSNifkTcVX6OLukREWdExOKIuDkidm64zoyS/66ImNGQvku5/uJybjS/lpI0tBl4kiRJkjSQvS0zJ2Xm5LJ/AnBlZk4Eriz7APsBE8trJnAWVIEq4ERgN2BX4MSOYFXJc3TDeVPqr44kDS8GniRJkiQNJtOA2WV7NnBgQ/r5WVkIbBYRWwP7AvMzc0VmrgTmA1PKsU0yc2FmJnB+w7UkSf3EwJMkSZKkgSqBn0fEDRExs6RtlZn3l+0HgK3K9lhgacO57SWtp/T2LtJfICJmRsSiiFi0fPnyda2PJA07I1tdAEmSJEnqxh6ZuSwi/gaYHxF/aDyYmRkRWWcBMvMc4ByAyZMn13ovSRqK7PEkSZIkaUDKzGXl50PAT6jmaHqwDJOj/HyoZF8GbNNw+riS1lP6uC7SJUn9yMCTJEmSpAEnIl4WERt3bAP7ALcCc4COlelmAJeV7TnA9LK63e7Ao2VI3hXAPhExukwqvg9wRTn2WETsXlazm95wLUlSP3GonSRJkqSBaCvgJ1VMiJHA9zPzvyPieuDiiDgKuA84pOSfB+wPLAaeBI4EyMwVEXEScH3J98XMXFG2jwXOAzYELi8vSVI/MvAkSZIkacDJzHuAHbtIfxjYu4v0BI7r5lqzgFldpC8CdljnwkqSuuVQO0mSJEmSJNXCwJMkSZIkSZJqYeBJkiRJkiRJtTDwJEmSJEmSpFoYeJIkSZIkSVItDDxJkiRJkiSpFgaeJEktEREbRMR1EfH7iLgtIr5Q0idExLURsTgiLoqIUSV9/bK/uBwf33Ctz5T0OyNi34b0KSVtcUSc0PRKSpIkScOcgSdJUqs8DeyVmTsCk4ApEbE78CXgtMx8FbASOKrkPwpYWdJPK/mIiO2AQ4HtgSnAtyJiRESMAM4E9gO2Aw4reSVJkiQ1iYEnSVJLZOWJsrteeSWwF3BJSZ8NHFi2p5V9yvG9IyJK+oWZ+XRmLgEWA7uW1+LMvCcznwEuLHklSZIkNYmBJ0lSy5SeSTcBDwHzgbuBRzJzVcnSDowt22OBpQDl+KPAFo3pnc7pLr2rcsyMiEURsWj58uX9UDNJkiRJYOBJktRCmflcZk4CxlH1UHpti8pxTmZOzszJY8aMaUURJEmSpCHJwJMkqeUy8xHgl8AbgM0iYmQ5NA5YVraXAdsAlOObAg83pnc6p7t0SZIkSU1i4EmS1BIRMSYiNivbGwLvAO6gCkAdVLLNAC4r23PKPuX4VZmZJf3QsurdBGAicB1wPTCxrJI3imoC8jm1V0ySJEnSaiN7zyJJUi22BmaX1edeAlycmT+NiNuBCyPiZOBG4NyS/1zgexGxGFhBFUgiM2+LiIuB24FVwHGZ+RxARHwQuAIYAczKzNuaVz1JkiRJBp4kSS2RmTcDO3WRfg/VfE+d058CDu7mWqcAp3SRPg+Yt86FlSRJkrRWHGonSZIkSZKkWhh4kiRJkiRJUi0MPEmSJEmSJKkWBp4kSZIkSZJUCwNPkiRJkiRJqoWBJ0mSJEmSJNXCwJMkSZIkSZJqYeBJkiRJkiRJtagt8BQR20TELyPi9oi4LSI+UtI3j4j5EXFX+Tm6pEdEnBERiyPi5ojYueFaM0r+uyJiRkP6LhFxSznnjIiIuuojSZIkSZKkNVNnj6dVwMczcztgd+C4iNgOOAG4MjMnAleWfYD9gInlNRM4C6pAFXAisBuwK3BiR7Cq5Dm64bwpNdZHkiRJkiRJa6C2wFNm3p+ZvyvbjwN3AGOBacDskm02cGDZngacn5WFwGYRsTWwLzA/M1dk5kpgPjClHNskMxdmZgLnN1xLkiRJkiRJLdaUOZ4iYjywE3AtsFVm3l8OPQBsVbbHAksbTmsvaT2lt3eR3tX9Z0bEoohYtHz58nWrjCRJkiRJkvqk9sBTRGwE/Ag4PjMfazxWeipl3WXIzHMyc3JmTh4zZkzdt5MkSZIkSRI1B54iYj2qoNMFmfnjkvxgGSZH+flQSV8GbNNw+riS1lP6uC7SJUmSJEmSNADUuapdAOcCd2Tm1xoOzQE6VqabAVzWkD69rG63O/BoGZJ3BbBPRIwuk4rvA1xRjj0WEbuXe01vuJYkSZIkSZJabGSN134T8H7gloi4qaR9FjgVuDgijgLuAw4px+YB+wOLgSeBIwEyc0VEnARcX/J9MTNXlO1jgfOADYHLy0uSJEmSJEkDQG2Bp8z8NRDdHN67i/wJHNfNtWYBs7pIXwTssA7FlCRJkiRJUk2asqqdJEmSJEmShh8DT5IkSZIkSaqFgSdJkiRJkiTVwsCTJEmSJEmSatHr5OIRsX5mPt1b2nA2d+7z21Ontq4ckiRJkiRJA0lfejxd08c0SZIkSZIkabVuezxFxN8CY4ENI2InIMqhTYCXNqFskiRJkiRJGsR6Gmq3L3AEMA74Ks8Hnh4HPltvsSRJkiRJkjTYdRt4yszZwOyIeE9m/qiJZZIkSZIkSdIQ0Jc5nsZFxCZR+U5E/C4i9qm9ZJIkSZIkSRrUel3VDvjnzDw9IvYFtgDeD3wP+HmtJZMkaZBasqRt9faECW3d5pMkSZKGur70eOqY22l/4PzMvK0hTZIkSZIkSepSXwJPN0TEz6kCT1dExMbAX+stliRJkiRJkga7vgSejgJOAF6fmU8Co4Ajay2VJEmSJAERMSIiboyIn5b9CRFxbUQsjoiLImJUSV+/7C8ux8c3XOMzJf3OMoVIR/qUkrY4Ik5oeuUkaRjoNvAUEa8tm5PKz7+LiJ2BV9C3uaEkSZIkaV19BLijYf9LwGmZ+SpgJdUX5ZSfK0v6aSUfEbEdcCiwPTAF+FYJZo0AzgT2A7YDDit5JUn9qKcA0seAmcBXuziWwF61lEiSJEmSgIgYB7wTOAX4WEQE1eeQw0uW2UAbcBYwrWwDXAJ8s+SfBlyYmU8DSyJiMbBrybc4M+8p97qw5L295mpJ0rDSbeApM2eWn29rXnEkSZIkabWvA58CNi77WwCPZOaqst8OjC3bY4GlAJm5KiIeLfnHAgsbrtl4ztJO6bt1LkBEzKT6Qp5tt9123WojScNQn4bMRcQbgfGN+TPz/JrKJEmSJGmYi4h3AQ9l5g0RsWerypGZ5wDnAEyePDlbVQ5JGqx6DTxFxPeAVwI3Ac+V5AQMPEmSJEmqy5uAAyJif2ADYBPgdGCziBhZej2NA5aV/MuAbYD2iBgJbAo83JDeofGc7tIlSf2kLz2eJgPbZabRfUmSJElNkZmfAT4DUHo8fSIz3xcRPwQOAi4EZgCXlVPmlP1ryvGrMjMjYg7w/Yj4GvByYCJwHRDAxIiYQBVwOpTn546SJPWTvgSebgX+Fri/5rJIkiRJUm8+DVwYEScDNwLnlvRzge+VycNXUAWSyMzbIuJiqknDVwHHZeZzABHxQeAKYAQwKzNva2pNJGkY6DbwFBFzqYbUbQzcHhHXAU93HM/MA+ovniRJkqThLjMXAAvK9j08vypdY56ngIO7Of8UqpXxOqfPA+b1Y1ElSZ301OPpK00rhSRJkiRJkoacbgNPmfk/zSyIJEmSJEmShpaXtLoAkiRJkiRJGpoMPEmSJEmSJKkWvQaeImJqRBigkiRJkiRJ0hrpS0DpvcBdEfHliHht3QWSJEmSJEnS0NBr4Ckz/wnYCbgbOC8iromImRGxce2lkyRJkiRJ0qDVpyF0mfkYcAlwIbA18I/A7yLiQzWWTZIkSZIkSYNYX+Z4mhYRPwEWAOsBu2bmfsCOwMfrLZ4kSZIkSZIGq5F9yPNu4LTMvLoxMTOfjIij6imWJEmSJEmSBru+DLV7oHPQKSK+BJCZV9ZSKkmSJEmSJA16fQk8vaOLtP36uyCSJEmSJEkaWrodahcRHwCOBV4ZETc3HNoY+E3dBZMkSZIkSfVoW9BW/dyzraXl0NDX0xxP3wcuB/4DOKEh/fHMXFFrqSRJkiRJkjTo9RR4ysy8NyKO63wgIjY3+CRJkiRJkqSe9Nbj6V3ADUAC0XAsgb+rsVySJEmSJEka5LoNPGXmu8rPCc0rjiRJkiRJkoaKniYX37mnEzPzd/1fHEmSJEmSJA0VPQ21+2oPxxLYq5/LIkmSJEmSpCGkp6F2b2tmQSRJkiRJkjS09DTUbq/MvCoi3t3V8cz8cX3FkiRJkiRJ0mDX01C7twJXAVO7OJaAgSdJkiRJkiR1q6ehdieWn0c2rziSJEmSJEkaKl7SW4aI2CIizoiI30XEDRFxekRs0YzCSZIkSZIkafDqNfAEXAgsB94DHFS2L6qzUJIkSZIkSRr8eprjqcPWmXlSw/7JEfHeugokSZIkSZKkoaEvPZ5+HhGHRsRLyusQ4Iq6CyZJkiRJkqTBrdseTxHxONXqdQEcD/xXOfQS4AngE3UXTpIkSZIkSYNXtz2eMnPjzNyk/HxJZo4sr5dk5ia9XTgiZkXEQxFxa0NaW0Qsi4ibymv/hmOfiYjFEXFnROzbkD6lpC2OiBMa0idExLUl/aKIGLV2vwJJkiRJkiTVoS9D7YiI0RGxa0S8pePVh9POA6Z0kX5aZk4qr3nl+tsBhwLbl3O+FREjImIEcCawH7AdcFjJC/Clcq1XASuBo/pSF0mSJEmSJDVHr4GniPgX4GqqeZ2+UH629XZeZl4NrOhjOaYBF2bm05m5BFgM7FpeizPznsx8hmqFvWkREcBewCXl/NnAgX28lyRJkiRJkpqgLz2ePgK8HrgvM98G7AQ8sg73/GBE3FyG4o0uaWOBpQ152ktad+lbAI9k5qpO6V2KiJkRsSgiFi1fvnwdii5JkiRJkqS+6kvg6anMfAogItbPzD8Ar1nL+50FvBKYBNwPfHUtr7NGMvOczJycmZPHjBnTjFtKkiRJkiQNe92uategPSI2Ay4F5kfESuC+tblZZj7YsR0R3wZ+WnaXAds0ZB1X0ugm/WFgs4gYWXo9NeaXJEmSJEnSANBrj6fM/MfMfCQz24B/Bc5lLedTioitG3b/EehY8W4OcGhErB8RE4CJwHXA9cDEsoLdKKoJyOdkZgK/BA4q588ALlubMkmSJEmSJKkefenxRETsDOwBJPCbMtF3b+f8ANgT2DIi2oETgT0jYlK5zr3A/wHIzNsi4mLgdmAVcFxmPleu80GqCc1HALMy87Zyi08DF0bEycCNVAExSZIkSZIkDRC9Bp4i4t+Ag4Efl6TvRsQPM/Pkns7LzMO6SO42OJSZpwCndJE+D5jXRfo9VKveSZIGoYjYBjgf2IrqC4lzMvP0iNgcuAgYT/UlxSGZubKsaHo6sD/wJHBEZv6uXGsG8Ply6ZMzc3ZJ3wU4D9iQqi35SOk1K0mSJKkJ+jK5+PuA12fmiZl5IrA78P56iyVJGgZWAR/PzO2o2pbjImI74ATgysycCFxZ9gH2oxqKPRGYSbVgBSVQdSKwG9UXEic2rJp6FnB0w3lTmlAvSZIkSUVfAk9/AjZo2F8fJ/KWJK2jzLy/o8dSZj4O3AGMBaYBs0u22Tw/r+A04PysLKRaZGJrYF9gfmauyMyVwHxgSjm2SWYuLL2czmct5yiUJEmStHa6HWoXEd+gGvrwKHBbRMwv+++gmvhbkqR+ERHjgZ2Aa4GtMvP+cugBqqF4UAWlljac1l7Sekpv7yK9q/vPpOpFxbbbbrsONZEkSZLUqKc5nhaVnzcAP2lIX1BbaSRJw05EbAT8CDg+Mx+rpnKqZGZGRO1zMmXmOcA5AJMnT3YOKEmSJKmfdBt46piYFSAiRgGvLrt3ZuazdRdssJo79/ntqVNbVw5JGgwiYj2qoNMFmdmxiMWDEbF1Zt5fhss9VNKXAds0nD6upC2jWkW1MX1BSR/XRX5JkiRJTdLrHE8RsSdwF3Am8C3gfyPiLfUWS5I01JVV6s4F7sjMrzUcmgPMKNszgMsa0qdHZXfg0TIk7wpgn4gYXSYV3we4ohx7LCJ2L/ea3nAtSZIkSU3Q01C7Dl8F9snMOwEi4tXAD4Bd6iyYJGnIexPVKqm3RMRNJe2zwKnAxRFxFHAfcEg5Ng/YH1gMPAkcCZCZKyLiJOD6ku+LmbmibB8LnAdsCFxeXpIkSZKapC+Bp/U6gk4Amfm/ZWiEJElrLTN/DUQ3h/fuIn8Cx3VzrVnArC7SFwE7rEMxJUktEhEbAFdTrao9ErgkM0+MiAnAhcAWVPPRvj8zn4mI9alWMN0FeBh4b2beW671GeAo4Dngw5l5RUmfApwOjAC+k5mnNrGKkjQs9DrUDrghIr4TEXuW17d5fuJxSZIkSarD08BembkjMAmYUoZafwk4LTNfBaykCihRfq4s6aeVfETEdsChwPbAFOBbETEiIkZQTSeyH7AdcFjJK0nqR30JPB0D3A58uLxuBz5QZ6EkSZIkDW9ZeaLsrldeCewFXFLSZwMHlu1pZZ9yfO8yx9804MLMfDozl1AN2d61vBZn5j2Z+QxVL6pp9dZKkoafHofalW8Bfp+ZrwW+1lNeSZIkSepP5fPIDcCrqHon3Q08kpmrSpZ2YGzZHgssBcjMVRHxKNVwvLHAwobLNp6ztFP6bl2UYSYwE2Dbbbdd90pJ0jDTY4+nzHwOuDMifMJKkiRJaqrMfC4zJwHjqHoovbYFZTgnMydn5uQxY8Y0+/aSNOj1ZXLx0cBtEXEd8JeOxMw8oLZSSZIkSVKRmY9ExC+BNwCbRcTI0utpHLCsZFsGbAO0R8RIYFOqScY70js0ntNduiSpn/Ql8PSvtZdCkqQhasmSttXbEya0dZtPkvRCETEGeLYEnTYE3kE1YfgvgYOo5mSaAVxWTplT9q8px6/KzIyIOcD3I+JrwMuBicB1VCurTiyr5C2jmoD88GbVT5KGi24DT2X50mOoxlPfApzbMJZakiRJkuq0NTC7zPP0EuDizPxpRNwOXBgRJwM3AueW/OcC34uIxcAKqkASmXlbRFxMtUjSKuC4MqUIEfFB4ApgBDArM29rXvUkaXjoqcfTbOBZ4Fc8v8ToR5pRKEmSJEnDW2beDOzURfo9VPM9dU5/Cji4m2udApzSRfo8YN46F1aS1K2eAk/bZeY/AETEuVTdUSVJkiRJkqQ+6WlVu2c7NhxiJ0mSJEmSpDXVU4+nHSPisbIdwIZlP4DMzE1qL90gN3fu89tTp7auHJIkSZIkSa3QbeApM0c0syCSJEmSJEkaWnoaaidJkiRJkiStNQNPkiRJkiRJqoWBJ0mSJEmSJNXCwJMkSZIkSZJqYeBJkiRJkiRJtTDwJEmSJEmSpFoYeJIkSZIkSVItDDxJkiRJkiSpFgaeJEmSJEmSVAsDT5IkSZIkSaqFgSdJkiRJkiTVwsCTJEmSJEmSamHgSZIkSZIkSbUw8CRJkiRJkqRaGHiSJEmSJElSLQw8SZIkSZIkqRYGniRJkiRJklQLA0+SJEmSJEmqhYEnSZIkSZIk1cLAkyRJkiRJkmph4EmSJEmSJEm1MPAkSZIkSZKkWoxsdQGGi7lzn9+eOrV15ZAkSZIkSWoWezxJkiRJkiSpFgaeJEmSJEmSVAsDT5IkSZIkSaqFgSdJkiRJkiTVwsCTJEmSJEmSamHgSZIkSZIkSbUw8CRJkiRJkqRa1BZ4iohZEfFQRNzakLZ5RMyPiLvKz9ElPSLijIhYHBE3R8TODefMKPnviogZDem7RMQt5ZwzIiLqqoskSZIkSZLWXJ09ns4DpnRKOwG4MjMnAleWfYD9gInlNRM4C6pAFXAisBuwK3BiR7Cq5Dm64bzO95IkSZIkSVIL1RZ4ysyrgRWdkqcBs8v2bODAhvTzs7IQ2Cwitgb2BeZn5orMXAnMB6aUY5tk5sLMTOD8hmtJkiRJkiRpABjZ5PttlZn3l+0HgK3K9lhgaUO+9pLWU3p7F+ldioiZVD2p2Hbbbdeh+JIkrb0lS9pWb0+Y0NZtPkmSJGmoaNnk4qWnUjbpXudk5uTMnDxmzJhm3FKSJEmSJGnYa3bg6cEyTI7y86GSvgzYpiHfuJLWU/q4LtIlSZIkSZI0QDQ78DQH6FiZbgZwWUP69LK63e7Ao2VI3hXAPhExukwqvg9wRTn2WETsXlazm95wLUmSJEmSJA0Atc3xFBE/APYEtoyIdqrV6U4FLo6Io4D7gENK9nnA/sBi4EngSIDMXBERJwHXl3xfzMyOCcuPpVo5b0Pg8vKSJEmSJEnSAFFb4CkzD+vm0N5d5E3guG6uMwuY1UX6ImCHdSmjJEmSJEmS6tOyycUlSZIkSZI0tBl4kiRJkiRJUi0MPEmSJEkacCJim4j4ZUTcHhG3RcRHSvrmETE/Iu4qP0eX9IiIMyJicUTcHBE7N1xrRsl/V0TMaEjfJSJuKeecURYukiT1o9rmeJIkSZKkdbAK+Hhm/i4iNgZuiIj5wBHAlZl5akScAJwAfBrYD5hYXrsBZwG7RcTmVAsdTQayXGdOZq4seY4GrqVa8GgKLlqkIaZtQVuri6Bhzh5PkiRJkgaczLw/M39Xth8H7gDGAtOA2SXbbODAsj0NOD8rC4HNImJrYF9gfmauKMGm+cCUcmyTzFxYFjs6v+FakqR+YuBJkiRJ0oAWEeOBnah6Jm2VmfeXQw8AW5XtscDShtPaS1pP6e1dpHe+98yIWBQRi5YvX77ulZGkYcbAkyRJkqQBKyI2An4EHJ+ZjzUeKz2Vss77Z+Y5mTk5MyePGTOmzltJ0pBk4EmSJEnSgBQR61EFnS7IzB+X5AfLMDnKz4dK+jJgm4bTx5W0ntLHdZEuSepHBp4kSZIkDThlhblzgTsy82sNh+YAHSvTzQAua0ifXla32x14tAzJuwLYJyJGlxXw9gGuKMcei4jdy72mN1xLktRPXNVOkiRJ0kD0JuD9wC0RcVNJ+yxwKnBxRBwF3AccUo7NA/YHFgNPAkcCZOaKiDgJuL7k+2JmrijbxwLnARtSrWbninaS1M8MPLXA3LnPb0+d2rpySJIkSQNVZv4aiG4O791F/gSO6+Zas4BZXaQvAnZYh2JKknrhUDtJkiRJkiTVwh5PkiRJkiQNU20L2p7f3rOt23zS2rLHkyRJkiRJkmph4EmSJEmSJEm1MPAkSZIkSZKkWhh4kiRJkiRJUi2cXFySpBZYsqRt9faECW3d5pMkSZIGM3s8SZIkSZIkqRYGniRJkiRJklQLA0+SJEmSJEmqhYEnSZIkSZIk1cLAkyRJkiRJkmph4KnF5s6tXpIkSZIkSUONgSdJUktExKyIeCgibm1I2zwi5kfEXeXn6JIeEXFGRCyOiJsjYueGc2aU/HdFxIyG9F0i4pZyzhkREc2toSRJkiQDT5KkVjkPmNIp7QTgysycCFxZ9gH2AyaW10zgLKgCVcCJwG7ArsCJHcGqkufohvM630uSJElSzQw8SZJaIjOvBlZ0Sp4GzC7bs4EDG9LPz8pCYLOI2BrYF5ifmSsycyUwH5hSjm2SmQszM4HzG64lSZIkqUkMPEmSBpKtMvP+sv0AsFXZHgssbcjXXtJ6Sm/vIl2SJElSExl4kiQNSKWnUjbjXhExMyIWRcSi5cuXN+OWkiRJ0rBg4EmSNJA8WIbJUX4+VNKXAds05BtX0npKH9dFepcy85zMnJyZk8eMGbPOlZAkSZJUMfAkSRpI5gAdK9PNAC5rSJ9eVrfbHXi0DMm7AtgnIkaXScX3Aa4oxx6LiN3LanbTG64lSZIkqUlGtroAkqThKSJ+AOwJbBkR7VSr050KXBwRRwH3AYeU7POA/YHFwJPAkQCZuSIiTgKuL/m+mJkdE5YfS7Vy3obA5eU1IC1Z0rZ6e8KEtm7zSZIkSYONgSdJUktk5mHdHNq7i7wJHNfNdWYBs7pIXwTssC5llCRJkrRuHGonSZIkSZKkWhh4kiRJkiRJUi0MPEmSJEmSJKkWzvE0QMyd+/z21KmtK4ckSZIkSVJ/sceTJEmSJEmSamHgSZIkSZIkSbUw8CRJkiRJkqRaGHiSJEmSJElSLQw8SZIkSZIkqRauaidJ0gCyZEnb6u0JE9q6zSdJkiQNBgaeBqC5c5/fnjq1deWQJEmSJElaFw61kyRJkiRJUi0MPEmSJEmSJKkWBp4kSZIkSZJUCwNPkiRJkiRJqoWBJ0mSJEmSJNXCwJMkSZIkSZJq0ZLAU0TcGxG3RMRNEbGopG0eEfMj4q7yc3RJj4g4IyIWR8TNEbFzw3VmlPx3RcSMVtRFkiRJkiRJXRvZwnu/LTP/3LB/AnBlZp4aESeU/U8D+wETy2s34Cxgt4jYHDgRmAwkcENEzMnMlc2sRN3mzn1+e+rU1pVDkiRJkjS0tS1oe357z7Zu80lropWBp86mAXuW7dnAAqrA0zTg/MxMYGFEbBYRW5e88zNzBUBEzAemAD9obrElSarHkiVtq7cnTGjrNp8kSZI0ULVqjqcEfh4RN0TEzJK2VWbeX7YfALYq22OBpQ3ntpe07tJfJCJmRsSiiFi0fPny/qqDJEmSJEmSetCqHk97ZOayiPgbYH5E/KHxYGZmRGR/3SwzzwHOAZg8eXK/XVeSJEmSJEnda0mPp8xcVn4+BPwE2BV4sAyho/x8qGRfBmzTcPq4ktZduiRJkqRBLiJmRcRDEXFrQ1q/LUgUEbuUBY8Wl3OjuTWUpOGh6YGniHhZRGzcsQ3sA9wKzAE6GoIZwGVlew4wvTQmuwOPliF5VwD7RMTo0uDsU9IkSZIkDX7nUc3h2qhjQaKJwJVlH164INFMqgWJaFiQaDeqL7tP7AhWlTxHN5zX+V6SpH7QiqF2WwE/KV8ojAS+n5n/HRHXAxdHxFHAfcAhJf88YH9gMfAkcCRAZq6IiJOA60u+L3ZMND5UucKdJEmShovMvDoixndK7pcFiSJiAbBJZi4s6ecDBwKX11cjSRqemh54ysx7gB27SH8Y2LuL9ASO6+Zas4BZ/V1GSZIkSQNSfy1INLZsd05/kbIY0kyAbbfddh2LL0nDT6smF5ckSWtgyZK21dsTJrR1m0+Shov+XpCoh/u4UJEkrYOWTC4uSZIkSWuhvxYkWla2O6dLkvqZPZ4kSZIkDRYdCxKdyosXJPpgRFxINZH4o5l5f0RcAfx7w4Ti+wCfKfPFPlYWL7oWmA58o5kVkerUtqCt1UWQVjPwJEmSJGnAiYgfUE0OvmVEtFOtTncq/bcg0bFUK+dtSDWpuBOLS1INDDwNUq5wJ0mSpKEsMw/r5lC/LEiUmYuAHdaljJKk3jnHkyRJkiRJkmph4EmSJEmSJEm1cKidJEmDzJIlbau3J0xo6zafJEmS1GoGnoYA53uSJEmSJEkDkUPtJEmSJEmSVAsDT5IkSZIkSaqFgSdJkiRJkiTVwjmeJEmSJEnSC7QtaHt+e8+2bvNJvTHwNMQ40bgkSZIkSRooDDxJkjSILVnStnp7woS2bvNJkiRJreAcT5IkSZIkSaqFgSdJkiRJkiTVwqF2Q5jzPUmSJEmSpFayx5MkSZIkSZJqYY8nSZKGCCcalyRJ0kBj4GmYcNidJEmSJElqNofaSZIkSZIkqRb2eBqG7P0kSZIkSZKawcCTJElDkPM9SZIkaSAw8DTM2ftJkiRJkiTVxcCTJEmSJEmDXNuCtqZcu23P+u6jocnAk1az95MkDU0Ou5MkSVKruKqdJEmSJEmSamGPJ3XJ3k+SNDTZ+0mSJEnNZI8nSZIkSZIk1cIeT+qVvZ8kaWiy95MkSZLqZo8nSZIkSZIk1cIeT1ojjb2fGtkTSpIkSZIkdWbgSZIkOexOkiT1SduCtue392zrNp/UwcCT+oXzQEnS0GEQSpIkSf3FwJMkSeqWQShJkgauxt5H0kBl4En9zt5PkiRJkiQJDDypZgahJGnosPeTJEmS1pSBJzWNQShJGjoMQkmSJKkvDDxJkqR1YhBKkiRJ3THwpJaw95MkDU0GoSRJGj4aJzdv27Ot23wa3gw8qeUMQknS0GQQSpKk/udKdhpsDDxpQDEIJUlDU2MQqpEBKUmSpKHNwJMGrMYgVHcMTknS4GavKEmShgaH3ak7Bp40qHXXQ8qeU5I0+BiEkiRJGnoMPGnI6K6HlEEoSRp8uhua18jglCRpuHBeJw1mBp40rDh8T5KGDueNkiRpYHLYnRoZeJI6sYeUJA1uBqQkSUOBvZw0VBh4knrQlx5SjQxUSdLA1Zfhe40MVEmSmm0oBpvs/SQDT1I/ciifJA0dBqokSepfBqGGp0EfeIqIKcDpwAjgO5l5aouLJPVoTXtRrSkDW9IL2U6oWdY0UNUdA1hSc9lOqNWGYi+nvjAINXwM6sBTRIwAzgTeAbQD10fEnMy8vbUlk1qn7sDWmjIQplayndBg1F8BrHVh8EvDhe2Emmm4Bpj6orvfjQGpoWFQB56AXYHFmXkPQERcCEwDbCikAWIgBcIag2BOIj9s2E5Ia2EgBL8GKoNyQ47thHplwKh11uV3b9Bq4BjsgaexwNKG/XZgt86ZImImMLPsPhERd/bx+lsCf16nEg4+w7HOMDzrPRzrDMOz3n2t8yvqLkgL1NlO+G9peLDOw8Ma1PkLtRakidbm7zws24l1+CzRF0Px/5t1GhyGfJ2+MPif14Pxb9RlOzHYA099kpnnAOes6XkRsSgzJ9dQpAFrONYZhme9h2OdYXjWezjWeU2tTTsxHH+v1nl4sM7Dw3Cs89pa288SfTEU/w7WaXCwTgPfUKrPS1pdgHW0DNimYX9cSZMkCWwnJEk9s52QpJoN9sDT9cDEiJgQEaOAQ4E5LS6TJGngsJ2QJPXEdkKSajaoh9pl5qqI+CBwBdXyp7My87Z+vEUtXWoHuOFYZxie9R6OdYbhWe/hWGeg9nZiOP5erfPwYJ2Hh+FY5xdpwueJ3gzFv4N1Ghys08A3ZOoTmdnqMkiSJEmSJGkIGuxD7SRJkiRJkjRAGXiSJEmSJElSLQw8ARExJSLujIjFEXFCF8fXj4iLyvFrI2J8C4rZr/pQ549FxO0RcXNEXBkRr2hFOftbb/VuyPeeiMiIGPTLV/alzhFxSPl73xYR3292GftbH/59bxsRv4yIG8u/8f1bUc7+FBGzIuKhiLi1m+MREWeU38nNEbFzs8s4GNk+2D50kc/2YRAbbu2DbcPAExGbR8T8iLir/BzdTb5tI+LnEXFH+T84vslF7bO+1qnk3SQi2iPim80s45rqS50iYlJEXFOejzdHxHtbUdaeDMX3MUPxfcqweA+SmcP6RTWJ4N3A3wGjgN8D23XKcyxwdtk+FLio1eVuQp3fBry0bH9gsNe5r/Uu+TYGrgYWApNbXe4m/K0nAjcCo8v+37S63E2o8znAB8r2dsC9rS53P9T7LcDOwK3dHN8fuBwIYHfg2laXeaC/bB9sH7rIZ/swAMpec52HVPtg2zDwXsCXgRPK9gnAl7rJtwB4R9neqOO5OxBffa1TOX468H3gm60u97rWCXg1MLFsvxy4H9is1WVvKN+Qex8zFN+nDJf3IPZ4gl2BxZl5T2Y+A1wITOuUZxowu2xfAuwdEdHEMva3Xuucmb/MzCfL7kJgXJPLWIe+/K0BTgK+BDzVzMLVpC91Pho4MzNXAmTmQ00uY3/rS50T2KRsbwr8qYnlq0VmXg2s6CHLNOD8rCwENouIrZtTukHL9sH2oTPbh8Ft2LUPtg0DUmO7MRs4sHOGiNgOGJmZ8wEy84mG5+5A1GudACJiF2Ar4OfNKdY66bVOmfm/mXlX2f4T8BAwplkF7IOh+D5mKL5PGRbvQQw8wVhgacN+e0nrMk9mrgIeBbZoSunq0Zc6NzqK6tuwwa7Xepcu5ttk5s+aWbAa9eVv/Wrg1RHxm4hYGBFTmla6evSlzm3AP0VEOzAP+FBzitZSa/r/XrYPYPuwmu2D7cMQZdvQfFtl5v1l+wGqQExnrwYeiYgfl2Gf/xkRI5pXxDXWa50i4iXAV4FPNLNg66Avf6fVImJXqt4qd9ddsDUwFN/HDMX3KcPiPcjIVhdAA1tE/BMwGXhrq8tSt9Igfg04osVFabaRVMMp9qT6RuDqiPiHzHyklYWq2WHAeZn51Yh4A/C9iNghM//a6oJJg4Xtw7Bg+2D7oLUQEb8A/raLQ59r3MnMjIjsIt9I4M3ATsAfgYuonj/n9m9J+64f6nQsMC8z2wdKh5p+qFPHdbYGvgfM8FkxcAyV9ylD5T2IgSdYBmzTsD+upHWVpz0iRlJ1vX64OcWrRV/qTES8nerB+9bMfLpJZatTb/XeGNgBWFAaxL8F5kTEAZm5qGml7F99+Vu3U83p8CywJCL+l+qDxvXNKWK/60udjwKmAGTmNRGxAbAlVRfpoapP/+/1ArYPtg8dbB9sH4Zq+2DbUIPMfHt3xyLiwYjYOjPvLwGLrv5ttQM3ZeY95ZxLqebgalngqR/q9AbgzRFxLNWcVaMi4onM7HYi5br1Q52IiE2AnwGfK8NVB5Kh+D5mKL5PGRbvQRxqV715mhgREyJiFNWkanM65ZkDzCjbBwFXZWa3Ue9BoNc6R8ROwP8FDhgCczp06LHemfloZm6ZmeMzczzVmOBB9R+6C335930p1bfZRMSWVN2772liGftbX+r8R2BvgIj4e2ADYHlTS9l8c4DpUdkdeLShC7m6Zvtg+wDYPoDtQ1NL2Vy2Dc3X2G7MAC7rIs/1VPNtdcwXtBdwexPKtrZ6rVNmvi8zty3P0E9QzS3WsqBTH/Rap/Ic+QlVXS5pYtn6aii+jxmK71OGx3uQHAAznLf6RbWix/9Sjcn9XEn7ItUfFKo3HT8EFgPXAX/X6jI3oc6/AB4EbiqvOa0uczPq3SnvAgbhigFr8bcOqu6btwO3AIe2usxNqPN2wG+oVo24Cdin1WXuhzr/gGo1lWepvik9CjgGOKbh73xm+Z3cMhT+bQ+Qf0u2D7YPg/Zl+zD02wfbhoH3opo/50rgrvI83bykTwa+05DvHcDN5e9yHjCq1WVf1zo15D+Cgb+qXa91Av6p/N+6qeE1qdVl71SPIfc+pg91GnTvU3qrU6e8CwbjszpK4SVJkiRJkqR+5VA7SZIkSZIk1cLAkyRJkiRJkmph4EmSJEmSJEm1MPAkSZIkSZKkWhh4kiRJkiRJUi0MPEmSJEmSJKkWBp4kSZIkSZJUi/8PO0dPeMJre/QAAAAASUVORK5CYII=\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/m54FXFKyiMzMzKxsimkjsFlEbCrpRYCImCFp6RLHZWZmZmVQTInAPEltgQCQ1B34quGXmJmZWXNQTCJwMXAnsJKk3wJPAr8raVRmZmZWFo1WDUTE9ZJeALYHBOwZEeNLHpmZmZmVXKOJgKR/RMTBwH/rmGdmZmbNWDFVAxvmT2TtBb5TmnDMzMysnOpNBCSdLmkW0EfSTEmzsumPgLvLFaCknSW9LmmCpNPqWH6UpFckjZX0pKQNyhWbmZlZc1dvIhARv4uIzsD5EbFcRHTOHitGxOnlCC4rfbgE2AXYANi/jhP9DRGxcUT0Bc4DLixHbGZmZi1BMY0FT5fUFVgb6JA3//FSBpYZCEyIiLcBJN0E7AG8lhfHzLz1O5Ld5mhmZmaNK6ax4OHA8UBPYCywOfAMsF1JI0tWASblTU8GNitcSdLRwEnA0vXFJekI4AiA1VZbrckDNTMza46KaSx4PDAAeDcivgv0Az4pZVCLKiIuiYg1gVOBM+pZ54qI6B8R/bt3717eAM3MzKpUMYnAlxHxJYCk9hHxX2Dd0oZV631g1bzpntm8+twE7FnKgMzMzFqSYhKByZKWB+4C/iXpbuDdUgaV53lgbUm9s/EN9gNG5a8gae28yV2BN8sUm5mZWbNXTGPB72dPR0h6FOgCPFDSqL7e93xJxwAPAm2BKyNinKSzgdERMQo4RtIOwDxgBnBoOWIzMzNrCRRRfyP77Pa9cRGxXvlCKr3+/fvH6NGjKx2GmZlZ2Uh6ISL6F85vsGogIhYAr0tyM3szM7MWqNGqAaArME7Sc8BnuZkRMbRkUZmZmVlZFJMI/KrkUZiZmVlFFNNY8LFyBGJmZmblV8ztg2ZmZtZCOREwMzNrxYpKBCQtI6lcvQmamZlZmTSaCEjanTTY0APZdF9Joxp8kZmZmTULxZQIjCANB/wJQESMBXqXLCIzMzMrm2ISgXkR8WnBvPq7IzQzM7Nmo5h+BMZJOgBomw3wcxzwdGnDMjMzs3IopkTgWGBDYA5wIzATOKGEMZmZmVmZFNOh0OfAL4FfZoMQdYyIL0semZmZmZVcMXcN3CBpOUkdgVeA1ySdUvrQzMzMrNSKqRrYICJmAnsC95PuGDi4lEGZmZlZeRSTCLST1I6UCIyKiHn4rgEzM7MWoZhE4HJgItAReFzS6qQGg2ZmZtbMFdNY8GLg4rxZ70r6bulCMjMzs3JpNBGQ1B7YC+hVsP7ZJYrJzMzMyqSYDoXuBj4FXiD1JWBmZmYtRDGJQM+I2LnkkZiZmVnZFdNY8GlJG5c8EjMzMyu7YkoEtgaGS3qHVDUgICKiT0kjMzMzs5IrJhHYpeRRmJmZWUU0WjUQEe8CywO7Z4/ls3lmZmbWzBUz1sDxwPXAStnjOknHljqwvP3vLOl1SRMknVbH8pMkvSbpZUn/zjo8MjMzsyIUUzXwI2CziPgMQNLvgWeAkaUMLNtXW+ASYEdgMvC8pFER8Vreai8C/SPic0k/Ac4DhpU6NjMzs5agmLsGBCzIm16QzSuHgcCEiHg7IuYCNwF75K8QEY9mQyUDPAv0LFNsZmZmzV4xJQJXAf+RdCcpAdgD+HtJo/raKsCkvOnJwGYNrP8j0giJZmZmVoRixhq4UFIN6TbCAH4YES+WOrBFJekgoD+wbT3LjwCOAFhttdXKGJmZmVn1KqZqIEcFf8vhfWDVvOme2byFSNoB+CUwNCLq7AY5Iq6IiP4R0b979+4lCdbMzKy5KeaugTOBa4CuQDfgKklnlDqwzPPA2pJ6S1oa2A8YVRBfP9JQyUMj4qMyxWVmZtYiFNNG4EBgk4j4EkDSucBY4JwSxgVARMyXdAzwINAWuDIixkk6GxgdEaOA84FOwK2SAN6LiKGljs3MzKwlKCYRmAJ0AL7MpttTR/F8qUTEfcB9BfPOzHu+Q7liMTMza2mKSQQ+BcZJ+hepseCOwHOSLgaIiONKGJ+ZmZmVUDGJwJ3ZI6emNKGYmZlZuRVz++A1ueeSugKrRsTLJY3KzMzMyqKYuwZqJC0naQVgDPBXSReWPjQzMzMrtWL6EegSETOBHwDXRsRmgBvomZmZtQDFJAJLSfo2sC9wT4njMTMzszIqJhE4m3Qf/1sR8bykNYA3SxuWmZmZlUMxjQVvBW7Nm34b2KuUQbUGgwcPBqCmpqaicZiZWetWTGPBdST9W9Kr2XSfMnYxbGZmZiVUTD8CfwVOIfXnT0S8LOkGytDFcLOhJRiHaXFeG7H4+zMzM8tTTBuBZSPiuYJ580sRjJmZmZVXMSUC0yStSepeGEl7Ax+UNKpWoKbSAZiZmVFcInA0cAWwnqT3gXdIIxKamZlZM9dgIiCpLfDTiNhBUkegTUTMKk9oZmZmVmoNJgIRsUDS1tnzz8oTkpmZmZVLMVUDL0oaRepLoDYZiIg7ShaVmZmZlUUxiUAHYDqwXd68AJwImJmZNXPF9Cz4w3IEYmZmZuVXTD8CZmZm1kI5ETAzM2vFnAiYmZm1YvW2EZB0UkMvjIgLmz4cMzMzK6eGGgt2LlsUZmZmVhH1JgIR8etyBmJmZmbl12gbAUk9Jd0p6aPscbuknuUIzszMzEqrmMaCVwGjgB7Z45/ZPDMzM2vmikkEukfEVRExP3tcDXQvcVy1JO0s6XVJEySdVsfybSSNkTQ/GyLZzMzMilRMIjBd0kGS2maPg0hdDpdcNvrhJcAuwAbA/pI2KFjtPWA4cEM5YjIzM2tJikkEDgP2BT4EPgD2BsrV7fBAYEJEvB0Rc4GbgD3yV4iIiRHxMvBVmWIyMzNrMRocayC7Iv+/iBhapngKrQJMypueDGy2OBuSdARwBMBqq6225JGZmZm1AA2WCETEAmB1SUuXKZ6SiYgrIqJ/RPTv3r1sTRzMzMyqWjHDEL8NPCVpFPBZbmaZehZ8H1g1b7pnNs/MzMyaQDGJwFvZow1f9zYYJYtoYc8Da0vqTUoA9gMOKNO+zczMWrxiEoHXIuLW/BmS9ilRPAuJiPmSjgEeBNoCV0bEOElnA6MjYpSkAcCdQFdgd0m/jogNyxGfmZlZc6eIhi/uJY2JiE0bm9ec9O/fP0aPHt10G5SablvFaOQzMzMzKyTphYjoXzi/odEHdwG+B6wi6eK8RcsB85s+RDMzMyu3hqoGpgCjgaHAC3nzZwEnljIoMzMzK4+GRh98CXhJ0g0RMa+MMZmZmVmZFNNYcKCkEcDq2foCIiLWKGVgZmZmVnrFJAJ/J1UFvAAsKG04ZmZmVk7FJAKfRsT9JY/EzMzMyq6YROBRSecDdwBzcjMjYkzJojIzM7OyKCYRyA3yk3/vYQDbNX04ZmZmVk6NJgIR8d1yBGJmZmbl1+DogwCSuki6UNLo7PEHSV3KEZyZmZmVVqOJAHAlqROhfbPHTOCqUgZlZmZm5VFMG4E1I2KvvOlfSxpbonjMzMysjIopEfhC0ta5CUlbAV+ULiQzMzMrl2JKBH4CXJPXLmAGMLxkEZmZmVnZFHPXwFhgE0nLZdMzSx2UmZmZlUcxdw38n6TlI2JmRMyU1FXSOeUIzszMzEqrmDYCu0TEJ7mJiJgBfK9kEZmZmVnZFJMItJXUPjchaRmgfQPrm5mZWTNRTGPB64F/S8r1HfBD4JrShWRmZmblUkxjwd9LegnYIZv1m4h4sLRhmZmZWTkUUyJARDwAPFDiWMzMzKzMimkjYK3Y4MGDGTx4cKXDaFRzidPMrNo4ETAzM2vFiqoayJG0aUSMKVUwVmJSeV8bUb59LclrFzdOM7MWYFFLBP5WkijMWonmUoXRXOI0syW3SCUCwBJcqi0eSTsDFwFtgb9FxLkFy9sD1wLfAaYDwyJiYrnjbKlqKh1AkWoqHUA1cwmLmTVgUROBX5ckinpIagtcAuwITAaelzQqIl7LW+1HwIyIWEvSfsDvgWHljNNaKZ9gKy5XalFTU1PROMyas0WqGoiIu0oUR30GAhMi4u2ImAvcBOxRsM4efN3B0W3A9tKS/EKbWQ0uZWlKzaWqxXE2reYS56KWCJTbKsCkvOnJwGb1rRMR8yV9CqwITCtLhGaLoKbSAVSz5lLC4jjr5jib9rVlLAGs9kSgyUg6Ajgib7qC0Syh5hK742xajrP+XS7WixxnvbtcrBc5znp3uVgvKl+cRSUCkrYG1o6IqyR1BzpFxDulDQ2A94FV86Z7ZvPqWmeypKWALqRGgwuJiCuAKwD69+8fo0ePLknAZmZm1ai+C+BG2whIOgs4FTg9m9UOuK7JImvY88DaknpLWhrYDxhVsM4o4NDs+d7AIxFuVWVmZlaMYkoEvg/0A8YARMQUSZ1LGlUmq/M/BniQdPvglRExTtLZwOiIGAX8HfiHpAnAx6RkwczMzIpQTCIwNyJCUgBI6ljimBYSEfcB9xXMOzPv+ZfAPuWMyczMrKUo5vbBWyRdDiwv6cfAw7iHQTMzsxah0RKBiLhA0o7ATGBd4MyI+FfJIzMzM7OSU2Pt6iT9PiJObWxecyJpKvBupeMwMzMro9UjonvhzGISgTERsWnBvJcjok8TB2hmZmZlVm/VgKSfAD8F1pD0ct6izsBTpQ7MzMzMSq/eEgFJXYCuwO+A0/IWzYqIj8sQm5mZmZVYo1UDtStKKwEdctMR8V6pgjIzM7PyKKZnwd0lvQm8AzwGTATuL3FcZmZmVgbF9CNwDrA58EZE9Aa2B54taVRmZmZWFsUkAvMiYjrQRlKbiHgU6F/iuMzMzKwMiuli+BNJnYDHgeslfQR8VtqwzMzMrByK6UegI/AFqfTgQNIwv9dnpQRmZmbWjDWYCEhqCzwcEd8tX0hmZmZWLg22EYiIBcBXWZ8CZmZm1sIU00ZgNvCKpH+R1zYgIo4rWVRmZmZWFsUkAndkDzMzM2thiu5Z0MyslCTVANdFxN8qHUslSFoNeA3oEhELWvvxsPIpph8Bs1ZN0kRJX0iaLelDSVdnt9RaHkk1kg6vdBzNRfZ/tUNuOiLei4hOWdsss7JxImBWnN0johPQF+gHnF7ZcMpLUjHViC1Oa33f1roUnQhIWraUgZg1BxHxIfAgKSEAQNLmkp6W9ImklyQNzls2XNLbkmZJekfSgXnzn5L0Z0mfSvqvpO3zXtdD0ihJH0uaIOnHectGSLpF0rXZdsdJ6p+3/FRJ72fLXs9tV1IbSadJekvS9GwbK9T1PiUNljQ529aHwFWSukq6R9JUSTOy5z2z9X8LDAL+nJWc/Dmbv56kf2Xv43VJ+zZyiNeU9JykmZLuzsUn6V5JxxbE+LKk79cRey9JIekISVMkfSDp5Lzl9R6HvNf+SNJ7wCPZ/B9LGp8d09ckbZr3Od2eHZN3JB2Xt596PydJ/wBWA/6ZHa+f5+27zuRD0mFZDDMkPShp9UaOpVlxIqLBB7Alqd7qvWx6E+Avjb3ODz9ayoM00NYO2fOewCvARdn0KsB04HukxHrHbLo70BGYCaybrfttYMPs+XBgPnAi0A4YBnwKrJAtfxz4C2nEz77AVGC7bNkI4Mtsn21JQ4U/my1bF5gE9MimewFrZs+PJ40T0hNoD1wO3FjPex6cxff7bN1lgBWBvYBlgc7ArcBdea+pAQ7Pm+6YxfJDUsPkfsA0YIN69lkDvA9slL32dlIdOcC+wH/y1t0kO85L17GdXkAAN2bb2Tg7fjs0dhzyXntt9tplgH2yuAYAAtYCVs8+7xeAM4GlgTWAt4EhjX1Ohf9XBfteqvB4AnsAE4D1s2N5BvB0pb8bfrSMR+MrwH+AVYEX8+a9WunA/fCjXI/sB3s2MCv7of43sHy27FTgHwXrPwgcmp1IPslOnssUrDMcmELWYDeb9xxwcPZ9WwB0zlv2O+Dq7PkIUkdfuWUbAF9kz9cCPgJ2ANoV7HM8sH3e9LeBebkTT8G6g4G5QIcGjktfYEbedO2JK5seBjxR8JrLgbPq2V4NcG7B+5qbnUQ7ADOAtbNlF1DPBUneCXW9vHnnAX9v7DjkvXaNgs/z+Dr2sxnZBVLevNOBqxr7nPL+r4pNBO4HfpS3bhvgc2D1Sn8//Gj+j6KqBiJiUsEsN2ax1mbPiOhMOkGuB3TL5q8O7JNVC3wi6RNga+DbEfEZ6WR4FPBBVry9Xt4234+I/Nt23gV6ZI+PI2JWwbJV8qY/zHv+OdBB0lIRMQE4gXQS+kjSTZJ65MV6Z16c40nf5ZXrec9TI+LL3ISkZSVdLuldSTNJpRbLK/VAWpfVgc0Kjs2BwLfqWR9SCUL+e24HdMviuBk4SFIbYH/gHw1sp65tLcpxyH/tqsBbdWx/daBHwfv7RcF26vycGom7LqsDF+Xt52NS6cQqDb7KrAjFJAKTJG0JhKR2WV3b+BLHZVaVIuIx4GrSFSmkE8Y/ImL5vEfHiDg3W//BiNiRdNX5X+CveZtbRZLyplcjlRJMAVaQ1Llg2ftFxnhDRGxNOnkEqXg/F+suBbF2iIj6tlt4b/HPSFUPm0XEcsA22XzVs/4k4LGC/XWKiJ80EP6qec9XI12pT8umryElEtsDn0fEMw1sp65tTcmLq7HjkP9eJgFr1rH9ScA7BdvpHBHfaySuuvbRmEnAkQX7WiYinl6EbZjVqZhE4CjgaFLm+T6pOPDoEsZkVu3+BOwoaRPgOmB3SUMktZXUIWto11PSypL2UBq4aw6peuGrvO2sBByXJdj7kOp/78tK4J4Gfpdtrw/wo2xfDZK0rqTtJLUn1U9/kbfPy4Df5hqZSeouaY9FeN+ds+19kjWuO6tg+f9I9eQ59wDrSDo4e4/tJA2QtH4D+zhI0gZKjZPPBm6L7Ha67MT/FfAHGi8NAPhVVoqxIamdws3Z/EU9Dn8DTpb0HSVrZa99Dpil1KBymezz30jSgCJig28er4ZcBpyevRckdcn+Z8yWWKOJQERMi4gDI2LliFgpIg4KjzxorVhETCU1JjszO2nvQSoSnkq6cjuF9N1qA5xEuhL9GNgWyL8a/g+wNumK97fA3nnfrf1JdcZTgDtJ9eoPFxFee+DcbJsfkpKN3K2OFwGjgIckzSI1mNtsEd76n0iN56Zlr32gYPlFwN5Zq/aLs6qNnYD9svfxIV83PqzPP0glLh+S2gUUdmV+LanxX6NJEfAYqYHdv4ELIuKhvDiLPg4RcSvp87mB1E7kLlKjzgXAbqSLo3dIx+VvpBFai/E74IysuP/khlaMiDtJx+6mrFrmVWCXIvdj1qBihiE+DziHdCXwANAHODEiivkimlkdJA0nNQTbutKxNCeSDgGOaOi4SepFOjG3i4j55YrNrLkqpmpgp4iYScp8J5JaJZ9SyqDMzApl1QU/Ba6odCxmLUkxiUCuheuuwK0R8WkJ4zEz+wZJQ0hVL/8jFdGbWRMppmrgXGBPUtXAQGB54J6IWJS6RTMzM6tCRY0+mLUQ/jTSiFjLAstF6mrVzMzMmrFixxpYDxiWNdTZm9QSuCwk7azUR/kESac1sN5eWT/d/etbx8zMzBbWaA9X2eAYawJj+bpHwVxf3CWV9Vh2Can/9snA85JGRcRrBet1JvUf/p9ittutW7fo1atXE0drZmZWvV544YVpEdG9cH4xXV32Jw0Ssii9YDWVgcCEiHgbQNJNpHu2XytY7zeke2yLupuhV69ejB49uinjNDMzq2qS3q1rfjFVA6/ScN/gpbQKC/f5PZmCvrWVhgNdNSLuLWdgZmZmLUExJQLdgNckPUfqJhWAiBhasqiKlA0+ciFpJLfG1j0COAJgtdVWK21gZmZmzUQxicCIUgfRgPdZeOCQniw88Epn0tjlNdnYLd8CRkkaGhELlf1HxBVkHZH079+/EtUcZmZmVafRRCAiHpO0MpAbSOO5iPiotGHVeh5YW1JvUgKwH3BAXmyf8vVwsEiqAU4uTALMzKzpzJs3j8mTJ/Pll182vrKVXYcOHejZsyft2rUrav1i7hrYFzgfqCENNzpS0ikRcduSBFqMiJgv6RjgQaAtcGVEjJN0NjA6IkaVOoYlMXjwYABqamoqGoeZWVOaPHkynTt3plevXiw8krZVWkQwffp0Jk+eTO/evYt6TTFVA78EBuRKASR1Bx4GSp4IAETEfcB9BfPOrGfdweWIycysNfvyyy+dBFQpSay44opMnTq16NcUkwi0KagKmE7xHRG1CmtesGad86dMmtLg8rdOfqtkMZmZlZKTgOq1qJ9NMSf0ByQ9KGl4NnTqvRRcoVvdevykBz1+0qPSYZiZtSiffPIJf/nLX6puW9Wwn8XRaCIQEacAlwN9sscVEXFqqQMzMzOrS30n1fnz5zfZtppas04EMk8DjwGPAs+ULhwzM7OGnXbaabz11lv07duXAQMGMGjQIIYOHcoGG2zAggULOOWUUxgwYAB9+vTh8ssvB2D27Nlsv/32bLrppmy88cbcfffd39jWKaecQk1NDdtuuy177LEHa6yxBqeddhrXX389AwcOZOONN+att1KV7tSpU9lrr70YMGAAAwYM4KmnngJgxIgRHHbYYQwePJg11liDiy++uM79VJNi7ho4HDgTeISv7xo4OyKuLHVwZmZmhc4991xeffVVxo4dS01NDbvuuiuvvvoqvXv35oorrqBLly48//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 +} \ No newline at end of file