{"cells":[{"metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","trusted":true},"cell_type":"markdown","source":"This notebook is used to create some box plots for the elo competition. Due to the limited RAM it was not possible to include it directly"},{"metadata":{"_cell_guid":"79c7e3d0-c299-4dcb-8224-4455121ee9b0","_uuid":"d629ff2d2480ee46fbb7e2d37f6b5fab8052498a","trusted":true},"cell_type":"code","source":"# Import packages\nimport pandas as pd\nimport matplotlib.pyplot as plt\nimport seaborn as sns\nimport numpy as np\nfrom scipy import stats\nimport warnings\nfrom sklearn.ensemble import GradientBoostingRegressor, RandomForestRegressor\nfrom sklearn.model_selection import train_test_split\nimport datetime\nimport lightgbm as lgb\nsns.set(style='darkgrid', palette='deep')\nwarnings.filterwarnings('ignore')\n%matplotlib inline","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"d086c6de531a084bf3596bc5fdf4af31be1ee58e"},"cell_type":"code","source":"# Load train and test data\ntrain = pd.read_csv(\"../input/train.csv\", parse_dates=[\"first_active_month\"])\ntest = pd.read_csv(\"../input/test.csv\", parse_dates=[\"first_active_month\"])","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"0fb05a297f49af0e48a0aa89055c65d24ca79d91"},"cell_type":"code","source":"# Load additional data\nmerchants = pd.read_csv(\"../input/merchants.csv\")\nnew_trans = pd.read_csv(\"../input/new_merchant_transactions.csv\", \n                        parse_dates=['purchase_date'])\nhist_trans = pd.read_csv(\"../input/historical_transactions.csv\", \n                         parse_dates=['purchase_date'])","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"71840831a9bb19c21f8fa8b94f10bbd6685054b7"},"cell_type":"code","source":"temp_df = hist_trans.groupby(\"card_id\")\ntemp_df = temp_df[\"purchase_amount\"].size().reset_index()\ntemp_df.columns = [\"card_id\", \"num_hist_transactions\"]\ntrain_temp = pd.merge(train, temp_df, on=\"card_id\", how=\"left\")\ntest_temp = pd.merge(test, temp_df, on=\"card_id\", how=\"left\")","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"f5edc104034ea3a451ba94e1b5e5722a2f24012f"},"cell_type":"code","source":"temp_df.to_csv(\"temp_hist_eda.csv\", index=False)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"1cebbf4edaef6d3d1a9ec0e85234b778f60ddaf0"},"cell_type":"code","source":"temp_df.head().sort_values(by='num_hist_transactions', ascending=False)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"19cce5140627b2f755c8e8c54219b17f711e4660"},"cell_type":"code","source":"temp_df = hist_trans.groupby(\"card_id\")\ntemp_df = temp_df[\"purchase_amount\"].agg(['sum', 'mean', 'std', 'min', 'max']).reset_index()\ntemp_df.columns = [\"card_id\", \"sum_hist_trans\", \"mean_hist_trans\", \"std_hist_trans\", \"min_hist_trans\", \"max_hist_trans\"]\ntrain_temp = pd.merge(train, temp_df, on=\"card_id\", how=\"left\")\ntest_temp = pd.merge(test, temp_df, on=\"card_id\", how=\"left\")","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"3c34ed4899ce3f7627b963709eda959ff5cc3f4f"},"cell_type":"code","source":"bins = np.percentile(train_temp[\"sum_hist_trans\"], range(0,101,10))\ntrain_temp['binned_sum_hist_trans'] = pd.cut(train_temp['sum_hist_trans'], bins)\n\n\nplt.figure(figsize=(12,8))\nsns.boxplot(x=\"binned_sum_hist_trans\", y=\"target\", data=train_temp, showfliers=False)\nplt.xticks(rotation='vertical')\nplt.xlabel('binned_sum_hist_trans', fontsize=12)\nplt.ylabel('Loyalty score', fontsize=12)\nplt.title(\"Sum of historical transaction value (Binned) distribution\")\nplt.show()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"85cea449c3a69f9b194660871300bf51c6d2c6a6"},"cell_type":"code","source":"del temp_df\ndel train_temp\ndel test_temp","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"10c2dad0b3d7f25b62801c81e76b6eaed508375f"},"cell_type":"code","source":"df_temp = new_trans.groupby(\"card_id\")\ndf_temp = df_temp[\"purchase_amount\"].size().reset_index()\ndf_temp.columns = [\"card_id\", \"num_merch_transactions\"]\ntrain_temp = pd.merge(train, df_temp, on=\"card_id\", how=\"left\")\ntest_temp = pd.merge(test, df_temp, on=\"card_id\", how=\"left\")","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"78fe7fee061f468c4e50d6bb4dac1ba74d62e576"},"cell_type":"code","source":"df_temp.to_csv(\"temp_new_eda.csv\", index=False)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"007911844ea3f267f23c79fbdcb32907044938bb"},"cell_type":"code","source":"df_temp.head().sort_values(by='num_merch_transactions', ascending=False)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"275ce07e62de5cc73b20ac474581fa446d38c89e"},"cell_type":"code","source":"bins = [0, 10, 20, 30, 40, 50, 75, 10000]\ntrain_temp['binned_num_merch_transactions'] = pd.cut(train_temp['num_merch_transactions'], bins)\n\nplt.figure(figsize=(12,8))\nsns.boxplot(x=\"binned_num_merch_transactions\", y=\"target\", data=train_temp, showfliers=False)\nplt.xticks(rotation='vertical')\nplt.xlabel('binned_num_merch_transactions', fontsize=12)\nplt.ylabel('Loyalty score', fontsize=12)\nplt.title(\"Number of new merchants transaction (Binned) distribution\")\nplt.show()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"c0e7fc9c865598f8c7be22a7a1a5bffd609c9891"},"cell_type":"code","source":"del df_temp\ndel train_temp\ndel test_temp","execution_count":null,"outputs":[]}],"metadata":{"kernelspec":{"display_name":"Python 3","language":"python","name":"python3"},"language_info":{"name":"python","version":"3.6.6","mimetype":"text/x-python","codemirror_mode":{"name":"ipython","version":3},"pygments_lexer":"ipython3","nbconvert_exporter":"python","file_extension":".py"}},"nbformat":4,"nbformat_minor":1}