{"cells":[{"metadata":{"_uuid":"e0cca0a16707199de9982cf358470019cf420f4b"},"cell_type":"markdown","source":"I imagine purchase amounts over time are especially relevant to determining loyalty score. Maybe we could stare at some of these purchase over time curves and see if we can derive any insights for our aggregations. Actual insights from these curves are left as an exercise for the reader. :)"},{"metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","trusted":true,"_kg_hide-input":true,"_kg_hide-output":true},"cell_type":"code","source":"import numpy as np # linear algebra\nimport pandas as pd # data processing, CSV file I/O (e.g. pd.read_csv)\nimport matplotlib.pyplot as plt\n\nhistorical_transactions = pd.read_csv('../input/historical_transactions.csv',\n                                      parse_dates=['purchase_date'])\n\nnew_transactions = pd.read_csv('../input/new_merchant_transactions.csv',\n                               parse_dates=['purchase_date'])\n\ntrain = pd.read_csv('../input/train.csv')","execution_count":null,"outputs":[]},{"metadata":{"_kg_hide-input":true,"_kg_hide-output":true,"trusted":true,"_uuid":"b9376e84ba733ad53fd0569b6b770de71ca709fe"},"cell_type":"code","source":"def view_purchase_graph(card_id):\n    purchases = historical_transactions[historical_transactions['card_id'] == card_id].sort_values('purchase_date')\n    plt.figure(figsize=(8,6))\n    plt.scatter(pd.to_datetime(purchases['purchase_date']).astype(np.int),\n                               purchases['purchase_amount'],\n                               c=['red' if a == 'N' else 'blue' for a in purchases['authorized_flag']])\n    plt.xlabel('time', fontsize=12)\n    plt.ylabel('Historical Purchase Amount', fontsize=12)\n    plt.show()\n\ndef view_new_purchase_graph(card_id):\n    purchases = new_transactions[new_transactions['card_id'] == card_id].sort_values('purchase_date')\n    plt.figure(figsize=(8,6))\n    plt.scatter(pd.to_datetime(purchases['purchase_date']).astype(np.int), purchases['purchase_amount'])\n    plt.xlabel('time', fontsize=12)\n    plt.ylabel('New Purchase Amount', fontsize=12)\n    plt.show()","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"70cc6277f2b7ac9f91e2e8b9aa1661bbdbee744f"},"cell_type":"markdown","source":"## Target close to 0"},{"metadata":{"trusted":true,"scrolled":true,"_uuid":"863e41b850839de3681ed72202f70ff94bbf08b6"},"cell_type":"code","source":"select = train[train['target'] > 0][train['target'] < 1]\nselect.head()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"c1457d58a2c70a0cdfa949158537d8bd36e5a96d"},"cell_type":"code","source":"select.shape","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"86801e0d2781959a1759f69b627087a3801bf9c5"},"cell_type":"code","source":"historical_transactions.merge(select).sort_values(['card_id', 'purchase_date']).head()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"39c2e2e18779f74c091106de26eb640182761c59"},"cell_type":"code","source":"new_transactions.merge(select).sort_values(['card_id', 'purchase_date']).head()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"34746bb8cbc82aca5653a14117374811653a9272"},"cell_type":"code","source":"for card in select['card_id'][:20]:\n    print('-')\n    print(train[train['card_id'] == card]['target'])\n    view_purchase_graph(card)\n    view_new_purchase_graph(card)","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"0cce051adf9dc3e5035a028c6990934a964be6f5"},"cell_type":"markdown","source":"## Target > 10"},{"metadata":{"trusted":true,"_uuid":"670f51bba902c7f3b8389fcebc4be24bdd5fcf17"},"cell_type":"code","source":"select = train[train['target'] > 10]\nselect.head()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"65c19b0a8767207bea69c5c2583f0c33c2c273e1"},"cell_type":"code","source":"select.shape","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"4e0a63da4329d79bc75bdc08c449002a4403d3bb"},"cell_type":"code","source":"historical_transactions.merge(select).sort_values(['card_id', 'purchase_date']).head()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"da719821b1589215cbeca8b34987f94305db83d7"},"cell_type":"code","source":"new_transactions.merge(select).sort_values(['card_id', 'purchase_date']).head()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"bcbdc1c433274f18491c26dc667535a5e8fb7bae"},"cell_type":"code","source":"for card in select['card_id'][:20]:\n    print('-')\n    print(train[train['card_id'] == card]['target'])\n    view_purchase_graph(card)\n    view_new_purchase_graph(card)","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"2637cd17d05fdb1a4994f912828b3a1d4d9aec28"},"cell_type":"markdown","source":"## Target < -10 but > -30"},{"metadata":{"trusted":true,"_uuid":"e9737250281778b19aa3063d9be8232f850855c9"},"cell_type":"code","source":"select = train[train['target'] < -10][train['target'] > -30]\nselect.head()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"84b0c6efa0d2c383ff5f20724a8a787f4c30b756"},"cell_type":"code","source":"select.shape","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"beef519cd7948a0f3d2153d6fbdc85e2afb82c2a"},"cell_type":"code","source":"historical_transactions.merge(select).sort_values(['card_id', 'purchase_date']).head()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"8cdb0c6f5eecc71eed8e2b5d0bdd003a6a14f5cb"},"cell_type":"code","source":"new_transactions.merge(select).sort_values(['card_id', 'purchase_date']).head()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"13cd19c2f7d1cb2e990c429db6cff6bd022f27ff"},"cell_type":"code","source":"for card in select['card_id'][:20]:\n    print('-')\n    print(train[train['card_id'] == card]['target'])\n    view_purchase_graph(card)\n    view_new_purchase_graph(card)","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"d82ae8f367011315d4ba591c68a28fb0adda23dd"},"cell_type":"markdown","source":"## Outliers (Target < -30)"},{"metadata":{"trusted":true,"_uuid":"aac1f51fc2601fd8d758feb609597846cb375785"},"cell_type":"code","source":"select = train[train['target'] < -30]\nselect.head()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"129ccfb3948744c395bd278a48a8185edd9117c9"},"cell_type":"code","source":"select.shape","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"38d4fc8f69e51665eb2de62d26715fa193271000"},"cell_type":"code","source":"historical_transactions.merge(select).sort_values(['card_id', 'purchase_date']).head()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"3cda1a0755f18f8f0245a7e1e62c704ed803f64c"},"cell_type":"code","source":"new_transactions.merge(select).sort_values(['card_id', 'purchase_date']).head()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"95e6d699cd9e52423218041a8f18966e93dbad08"},"cell_type":"code","source":"for card in select['card_id'][:20]:\n    print('-')\n    print(train[train['card_id'] == card]['target'])\n    view_purchase_graph(card)\n    view_new_purchase_graph(card)","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"283fd29bfb086be469e34b6ddbb084026e066a9c"},"cell_type":"markdown","source":""}],"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}