{"cells":[{"metadata":{"_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","collapsed":true,"trusted":true},"cell_type":"code","source":"# This Python 3 environment comes with many helpful analytics libraries installed\n# It is defined by the kaggle/python docker image: https://github.com/kaggle/docker-python\n# For example, here's several helpful packages to load in \n\nimport numpy as np # linear algebra\nimport pandas as pd # data processing, CSV file I/O (e.g. pd.read_csv)\n\n# Input data files are available in the \"../input/\" directory.\n# For example, running this (by clicking run or pressing Shift+Enter) will list the files in the input directory\n\nimport os\nprint(os.listdir(\"../input\"))\n\n# Any results you write to the current directory are saved as output.","execution_count":null,"outputs":[]},{"metadata":{"_cell_guid":"79c7e3d0-c299-4dcb-8224-4455121ee9b0","_uuid":"d629ff2d2480ee46fbb7e2d37f6b5fab8052498a","collapsed":true,"trusted":true},"cell_type":"code","source":"import pandas as pd\nimport time\nimport numpy as np\nfrom sklearn.cross_validation import train_test_split\nimport xgboost as xgb","execution_count":null,"outputs":[]},{"metadata":{"_cell_guid":"001b37fd-476d-4906-9045-f61cf2338d9f","_uuid":"2d736f3c4f2a2168ffd8b59c73f39ec4d048727a","collapsed":true,"trusted":true},"cell_type":"code","source":"def dataPreProcessTime(df):\n    df['click_time'] = pd.to_datetime(df['click_time']).dt.date\n    df['click_time'] = df['click_time'].apply(lambda x: x.strftime('%Y%m%d')).astype(int)\n    \n    return df","execution_count":null,"outputs":[]},{"metadata":{"_cell_guid":"d86f245e-ed51-4407-a741-462c7e3226bd","_uuid":"a59e9ed66c06ca197bac3d406c6b5dad94db6655","collapsed":true,"trusted":true},"cell_type":"code","source":"start_time = time.time()\n\ntrain = pd.read_csv(\"../input/train.csv\")\ntest = pd.read_csv(\"../input/test.csv\")\n\nprint('[{}] Finished to load data'.format(time.time() - start_time))","execution_count":null,"outputs":[]},{"metadata":{"_cell_guid":"5f471431-fa02-4be4-8c1e-9570eb220f77","_uuid":"62019a60bb49a69f83c08e255f49b3d9f87c00ee","collapsed":true,"trusted":true},"cell_type":"code","source":"train = dataPreProcessTime(train)\ntest = dataPreProcessTime(test)\n\ny = train['is_attributed']\ntrain.drop(['is_attributed', 'attributed_time'], axis=1, inplace=True)\n\nsub = pd.DataFrame()\nsub['click_id'] = test['click_id']\ntest.drop('click_id', axis=1, inplace=True)","execution_count":null,"outputs":[]},{"metadata":{"collapsed":true,"trusted":true,"_uuid":"4a04cf8409bfb82671e759eea54c86e7f53adfba"},"cell_type":"code","source":"# from imblearn.combine import SMOTETomek\n# os_us = SMOTETomek()\n# train, y = os_us.fit_sample(train, y)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"collapsed":true,"_uuid":"9d516ea8dd345165ecaa2993eb7235f2d233d5ee"},"cell_type":"code","source":"from sklearn import preprocessing\nnormalizer = preprocessing.Normalizer().fit(train)\ntrain = normalizer.transform(train)\ntest = normalizer.transform(test)","execution_count":null,"outputs":[]},{"metadata":{"_cell_guid":"b0400332-7542-48f9-9ba1-5d09b1c9f7c0","_uuid":"d3b2806e5c76266ed69478e8cbc6149a64df7a39","trusted":true},"cell_type":"code","source":"\nprint('[{}] Start XGBoost Training'.format(time.time() - start_time))\n\nparams = {'eta': 0.17,\n\t\t  'max_depth': 10,\n\t\t  'subsample': 0.9,\n\t\t  'colsample_bytree': 1.0,\n\t\t  'colsample_bylevel': 0.7,\n\t\t  'min_child_weight': 10,\n\t\t  'alpha': 4,\n\t\t  'objective': 'binary:logistic',\n\t\t  'eval_metric': 'auc',\n\t\t  'random_state': 100,\n\t\t  'silent': False}\n          \nx1, x2, y1, y2 = train_test_split(train, y, test_size=0.1, random_state=100)\n\nwatchlist = [(xgb.DMatrix(x1, y1), 'train'), (xgb.DMatrix(x2, y2), 'valid')]\nmodel = xgb.train(params, xgb.DMatrix(x1, y1), 300, watchlist, maximize=True, verbose_eval=10)\n\nprint('[{}] Finish XGBoost Training'.format(time.time() - start_time))","execution_count":1,"outputs":[]},{"metadata":{"_cell_guid":"e7f48cb8-89dd-4dac-8128-fd0bc8cf07f8","_uuid":"d4c13c204f974100c736391a27c60571e16d5b1e","collapsed":true,"trusted":true},"cell_type":"code","source":"sub['is_attributed'] = model.predict(xgb.DMatrix(test), ntree_limit=model.best_ntree_limit)\nsub.to_csv('sub_xg.csv',index=False)","execution_count":null,"outputs":[]}],"metadata":{"kernelspec":{"display_name":"Python 3","language":"python","name":"python3"},"language_info":{"name":"python","version":"3.6.4","mimetype":"text/x-python","codemirror_mode":{"name":"ipython","version":3},"pygments_lexer":"ipython3","nbconvert_exporter":"python","file_extension":".py"}},"nbformat":4,"nbformat_minor":1}