{"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","name":"python3"},"language_info":{"name":"python","version":"3.10.13","mimetype":"text/x-python","codemirror_mode":{"name":"ipython","version":3},"pygments_lexer":"ipython3","nbconvert_exporter":"python","file_extension":".py"},"kaggle":{"accelerator":"none","dataSources":[{"sourceId":80687,"databundleVersionId":8672016,"sourceType":"competition"}],"dockerImageVersionId":30698,"isInternetEnabled":false,"language":"python","sourceType":"notebook","isGpuEnabled":false}},"nbformat_minor":4,"nbformat":4,"cells":[{"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\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 read-only \"../input/\" directory\n# For example, running this (by clicking run or pressing Shift+Enter) will list all files under the input directory\n\nimport os\nfor dirname, _, filenames in os.walk('/kaggle/input'):\n    for filename in filenames:\n        print(os.path.join(dirname, filename))\n\n# You can write up to 20GB to the current directory (/kaggle/working/) that gets preserved as output when you create a version using \"Save & Run All\" \n# You can also write temporary files to /kaggle/temp/, but they won't be saved outside of the current session","metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","execution":{"iopub.status.busy":"2024-05-28T01:41:00.512821Z","iopub.execute_input":"2024-05-28T01:41:00.513241Z","iopub.status.idle":"2024-05-28T01:41:00.523164Z","shell.execute_reply.started":"2024-05-28T01:41:00.513210Z","shell.execute_reply":"2024-05-28T01:41:00.521918Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"import pandas as pd\ntrain = pd.read_csv(\"/kaggle/input/big-data-analytics-certification-kr-2024-2/train.csv\")\ntest = pd.read_csv(\"/kaggle/input/big-data-analytics-certification-kr-2024-2/test.csv\")","metadata":{"execution":{"iopub.status.busy":"2024-05-28T01:41:00.525708Z","iopub.execute_input":"2024-05-28T01:41:00.526778Z","iopub.status.idle":"2024-05-28T01:41:03.028664Z","shell.execute_reply.started":"2024-05-28T01:41:00.526715Z","shell.execute_reply":"2024-05-28T01:41:03.027601Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"print(train.head(2))\nprint(test.head(2))","metadata":{"execution":{"iopub.status.busy":"2024-05-28T01:41:03.030068Z","iopub.execute_input":"2024-05-28T01:41:03.030408Z","iopub.status.idle":"2024-05-28T01:41:03.052754Z","shell.execute_reply.started":"2024-05-28T01:41:03.030379Z","shell.execute_reply":"2024-05-28T01:41:03.051355Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# 1) EDA\nprint(train.shape, test.shape)\n# print(train.info())\n# print('\\n')\n# print(test.info())\n# print(train.isnull().sum())\n# print(test.isnull().sum())\n# print(train.describe())\n# print(test.describe())\n# print(train['Class'].value_counts())\n\n# 2) 타켓값 빼두기, id컬럼 삭제, 테스트 id pop\ntarget=train.pop('Class')\ntrain=train.drop('id',axis=1)\ntest_id=test.pop('id')\nprint(train.shape, test.shape)","metadata":{"execution":{"iopub.status.busy":"2024-05-28T01:41:03.054593Z","iopub.execute_input":"2024-05-28T01:41:03.055059Z","iopub.status.idle":"2024-05-28T01:41:03.088163Z","shell.execute_reply.started":"2024-05-28T01:41:03.055021Z","shell.execute_reply":"2024-05-28T01:41:03.087111Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# 3)수치형 변수라 따로 인코딩하지않음\n\n# 4) 검증데이터 분리하기\nfrom sklearn.model_selection import train_test_split\nx_tr,x_val, y_tr, y_val= train_test_split(train,target, test_size=0.2, random_state=2024, stratify=target)\nx_tr.shape, x_val.shape, y_tr.shape, y_val.shape\n\n#5) 모델학습하기 & 예측하기\nfrom sklearn.ensemble import RandomForestClassifier\nmodel=RandomForestClassifier(random_state=2024)\nmodel.fit(x_tr, y_tr)\npred=model.predict(x_val)\npred_proba=model.predict_proba(x_val)\n\nfrom sklearn.metrics import roc_auc_score, accuracy_score\nprint(roc_auc_score(y_val, pred_proba[:,1]))\nprint(accuracy_score(y_val, pred))\n","metadata":{"execution":{"iopub.status.busy":"2024-05-28T01:41:03.090400Z","iopub.execute_input":"2024-05-28T01:41:03.090766Z","iopub.status.idle":"2024-05-28T01:43:11.938585Z","shell.execute_reply.started":"2024-05-28T01:41:03.090737Z","shell.execute_reply":"2024-05-28T01:43:11.937321Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"#6) 테스트데이터로 예측값생성, csv파일생성\nresult=model.predict_proba(test)[:,1]\n# print(result)\npd.DataFrame({'id':test_id,'Class':result}).to_csv('submission.csv',index=False)\nprint(pd.read_csv('submission.csv'))","metadata":{"execution":{"iopub.status.busy":"2024-05-28T01:47:43.572365Z","iopub.execute_input":"2024-05-28T01:47:43.572749Z","iopub.status.idle":"2024-05-28T01:47:44.801610Z","shell.execute_reply.started":"2024-05-28T01:47:43.572720Z","shell.execute_reply":"2024-05-28T01:47:44.800445Z"},"trusted":true},"execution_count":null,"outputs":[]}]}