{"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":true,"language":"python","sourceType":"notebook","isGpuEnabled":false}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"code","source":"# [분류] 신용카드 사기 거래를 탐지\n# 예측할 값(y): Class (0:Not fraud, 1:fraud)\n# 평가: roc-auc 평가지표, 제출 형식 (fraud의 확률값)\n# id,Class \n# 0,0.3\n# 1,0.48\n# 2,0.3\n# 3,0.83\n\nimport numpy as np\nimport pandas as pd\n\nimport os\nfor dirname, _, filenames in os.walk('/kaggle/input'):\n    for filename in filenames:\n        print(os.path.join(dirname, filename))\n\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')\n# print(train.info())\nprint(train.head(1))\n# print(test.info())\nprint(test.head(1))\nprint(train.shape, test.shape) # (170883, 32) (113923, 31) # 타겟값 Class","metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","execution":{"iopub.status.busy":"2024-05-28T08:05:55.293734Z","iopub.execute_input":"2024-05-28T08:05:55.294192Z","iopub.status.idle":"2024-05-28T08:05:59.970789Z","shell.execute_reply.started":"2024-05-28T08:05:55.294156Z","shell.execute_reply":"2024-05-28T08:05:59.967671Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# print(train.describe().T)\n# print(train.describe().T)","metadata":{"execution":{"iopub.status.busy":"2024-05-28T08:05:59.972644Z","iopub.execute_input":"2024-05-28T08:05:59.973000Z","iopub.status.idle":"2024-05-28T08:05:59.978547Z","shell.execute_reply.started":"2024-05-28T08:05:59.972971Z","shell.execute_reply":"2024-05-28T08:05:59.977155Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"#target(y, label) 값 복사\ntarget = train.pop('Class')\n\n# 모델학습에 의미없는 변수 제거\ntrain = train.drop(\"id\", axis=1)  \n#test데이터 ID 복사\ntest_ID = test.pop('id')","metadata":{"execution":{"iopub.status.busy":"2024-05-28T08:06:00.274966Z","iopub.execute_input":"2024-05-28T08:06:00.275377Z","iopub.status.idle":"2024-05-28T08:06:00.304588Z","shell.execute_reply.started":"2024-05-28T08:06:00.275348Z","shell.execute_reply":"2024-05-28T08:06:00.303449Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"from sklearn.model_selection import train_test_split\nX_train, X_val, y_train, y_val = train_test_split(train,target,test_size=0.2,random_state=0)\nprint(X_train.shape, X_val.shape, y_train.shape, y_val.shape)\n\nfrom sklearn.ensemble import RandomForestClassifier\nrf = RandomForestClassifier()\nrf.fit(X_train,y_train)\n\npred = rf.predict_proba(X_val)\nprint(pred[:5]) \n\nfrom sklearn.metrics import roc_auc_score\nroc_auc_score = roc_auc_score(y_val,pred[:,1])\nprint(roc_auc_score) # 0.9260571941075735\n\npred = rf.predict_proba(test)\nsubmit = pd.DataFrame({'id':test_ID,'Class':pred[:,1]})\nsubmit.to_csv('result.csv',index=False)","metadata":{"execution":{"iopub.status.busy":"2024-05-28T08:06:01.744570Z","iopub.execute_input":"2024-05-28T08:06:01.745047Z","iopub.status.idle":"2024-05-28T08:08:17.847711Z","shell.execute_reply.started":"2024-05-28T08:06:01.745012Z","shell.execute_reply":"2024-05-28T08:08:17.846237Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"pred = rf.predict_proba(test)\nsubmit = pd.DataFrame({'id':test_ID,'Class':pred[:,1]})\nsubmit.to_csv('result.csv',index=False)","metadata":{"execution":{"iopub.status.busy":"2024-05-28T08:10:34.230494Z","iopub.execute_input":"2024-05-28T08:10:34.231031Z","iopub.status.idle":"2024-05-28T08:10:35.473909Z","shell.execute_reply.started":"2024-05-28T08:10:34.230990Z","shell.execute_reply":"2024-05-28T08:10:35.472398Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"","metadata":{},"execution_count":null,"outputs":[]}]}