{"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","name":"python3"},"language_info":{"pygments_lexer":"ipython3","nbconvert_exporter":"python","version":"3.6.4","file_extension":".py","codemirror_mode":{"name":"ipython","version":3},"name":"python","mimetype":"text/x-python"}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"markdown","source":"# MERKLE Data Scientist","metadata":{}},{"cell_type":"markdown","source":"## 1.探索資料分析 – 進行建模之前，請你描述觀察資料狀況 。\n\n數據資料相當多(train=六千多萬筆, test=四百多萬筆）,隨機抽取1% train匯入作為訓練資料。\nclick變數[1,0],click=1 在training data裡僅佔17%, 22個Features,都沒有missing。其中日期變數hour（datetime）為特殊格式, 將hour轉換增加兩變數為weekday和hour_of_day。features （ex.C1,C14,C15....)雖多為不明確定義的變數, 分佈不平均僅暫且留著使用。 \n","metadata":{}},{"cell_type":"markdown","source":"## 2. 特徵工程 – 建模用的feature，你做了哪些處理?\n\n將dtype=object's feature使用hash()轉換為float(), 以使用sklearn。再使用DecisionTreeClassfier() feature_importances_ 挑選特徵值>0.01 的變數作為選用變數。","metadata":{}},{"cell_type":"markdown","source":"## 3. 模型調整 – 訓練完的模型會根據驗證資料進行優化調整，請說明優化的細節?\n\n選用DecisionTreeClassfier(), 使用Grid search CV調整, max_depth = 10最好, 再使用cross_validation kfold驗證避免overfitting。\n發現cv驗證時, max_depth=10 和12 都是差不多, 因此最後選擇depth = 10, Roc_auc_score約54%","metadata":{}},{"cell_type":"markdown","source":"## 4. 思考細節 – 這些步驟也想了解你的思考的邏輯，為什麼會做這些處理和調整?\n以上只是粗略敘述最後的選用, 但其實先前做了資料參考和很多模型選擇, 可能別人用了Xboost和變數分組最後的成果相當好, 我想試試別種方式轉換feature（轉成numeric),也增加一些組合數值變數（思考可能影響共線性最後不採用）和其他模型（DecisionTreeClassfier）做看看結果。\n可以思考更進一步實作的是, 數據分佈不平均的資料和定義會影響變數和模型的使用, 把各變數都取平均分佈選取sample, 可能會好一點但影響真實性。\n另外最後的submission: 使用predict and predict_proba時, submision_score的結果不同, 都可以作為參考。 ","metadata":{}},{"cell_type":"markdown","source":"## Import data","metadata":{}},{"cell_type":"code","source":"\nimport numpy as np # linear algebra\nimport pandas as pd # data processing, CSV file I/O (e.g. pd.read_csv)\n\nimport os\nfor dirname, _, filenames in os.walk('/kaggle/input'):\n    for filename in filenames:\n        print(os.path.join(dirname, filename))\n\nfrom matplotlib import pyplot as plt\nimport seaborn as sns\nimport gzip\n\ntest_file = '../input/avazu-ctr-prediction/test.gz'\nsamplesubmision_file = '../input/avazu-ctr-prediction/sampleSubmission.gz'\n","metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","execution":{"iopub.status.busy":"2022-06-06T03:45:58.432355Z","iopub.execute_input":"2022-06-06T03:45:58.432858Z","iopub.status.idle":"2022-06-06T03:45:59.14464Z","shell.execute_reply.started":"2022-06-06T03:45:58.432763Z","shell.execute_reply":"2022-06-06T03:45:59.143635Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"chunksize = 10 ** 6\nnum_of_chunk = 0\ntrain_raw = pd.DataFrame()\n\nfor chunk in pd.read_csv('../input/trainingtraincsv/train.csv',chunksize=chunksize):\n    num_of_chunk = num_of_chunk + 1\n    train_raw = pd.concat([train_raw,chunk.sample(frac=0.01)],axis = 0,ignore_index = True)\n    print(f'Process {str(num_of_chunk)} is done.')","metadata":{"execution":{"iopub.status.busy":"2022-06-06T03:46:01.649477Z","iopub.execute_input":"2022-06-06T03:46:01.64992Z","iopub.status.idle":"2022-06-06T03:49:58.67595Z","shell.execute_reply.started":"2022-06-06T03:46:01.649878Z","shell.execute_reply":"2022-06-06T03:49:58.674583Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"train_len = len(train_raw)\nprint(\"Number of training Set:\",train_len)","metadata":{"execution":{"iopub.status.busy":"2022-06-06T03:51:21.174304Z","iopub.execute_input":"2022-06-06T03:51:21.174848Z","iopub.status.idle":"2022-06-06T03:51:21.183461Z","shell.execute_reply.started":"2022-06-06T03:51:21.174802Z","shell.execute_reply":"2022-06-06T03:51:21.182253Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"## Exploring Data","metadata":{}},{"cell_type":"markdown","source":"### - The First Look","metadata":{}},{"cell_type":"code","source":"train = train_raw.iloc[: , 1:]\ntrain.info()","metadata":{"execution":{"iopub.status.busy":"2022-06-06T03:51:25.479763Z","iopub.execute_input":"2022-06-06T03:51:25.480377Z","iopub.status.idle":"2022-06-06T03:51:26.073815Z","shell.execute_reply.started":"2022-06-06T03:51:25.48033Z","shell.execute_reply":"2022-06-06T03:51:26.072618Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"#print(train.head(5))\n#print(train.columns)\n#print(train.dtypes)","metadata":{"execution":{"iopub.status.busy":"2022-06-04T08:20:49.270745Z","iopub.status.idle":"2022-06-04T08:20:49.271243Z","shell.execute_reply.started":"2022-06-04T08:20:49.270998Z","shell.execute_reply":"2022-06-04T08:20:49.271022Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"### - Check for y variable\n### Note: around 17% click in training sample data","metadata":{}},{"cell_type":"code","source":"# Define X and y\nX = train.loc[:, ~train.columns.isin(['click'])]\ny = train.click\n\n# Sample CTR\ntrain.click.value_counts().plot(kind='bar')\nprint(train.click.value_counts())\nprint(\"Sample CTR :\", y.sum()/len(y))","metadata":{"execution":{"iopub.status.busy":"2022-06-06T03:51:35.507567Z","iopub.execute_input":"2022-06-06T03:51:35.508009Z","iopub.status.idle":"2022-06-06T03:51:35.862423Z","shell.execute_reply.started":"2022-06-06T03:51:35.507973Z","shell.execute_reply":"2022-06-06T03:51:35.86171Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"### - Check for X variables","metadata":{}},{"cell_type":"code","source":"for i in train.columns:\n    print(i,':\\n','unique num: ',train[i].nunique(),'\\n total num: ',train[i].count())\n    print(train[i].value_counts()/len(X),'\\n')","metadata":{"execution":{"iopub.status.busy":"2022-06-06T03:51:39.616532Z","iopub.execute_input":"2022-06-06T03:51:39.618146Z","iopub.status.idle":"2022-06-06T03:51:41.674793Z","shell.execute_reply.started":"2022-06-06T03:51:39.61809Z","shell.execute_reply":"2022-06-06T03:51:41.673667Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"\nff=[]\ndef field_plot():\n    for i in X.columns:\n        if train[i].nunique() < 20:\n            ff.append(i)\n    for f in ff:\n        print(f'Distribution of {f} :', X[f].nunique())\n        print(X[f].value_counts()/len(X),'\\n')\n        plt.figure(figsize=(15,10))\n        sns.countplot(x=f,hue='click',data=train)\n \n\n\nfield_plot()       ","metadata":{"execution":{"iopub.status.busy":"2022-06-06T03:51:48.384851Z","iopub.execute_input":"2022-06-06T03:51:48.385325Z","iopub.status.idle":"2022-06-06T03:51:51.22975Z","shell.execute_reply.started":"2022-06-06T03:51:48.385289Z","shell.execute_reply":"2022-06-06T03:51:51.228672Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# Select and print numeric columns\nnumeric_X = train.select_dtypes(include=['int', 'float'])\nprint(numeric_X.columns.tolist())","metadata":{"execution":{"iopub.status.busy":"2022-06-06T03:51:55.400008Z","iopub.execute_input":"2022-06-06T03:51:55.400532Z","iopub.status.idle":"2022-06-06T03:51:55.428503Z","shell.execute_reply.started":"2022-06-06T03:51:55.400496Z","shell.execute_reply":"2022-06-06T03:51:55.426896Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# Select and print categorical columns \ncategorical_X = train.select_dtypes(include=['object'])\nprint(categorical_X.columns.tolist())","metadata":{"execution":{"iopub.status.busy":"2022-06-06T03:51:58.324486Z","iopub.execute_input":"2022-06-06T03:51:58.325963Z","iopub.status.idle":"2022-06-06T03:51:58.393544Z","shell.execute_reply.started":"2022-06-06T03:51:58.325895Z","shell.execute_reply":"2022-06-06T03:51:58.392061Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"### - Check for Missing Value: There is no missing data for columns and rows.","metadata":{}},{"cell_type":"code","source":"# Print missing values by column \nprint(train.isnull().sum(axis = 0))","metadata":{"execution":{"iopub.status.busy":"2022-06-06T03:52:02.766321Z","iopub.execute_input":"2022-06-06T03:52:02.766776Z","iopub.status.idle":"2022-06-06T03:52:03.154986Z","shell.execute_reply.started":"2022-06-06T03:52:02.766739Z","shell.execute_reply":"2022-06-06T03:52:03.154232Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# Print total number of missing values in rows\nprint(train.isnull().sum(axis = 1).sum())","metadata":{"execution":{"iopub.status.busy":"2022-06-06T03:52:06.939997Z","iopub.execute_input":"2022-06-06T03:52:06.941054Z","iopub.status.idle":"2022-06-06T03:52:07.340595Z","shell.execute_reply.started":"2022-06-06T03:52:06.940991Z","shell.execute_reply":"2022-06-06T03:52:07.339864Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"## Feature Engineering","metadata":{}},{"cell_type":"markdown","source":"### - combine test data and train data's feature to do feature engineering","metadata":{}},{"cell_type":"code","source":"all_data = pd.concat([train, pd.read_csv(test_file, compression='gzip')]).drop(['id'], axis=1)","metadata":{"execution":{"iopub.status.busy":"2022-06-06T03:52:10.520976Z","iopub.execute_input":"2022-06-06T03:52:10.521375Z","iopub.status.idle":"2022-06-06T03:52:40.938952Z","shell.execute_reply.started":"2022-06-06T03:52:10.521346Z","shell.execute_reply":"2022-06-06T03:52:40.938028Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"print('Number of train data: ', len(train))\nprint('Number of test data: ', len(all_data)-len(train))","metadata":{"execution":{"iopub.status.busy":"2022-06-06T03:55:03.08076Z","iopub.execute_input":"2022-06-06T03:55:03.081546Z","iopub.status.idle":"2022-06-06T03:55:03.0872Z","shell.execute_reply.started":"2022-06-06T03:55:03.081501Z","shell.execute_reply":"2022-06-06T03:55:03.086105Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"### - Data field [hour]: format is YYMMDDHH, so 14091123 means 23:00 on Sept. 11, 2014 UTC.","metadata":{}},{"cell_type":"code","source":"#Original data\nprint(all_data['hour'].head(5))","metadata":{"execution":{"iopub.status.busy":"2022-06-06T03:55:08.407839Z","iopub.execute_input":"2022-06-06T03:55:08.408341Z","iopub.status.idle":"2022-06-06T03:55:08.414966Z","shell.execute_reply.started":"2022-06-06T03:55:08.408301Z","shell.execute_reply":"2022-06-06T03:55:08.41413Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"### - Define new column: 'hour of day' and 'weekday'","metadata":{}},{"cell_type":"code","source":"\n# extract hour of day\nall_data['hour'] = pd.to_datetime(all_data['hour'], format = '%y%m%d%H')\nall_data['hour_of_day'] = all_data['hour'].dt.hour\n#print(all_data['hour_of_day'].sample(10))\n\n# extract weekday\nall_data['weekday'] = (all_data['hour'].dt.dayofweek)\n#print(all_data['weekday'].sample(10))","metadata":{"execution":{"iopub.status.busy":"2022-06-06T03:55:11.195274Z","iopub.execute_input":"2022-06-06T03:55:11.195703Z","iopub.status.idle":"2022-06-06T03:55:12.538244Z","shell.execute_reply.started":"2022-06-06T03:55:11.195671Z","shell.execute_reply":"2022-06-06T03:55:12.537327Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"### - plot datetime columns","metadata":{}},{"cell_type":"code","source":"# Get and plot total clicks by hour of day\nall_data.groupby('hour_of_day')['click'].sum().plot.bar(figsize=(12,6))\nplt.ylabel('Number of clicks')\nplt.title('Number of clicks by hour of day')\nplt.show()\nplt.figure(figsize=(15,10))\nsns.countplot(x='hour_of_day',hue='click',data=all_data)","metadata":{"execution":{"iopub.status.busy":"2022-06-06T03:55:16.656669Z","iopub.execute_input":"2022-06-06T03:55:16.657689Z","iopub.status.idle":"2022-06-06T03:55:18.670018Z","shell.execute_reply.started":"2022-06-06T03:55:16.657635Z","shell.execute_reply":"2022-06-06T03:55:18.66905Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# Get and plot total clicks by weekday\nall_data.groupby('weekday')['click'].sum().plot.bar(figsize=(12,6))\nplt.ylabel('Number of clicks')\nplt.title('Number of clicks by weekday')\nplt.show()","metadata":{"execution":{"iopub.status.busy":"2022-06-06T03:55:21.8231Z","iopub.execute_input":"2022-06-06T03:55:21.823566Z","iopub.status.idle":"2022-06-06T03:55:22.140731Z","shell.execute_reply.started":"2022-06-06T03:55:21.823525Z","shell.execute_reply":"2022-06-06T03:55:22.138801Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"### - Converting categorical variables","metadata":{}},{"cell_type":"code","source":"# Iterate over categorical columns and apply hash function\ncategorical_cols = all_data.select_dtypes(include = ['object']).columns.tolist()\nfor col in categorical_cols: all_data[col] = all_data[col].apply(lambda x: hash(x))\nprint(all_data.head(5))","metadata":{"execution":{"iopub.status.busy":"2022-06-06T03:55:25.229266Z","iopub.execute_input":"2022-06-06T03:55:25.229746Z","iopub.status.idle":"2022-06-06T03:56:03.255368Z","shell.execute_reply.started":"2022-06-06T03:55:25.229711Z","shell.execute_reply":"2022-06-06T03:56:03.25429Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"## Feature Selection","metadata":{}},{"cell_type":"markdown","source":"all_data = train+test","metadata":{}},{"cell_type":"markdown","source":"train = train","metadata":{}},{"cell_type":"code","source":"# Define train data and test data\ntrain = all_data[:train_len]\ntest = all_data[train_len:]\n\n# using train data to do feature selection caculation\nX = train.loc[:, ~train.columns.isin(['click','hour'])]\ny = train.loc[:, train.columns.isin(['click'])]\n#y = train.click\n#X.info()\n#y.info()","metadata":{"execution":{"iopub.status.busy":"2022-06-06T03:56:07.939637Z","iopub.execute_input":"2022-06-06T03:56:07.940226Z","iopub.status.idle":"2022-06-06T03:56:08.069438Z","shell.execute_reply.started":"2022-06-06T03:56:07.940185Z","shell.execute_reply":"2022-06-06T03:56:08.068196Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"from sklearn.model_selection import train_test_split\nfrom sklearn.model_selection import cross_val_score, KFold\nfrom sklearn.model_selection import KFold\nfrom sklearn.tree import DecisionTreeClassifier\n#from sklearn.ensemble import ExtraTreesClassifier\n#from sklearn.metrics import confusion_matrix\nfrom sklearn.linear_model import LogisticRegression\n#import shap\n#from sklearn.ensemble import RandomForestClassifier\nfrom sklearn.metrics import roc_curve , auc, roc_auc_score\nfrom sklearn.model_selection import GridSearchCV\nfrom sklearn.metrics import precision_score, recall_score\n\n\n\n","metadata":{"execution":{"iopub.status.busy":"2022-06-06T03:56:19.821662Z","iopub.execute_input":"2022-06-06T03:56:19.822822Z","iopub.status.idle":"2022-06-06T03:56:20.420432Z","shell.execute_reply.started":"2022-06-06T03:56:19.822776Z","shell.execute_reply":"2022-06-06T03:56:20.419529Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# DecisionTreeClassifier\n# Set up classifier using training data\nX_train, X_test, y_train, y_test = train_test_split(X, y, test_size = .2, random_state = 0)\nclf = DecisionTreeClassifier()\nclf.fit(X_train, y_train)\n","metadata":{"execution":{"iopub.status.busy":"2022-06-06T03:56:23.324473Z","iopub.execute_input":"2022-06-06T03:56:23.32486Z","iopub.status.idle":"2022-06-06T03:56:27.249788Z","shell.execute_reply.started":"2022-06-06T03:56:23.324829Z","shell.execute_reply":"2022-06-06T03:56:27.248815Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# Sort for feature score by using DTC clf\nft_imp=pd.DataFrame(clf.feature_importances_,columns=[\"DTC\"])\nft_imp.index=X.columns\nft_imp.sort_values(['DTC'], ascending=False)","metadata":{"execution":{"iopub.status.busy":"2022-06-06T03:56:30.01468Z","iopub.execute_input":"2022-06-06T03:56:30.015142Z","iopub.status.idle":"2022-06-06T03:56:30.031863Z","shell.execute_reply.started":"2022-06-06T03:56:30.015107Z","shell.execute_reply":"2022-06-06T03:56:30.031154Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# take >0.01 features\nfeature_len = len(ft_imp[ft_imp[ft_imp.columns[0]] > 0.01])\n\ny = train[['click']]\nX = train[ft_imp[:feature_len].index]\n\ntest = test[ft_imp[:feature_len].index]\n\n#using new feature group to split data\nX_train, X_test, y_train, y_test = train_test_split(X, y, test_size = .2, random_state = 0)","metadata":{"execution":{"iopub.status.busy":"2022-06-06T03:56:35.607467Z","iopub.execute_input":"2022-06-06T03:56:35.607907Z","iopub.status.idle":"2022-06-06T03:56:36.647024Z","shell.execute_reply.started":"2022-06-06T03:56:35.60786Z","shell.execute_reply":"2022-06-06T03:56:36.646256Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# Set up classifier using training data to predict test data\ny_pred = clf.fit(X_train, y_train).predict(X_test) ","metadata":{"execution":{"iopub.status.busy":"2022-06-05T11:26:29.588923Z","iopub.execute_input":"2022-06-05T11:26:29.589541Z","iopub.status.idle":"2022-06-05T11:26:32.050434Z","shell.execute_reply.started":"2022-06-05T11:26:29.589494Z","shell.execute_reply":"2022-06-05T11:26:32.049535Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"## Regularization","metadata":{}},{"cell_type":"markdown","source":"### - Max_depth","metadata":{}},{"cell_type":"code","source":"# Create list of hyperparameters \nmax_depth = [5,10,12,20,30]\nparam_grid = {'max_depth': max_depth}\n\n# Use Grid search CV to find best parameters \nprint(\"starting DTC grid search.. \")\ndtc = DecisionTreeClassifier()\nclf = GridSearchCV(estimator = dtc, param_grid = param_grid, scoring = 'roc_auc')\nclf.fit(X_train, y_train)\nprint(\"Best Score: \")\nprint(clf.best_score_)\nprint(\"Best Estimator: \")\nprint(clf.best_estimator_)","metadata":{"execution":{"iopub.status.busy":"2022-06-06T03:57:05.598284Z","iopub.execute_input":"2022-06-06T03:57:05.598772Z","iopub.status.idle":"2022-06-06T03:57:40.246504Z","shell.execute_reply.started":"2022-06-06T03:57:05.598736Z","shell.execute_reply":"2022-06-06T03:57:40.245746Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"### - Cross validation : KFold","metadata":{}},{"cell_type":"markdown","source":"To avoid overfitting","metadata":{}},{"cell_type":"code","source":"# Iterate over different levels of max depth and set up k-fold\nfor max_depth_val in [ 5, 10, 12,20,30]:\n    k_fold = KFold(n_splits = 8, random_state = 0, shuffle=True)\n    clf = DecisionTreeClassifier(max_depth = max_depth_val)\n    print(\"Evaluating Decision Tree for max_depth = %s\" %(max_depth_val))\n    y_pred = clf.fit(X_train, y_train).predict(X_test) \n  \n  # Calculate precision for cross validation and test\n    cv_precision = cross_val_score(clf, X_train, y_train, cv = k_fold, scoring = 'precision_weighted')\n    precision = precision_score(y_test, y_pred, average = 'weighted')\n    print(\"Cross validation Precision: %s\" %(cv_precision))\n    print(\"Test Precision: %s\" %(precision))","metadata":{"execution":{"iopub.status.busy":"2022-06-06T03:57:50.893585Z","iopub.execute_input":"2022-06-06T03:57:50.894019Z","iopub.status.idle":"2022-06-06T03:58:59.196053Z","shell.execute_reply.started":"2022-06-06T03:57:50.893982Z","shell.execute_reply":"2022-06-06T03:58:59.195061Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"## Final","metadata":{}},{"cell_type":"code","source":"clf = DecisionTreeClassifier(max_depth = 10)\nclf.fit(X,y.values.ravel())","metadata":{"execution":{"iopub.status.busy":"2022-06-06T04:00:43.288606Z","iopub.execute_input":"2022-06-06T04:00:43.289252Z","iopub.status.idle":"2022-06-06T04:00:45.515648Z","shell.execute_reply.started":"2022-06-06T04:00:43.289203Z","shell.execute_reply":"2022-06-06T04:00:45.51458Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"y_pred = clf.predict(X)\nprint(\"Roc_auc_score: \",roc_auc_score(y,y_pred)*100,\"%\")","metadata":{"execution":{"iopub.status.busy":"2022-06-06T04:00:49.455235Z","iopub.execute_input":"2022-06-06T04:00:49.456389Z","iopub.status.idle":"2022-06-06T04:00:49.593952Z","shell.execute_reply.started":"2022-06-06T04:00:49.456346Z","shell.execute_reply":"2022-06-06T04:00:49.592624Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"#predict\nsubmission = pd.read_csv(samplesubmision_file, compression='gzip', index_col='id')\nsubmission[submission.columns[0]] = clf.predict(test)\nsubmission.to_csv('submission_pred.csv')","metadata":{"execution":{"iopub.status.busy":"2022-06-06T04:00:58.2983Z","iopub.execute_input":"2022-06-06T04:00:58.29872Z","iopub.status.idle":"2022-06-06T04:01:22.539581Z","shell.execute_reply.started":"2022-06-06T04:00:58.298688Z","shell.execute_reply":"2022-06-06T04:01:22.538836Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"#predict_proba\nsubmission = pd.read_csv(samplesubmision_file, compression='gzip', index_col='id')\nsubmission[submission.columns[0]] = clf.predict_proba(test)[:,1]\nsubmission.to_csv('submission_prob.csv')","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"submission.sample(40)","metadata":{"execution":{"iopub.status.busy":"2022-06-06T04:44:37.777301Z","iopub.execute_input":"2022-06-06T04:44:37.777939Z","iopub.status.idle":"2022-06-06T04:44:37.859273Z","shell.execute_reply.started":"2022-06-06T04:44:37.777848Z","shell.execute_reply":"2022-06-06T04:44:37.858142Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"","metadata":{},"execution_count":null,"outputs":[]}]}