{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Introduction\n", "\n", "CausalML is a Python package that provides a suite of uplift modeling and causal inference methods using machine learning algorithms based on recent research. The package currently supports the following methods:\n", "\n", "Tree-based algorithms\n", "* Uplift tree/random forests on KL divergence, Euclidean Distance, and Chi-Square\n", "* Uplift tree/random forests on Contextual Treatment Selection\n", "\n", "Meta-learner algorithms\n", "* S-learner\n", "* T-learner\n", "* X-learner\n", "* R-learner\n", "\n", "In this notebook, we use synthetic data to demonstrate the use of the tree-based algorithms." ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "ExecuteTime": { "end_time": "2019-12-20T17:20:10.960638Z", "start_time": "2019-12-20T17:20:10.957253Z" } }, "outputs": [], "source": [ "import numpy as np\n", "import pandas as pd\n", "\n", "from causalml.dataset import make_uplift_classification\n", "from causalml.inference.tree import UpliftRandomForestClassifier\n", "from causalml.metrics import plot_gain\n", "\n", "from sklearn.model_selection import train_test_split" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Generate synthetic dataset\n", "\n", "The CausalML package contains various functions to generate synthetic datasets for uplift modeling. Here we generate a classification dataset using the make_uplift_classification() function." ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "ExecuteTime": { "end_time": "2019-12-20T17:20:10.998192Z", "start_time": "2019-12-20T17:20:10.962810Z" } }, "outputs": [], "source": [ "df, x_names = make_uplift_classification()" ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "ExecuteTime": { "end_time": "2019-12-20T17:20:11.024259Z", "start_time": "2019-12-20T17:20:11.000415Z" } }, "outputs": [ { "data": { "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", "
treatment_group_keyx1_informativex2_informativex3_informativex4_informativex5_informativex6_irrelevantx7_irrelevantx8_irrelevantx9_irrelevant...x11_uplift_increasex12_uplift_increasex13_increase_mixx14_uplift_increasex15_uplift_increasex16_increase_mixx17_uplift_increasex18_uplift_increasex19_increase_mixconversion
0control-0.5428881.976361-0.531359-2.354211-0.380629-2.614321-0.1288930.448689-2.275192...0.656869-1.3153040.7426541.891699-2.4283951.541875-0.817705-0.610194-0.5915810
1treatment30.2586540.5524121.434239-1.4223110.0891310.7902931.1595131.5788680.166540...1.050526-1.391878-0.6232432.443972-2.8892532.018585-1.109296-0.380362-1.6676060
2treatment11.697012-2.762600-0.662874-1.6823401.2174430.8379821.0429810.177398-0.112409...1.072329-1.1324971.0501791.573054-1.7884271.341609-0.749227-2.091521-0.4713860
3treatment2-1.4416441.8236480.789423-0.2953980.718509-0.4929930.947824-1.3078870.123340...1.398966-2.0846190.0584811.3694390.4225381.087176-0.966666-1.785592-1.2683791
4control-0.6250743.002388-0.0962881.9382353.392424-0.465860-0.919897-1.072592-1.331181...1.398327-1.4039840.7604301.917635-2.3476751.560946-0.833067-1.407884-0.7813430
\n", "

5 rows × 21 columns

\n", "
" ], "text/plain": [ " treatment_group_key x1_informative x2_informative x3_informative \\\n", "0 control -0.542888 1.976361 -0.531359 \n", "1 treatment3 0.258654 0.552412 1.434239 \n", "2 treatment1 1.697012 -2.762600 -0.662874 \n", "3 treatment2 -1.441644 1.823648 0.789423 \n", "4 control -0.625074 3.002388 -0.096288 \n", "\n", " x4_informative x5_informative x6_irrelevant x7_irrelevant \\\n", "0 -2.354211 -0.380629 -2.614321 -0.128893 \n", "1 -1.422311 0.089131 0.790293 1.159513 \n", "2 -1.682340 1.217443 0.837982 1.042981 \n", "3 -0.295398 0.718509 -0.492993 0.947824 \n", "4 1.938235 3.392424 -0.465860 -0.919897 \n", "\n", " x8_irrelevant x9_irrelevant ... x11_uplift_increase \\\n", "0 0.448689 -2.275192 ... 0.656869 \n", "1 1.578868 0.166540 ... 1.050526 \n", "2 0.177398 -0.112409 ... 1.072329 \n", "3 -1.307887 0.123340 ... 1.398966 \n", "4 -1.072592 -1.331181 ... 1.398327 \n", "\n", " x12_uplift_increase x13_increase_mix x14_uplift_increase \\\n", "0 -1.315304 0.742654 1.891699 \n", "1 -1.391878 -0.623243 2.443972 \n", "2 -1.132497 1.050179 1.573054 \n", "3 -2.084619 0.058481 1.369439 \n", "4 -1.403984 0.760430 1.917635 \n", "\n", " x15_uplift_increase x16_increase_mix x17_uplift_increase \\\n", "0 -2.428395 1.541875 -0.817705 \n", "1 -2.889253 2.018585 -1.109296 \n", "2 -1.788427 1.341609 -0.749227 \n", "3 0.422538 1.087176 -0.966666 \n", "4 -2.347675 1.560946 -0.833067 \n", "\n", " x18_uplift_increase x19_increase_mix conversion \n", "0 -0.610194 -0.591581 0 \n", "1 -0.380362 -1.667606 0 \n", "2 -2.091521 -0.471386 0 \n", "3 -1.785592 -1.268379 1 \n", "4 -1.407884 -0.781343 0 \n", "\n", "[5 rows x 21 columns]" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df.head()" ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "ExecuteTime": { "end_time": "2019-12-20T17:20:11.069258Z", "start_time": "2019-12-20T17:20:11.026453Z" } }, "outputs": [ { "data": { "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", "
meansize
conversionconversion
treatment_group_key
control0.5111000
treatment10.5141000
treatment20.5591000
treatment30.6001000
All0.5464000
\n", "
" ], "text/plain": [ " mean size\n", " conversion conversion\n", "treatment_group_key \n", "control 0.511 1000\n", "treatment1 0.514 1000\n", "treatment2 0.559 1000\n", "treatment3 0.600 1000\n", "All 0.546 4000" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Look at the conversion rate and sample size in each group\n", "df.pivot_table(values='conversion',\n", " index='treatment_group_key',\n", " aggfunc=[np.mean, np.size],\n", " margins=True)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Run the uplift random forest classifier\n", "\n", "In this section, we first fit the uplift random forest classifier using training data. We then use the fitted model to make a prediction using testing data. The prediction returns an ndarray in which each column contains the predicted uplift if the unit was in the corresponding treatment group." ] }, { "cell_type": "code", "execution_count": 18, "metadata": { "ExecuteTime": { "end_time": "2019-12-20T17:20:11.076379Z", "start_time": "2019-12-20T17:20:11.071002Z" } }, "outputs": [], "source": [ "# Split data to training and testing samples for model validation (next section)\n", "df_train, df_test = train_test_split(df, test_size=0.2, random_state=111)" ] }, { "cell_type": "code", "execution_count": 19, "metadata": { "ExecuteTime": { "end_time": "2019-12-20T17:20:11.081266Z", "start_time": "2019-12-20T17:20:11.078310Z" } }, "outputs": [], "source": [ "uplift_model = UpliftRandomForestClassifier(control_name='control')" ] }, { "cell_type": "code", "execution_count": 20, "metadata": { "ExecuteTime": { "end_time": "2019-12-20T17:20:18.741946Z", "start_time": "2019-12-20T17:20:11.083854Z" } }, "outputs": [], "source": [ "uplift_model.fit(df_train[x_names].values,\n", " treatment=df_train['treatment_group_key'].values,\n", " y=df_train['conversion'].values)" ] }, { "cell_type": "code", "execution_count": 21, "metadata": { "ExecuteTime": { "end_time": "2019-12-20T17:20:18.887350Z", "start_time": "2019-12-20T17:20:18.743659Z" } }, "outputs": [], "source": [ "y_pred = uplift_model.predict(df_test[x_names].values)" ] }, { "cell_type": "code", "execution_count": 22, "metadata": { "ExecuteTime": { "end_time": "2019-12-20T17:20:18.892035Z", "start_time": "2019-12-20T17:20:18.888977Z" } }, "outputs": [], "source": [ "# Put the predictions to a DataFrame for a neater presentation\n", "result = pd.DataFrame(y_pred,\n", " columns=uplift_model.classes_)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Create the uplift curve\n", "\n", "The performance of the model can be evaluated with the help of the [uplift curve](http://proceedings.mlr.press/v67/gutierrez17a/gutierrez17a.pdfc). " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Create a synthetic population\n", "\n", "The uplift curve is calculated on a synthetic population that consists of those that were in the control group and those who happened to be in the treatment group recommended by the model. We use the synthetic population to calculate the _actual_ treatment effect within _predicted_ treatment effect quantiles. Because the data is randomized, we have a roughly equal number of treatment and control observations in the predicted quantiles and there is no self selection to treatment groups." ] }, { "cell_type": "code", "execution_count": 23, "metadata": { "ExecuteTime": { "end_time": "2019-12-20T17:20:18.902754Z", "start_time": "2019-12-20T17:20:18.894201Z" } }, "outputs": [], "source": [ "# If all deltas are negative, assing to control; otherwise assign to the treatment\n", "# with the highest delta\n", "best_treatment = np.where((result < 0).all(axis=1),\n", " 'control',\n", " result.idxmax(axis=1))\n", "\n", "# Create indicator variables for whether a unit happened to have the\n", "# recommended treatment or was in the control group\n", "actual_is_best = np.where(df_test['treatment_group_key'] == best_treatment, 1, 0)\n", "actual_is_control = np.where(df_test['treatment_group_key'] == 'control', 1, 0)" ] }, { "cell_type": "code", "execution_count": 24, "metadata": { "ExecuteTime": { "end_time": "2019-12-20T17:20:18.907817Z", "start_time": "2019-12-20T17:20:18.904664Z" } }, "outputs": [], "source": [ "synthetic = (actual_is_best == 1) | (actual_is_control == 1)\n", "synth = result[synthetic]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Calculate the observed treatment effect per predicted treatment effect quantile\n", "\n", "We use the observed treatment effect to calculate the uplift curve, which answers the question: how much of the total cumulative uplift could we have captured by targeting a subset of the population sorted according to the predicted uplift, from highest to lowest?\n", "\n", "CausalML has the plot_gain() function which calculates the uplift curve given a DataFrame containing the treatment assignment, observed outcome and the predicted treatment effect." ] }, { "cell_type": "code", "execution_count": 25, "metadata": { "ExecuteTime": { "end_time": "2019-12-20T17:20:18.916662Z", "start_time": "2019-12-20T17:20:18.909528Z" } }, "outputs": [], "source": [ "auuc_metrics = (synth.assign(is_treated = 1 - actual_is_control[synthetic],\n", " conversion = df_test.loc[synthetic, 'conversion'].values,\n", " uplift_tree = synth.max(axis=1))\n", " .drop(columns=list(uplift_model.classes_)))" ] }, { "cell_type": "code", "execution_count": 26, "metadata": { "ExecuteTime": { "end_time": "2019-12-20T17:20:19.216604Z", "start_time": "2019-12-20T17:20:18.918481Z" } }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plot_gain(auuc_metrics, outcome_col='conversion', treatment_col='is_treated')" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "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.6.0" }, "toc": { "base_numbering": 1, "nav_menu": {}, "number_sections": true, "sideBar": true, "skip_h1_title": false, "title_cell": "Table of Contents", "title_sidebar": "Contents", "toc_cell": false, "toc_position": {}, "toc_section_display": true, "toc_window_display": false } }, "nbformat": 4, "nbformat_minor": 2 }