{"cells":[{"cell_type":"code","execution_count":null,"metadata":{"_cell_guid":"f97d2818-211f-c399-ffb7-ba4ffbf44cb7"},"outputs":[],"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\nfrom subprocess import check_output\nprint(check_output([\"ls\", \"../input\"]).decode(\"utf8\"))\n\n# Any results you write to the current directory are saved as output.\ntrain = pd.read_csv(\"../input/clicks_train.csv\")\n\nids = train.display_id.unique()\nids = np.random.choice(ids, size=len(ids)//10, replace=False)\n\nvalid = train[train.display_id.isin(ids)]\ntrain = train[~train.display_id.isin(ids)]\n\t\nprint (valid.shape, train.shape)"},{"cell_type":"code","execution_count":null,"metadata":{"_cell_guid":"a3232d9f-d8e2-5ae9-7522-1351b850acca"},"outputs":[],"source":"cnt = train[train.clicked==1].ad_id.value_counts()\ncntall = train.ad_id.value_counts()"},{"cell_type":"code","execution_count":null,"metadata":{"_cell_guid":"17a9ff76-f4a3-843f-f785-89f307214f1d"},"outputs":[],"source":"cnt_set = set(cnt)"},{"cell_type":"code","execution_count":null,"metadata":{"_cell_guid":"0ad1d51d-df4b-fb02-9b23-3ecc89137b42"},"outputs":[],"source":"def get_prob(k):\n    if k not in cnt_set:\n        return 0\n    return cnt[k]/(float(cntall[k]) + 10)"},{"cell_type":"code","execution_count":null,"metadata":{"_cell_guid":"e923f2ca-8b85-717a-2698-6f8c55330e42"},"outputs":[],"source":"probs = {ad_id:get_prob(ad_id) for ad_id in train.ad_id.unique()}"},{"cell_type":"code","execution_count":null,"metadata":{"_cell_guid":"501c524c-a2cd-42d1-c4ee-d69750055835"},"outputs":[],"source":"cnt.head()"},{"cell_type":"code","execution_count":null,"metadata":{"_cell_guid":"3f205c86-19f6-0d68-0b99-c3ea61126a89"},"outputs":[],"source":"cnt"},{"cell_type":"code","execution_count":null,"metadata":{"_cell_guid":"d655ef1f-068c-972f-292d-2cea09b77f5d"},"outputs":[],"source":"cnt.info()"},{"cell_type":"code","execution_count":null,"metadata":{"_cell_guid":"05bf57c3-4406-40b7-6c4b-372123bbc482"},"outputs":[],"source":"cnt_set = set(train[train.clicked==1].ad_id.unique())"},{"cell_type":"code","execution_count":null,"metadata":{"_cell_guid":"f9d1d93c-41bf-163d-08d2-63f9d8b8c472"},"outputs":[],"source":"cnt_set"},{"cell_type":"code","execution_count":null,"metadata":{"_cell_guid":"ed319609-5016-a02a-21c5-38cf2240c951"},"outputs":[],"source":"total = pd.read_csv(\"../input/clicks_train.csv\")"},{"cell_type":"code","execution_count":null,"metadata":{"_cell_guid":"676c5604-0077-283b-bd84-143a8005c0d1"},"outputs":[],"source":"all_id = total.ad_id.unique()"},{"cell_type":"code","execution_count":null,"metadata":{"_cell_guid":"5a092087-f6a4-cb48-1c77-301984b1a0e7"},"outputs":[],"source":"probs = {ad_id:get_prob(ad_id) for ad_id in all_id}"},{"cell_type":"code","execution_count":null,"metadata":{"_cell_guid":"aa38a360-7c45-9798-b408-4704ace9f2dd"},"outputs":[],"source":"train['base_prob'] = train.apply(lambda row: probs[row['ad_id']],axis=1)"},{"cell_type":"code","execution_count":null,"metadata":{"_cell_guid":"f3212299-efc7-0951-7936-6a703a325bcd"},"outputs":[],"source":""}],"metadata":{"_change_revision":0,"_is_fork":false,"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.5.2"}},"nbformat":4,"nbformat_minor":0}