{"cells":[{"metadata":{"_uuid":"d629ff2d2480ee46fbb7e2d37f6b5fab8052498a","_cell_guid":"79c7e3d0-c299-4dcb-8224-4455121ee9b0","trusted":false,"collapsed":true},"cell_type":"code","source":"import pandas as pd\nraw = pd.read_csv('../input/train.csv', nrows=10000000)\nraw.head()","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"aa2e8a456d65e5e7ec8bcb5dc4becbf73e4ba8a3","_cell_guid":"c70237f4-d58f-42c5-a136-1b0f7c328aad","trusted":false,"collapsed":true},"cell_type":"code","source":"raw = raw.drop(['click_time', 'attributed_time'], axis=1)\nraw.head()","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"b9601397369c2afaeca86323d247861c3cf0ee40","_cell_guid":"0dbcf2ec-2e1e-4088-9f32-99653e24eebb","trusted":false,"collapsed":true},"cell_type":"code","source":"raw['is_attributed'].value_counts()","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"f2bf173bcdc809cae94e50b214f459a66355f62e","_cell_guid":"016f06a2-4ad0-4329-bc95-1caf91fcfea7","trusted":false,"collapsed":true},"cell_type":"code","source":"raw.isnull().sum()","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"7741a509278ac15ad975e5ba396d29296de8ea5e","_cell_guid":"a3631461-7b9d-4e11-b6ad-7148be58b1e4","trusted":false,"collapsed":true},"cell_type":"code","source":"raw.columns.values","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"67dce11c6185eb55cd909211b91638c092aceed7","_cell_guid":"6220a523-c32f-4792-a0b4-0305099217cc","trusted":false,"collapsed":true},"cell_type":"code","source":"features = raw.columns.values.tolist()[0:5]\nfeatures","execution_count":null,"outputs":[]},{"metadata":{"collapsed":true,"_uuid":"41762310cb1743d9d0035880af792224185b0cc5","_cell_guid":"913aa8a7-34a7-437b-96fa-f66917019fae","trusted":false},"cell_type":"code","source":"X = raw[features]\ny = raw['is_attributed']","execution_count":null,"outputs":[]},{"metadata":{"collapsed":true,"_uuid":"96a66d819119840a359aec30a36dc4bfa27c79a7","_cell_guid":"c483b976-a27c-4bf1-88fc-e9f2bbea9712","trusted":false},"cell_type":"code","source":"from sklearn.model_selection import train_test_split\nX_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=2018)","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"4d2ca3ac63d3151bbae623c2347e95f871ad4e75","_cell_guid":"a0e96219-7b53-403c-9f75-4a9a3661f1bd","trusted":false,"collapsed":true},"cell_type":"code","source":"X_train.shape","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"360f222af88acd6f1da2cd65367983f97b884075","_cell_guid":"43c77573-caab-43d4-9db1-458dc094237e","trusted":false,"collapsed":true},"cell_type":"code","source":"y_train.value_counts()","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"64d2832a7c6cb7ee1c4e081901d46e12493b1ecb","_cell_guid":"ef5ba883-2420-40b9-be8d-97ac587a316d","trusted":false,"collapsed":true},"cell_type":"code","source":"X_test.shape","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"00aab71bca5075fa4e493d15a2a568c95dd04d34","_cell_guid":"ecacb426-d68b-41bb-b147-b37230a711ba","trusted":false,"collapsed":true},"cell_type":"code","source":"y_test.value_counts()","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"a90bb13c0234c947770fc4a04932f143a6ff385c","_cell_guid":"c900521c-6ef0-4c29-b3f8-044676526475","trusted":false,"collapsed":true},"cell_type":"code","source":"from sklearn.ensemble import RandomForestClassifier\nfrom sklearn import metrics\n\nrf = RandomForestClassifier(max_depth=20, random_state=2018)\nrf.fit(X_train, y_train)","execution_count":null,"outputs":[]},{"metadata":{"collapsed":true,"_uuid":"c470634f5c398b9f8f4ac401864269ecba8615fb","_cell_guid":"e7ff8471-b686-409b-80cc-6cc12a8e5751","trusted":false},"cell_type":"code","source":"y_pred = rf.predict(X_test)","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"2ab8d61802416f9f0e899a219d6943ce35228f26","_cell_guid":"9c8d5a1d-0dd1-4444-92e6-c4b62ce93d9d","trusted":false,"collapsed":true},"cell_type":"code","source":"from sklearn.metrics import confusion_matrix\ncm = confusion_matrix(y_test, y_pred)\ncm","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"43b88d6d9a932f4d487fe3457a5c01256cc5a3af","_cell_guid":"8a9eaec5-a83c-4e49-8689-6f27afbd5715","trusted":false,"collapsed":true},"cell_type":"code","source":"from sklearn.metrics import classification_report\ncr = classification_report(y_test, y_pred)\nprint(cr)","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"e589878f4444891c9648c2e475acfdac2f71cab7","_cell_guid":"ad882825-afba-4618-a769-9836e960c6b2","trusted":false,"collapsed":true},"cell_type":"code","source":"from sklearn.metrics import roc_auc_score\nroc_auc = roc_auc_score(y_test, y_pred)\nroc_auc","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"ad429195e627a199dcb002d62edef9c6415e7de3","_cell_guid":"8152136b-2bb2-4c91-9b8b-d5163ebf9ae5","trusted":false,"collapsed":true},"cell_type":"code","source":"from sklearn.metrics import roc_curve\nfpr, tpr, thresholds = roc_curve(y_test, rf.predict_proba(X_test)[:,1])\nplt.figure()\nplt.plot(fpr, tpr, color='darkorange', label='Random Forest (area = %0.2f)' % roc_auc)\nplt.plot([0, 1], [0, 1], color='navy', lw=2, linestyle='--')\nplt.xlim([0.0, 1.0])\nplt.ylim([0.0, 1.05])\nplt.xlabel('False Positive Rate')\nplt.ylabel('True Positive Rate')\nplt.title('Receiver Operating Characteristic')\nplt.legend(loc=\"lower right\")\nplt.show()","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"0eb02a1c408c8ce90ab57eba59f0895f56e76018","_cell_guid":"4daac90b-ab7e-42b2-b383-cf481ab5f30a","trusted":false,"collapsed":true},"cell_type":"code","source":"unseen_data = pd.read_csv('../input/test.csv')\nunseen_data.shape","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"53178c0670b5ba1ae6944ead2563ded5636d96f0","_cell_guid":"9d481fc3-b18f-4735-8436-186c5c8a1223","trusted":false,"collapsed":true},"cell_type":"code","source":"unseen_data.head()","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"233543b456410d5309b3fce1053f5a370f79eae2","_cell_guid":"2e74c078-28df-4c4d-8688-6b26c21dc037","trusted":false,"collapsed":true},"cell_type":"code","source":"unseen_data.drop(['click_time'], axis=1, inplace=True)\nunseen_data.head()","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"555118337917be7dbe86cd2cd97f0fd5065c087b","_cell_guid":"8ca47aa0-d1cd-4ec8-a1a4-f1088db4cd88","trusted":false,"collapsed":true},"cell_type":"code","source":"unseen_data[features].isnull().sum()","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"3e6ccd19755bbbcbb61573b358fc3f8af654bbf9","_cell_guid":"082c4ea7-cd3d-48da-bf82-8322d475969a","trusted":false,"collapsed":true},"cell_type":"code","source":"unseen_data_pred = rf.predict(unseen_data[features])\nunseen_data_pred","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"c224a0ec171f8ad25298baf3f514aec6325d8d45","_cell_guid":"3af0a058-1b96-4bbd-a4c5-8f1e4a5bc2c0","trusted":false,"collapsed":true},"cell_type":"code","source":"submission = pd.concat([unseen_data['click_id'], pd.Series(unseen_data_pred, name='is_attributed')], axis=1)\nsubmission.head()","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"e0a98e23b64154495c1db084b06c93d72e5f1317","_cell_guid":"7b24a591-3a19-43dc-93d8-82834b5db0dd","trusted":false,"collapsed":true},"cell_type":"code","source":"submission.shape","execution_count":null,"outputs":[]},{"metadata":{"collapsed":true,"_uuid":"102e9a238d53ee9699e3684bf466ad88d1e825f4","_cell_guid":"a6288767-151e-447f-ae99-5639558385cd","trusted":false},"cell_type":"code","source":"submission.to_csv('submission.csv', index=False)","execution_count":null,"outputs":[]}],"metadata":{"language_info":{"version":"3.6.4","file_extension":".py","codemirror_mode":{"version":3,"name":"ipython"},"pygments_lexer":"ipython3","nbconvert_exporter":"python","mimetype":"text/x-python","name":"python"},"kernelspec":{"display_name":"Python 3","language":"python","name":"python3"}},"nbformat":4,"nbformat_minor":1}