diff --git a/Untitled.ipynb b/Untitled.ipynb new file mode 100644 index 0000000..54c84e2 --- /dev/null +++ b/Untitled.ipynb @@ -0,0 +1,126 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "id": "a914d431-18c5-4055-a09e-1262dfb48ff9", + "metadata": { + "execution": { + "iopub.execute_input": "2025-09-24T04:08:33.164002Z", + "iopub.status.busy": "2025-09-24T04:08:33.163761Z", + "iopub.status.idle": "2025-09-24T04:08:35.375599Z", + "shell.execute_reply": "2025-09-24T04:08:35.374666Z", + "shell.execute_reply.started": "2025-09-24T04:08:33.163978Z" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "모델 학습이 완료되었습니다.\n", + "X (피처 데이터):\n", + " age income city\n", + "0 25 50000 Seoul\n", + "1 34 75000 Busan\n", + "2 45 120000 Seoul\n", + "3 23 45000 Jeju\n", + "4 56 90000 Busan\n", + "\n", + "y (타겟 데이터):\n", + "[0 1 1 0 1]\n" + ] + } + ], + "source": [ + "import pandas as pd\n", + "import numpy as np\n", + "import xgboost as xgb\n", + "\n", + "# 모델 정의 (제공된 모델 파라미터 사용)\n", + "model = xgb.XGBClassifier(\n", + " device='cuda',\n", + " tree_method='hist',\n", + " enable_categorical=True,\n", + " eval_metric='aucpr',\n", + " objective='binary:logistic',\n", + " max_depth=3,\n", + " n_estimators=5\n", + ")\n", + "\n", + "# 1. 샘플 데이터 X 생성\n", + "# 숫자형(수치형) 피처 'age'와 'income'\n", + "# 범주형 피처 'city'를 포함합니다.\n", + "# enable_categorical=True 설정에 맞춰 'city' 열을 'category' dtype으로 지정합니다.\n", + "data = {\n", + " 'age': [25, 34, 45, 23, 56],\n", + " 'income': [50000, 75000, 120000, 45000, 90000],\n", + " 'city': ['Seoul', 'Busan', 'Seoul', 'Jeju', 'Busan']\n", + "}\n", + "X = pd.DataFrame(data)\n", + "X['city'] = X['city'].astype('category')\n", + "\n", + "# 2. 샘플 타겟 데이터 y 생성\n", + "# 이진 분류를 위한 레이블 (0 또는 1)\n", + "y = np.array([0, 1, 1, 0, 1])\n", + "\n", + "# 3. 모델 학습\n", + "# model.fit(X, y)를 사용하여 모델에 데이터 주입\n", + "model.fit(X, y)\n", + "\n", + "print(\"모델 학습이 완료되었습니다.\")\n", + "print(\"X (피처 데이터):\")\n", + "print(X)\n", + "print(\"\\ny (타겟 데이터):\")\n", + "print(y)" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "08df20fd-1f32-42e6-839b-1301df4d9bfe", + "metadata": { + "execution": { + "iopub.execute_input": "2025-09-24T04:08:37.983399Z", + "iopub.status.busy": "2025-09-24T04:08:37.982660Z", + "iopub.status.idle": "2025-09-24T04:08:38.002455Z", + "shell.execute_reply": "2025-09-24T04:08:38.000715Z", + "shell.execute_reply.started": "2025-09-24T04:08:37.983337Z" + } + }, + "outputs": [], + "source": [ + "model.save_model('xgboost.json')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "d57d4529-1e88-4214-9efe-4633bd388f1a", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "torch2.8.0-py3.12-cuda12.8", + "language": "python", + "name": "torch2.8.0-py3.12-cuda12.8" + }, + "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.12.3" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +}