127 lines
3.5 KiB
Plaintext
127 lines
3.5 KiB
Plaintext
{
|
|
"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
|
|
}
|