{
"cells": [
{
"cell_type": "markdown",
"id": "8c74636d",
"metadata": {},
"source": [
"# 🏢 Hệ thống Dự đoán Số lượng Nhân sự theo Ca làm việc\n",
"\n",
"## Mục tiêu\n",
"Dự đoán số lượng nhân sự cần thiết cho mỗi ca làm việc dựa trên:\n",
"- Đặc điểm tòa nhà (diện tích, số tầng, thiết bị...)\n",
"- Thông tin ca làm việc (giờ bắt đầu, độ dài ca...)"
]
},
{
"cell_type": "markdown",
"id": "088f821d",
"metadata": {},
"source": [
"## 1. Import thư viện và load module"
]
},
{
"cell_type": "code",
"execution_count": 36,
"id": "5c52f1f4",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"✅ Đã import thành công!\n"
]
}
],
"source": [
"from predict_staff import StaffPredictor\n",
"import pandas as pd\n",
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"import seaborn as sns\n",
"\n",
"# Cấu hình hiển thị\n",
"pd.set_option('display.max_columns', None)\n",
"plt.style.use('ggplot')\n",
"sns.set_palette(\"husl\")\n",
"\n",
"print(\"✅ Đã import thành công!\")"
]
},
{
"cell_type": "code",
"execution_count": 37,
"id": "0b8ad84f",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"✅ Đã reload module predict_staff!\n"
]
}
],
"source": [
"# Reload module để nhận thay đổi mới\n",
"import importlib\n",
"import predict_staff\n",
"importlib.reload(predict_staff)\n",
"from predict_staff import StaffPredictor\n",
"\n",
"print(\"✅ Đã reload module predict_staff!\")"
]
},
{
"cell_type": "markdown",
"id": "11ed9063",
"metadata": {},
"source": [
"## 2. Khởi tạo và Load dữ liệu"
]
},
{
"cell_type": "code",
"execution_count": 38,
"id": "95651ffb",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"📂 Đang đọc dữ liệu...\n",
"✅ Đã đọc 8 tòa nhà\n",
"✅ Đã đọc 31 records ca làm việc\n",
"\n",
"📊 Thống kê dữ liệu:\n",
" - Số tòa nhà: 8\n",
" - Số records ca làm việc: 31\n",
" - Số ca làm việc unique: 28\n"
]
}
],
"source": [
"# Khởi tạo predictor\n",
"predictor = StaffPredictor()\n",
"\n",
"# Load dữ liệu\n",
"building_df, shift_df = predictor.load_data()\n",
"\n",
"print(f\"\\n📊 Thống kê dữ liệu:\")\n",
"print(f\" - Số tòa nhà: {len(building_df)}\")\n",
"print(f\" - Số records ca làm việc: {len(shift_df)}\")\n",
"print(f\" - Số ca làm việc unique: {shift_df['Ca'].nunique()}\")"
]
},
{
"cell_type": "markdown",
"id": "5e289617",
"metadata": {},
"source": [
"## 3. Khám phá dữ liệu"
]
},
{
"cell_type": "code",
"execution_count": 26,
"id": "11b26770",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"🏢 Dữ liệu tòa nhà:\n"
]
},
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" Mã địa điểm | \n",
" Loại hình | \n",
" Tổng Giờ hoạt động của khách hàng mỗi tuần | \n",
" Lưu lượng KH hoạt động ngày tại Tòa tháp | \n",
" Diện tích ngoại cảnh Tòa tháp (m2) | \n",
" Số tòa tháp | \n",
" Số tầng nổi | \n",
" Số tầng hầm | \n",
" Tầng hầm (m2) | \n",
" Sàn Sảnh (m2) | \n",
" Sàn Hành lang (m2) | \n",
" Sàn WC (m2) | \n",
" Sàn Phòng (m2) | \n",
" Thảm (m2) | \n",
" Dốc hầm (m) | \n",
" Viền phản quang (m) | \n",
" Ốp tường (m2) | \n",
" Ốp chân tường (m2) | \n",
" Rãnh thoát nước (m) | \n",
" Kính (m2) | \n",
" Thang máy | \n",
" Thang bộ | \n",
"
\n",
" \n",
" \n",
" \n",
" | 0 | \n",
" 559-1 | \n",
" 3 | \n",
" 168 | \n",
" 3 | \n",
" 400 | \n",
" 2 | \n",
" 59 | \n",
" 2 | \n",
" 2480 | \n",
" 492 | \n",
" 5637 | \n",
" 214 | \n",
" 15 | \n",
" 0 | \n",
" 5 | \n",
" 350 | \n",
" 822 | \n",
" 0 | \n",
" 3 | \n",
" 56 | \n",
" 268 | \n",
" 128 | \n",
"
\n",
" \n",
" | 1 | \n",
" 618-1 | \n",
" 3 | \n",
" 168 | \n",
" 1 | \n",
" 2750 | \n",
" 1 | \n",
" 22 | \n",
" 4 | \n",
" 6800 | \n",
" 9223 | \n",
" 2384 | \n",
" 194 | \n",
" 177 | \n",
" 6 | \n",
" 6 | \n",
" 850 | \n",
" 684 | \n",
" 1151 | \n",
" 11 | \n",
" 701 | \n",
" 113 | \n",
" 44 | \n",
"
\n",
" \n",
" | 2 | \n",
" 283-1 | \n",
" 3 | \n",
" 168 | \n",
" 2 | \n",
" 4610 | \n",
" 1 | \n",
" 15 | \n",
" 1 | \n",
" 2200 | \n",
" 1890 | \n",
" 1490 | \n",
" 382 | \n",
" 62 | \n",
" 59 | \n",
" 400 | \n",
" 0 | \n",
" 0 | \n",
" 100 | \n",
" 275 | \n",
" 770 | \n",
" 61 | \n",
" 30 | \n",
"
\n",
" \n",
" | 3 | \n",
" 337-1 | \n",
" 3 | \n",
" 54 | \n",
" 2 | \n",
" 3000 | \n",
" 3 | \n",
" 60 | \n",
" 6 | \n",
" 4000 | \n",
" 900 | \n",
" 7080 | \n",
" 2585 | \n",
" 40 | \n",
" 4 | \n",
" 4 | \n",
" 0 | \n",
" 3520 | \n",
" 1060 | \n",
" 200 | \n",
" 1170 | \n",
" 20 | \n",
" 12 | \n",
"
\n",
" \n",
" | 4 | \n",
" 55-1 | \n",
" 3 | \n",
" 54 | \n",
" 3 | \n",
" 6800 | \n",
" 1 | \n",
" 24 | \n",
" 2 | \n",
" 4800 | \n",
" 1217 | \n",
" 541 | \n",
" 671 | \n",
" 30 | \n",
" 2226 | \n",
" 5 | \n",
" 450 | \n",
" 0 | \n",
" 2240 | \n",
" 650 | \n",
" 25 | \n",
" 148 | \n",
" 56 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" Mã địa điểm Loại hình Tổng Giờ hoạt động của khách hàng mỗi tuần \\\n",
"0 559-1 3 168 \n",
"1 618-1 3 168 \n",
"2 283-1 3 168 \n",
"3 337-1 3 54 \n",
"4 55-1 3 54 \n",
"\n",
" Lưu lượng KH hoạt động ngày tại Tòa tháp \\\n",
"0 3 \n",
"1 1 \n",
"2 2 \n",
"3 2 \n",
"4 3 \n",
"\n",
" Diện tích ngoại cảnh Tòa tháp (m2) Số tòa tháp Số tầng nổi Số tầng hầm \\\n",
"0 400 2 59 2 \n",
"1 2750 1 22 4 \n",
"2 4610 1 15 1 \n",
"3 3000 3 60 6 \n",
"4 6800 1 24 2 \n",
"\n",
" Tầng hầm (m2) Sàn Sảnh (m2) Sàn Hành lang (m2) Sàn WC (m2) \\\n",
"0 2480 492 5637 214 \n",
"1 6800 9223 2384 194 \n",
"2 2200 1890 1490 382 \n",
"3 4000 900 7080 2585 \n",
"4 4800 1217 541 671 \n",
"\n",
" Sàn Phòng (m2) Thảm (m2) Dốc hầm (m) Viền phản quang (m) \\\n",
"0 15 0 5 350 \n",
"1 177 6 6 850 \n",
"2 62 59 400 0 \n",
"3 40 4 4 0 \n",
"4 30 2226 5 450 \n",
"\n",
" Ốp tường (m2) Ốp chân tường (m2) Rãnh thoát nước (m) Kính (m2) \\\n",
"0 822 0 3 56 \n",
"1 684 1151 11 701 \n",
"2 0 100 275 770 \n",
"3 3520 1060 200 1170 \n",
"4 0 2240 650 25 \n",
"\n",
" Thang máy Thang bộ \n",
"0 268 128 \n",
"1 113 44 \n",
"2 61 30 \n",
"3 20 12 \n",
"4 148 56 "
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Xem dữ liệu tòa nhà\n",
"print(\"🏢 Dữ liệu tòa nhà:\")\n",
"display(building_df.head())"
]
},
{
"cell_type": "code",
"execution_count": 27,
"id": "2aa419f9",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"⏰ Dữ liệu ca làm việc:\n"
]
},
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" Mã địa điểm | \n",
" Ca | \n",
" Number | \n",
"
\n",
" \n",
" \n",
" \n",
" | 0 | \n",
" 559-1 | \n",
" 14h00:22h00 | \n",
" 4 | \n",
"
\n",
" \n",
" | 1 | \n",
" 559-1 | \n",
" 15h00:18h00 | \n",
" 2 | \n",
"
\n",
" \n",
" | 2 | \n",
" 559-1 | \n",
" 15h00:21h00 | \n",
" 1 | \n",
"
\n",
" \n",
" | 3 | \n",
" 559-1 | \n",
" 6h00:10h00 | \n",
" 1 | \n",
"
\n",
" \n",
" | 4 | \n",
" 559-1 | \n",
" 6h00:14h00 | \n",
" 4 | \n",
"
\n",
" \n",
" | 5 | \n",
" 559-1 | \n",
" 6h00:15h00 | \n",
" 4 | \n",
"
\n",
" \n",
" | 6 | \n",
" 618-1 | \n",
" 6h30-14h30 | \n",
" 5 | \n",
"
\n",
" \n",
" | 7 | \n",
" 618-1 | \n",
" 13h30-21h30 | \n",
" 3 | \n",
"
\n",
" \n",
" | 8 | \n",
" 618-1 | \n",
" 14h30-21h30 | \n",
" 1 | \n",
"
\n",
" \n",
" | 9 | \n",
" 618-1 | \n",
" 6h30-18h30 | \n",
" 1 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" Mã địa điểm Ca Number\n",
"0 559-1 14h00:22h00 4\n",
"1 559-1 15h00:18h00 2\n",
"2 559-1 15h00:21h00 1\n",
"3 559-1 6h00:10h00 1\n",
"4 559-1 6h00:14h00 4\n",
"5 559-1 6h00:15h00 4\n",
"6 618-1 6h30-14h30 5\n",
"7 618-1 13h30-21h30 3\n",
"8 618-1 14h30-21h30 1\n",
"9 618-1 6h30-18h30 1"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
"📈 Thống kê số nhân sự:\n",
"count 31.000000\n",
"mean 5.129032\n",
"std 5.129925\n",
"min 1.000000\n",
"25% 1.000000\n",
"50% 4.000000\n",
"75% 6.000000\n",
"max 25.000000\n",
"Name: Number, dtype: float64\n"
]
}
],
"source": [
"# Xem dữ liệu ca làm việc\n",
"print(\"⏰ Dữ liệu ca làm việc:\")\n",
"display(shift_df.head(10))\n",
"\n",
"print(\"\\n📈 Thống kê số nhân sự:\")\n",
"print(shift_df['Number'].describe())"
]
},
{
"cell_type": "code",
"execution_count": 28,
"id": "d9304340",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAABKUAAAHqCAYAAADVi/1VAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAACF70lEQVR4nOzdeVwV1f/H8feFCwIiiwoC4oIouOWWlanlkraaSplbfrW0UjHLyiwzU0sts7Q9v5WpLZpLLi1uuaS5lJWVKVpuuOOGiKjIBeb3R1/uzxuIcLnce4HX8/Hg8WBmzsz5zDnDncNn5s6YDMMwBAAAAAAAADiRh6sDAAAAAAAAQNlDUgoAAAAAAABOR1IKAAAAAAAATkdSCgAAAAAAAE5HUgoAAAAAAABOR1IKAAAAAAAATkdSCgAAAAAAAE5HUgoAAAAAAABOR1IKAAAAAAAATmd2dQBAaXD69GktWrRI58+fV9euXVWjRg1XhwQAAACgDNiyZYvWrFmj8PBw3XLLLcrKytKMGTM0YsQI+fn5uTo8IF/cKQUU0YkTJ1S3bl09/PDDGjZsmBo3bqzjx4+7OiyHWrFihTw8PPTqq6+6OhQAAIASb9u2bfL19dXgwYNLdZ0ofvv27VPr1q01cuRIPfDAA6pWrZqioqK0ZcsWElIoEUhKAUVUvnx5rV27Vunp6frjjz908eJFWSwWV4flMMePH1ffvn314IMPasSIEa4OJ5eNGzfK09NTNWrUUGpqqqvDgQN99913KleunB5++GFXh1Isdu/erSpVqujGG29URkaGq8MBgBLj5ZdflslkUlxcnKtDscuFCxfUs2dP3XzzzXr77bdLbZ2FsWfPHvn7+yswMFAHDx50dTglSpUqVfTnn3/q0qVLSk1N1b59+5SYmKilS5e6OjSgQEhKAXbIysrSTTfdJA8PD916662qW7eu9u/fr8GDB2vx4sWKjIx0dYh2W758uTw9PeXp6alvv/1W3333nfr27atp06YVW501a9ZUzZo1C71eWlqa+vbtq27dusnLy0tDhw51fHAlxPfffy+TyaSxY8e6OhSH6dixo2bNmqXp06frww8/dHU4+bLnGK5Tp46WL1+uhIQExcfHF09gAOCGEhMTZTKZ9MADDxR63d9//11jx47Vk08+qWXLlmnGjBmODzAP9o5VJOmPP/6Qr6+vPDw89N5772n9+vVq166d5s+fL7O5eJ6m4oo627ZtK5PJVOj1srKy1LdvX1133XVq0KCB+vXrJ8MwiiHC0ql8+fKKjY3VjBkzFBgYqHr16un06dN5li3K3x5QXEhKoUwymUyF+pk5c6bN+i+88IL279+vzZs36+DBg3r++ee1adMmPf7447rjjjtcs1MOcPToUfXt21djx47V2LFj1a9fP7Vr106TJ0+Wl5eXq8PL5YknnlBAQIBmzpyphQsXasGCBVq4cKGrwyoWpW0QMXbsWJlMJn3//ff5luvZs6fefPNNDR06VD///LNzgnOipk2basmSJfr888/13nvvuTocALDbv8dOnp6eqly5sm655RZ98cUXDqnj0qVL+s9//qMHHnhAr7/+ut555x09/vjjSkxMdMj2i0NaWpp69Oih3r17a9asWXrqqacUHh6ud999VwEBAaWmzqJ45ZVXdOjQIc2dO1fz58/Xzp07NXXqVFeHVaL8+eefeuKJJ/Txxx+rd+/e6tGjh86dO+fqsIAC4UHnKJPGjBmTa94bb7yhs2fP6vHHH1dQUJDNsiZNmlh/3717t9atW6dvv/1WjRs31tKlSzV48GA98MADqlu3bjFHXrzefvtt9e7dW6NHj5YknTlzRm+++aZbPksqJSVFkZGReu655+Tr66tGjRpp4cKF2rNnj6tDs8vEiRPVuXNnNWzY0NWhuJ2hQ4cqICBAf/75p6677jpXh+Nwbdu21TfffKOffvpJly5dUrly5VwdEgDYLWeMZbFY9Ndff2nx4sVas2aNfv31V02ePLlI2965c6d69eql4cOHS5IeeughZWVlaceOHXbfxVTcPv74Y1177bWaNm2avLy8lJSUpClTpmjGjBny8Cie+wNcUae9LBaLTCaTvvrqK4WGhkqSlixZorVr1yorK0uenp4ujrBw3n33XTVu3FitW7d2Wp2GYWjKlCl64YUX9MADD6hPnz568MEH9dFHH+mJJ56wKVu1alXt3LlTgYGBTosPuBqTwb2RgKR/bss+cOCA9u/f77YDm9Iqp73d+UpncbvuuuvUrVs3PfPMM3kuT0xMVFRUlPr165frzj3pn6/vtWvXTmPGjCkRX+EbO3asxo0bp7Vr16pt27auDqfIOIYBlHU5X9v6978Wq1evVseOHWUymbRv3z7VqFHjquc0d8Tn/NW1bdtW69atK9Nf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LrvQWKFCBUVHR+vIkSPavXt3ruV5jZcKq0WLFjIMQytXrrxq2T179qhixYq5ElISYxvkj6QUUECtWrVSbGysNmzYoAULFtgsW7BggdavX6+YmJg8nwdVmDqio6O1du1aLVu2zGbZBx98UODnSUnS9u3blZiYmGt+zt1WPj4+1nn9+/eXJI0cOVIXLlywzr9w4YKeffZZSdKAAQMKXHdxq1mzpqT/P9nmWLFihT766KNirbsw7dq8eXN5eHho9uzZNu2anJxsvU28oIKDg2UymfIcENnDbDZr6NChOnbsmB577LFczzOS/rnClpCQYJ3OOU7Gjx+vkydPWudnZWVp+PDhys7OLvBxUqlSJUl5D/AiIyPVsWNHJSYm6o033rBZ9tNPP2n27NkKDg5WXFycdX7NmjW1e/dum2cVGIahcePG2eyDu3DlMQwAJZG7fM6PHDnS5itIycnJGj9+vCTpwQcftM531Dlz//792rFjR675Z86c0aVLl/IczzniPO0MVzoX/vbbb3r55ZeLte7CtGvdunUVEBCgJUuW2DzO4uLFi3rssceKNc6r6d+/vwzD0NNPP21zoe/UqVPWZ4bmHBf2GDp0qCTpqaeest55dbnL/x5r1qyp5ORkbdu2zabM9OnTtWLFCrtjQOnH1/eAAjKZTJo1a5Y6duyoHj16qEuXLqpbt67++usvLV68WBUqVNAnn3xivcXXHh4eHvroo490++23q3Pnzrr33nsVHR2tbdu26bvvvtMdd9yhZcuWFaiOVatW6cknn1TLli1Vt25dhYaG6vDhw1qyZIlMJpOefvppa9nevXtryZIlmjdvnho0aKCuXbvKZDJp8eLF2r9/v7p3767777/f7v1ytPj4eM2YMUPdu3fXvffeq6pVq2r79u1avny5unfvrrlz5xZb3YVp1/DwcPXt21czZ85UkyZNdNdddyk1NVVLly7VzTffbPNA1Kvx9/fXDTfcoPXr16tPnz6qU6eOPD091blzZzVq1MiufRk9erT++OMPTZs2TV9//bXat2+vqlWr6sSJE9q9e7c2btyoCRMmqH79+pKkli1basSIEXr11VfVsGFDdevWTeXLl9eyZcu0fft2tW7d2mb/89OuXTt5eHho5MiR+vPPP61XIZ9//nlJ0rRp09SqVSs9/fTTWrlypZo3b65Dhw5p/vz58vDw0IwZM2we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h2v27Nn68ssvFRoaqn79+ummm25yWgwAAKDssDsplZCQoGXLlunIkSPKyMiwWWYymfT2228XOTgAAICyaOnSpcrMzNSHH36oIUOGaNeuXUpLS1OFChV0zTXXqGHDhsVW97XXXqtrr7222LYPAACQw66k1K5du/TSSy+pfv36OnLkiJo0aaKLFy/q77//VpUqVRQbG+voOAEAAMqMUaNG6cKFC3rwwQc1adIkSZKHh4eys7O1ePFiNWvWTE899ZTMZm56BwAAJZddI5l58+apbdu2evjhh9WrVy/16NFDtWrV0oEDBzRx4kRdf/31jo4TAACgTHn66aclSffff7/atm2rgIAApaam6vvvv9cXX3yhBQsWqGfPni6OEgAAwH4e9qx06NAhm8RTdna2JKlGjRq699579eWXXzomOgAAgDLKw8ND9957rzp37qyAgABJUkBAgDp37qyuXbtqw4YNkqRTp04pKyvLlaECAADYxa6k1KVLl+Tj4yMPDw+ZzWadO3fOuiwiIkKHDx92WIAAAABl0enTp1WvXr08l9WrV0/JycnKzs7WkCFDdODAASdHBwAAUHR2JaUqV66ss2fPSpIiIyO1detW67KEhAT5+/s7JjoAAIAyKiAgQAcPHsxz2cGDBxUQECAPDw8NHjxYoaGhTo4OAACg6Ox6plT9+vW1Y8cOtWjRQrfccoumT5+uI0eOyMvLS3/88Yc6derk6DgBAADKlObNm2vevHmqXLmybrjhBuv8n3/+WfPnz1fr1q0lSW3btnVRhAAAAEVjV1Kqe/fuSktLkyTdeuutysjI0A8//CCTyaR77rlH99xzj0ODBAAAKGt69uypv/76S1OmTJGPj4+CgoKUkpKi9PR0Va9eXb169XJ1iAAAAEViV1IqICDA+sBNSerUqRN3RwEAADiQv7+/Jk6cqO+//147duzQuXPnFBUVpYYNG6pNmzby8vJydYgAAABFYldSCgAAAMVnwIABslgsat68uR577DF17NjR1SEBAAA4XIGTUgsWLFD79u1VsWJFLViw4Krl7733Xn355Zfq0KGDgoKCihIjAABAmfLaa68pIyNDw4YN00MPPSQ/Pz9XhwQAAOBwBU5KzZ8/X02aNFHFihU1f/78q5a/5557NH/+fDVr1oykFAAAQCEEBwerR48ekqTJkyfnWcZkMumFF15wZlgAAAAOVeCk1Ny5c/P8vaDrAAAAoOC8vLxUqVIlm3mpqak6evSoAgICFBER4aLIAAAAHKNQz5Q6deqUgoOD5enpWVzxAAAAQNJnn32W5/yjR49q8uTJ6tatm5MjAgAAcKwCJ6Wys7M1ZMgQvfLKK4qKiirOmEqsgE+Wyjhy3NVhlDjpkoJdHUQJRvvZr6htlzy8j6NCAYACi4iI0N13363PP/9cEydOdHU4AAAAditwUmro0KGSpEmTJslsvvpq77zzjv1RAQAA4IpCQ0N16NAhV4cBAABQJB4FLVivXj1JUlRUlOrXr6/s7GwlJycrJCREtWvXVkhIiJKTk2UYhurXr19sAQMAAJR1P/74o4KDuU8WAACUbAW+U2rw4MH64YcfdN999+nw4cP666+/9NZbb6ly5crWMidPntT48eNJSgEAABTRe++9l2teZmamDhw4oMOHD6tPH75CDAAASrYCJ6VMJpP198WLF+u+++6zSUhJUkhIiLp166aFCxeqbdu2DgsSAACgrNmxY0eued7e3goJCVFcXJxat27tgqgAAAAcp8BJKQ8PD40ZM0YRERE6fvy4/Pz88ixXvnx5nThxwmEBAgAAlEXvvvuuq0MAAAAoVgV+ppQk1a9fXz4+PgoJCdGaNWvyLLN69WqFhIQ4JDgAAAAAAACUTgW+U+pyXbt21fvvv6+RI0eqVatWCgoKUkpKijZu3Kh9+/Zp0KBBjo4TAACg1Dt16lShyv/7UQoAAAAliV1JqZznRX3xxRf69NNPrfODgoI0cOBAtWvXrlDbmzdvnhYsWGAzLzAwUB9++KGkf25fX7dunc3yOnXqaMKECdbppKQkffrpp9q1a5cyMzPVuHFj9e/fX0FBQfnWPWPGDO3atUuHDh1S1apVNXny5ELFDgAA4ChDhgwpVPm5c+cWUyQAAADFz66klPRPYqpNmzY6evSozp07pwoVKigiIsLmgeiFUa1aNY0ePdo67eFh+83CJk2aKD4+3jptNv9/6Onp6ZowYYJq1KihMWPGSPonYTZp0iRNmDAh17YuZxiG2rVrpz179ujAgQN2xQ4AAOAIgwcPdnUIAAAATmN3Ukr65418VatWdUggHh4e+d7VZDabr7j8r7/+0okTJzRp0iTrA9jj4+PVv39/bd++XY0aNbridvv37y/pn7u1SEoBAABX4u3FAACgLClSUsqRkpKSNHDgQJnNZtWpU0e9evVSlSpVrMsTEhL00EMPqXz58qpXr5569eqlwMBASZLFYpHJZJKXl5e1vLe3t0wmk3bt2pVvUgoAAAAAAADO5xZJqTp16mjIkCGKiIhQSkqKFi5cqOeff15TpkxRhQoV1LRpU914442qXLmyTpw4oblz5+rFF1/UK6+8Ii8vL8XExKhcuXL6/PPP1atXLxmGoc8//1yGYSglJcXh8VosFlksFuu0yWSSr6+vw+sB4N7s/bpySZez32V1/4uK9rMfbQcAAFC6uEVSqmnTptbfq1evrpiYGA0dOlTr1q1Tp06d1LJlS5vl0dHRio+P19atW3XDDTcoICBATz75pD766CMtW7ZMJpNJrVq1UlRUlPV5UhMnTtTOnTslSSEhIZoyZYrd8S5atMjmwexRUVGaNGmS3dsDUDKFh4e7OgSXCgsLc3UIJRrtZz/aDgAAoHRwi6TUv/n4+Kh69eo6duxYnsuDg4MVEhJis7xx48Z6++23lZqaKk9PT5UvX14PP/ywQkNDJUmDBg1SRkaGJMnT07NI8cXFxalTp07Waa7YAmXTlT6jSjuTyaSwsDAlJSXJMAxXh1Pi0H72c/e2M5vNCgkJcXUYAAAAJYZbJqUsFouOHDmievXq5bn83LlzOn36tIKDg3MtCwgIkCRt375dqampat68uSSpYsWKDovPy8vL5vlVAMomd/yn2JkMwyjzbVAUtJ/9aDsAAIDSochJqdTUVOsdSJerXLlygbfxySefqHnz5qpcubLOnj2rL7/8UhcvXlSbNm2Unp6uefPmqUWLFgoKCtLJkyc1Z84cVahQQddff711G2vXrlXVqlUVEBCgv//+WzNnztRdd92liIiIfOtOSkpSenq6UlJSlJGRocTERElSZGSkzGa3zNkBAIBS5q+//lJsbKyrwwAAAHAqu7MuX375pZYtW6Zz587luXzu3LkF3lZycrLefPNNpaamKiAgQHXq1NGECRMUEhKijIwMHTp0SOvXr9f58+cVHBysBg0aaNiwYTYPFz969Khmz56ttLQ0hYaG6p577tFdd9111bqnTZumhIQE6/SIESMkSe+88471q38AAADFady4cerZs6c6d+5sMz8tLU3ffPONtm/frnPnzikgIEDXXHON7rzzTvn7+7soWgAAAMcocFJq6NCh6tKlizp06KA1a9Zo8eLF6tq1q+bNm6e4uDhJ0vr16+Xt7a0uXboUKohhw4ZdcZm3t7dGjRp11W3cf//9uv/++wtVrySNHTu20OsAAAA40gsvvKD//ve/8vb21u233y7DMHTmzBmNHj1ap06dUtWqVVW5cmWdOXNGX375pdatW6eXXnrJoY8nAAAAcDaPghZ89NFH9emnn0qSVqxYobi4OGsy6vrrr1fPnj31xhtvyNfX94p3TwEAACC3unXravLkyapTp46mTp2qlJQUzZ49WxkZGZowYYKmTJmi0aNHa8qUKZowYYIyMjI0Z84cV4cNAABQJAVOSu3fv9/6+vOkpCTFxMRY3zqXmZkp6Z+7mjp16qRVq1YVQ6gAAACll9ls1gcffKCQkBAFBwfrjz/+UI8ePVS7dm2bcrVr11aPHj30+++/uyZQAAAABylwUurLL7+0PufA09NT0j+vZvb19VVycrK1XIUKFWymAQAAUDDJycnq2rWrJOnChQtXfL5laGioLly44MTIAAAAHK/ASamgoCCtXLlSkhQeHq5Tp05JkqKjo7V69WplZmYqOztbq1atUkhISPFECwAAUIrddtttGjt2rDIyMhQaGqqtW7fmWe63337jhSwAAKDEK/CDzkePHq0tW7ZIkpo0aaKdO3eqbdu2iouL04QJE/Tggw/Kw8ND6enpGjx4cLEFDAAAUFp169ZNNWrU0KVLl9S2bVvNnj1b2dnZatu2rYKCgpSSkqL169dr+fLl6t27t6vDBQAAKJICJ6UCAgLUoUMHSdJ9991nnd+wYUO99NJL2rRpkySpWbNmatiwoYPDBAAAKBuuu+46SVLnzp11/PhxrVixQitWrLApc8stt1gfqwAAAFBSFTgplZ/atWvneghnWZTa905ZLBZXh1GimEwmhYeH69ixYzIMw9XhlDi0n/1oOwDuzmQy6ZFHHlGnTp20fft2paWlyd/fXw0bNlRERISrwwMAACgyhySlAAAAUDwiIiJIQgEAgFKpwEmpcePGFXijJpNJL7zwgl0BAQAAwFZaWpqWLFmiQ4cOqWLFirrjjjtUrVo1V4cFAABQJAVOSiUkJMjX11eVKlUqzngAAADKrE8++USbN2/W+++/b52Xnp6uZ599VidPnrTO27hxo15++WXuoAIAACVagZNSoaGhOnHihPz8/NSuXTu1bNlSPj4+xRkbAABAmfL333+rVatWNvOWL1+ukydP6q677lK3bt10+PBhvf7661q8eLHi4+NdFCkAAEDReRS04Ntvv60xY8aoSpUqmjFjhgYOHKhp06bpr7/+Ks74AAAAyozjx4+rVq1aNvN+/fVXBQQEqE+fPvLz81NMTIw6deqkHTt2uChKAAAAxyjUg87r16+v+vXrq3///tqwYYO+//57vfDCC4qIiFC7du108803KygoqJhCBQAAKN0uXLig4OBg63RWVpb27t2r6667Th4e/38tMSoqSikpKS6IEAAAwHHsevuen5+fbr31Vt166606ePCgvvvuO82ZM0d///23hg8f7ugYAQAAyoTAwECdOXPGOr1//35lZWUpOjrappzJZJLZzEuUAQBAyVbgr+/l5fDhw1q3bp1+/PFHGYbBwzYBAACKoFatWlq9erUMw5Ak/fDDD5Kkhg0b2pQ7cuSIzR1VAAAAJVGhL7Glp6drw4YNWrt2rfbs2aMqVarojjvuUNu2bVWxYsXiiBEAAKBM6NKli0aPHq1hw4apQoUK2r17t+rWrZvnc6b+ffcUAABASVPgpFRCQoLWrFmjn376SZJ0ww036P7771f9+vWLLTgAAICypE6dOhoxYoS++uornTt3Tu3bt9f9999vUyYlJUXJyclq166di6IEAABwjAInpcaNGydfX1/ddNNNatWqlXx9fSVJ+/bty7P8v6/oAQAA4OqaNWumZs2aXXF5UFCQJk+e7MSIAAAAikehvr538eJFrV69WqtXr75q2blz59odFAAAAAAAAEq3AielBg8eXJxxAAAAAAAAoAwpcFKqbdu2xRgGAAAAAAAAyhIPVwcAAAAAAACAsoekFAAAAAAAAJyOpBQAAAAAAACcjqQUAAAAAAAAnI6kFAAAAPK0aNEide/eXTNnznR1KAAAoBQiKQUAAIBc9uzZo1WrVqlGjRquDgUAAJRSJKUAAABgIz09XW+//bYGDhyo8uXLuzocAABQSpGUAgAAgI2PPvpITZs2VaNGjVwdCgAAKMXMrg4AAAAA7mPjxo3av3+/Xn755auWtVgsslgs1mmTySRfX1/r7yaTyfo7HMOetqQf3AP94B7oB/dAP7gHd+gHklIAAACQJJ06dUozZ87UqFGj5O3tfdXyixYt0oIFC6zTUVFRmjRpkkJCQmzKhYWFOSxGT7MLh68u/t/p4NEjejjuPpfUHRQW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qlixoiRp4sSJunTpksu+AldQnTt3tg7knn/+eZ0/f96l8QwfPtz6e7NmzdSsWTMXRnNlGzZs0E8//aSnnnrK1aEAAFCipaWlKSAgIFdCSlKuRFN2drbWrl2rtWvX6sSJE/Lz81OTJk3Uq1cvVapUKd965s2bpwULFuj111/Xl19+qd9++03e3t5q2rSpHnjgAfn5+eVaZ/369Vq0aJFOnjyp8PBw9ezZU9dee611eVJSkhYuXKhdu3YpOTlZ5cuXV1RUlHr37m1zp1TORbrHHntMhw4d0vfff6/09HTVrl1bAwYMuOoFzNTUVM2ZM0e///67zp49K19fX0VEROi+++5To0aNJElDhgxR/fr1NWTIEJt1+/Tpo4yMDL311lvKyMjItx4AjkVSCoDTJCcna/bs2dq2bZsuXLigKlWqqH379rrrrrusA6oTJ07o0UcfVZ8+feTh4aFly5YpNTVV1atXV79+/XIlvFatWqWvv/5aJ0+eVJUqVXTvvffqjz/+UEJCgt59991849m+fbsWLFiggwcPWpNj0dHRGjp0qPXKYlpamhYuXKiff/5ZqampqlSpklq1aqVu3brJy8sr3+2PHTtW586d0+DBg/XJJ59o3759CgoKUocOHdS5c+dcg8jMzEzNmTMn30HYtm3btHz5cu3bt0/nzp1TxYoVdc0116hnz542yT17BpWX279/v+bOnas9e/bowoULqlChgmrWrKlHHnlElSpVsvZTfHy82rZta7Nu9+7d1bJlSzVq1IiBHQAADlCnTh2tWbNGH3/8sW666SZFRUXJbM77X7mPPvpIq1at0u23365mzZrp5MmTmjt3rnbs2KFJkyYV6GLg66+/rpYtW6p9+/Y6ePCg5syZI0mKj4+3Kbd161bt3btX3bt3l4+Pj7766iu99tpreuONN1SlShVJ/4z//P391bt3bwUEBCgtLU3r1q3Tc889p1dffTVXsmnOnDmKjY3VwIEDdfHiRX3++eeaNGmSpk6dmu+dXm+//bb279+vnj17KiIiQufPn9f+/fuVlpZ21f2tVKmSjh07pscff1w33njjVcsDcBySUgCcIjU1Vc8//7wyMzPVo0cPhYSEaOvWrfr00091/PhxPfTQQzblV6xYoapVq+qBBx6QJM2dO1cvv/yy3n33XWtCZdWqVfrggw90ww03qF+/frpw4YLmz5+v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",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Phân bố số nhân sự theo tòa nhà\n",
"plt.figure(figsize=(12, 5))\n",
"\n",
"plt.subplot(1, 2, 1)\n",
"shift_df.groupby('Mã địa điểm')['Number'].sum().sort_values().plot(kind='barh')\n",
"plt.title('Tổng số nhân sự theo tòa nhà')\n",
"plt.xlabel('Tổng số nhân sự')\n",
"\n",
"plt.subplot(1, 2, 2)\n",
"shift_df['Number'].hist(bins=15, edgecolor='black')\n",
"plt.title('Phân bố số nhân sự mỗi ca')\n",
"plt.xlabel('Số nhân sự')\n",
"plt.ylabel('Số lượng ca')\n",
"\n",
"plt.tight_layout()\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"id": "cd7275eb",
"metadata": {},
"source": [
"## 4. Chuẩn bị Features và Train Model"
]
},
{
"cell_type": "code",
"execution_count": 39,
"id": "461ce935",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
"🔧 Chuẩn bị features...\n",
"✅ Đã chuẩn bị 21 features\n",
"📊 Dataset shape: (31, 21)\n",
"\n",
"📊 Shape của dữ liệu:\n",
" X (features): (31, 21)\n",
" y (target): (31,)\n"
]
}
],
"source": [
"# Chuẩn bị features\n",
"X, y, df_full = predictor.prepare_features()\n",
"\n",
"print(f\"\\n📊 Shape của dữ liệu:\")\n",
"print(f\" X (features): {X.shape}\")\n",
"print(f\" y (target): {y.shape}\")"
]
},
{
"cell_type": "code",
"execution_count": 40,
"id": "85bb2ca4",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
"📋 Danh sách các features (21 features):\n",
" 1. Tổng Giờ hoạt động của khách hàng mỗi tuần\n",
" 2. Lưu lượng KH hoạt động ngày tại Tòa tháp\n",
" 3. Diện tích ngoại cảnh Tòa tháp (m2)\n",
" 4. Số tòa tháp\n",
" 5. Số tầng nổi\n",
" 6. Số tầng hầm\n",
" 7. Tầng hầm (m2)\n",
" 8. Sàn Sảnh (m2)\n",
" 9. Sàn Hành lang (m2)\n",
" 10. Sàn WC (m2)\n",
" 11. Sàn Phòng (m2) \n",
" 12. Thảm (m2)\n",
" 13. Kính (m2)\n",
" 14. Thang máy\n",
" 15. Thang bộ\n",
" 16. total_shifts_per_building\n",
" 17. start_hour\n",
" 18. shift_duration\n",
" 19. is_morning\n",
" 20. is_afternoon\n",
" 21. is_evening\n",
"\n",
"🔍 Mẫu dữ liệu features:\n"
]
},
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" Tổng Giờ hoạt động của khách hàng mỗi tuần | \n",
" Lưu lượng KH hoạt động ngày tại Tòa tháp | \n",
" Diện tích ngoại cảnh Tòa tháp (m2) | \n",
" Số tòa tháp | \n",
" Số tầng nổi | \n",
" Số tầng hầm | \n",
" Tầng hầm (m2) | \n",
" Sàn Sảnh (m2) | \n",
" Sàn Hành lang (m2) | \n",
" Sàn WC (m2) | \n",
" Sàn Phòng (m2) | \n",
" Thảm (m2) | \n",
" Kính (m2) | \n",
" Thang máy | \n",
" Thang bộ | \n",
" total_shifts_per_building | \n",
" start_hour | \n",
" shift_duration | \n",
" is_morning | \n",
" is_afternoon | \n",
" is_evening | \n",
"
\n",
" \n",
" \n",
" \n",
" | 0 | \n",
" 168 | \n",
" 3 | \n",
" 400 | \n",
" 2 | \n",
" 59 | \n",
" 2 | \n",
" 2480 | \n",
" 492 | \n",
" 5637 | \n",
" 214 | \n",
" 15 | \n",
" 0 | \n",
" 56 | \n",
" 268 | \n",
" 128 | \n",
" 6 | \n",
" 14 | \n",
" 8.0 | \n",
" 0 | \n",
" 1 | \n",
" 0 | \n",
"
\n",
" \n",
" | 1 | \n",
" 168 | \n",
" 3 | \n",
" 400 | \n",
" 2 | \n",
" 59 | \n",
" 2 | \n",
" 2480 | \n",
" 492 | \n",
" 5637 | \n",
" 214 | \n",
" 15 | \n",
" 0 | \n",
" 56 | \n",
" 268 | \n",
" 128 | \n",
" 6 | \n",
" 15 | \n",
" 3.0 | \n",
" 0 | \n",
" 1 | \n",
" 0 | \n",
"
\n",
" \n",
" | 2 | \n",
" 168 | \n",
" 3 | \n",
" 400 | \n",
" 2 | \n",
" 59 | \n",
" 2 | \n",
" 2480 | \n",
" 492 | \n",
" 5637 | \n",
" 214 | \n",
" 15 | \n",
" 0 | \n",
" 56 | \n",
" 268 | \n",
" 128 | \n",
" 6 | \n",
" 15 | \n",
" 6.0 | \n",
" 0 | \n",
" 1 | \n",
" 0 | \n",
"
\n",
" \n",
" | 3 | \n",
" 168 | \n",
" 3 | \n",
" 400 | \n",
" 2 | \n",
" 59 | \n",
" 2 | \n",
" 2480 | \n",
" 492 | \n",
" 5637 | \n",
" 214 | \n",
" 15 | \n",
" 0 | \n",
" 56 | \n",
" 268 | \n",
" 128 | \n",
" 6 | \n",
" 6 | \n",
" 4.0 | \n",
" 1 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" | 4 | \n",
" 168 | \n",
" 3 | \n",
" 400 | \n",
" 2 | \n",
" 59 | \n",
" 2 | \n",
" 2480 | \n",
" 492 | \n",
" 5637 | \n",
" 214 | \n",
" 15 | \n",
" 0 | \n",
" 56 | \n",
" 268 | \n",
" 128 | \n",
" 6 | \n",
" 6 | \n",
" 8.0 | \n",
" 1 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" Tổng Giờ hoạt động của khách hàng mỗi tuần \\\n",
"0 168 \n",
"1 168 \n",
"2 168 \n",
"3 168 \n",
"4 168 \n",
"\n",
" Lưu lượng KH hoạt động ngày tại Tòa tháp \\\n",
"0 3 \n",
"1 3 \n",
"2 3 \n",
"3 3 \n",
"4 3 \n",
"\n",
" Diện tích ngoại cảnh Tòa tháp (m2) Số tòa tháp Số tầng nổi Số tầng hầm \\\n",
"0 400 2 59 2 \n",
"1 400 2 59 2 \n",
"2 400 2 59 2 \n",
"3 400 2 59 2 \n",
"4 400 2 59 2 \n",
"\n",
" Tầng hầm (m2) Sàn Sảnh (m2) Sàn Hành lang (m2) Sàn WC (m2) \\\n",
"0 2480 492 5637 214 \n",
"1 2480 492 5637 214 \n",
"2 2480 492 5637 214 \n",
"3 2480 492 5637 214 \n",
"4 2480 492 5637 214 \n",
"\n",
" Sàn Phòng (m2) Thảm (m2) Kính (m2) Thang máy Thang bộ \\\n",
"0 15 0 56 268 128 \n",
"1 15 0 56 268 128 \n",
"2 15 0 56 268 128 \n",
"3 15 0 56 268 128 \n",
"4 15 0 56 268 128 \n",
"\n",
" total_shifts_per_building start_hour shift_duration is_morning \\\n",
"0 6 14 8.0 0 \n",
"1 6 15 3.0 0 \n",
"2 6 15 6.0 0 \n",
"3 6 6 4.0 1 \n",
"4 6 6 8.0 1 \n",
"\n",
" is_afternoon is_evening \n",
"0 1 0 \n",
"1 1 0 \n",
"2 1 0 \n",
"3 0 0 \n",
"4 0 0 "
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Hiển thị các features hiện có\n",
"print(f\"\\n📋 Danh sách các features ({len(predictor.feature_columns)} features):\")\n",
"for i, feature in enumerate(predictor.feature_columns, 1):\n",
" print(f\" {i:2d}. {feature}\")\n",
" \n",
"# Hiển thị mẫu dữ liệu\n",
"print(f\"\\n🔍 Mẫu dữ liệu features:\")\n",
"display(pd.DataFrame(X, columns=predictor.feature_columns).head())"
]
},
{
"cell_type": "code",
"execution_count": 41,
"id": "070cf114",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
"🤖 Training model: random_forest...\n",
"\n",
"📈 Kết quả đánh giá:\n",
"Train RMSE: 1.88, MAE: 1.02, R²: 0.871\n",
"Test RMSE: 2.89, MAE: 2.17, R²: 0.535\n",
"Cross-validation RMSE: 5.77 (+/- 0.92)\n"
]
}
],
"source": [
"# Train model với Random Forest\n",
"results_rf = predictor.train_model(X, y, model_type='random_forest')"
]
},
{
"cell_type": "code",
"execution_count": 42,
"id": "ace148ac",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
"📊 Feature Importance (Top 10):\n",
" shift_duration: 0.2365\n",
" Sàn WC (m2): 0.1750\n",
" Diện tích ngoại cảnh Tòa tháp (m2): 0.1658\n",
" total_shifts_per_building: 0.0999\n",
" Kính (m2): 0.0674\n",
" start_hour: 0.0347\n",
" Số tầng nổi: 0.0305\n",
" Tầng hầm (m2): 0.0243\n",
" Thảm (m2): 0.0220\n",
" Sàn Sảnh (m2): 0.0216\n"
]
},
{
"data": {
"image/png": "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FkJCQnT69Gn99ddfNss///xzrVu3rsh9KlWqpJMnTxa69htAyXB6OQAA5aBFixYaM2aMpkyZogYNGqhPnz6qUKGCvv/+e+3evVutWrXSCy+8UGi/oKAgZWdnq0GDBurevbtycnK0dOlSxcfHKyIiQm3atClR/8nJyRo9erTNa0kaPHiw9fTb//znP6pbt651m4kTJ2r9+vV67733tHPnTt11113at2+fVqxYoYCAAEOeEf7qq69q165dmjlzplauXKn27duratWqSkpKUkxMjDZt2qS33npL9erVkyRFRERo9uzZCgsLU+/evVW1alXt3r1ba9euVVhYmBYvXlyojw4dOujrr79Wr1699OCDD8rNzU3Vq1dX//79JV24c/W6devUo0cP9e3bV76+vtq8ebP++ecftWvXrtQ3vurQoYPefvttjR07VrVq1VLnzp0VGhqq9PR0HT16VBs2bFCrVq20du1aSdLUqVP1ww8/qF27dqpRo4Y8PDy0Z88eff/99/L29rY+I/lyWrZsqREjRujDDz+0jreC53T7+PhYr1e+2F133WV9f3fddZfat2+vxMRErVy5Up06dSoUbgMDA/XII49o0aJFuv3223X//fcrNTVVP/74o1xdXXX77bcbOpPr4eGhu+++Wxs3blS/fv1Uq1YtOTo6qnv37mrUqFGJ9v/iiy/08MMPq23btnr44YdVrVo1/f777/rhhx8UGBioWbNmlalGT09PffTRR+rXr59atGhh85zuXbt2qW3bttqwYUOJ7kh/rYwaNUrr1q1Tq1atFBYWJi8vL+3YsUO//vqr+vTpo6VLlxbap0OHDtq+fbsefPBBtW7dWs7OzmrcuLG6detmh3cA3IDs/MgyAABuOEU9p7vAwoULLS1btrR4eHhYXFxcLPXq1bO8+eablszMzCLbqV69uiUlJcUSERFhqVKlisXZ2dlSt25dy/Tp0y35+fklruniZ0kX96eo5zOfOnXK8swzz1iqVatmcXJysgQGBloGDRpU5HN8L6fg+cJF9XGp/Px8y7x58yzt27e3+Pj4WJycnCxVqlSxtGzZ0vLWW29Zjh07ZrP9pk2bLPfee6/F29vb4uHhYWnZsqVl2bJl1uc0X/wccIvlwjO/x44dawkNDbWYzeYin8v93XffWe644w6Li4uLxdfX19K3b1/LkSNHLvuc7uKeF13g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JH9/f9166602261atUo///yzkpKS5OHhoTvuuEP9+vWTq6urJGn9+vWaM2eORo0apblz5yo5OVl169ZVRESEfHx8iuy7QYMGmjdvnvLy8uTo6KjMzEz9888/Cg8P16+//mrdLiYmRtnZ2WrQoIEkafXq1dq7d6/efvtthYaGWrerXLmymjdvrtzc3CL7y8/P19atWzVixAib5ZGRkWrfvr3i4+P122+/qWLFiho0aJDq1KmjmTNn6u+//1ZAQIAiIiJUs2ZNSVKvXr1s2ujcubN27dqlbdu2WUO3JDVr1kxvvvmmsrOz5ezsXPwHAQAAAKBccE03riuurq5ydXXVtm3blJOTU+x2JpNJgwYN0tSpUxUZGandu3drwYIFNtucP39eK1eu1PDhwzVhwgQlJydr/vz5xbZZv359ZWVl6dChQ5Kkffv2qUqVKmrevLkOHTpkvWnbnj17VKlSJQUGBkqSfv31VzVq1MgmcBcwm83WLwIudezYMZ07d041atQotG716tWqU6eOpkyZoqZNmyoqKkpRUVFq3bq1Jk+erMDAQEVFRclisRT7fjIyMuTh4WGzrEaNGsrLy9PBgweL3Q8AAABA+SF047ri6OioiIgIbdiwQeHh4Xr11Vf11Vdf6ejRozbbdenSRQ0aNFBAQIAaNGigvn37asuWLTbb5OXlaejQoapZs6Zq1KihBx54QH///XexfQcFBcnX11d79uyRdOHU8ttuu01eXl6qXLmy9u/fL+lC6K5fv751v/j4eFWpUqXU7zUpKUkODg7y8vIqtK5Jkya67777FBQUpD59+igzM1M1a9bUPffcoypVqqhHjx6Ki4tTampqkW1v3bpVhw4d0r333muz3NXVVe7u7kpKSipyv5ycHGVkZFj/ZGZmlvp9AQCA65/JZOLPZf5wjPhTkj8lxenluO40b95cTZs2VXR0tA4cOKCdO3fqu+++01NPPaV27dpJknbv3q1ly5YpNjZWmZmZysvLU05OjrKysqwzyy4uLtbZaEny8fFRWlraZfuuV6+e9u7dq549e2rPnj3q3r27JOm2227Tnj17dNtttykmJkZt27a17mOxWEr1S1cgOztbTk5ORe5bvXp1688FobxatWrWZd7e3pIu3HSu4OcCe/bs0YwZMzRs2DDdcssthdp2dnZWdnZ2kTUtW7ZMS5cutb4ODQ3ljucAAPwLBQUF2buE697F/44EyoLQjeuSs7OzGjVqpEaNGqlPnz6aOXOmlixZonbt2unkyZOaNGmS7rvvPvXt21ceHh6Kjo7WzJkzlZeXZ23D0dGxULuXOx1bunBd9+zZs3X27FkdOXJEt912m6QLYXzt2rVq3LixsrOzbWa6q1Spori4uFK/R09PT50/f165ubmF7m5+ce0Fobwk72fv3r2aPHmyBg4caPPFwMXS09Pl6elZ5LqePXuqa9euhfoGAAD/LvHx8fYu4bplMpkUGBiohISEK/7bETc3s9ksf3//K293DWoByiw4OFjbt2+XJB06dEj5+fkaMGCAHBwuXCFx6anlV6t+/fo6f/68Vq1apcDAQOsscr169TRjxgz98ccfCggIsPnlatmypRYuXKh//vmn0HXdBTPwRV3XXXBH89jY2GLvbl4ae/bs0dtvv63HH39cHTt2LHKbhIQE5eTkFNufk5OTnJycylwLAAC4vhEmr8xisXCcUC64phvXlbNnz2rChAnauHGjjh49qqSkJG3ZskUrVqyw3oU7MDBQeXl5Wrt2rRITE7Vx40b9+OOP5dJ/5cqV5efnp7Vr11rvni5Jvr6+8vf3148//mgzyy1duL68bt26ev3117V27VodOXJEiYmJ2rx5s1566SUlJCQU2Zenp6dCQ0MVHR1d5roLAveDDz6o5s2bKyUlRSkpKYUesxYdHa3KlStzuhQAAABwjTDTjeuKq6uratWqpdWrVysxMVF5eXmqVKmSOnToYH0sVkhIiAYMGKAVK1boq6++0m233abHHntMUVFR5VJD/fr1tWHDhkLhul69evrpp58KLXdyctIrr7yi1atX67///a/mz58vFxcXVa1aVQ8++GCR11UX6Nixo9avX68HHnigTDWvX79e58+f1/Lly7V8+XKbmsePH299vWnTJnXo0KFMfQEAAAAoOZOFcyYAu8nOztaoUaM0atQo1a5d29C+jh07pjfeeEPTp0+Xu7t7qfY9P3WuLHGJBlUGAACutdOj+9m7hOuWyWRSUFCQ4uPjOb0cl+Xk5FSia7o5vRywI2dnZw0fPvyKd1UvD2fOnFFkZGSpAzcAAACAq8fp5YCdXXztuJEaN258TfoBAAAA8D/MdAMAAAAAYBBCNwAAAAAABiF0AwAAAABgEEI3AAAAAAAGIXQDAAAAAGAQQjcAAAAA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Cc2ePVvp6enW2VpXV1fdf//9mj9/vnbu3KnY2FjNmjVL58+fV/v27SVdCOaHDh3Szp07deLECS1atMgmyJfEQw89pEOHDumzzz7T0aNHFRcXpx9++EFpaWmqUKGCKlasqP/+979KSEjQ7t27NXfu3HI/FqXVrVs3rV+/Xj/88IPi4+O1atUqbdu2Td26dZN04bjk5eVp7dq1SkxM1MaNG/Xjjz9esd2AgADrneBL+iVMhQoV5OHhoR9++EEJCQn6+++/NW/evCK3XbdunbZt26a4uDh9/vnnOnfunO69995i227cuLFiYmJK/UXApfLy8vTee+/p8OHDGjFihPVxfikpKYVm46Ojo633UAAAAABgvFKfXr5z5049+eSTcnR0VIUKFVS9enUNGjRIbdu2tbke+2IuLi6aMGGCFixYoHfffVdZWVnWO1GX5c7Id999t3777TdNmDBB586dsz4y7GJms1mvvPKK5s2bp0mTJik/P1/BwcEaPHjwVfdbEj169FBKSoqioqLk4OCgjh07qnHjxjbH6LHHHlN+fr4+/PBDZWVlqUaNGnr55Zet15/fd999OnLkiKZNmyaTyaSWLVuqU6dONjdku5IqVarolVde0cKFC/XSSy/J2dlZt956q1q2bCkHBweNHDlSs2fP1vPPP68qVapo0KBBGj9+fHkfjlK56667NGjQIK1cuVKzZ89WQECAIiIirHd+DwkJ0YABA7RixQp99dVXuu222/TYY48pKirqsu32799f8+bN0//93//J19fX5pFhxXFwcNCoUaNKdIwee+wxrVixwvrIsDFjxlz2VO6mTZvK0dFRf/31l26//fYr1lKcgud9Syr06Lhx48ZZj9uBAweUkZFR6OZ5AAAAAIxjsnChwjWRn5+vZ599Vvfcc48eeeQRe5eDclTwnO4pU6aU+tTtdevWaceOHXr55ZeNKe4i7733nkJCQtSrV69S73t+6lxZ4kp3aQMAACid06P72bsE6MK9c4KCghQfH8813bgsJyena3sjtZIqeATWkiVLrnXX19TJkye1a9cu1atXT7m5uVq7dq2SkpLUqlWrUre1bt06rVu3Tu+9954BlcKeOnbsqHPnzikzM9PQ52Hn5OSoevXqNncmBwAAAGC8ax6633333au6w/SNxmQyacOGDZo/f76kC8/GfvXVVxUcHFzqtlq3bm19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DE2ZMsVm2datW/X4449rxYoVkqT58+erWrVq6tGjh+H1LFy4UJ06dZKbm9tVt5Gbm6sFCxbo+eefV//+/TVs2DBFRUXp9OnT1m2cnJzUrVs3ffnll+VRNgAAAIASMtu7AMCe/u///k+ff/65Bg8erA4dOkiSwsPDr0nfp06d0o4dO8rcX3Z2tv755x/17t1bISEhSk9P19y5czVlyhS9/fbb1u1at26tBQsWKDY2VsHBwWWsHgAAAEBJELpx01qxYoWWLFmiZ555Rs2bN7cunzFjhs6dO6cxY8ZIksaPH69q1arJ2dlZ//d//yez2az77rtPYWFhNu2dPXtW77zzjnbt2iVfX18NGDBAzZo1K7b/LVu2KCQkRJUqVbIuW79+vebMmaMRI0Zo3rx5OnXqlJo0aaLIyEht3bpVX3/9tTIyMtS6dWuFh4fLwcFB7u7uevXVV23aHjRokF566SUlJyfLz89PklSxYkXVqVNHmzZtUt++fct8/AAAAABcGaeX46b05Zdf6ptvvtGLL75oE7iLs2HDBrm4uGjixInq16+fvvnmG/3111822yxdulT33HOP3n33XTVp0kQffPDBZW/EtnfvXtWoUaPQ8vPnz+v777/XqFGj9NJLL2nv3r2aOnWq/vzzT40dO1bDhw/Xf//7X23durXYtjMyMmQymeTu7m6zvGbNmoqOjr7i+wUAAABQPpjpxk1n586d2rFjh1577TU1aNCgRPtUr15dDz/8sCQpKChIa9eu1d9//61GjRpZt2nbtq1atWolSXr00Ue1du1aHTx4ULfffnuRbZ48ebLI0J2Xl6chQ4YoMDBQknT33Xfrl19+0aeffipXV1cFBwerfv362r17t1q0aFFo/+zsbH311Vdq2bJlodDt6+urLVu2FPs+c3JylJOTY31tMpnKdL058G9hMpnsXcJNp+CYc+xxNRg/KAvGD8oboRs3nerVqystLU2LFy9WzZo1SxQqq1WrZvPax8dHqamphdot4OrqKldX10LbXCw7O1vOzs6Flru4uFgDtyR5e3vL399frq6u1mVeXl5KS0srtG9ubq6mTZsmi8WiIUOGFFrv7Oys7OzsYmtatmyZli5dan0dGhqqyZMnF7s9cLMICgqydwk3rYv/PgRKi/GDsmD8oLwQunHT8fHx0fPPP68JEyZo4sSJeumll64YvM3mwr8q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",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Hiển thị feature importance\n",
"predictor.show_feature_importance()\n",
"\n",
"# Vẽ biểu đồ feature importance\n",
"if hasattr(predictor.model, 'feature_importances_'):\n",
" importances = pd.DataFrame({\n",
" 'feature': predictor.feature_columns,\n",
" 'importance': predictor.model.feature_importances_\n",
" }).sort_values('importance', ascending=False)\n",
" \n",
" plt.figure(figsize=(10, 6))\n",
" plt.barh(importances['feature'].head(10), importances['importance'].head(10))\n",
" plt.xlabel('Importance')\n",
" plt.title('Top 10 Features quan trọng nhất')\n",
" plt.gca().invert_yaxis()\n",
" plt.tight_layout()\n",
" plt.show()"
]
},
{
"cell_type": "markdown",
"id": "843bd15c",
"metadata": {},
"source": [
"## 5. So sánh các Model"
]
},
{
"cell_type": "code",
"execution_count": 33,
"id": "cf2fcffa",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
"============================================================\n",
"📂 Đang đọc dữ liệu...\n",
"✅ Đã đọc 8 tòa nhà\n",
"✅ Đã đọc 31 records ca làm việc\n",
"\n",
"🔧 Chuẩn bị features...\n",
"✅ Đã chuẩn bị 21 features\n",
"📊 Dataset shape: (31, 21)\n",
"\n",
"🤖 Training model: random_forest...\n",
"\n",
"📈 Kết quả đánh giá:\n",
"Train RMSE: 1.88, MAE: 1.02, R²: 0.871\n",
"Test RMSE: 2.89, MAE: 2.17, R²: 0.535\n",
"Cross-validation RMSE: 5.77 (+/- 0.92)\n",
"\n",
"============================================================\n",
"📂 Đang đọc dữ liệu...\n",
"✅ Đã đọc 8 tòa nhà\n",
"✅ Đã đọc 31 records ca làm việc\n",
"\n",
"🔧 Chuẩn bị features...\n",
"✅ Đã chuẩn bị 21 features\n",
"📊 Dataset shape: (31, 21)\n",
"\n",
"🤖 Training model: gradient_boosting...\n",
"\n",
"📈 Kết quả đánh giá:\n",
"Train RMSE: 0.00, MAE: 0.00, R²: 1.000\n",
"Test RMSE: 1.87, MAE: 1.41, R²: 0.805\n",
"Cross-validation RMSE: 6.63 (+/- 1.00)\n",
"\n",
"============================================================\n",
"📂 Đang đọc dữ liệu...\n",
"✅ Đã đọc 8 tòa nhà\n",
"✅ Đã đọc 31 records ca làm việc\n",
"\n",
"🔧 Chuẩn bị features...\n",
"✅ Đã chuẩn bị 21 features\n",
"📊 Dataset shape: (31, 21)\n",
"\n",
"🤖 Training model: ridge...\n",
"\n",
"📈 Kết quả đánh giá:\n",
"Train RMSE: 2.19, MAE: 1.55, R²: 0.825\n",
"Test RMSE: 3.23, MAE: 2.12, R²: 0.418\n",
"Cross-validation RMSE: 6.43 (+/- 0.35)\n",
"\n",
"📊 So sánh các Model:\n"
]
},
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" model | \n",
" test_rmse | \n",
" test_mae | \n",
" test_r2 | \n",
" cv_rmse | \n",
"
\n",
" \n",
" \n",
" \n",
" | 0 | \n",
" random_forest | \n",
" 2.886147 | \n",
" 2.172857 | \n",
" 0.535123 | \n",
" 5.771715 | \n",
"
\n",
" \n",
" | 1 | \n",
" gradient_boosting | \n",
" 1.867781 | \n",
" 1.409457 | \n",
" 0.805306 | \n",
" 6.631231 | \n",
"
\n",
" \n",
" | 2 | \n",
" ridge | \n",
" 3.229793 | \n",
" 2.122169 | \n",
" 0.417828 | \n",
" 6.432632 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" model test_rmse test_mae test_r2 cv_rmse\n",
"0 random_forest 2.886147 2.172857 0.535123 5.771715\n",
"1 gradient_boosting 1.867781 1.409457 0.805306 6.631231\n",
"2 ridge 3.229793 2.122169 0.417828 6.432632"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Train và so sánh các model khác nhau\n",
"models = ['random_forest', 'gradient_boosting', 'ridge']\n",
"results_comparison = []\n",
"\n",
"for model_type in models:\n",
" print(f\"\\n{'='*60}\")\n",
" predictor_temp = StaffPredictor()\n",
" predictor_temp.load_data()\n",
" X_temp, y_temp, _ = predictor_temp.prepare_features()\n",
" results = predictor_temp.train_model(X_temp, y_temp, model_type=model_type)\n",
" results['model'] = model_type\n",
" results_comparison.append(results)\n",
"\n",
"# Tạo DataFrame so sánh\n",
"comparison_df = pd.DataFrame(results_comparison)\n",
"print(\"\\n📊 So sánh các Model:\")\n",
"display(comparison_df[['model', 'test_rmse', 'test_mae', 'test_r2', 'cv_rmse']])"
]
},
{
"cell_type": "code",
"execution_count": 43,
"id": "998e463a",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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npNz/NfKzs42pk+fbrRt29bw8fExKlWqZNSsWdPo0qWL8c0339x0m9fHNGvWLKN58+aGq6ur4evrawwfPtw4ffp0vuv9888/xksvvWQ0atTIcHV1NTw8PIzOnTvnaRc3a6s5n31+P9e6cOGC8fbbbxvNmjUz3N3djcqVKxtt27Y1oqOj88SW851uwoQJxtatW40ePXoYXl5eedrY+vXrDUnGSy+9VKD3CqWL4VxQYrZv364BAwbI399fLi4uCgoK0uOPP66///47z7L/93//pxEjRqhevXpydXWVt7e3wsLC9Pjjj+uff/6RdHW8seHDh0uShg8fnqvLdHG6v7Zv315hYWEyDEO///57vss4OTlp6NCh2rx5s/766688sa9fv15DhgyRs7NznnU3b94sSbrvvvsUGBiYZ37lypV1zz33FDn+gpg+fbok6f777y/2tv7++2899dRTqlOnjlxcXOTr66t+/frleRDLypUrZTKZ8nRFiomJMX9u13chHjRokEwmk44cOZJr+l9//aVhw4YpKChIlSpVUo0aNfTQQw/l21Uvp0v0kSNHNGXKFN1yyy1yc3MrUFf4/MZbvXz5siZPnqwWLVrI29tb7u7uCgoK0r333qtVq1bddJvXys7O1ocffqhGjRrJ1dVVgYGBeu6555Samprv8idPntTo0aMVEhKiSpUqqXr16urdu3ee97pOnTqKjIyUJN155525fjekq3dV5gwZVLduXfO86481KSlJERERCgsLk5ubmzw9PdWlS5d8xxW8dgiG5cuX64477pCHh0eeB8s88MADunjxohYsWFCo9wpA2VNW8/qIESN0/PjxPOfk1NRULVy4UL1795afn98NtzFv3jxdunRJw4YNM8dUlIeTFQU5mhxNjgZQ2mbOnKn27dvrl19+UefOnfXss8+qdevW+vrrr9W6dWsdP37cvOzff/+tNm3aaPbs2WratKnGjBmjIUOGqEGDBpo3b55Onz4t6eo5PqdHVZ8+fXINHXN977bCynleiJNT3sEUoqKi9MYbb+i7775Tt27dCrzNnDzRrl27YsVWUOnp6ercubM++ugj+fn5acyYMerUqZPeeustjR079obrjh8/XuPHj1ezZs00atQo1apVS19//XW+Pdh27dql5s2b67PPPlPDhg319NNP695779WGDRt0++236+eff853H++/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wA3XHTFihIYMGaKlS5eqf//+WrZsmc6cOaN33nnH4joBAQH64YcfNGLECC1btkzLli2TJFWtWlW33367hgwZokGDBpmfKn6tc+fOmbsAX69Zs2Z64oknbnq8OV3xatSocdNlb+TkyZNatWqVgoOD83Q3u/322/XAAw8oOjpaS5Ys0ZAhQyRJXbp00caNG7V+/Xrde++9SklJ0a5du/TSSy9p//79uR4SlvP/Ll26mKfNmTNHKSkpmjp1qho1apRrn02aNNFjjz2mKVOm6M8//1STJk1yzR83bpzq1q1brGN2cHCQYRiqVKlSvp9P9erVC7W9MWPGKDg4ONf233vvPf3www+aMWOG/vOf/0iSli9frsOHD2vcuHG6/fbbc20jICBA48eP17PPPqvVq1dbZSigPXv2aP369Ro4cKAGDhyYa56Xl5ciIyPVt29fLV68WKNGjco1v3fv3urRo8cNt1+jRg399ddfSk9PL/CD9gCUHWU9r0tX8/OcOXM0Z84cPf/889q9e7d27typCRMm5Hv+vlZO995rHxw+fPhwTZ48WV999ZV5eJfrkaPJ0eRoAPZo69atkqR169Zpx44deebHx8crOztbhw4dUqtWrdS7d2+9/PLLGjVqlFatWqWuXbuqffv2aty4cZ5hoqzh+txqMpk0Y8aMXHlaujosq2EYRd7PP//8U6BhZuLi4iw+zLRTp05av379TbeRmpqqw4cPKygoKN9tXZ9Prte6des804KCgiRJycnJ5mk5n+3Ro0fzfdDsoUOHJF0diu36HHXbbbfdMIaCevjhh/XJJ5+oSZMmGjRokO644w7961//kqenZ6G3lTOkyrU8PT3VvHlzrV+/Xvv371fz5s3Nx52SkpLvcecM/XL90LxF9dtvvykrK0tS/g/0zcjIsLi/grzP1apVkyQlJiYWI0qUBIrosLrykpTzM2DAAD3zzDOaPn26+vfvr6+++koeHh43fQJ4x44ddeDAAW3evFnr16/Xf//7X23evFkrVqzQihUrNGvWLP3000+5xsKSpODg4GKN9y7JPPast7d3sbbz3//+V5LUoUOHfMeiu+uuuxQdHa1du3aZ/0Dv3LmzJk6cqDVr1ujee+/VunXrlJ2drS5duiggIEBLlizR/v37FRYWpjVr1pjXyZHTlnbv3p1vcjp48KCkq8np+j/QrfEloGrVqrr33nu1dOlStWjRQvfdd59uv/123XbbbfkWh24mvy8BISEhCgoK0tGjR5WSkiIvL69iffkpiuJ86Sjsl4D8ngsAoGwr63ldupqbGjZsqOnTp+v555/XV199JQcHBz3yyCM3XC81NVXfffedvLy8co0resstt6hly5baunWr9u3bp6ZNm+ZZlxxNjiZHA7BHObnnvffeu+Fy58+fl3Q13+3YsUMTJ07UL7/8Yh7XOigoSOPHj9fo0aOtGl9OYfzChQvasmWLHnnkET3xxBOqW7duvufqonJzc1N6errVtncjOc/XsHTR/GYX0/MrQOfk+5xirvS/z3bhwoU33F7OZ3stf3//G65TUJMnT1a9evU0Y8YMvfPOO3rnnXfk5OSke+65Rx9++KFCQkIKvC1L70tOrOfOnZP0v+NetWrVDZ+Jkt9xF0XO/n777bc8z0K52f4K8j5funRJ0tU2irKFIjqsrjwnZTc3Nz300EP64osvtG3bNq1cuVIjRowo0B9rDg4O6tChgzp06GCOY9WqVRo6dKhWrlypadOmacyYMcU/wHxillTsLwg5CcrSST/n7sSc5SSpbdu2qly5svkOttWrV8vV1VXt2rUz3/W/evVqNWjQQBs2bFDjxo1zbT+nLd3s4W4l+SXg22+/VVRUlKKjo/Xaa69JklxdXTVo0CC9//778vX1LfC2bvQl4NixYzp37py8vLyK9eWnKIrzpYMvAUD5V9bzeo5HH31U48eP15o1axQdHa2uXbuqdu3aN1xn/vz5unDhgp544ok8d+EOHz5cu3bt0ldffaWPPvqoRGImRxcPOfrG+yNHA8hPTkH23Llz8vDwKNA6YWFh+vbbb5WZmak9e/bo119/1SeffKKnn35alStXtthrqzgqV66srl27atmyZWrVqpUGDx6sAwcOFOlCaX78/Px06NAhZWRkyNnZ2SrbtCTnfT579my+8y1NL6ycz/bHH39U7969C7WutW50cHR01JgxYzRmzBjFx8dr06ZNWrBggRYuXKjY2Fjt27cvz82Dllh6X86cOSPpf8eb8+9HH32kZ555xgpHcWM5+3vuuef04YcfFmrdgrzPObnfz8+v8MGhRN24fytQBNcmZePquPv5/lxbsM5Jyv/8849+//13vfvuu8rOztbTTz+tmTNnlkic1yblzMxMDR48WBcvXrzpeiNGjFBWVpYGDhyorKwsPfroo0Xav8lkUrdu3fTmm29KUq5u09aUc+LNOREXVc7nmpOwrpfzVPZrr5I7Ozvr9ttv1759+xQfH6/Vq1erffv2cnV1VaNGjRQQEKBff/1VO3bsUFpaWq473K7d1p49e27YloYOHZonHmt9CXBzc9PEiRN18OBBHT9+XPPmzdPtt9+uOXPmaMCAAYXaVmG/BPz44483PO5rnw5eHNd+6bjR/vL7XSzolwAnJyfz3W4A7Iu95PWhQ4fK2dlZQ4cOVUpKSoHyc04B+PPPP5fJZMr18/TTT0uS5s6dW2J3qpGji4ccTY4GUHht27aVJG3cuLHQ6zo5OalVq1Z68cUX9c0330iSlixZYp7v6OgoKffd0cXVrFkzPfbYYzp58qQmT55ste2Gh4dLkg4cOGC1bVri4eGhkJAQnTp1Kt9ebJs2bbLKforz2ZYEPz8/9e/fX9999506d+6sQ4cOad++fQVeP7+hcs6dO6fdu3fL1dVVYWFhkop23Ddrqzea36ZNGzk4OJTY+3zgwAFVr16dHmJlEEV0WF15T8otWrRQixYtdPLkSYWHh+vWW28t1v6rVq0q6X93yFtbkyZN5OjoWOzxv1q0aCHpaoLPzMzMM3/t2rWSpJYtW+aa3qVLFxmGoejoaO3fvz/XeKpdunTRunXrzHdWXTtPKntfAoKCgvTwww9r5cqV5jvzkpKSCrx+fl8Cjhw5ohMnTqhOnTrmMflK+0tASb7PFy5c0KlTpxQeHl5iwzgAKFn2ktf9/PzUq1cvnTx5Uj4+PrmGZ8nP77//rv/+978KCAjQo48+mu/PLbfcouTkZPPd9NZGjrYecnThkaOBimn06NFydnbWc889Zx5661pXrlzJdc7ZsWNHvhcac6Zd25Mr53kUJ06csGrMr776qlxdXfX+++/nGgO8ODp16iRJ2rZtm1W2dzNDhgxRdna2IiIicv3tf+LECU2ZMsUq++jTp4/q1aunqVOn6ueff853ma1btxbo5sGiuHz5slavXp2ntpGRkWHOyYV5/sbcuXPNQ9blmDhxos6dO6cHH3xQlSpVknR1zPgOHTro+++/14wZM/Ld1h9//KH4+Hjz65u11RvN9/Pz08MPP6zff/9db7zxRr7fvQ4fPqy4uLgCHGVucXFxOnv2rDp16kRuLoMoosPqKkJSnjt3rpYsWaL58+ffdNlffvlF33//vfnhEtc6f/68OWHecccdhY67IHIevLF3715zl92iCAwMVNeuXXX06NE8SX779u2Kjo6Wt7e3+vXrl2tezp1rOQ9fvf4P9HPnzumzzz6Tg4OD+YtMjuHDh5sfmpXfOLzZ2dlat25dkY/pZhISErR9+/Y80y9cuKC0tDQ5OjrmO/asJR999JGOHTtmfp2dna1x48YpOzs7VxfIonz5Kc6XgKJ86SioHTt2KCsrS3feeWeh1wVQNthTXv/ggw+0ZMkSLV++/KZdhXMeKDpmzBh9/fXX+f7kDGGTs6y1kaOLjhz9P+RoAIXRqFEjzZgxQ0ePHlWTJk107733auzYsXrmmWfUt29f1axZU4899ph5+ejoaAUGBuquu+7SE088oYiICA0aNEj//ve/ValSpVxDkv7rX/+Su7u7pkyZoqefflpvvvmm3nzzzVzDiRVFrVq19PjjjyslJUWTJk0q1rZy9O3bV46Ojlq5cqVVtncz48ePV/PmzbVgwQK1atVKL730kp588kk1b97c/GDRmz0M/WacnZ31/fffy9PTU/fcc4/at2+vUaNGady4cXrggQdUr149tWvXzjxGu7VdunRJd911l0JCQvTAAw/oxRdf1JgxY9SsWTPt3r1bvXr1UuPGjQu8vZ49e6p9+/YaNmyYIiIi1KFDB02ZMkV16tTRu+++m2vZ6Oho1atXT48++qiaN2+uxx9/XC+++KIefvhh3XLLLQoPD9eRI0fMy9+srd55551ycHBQRESExo4da56f49NPP1Xbtm312muvqXHjxnrkkUcUERGhoUOHqk2bNqpfv36+31NuJiYmRpJ03333FXpdlDzGRIfV5STlRx55RE2aNFGPHj0UGhqqjIwMHT9+XBs3bpSvr6/5rqvo6GhNnTpVHTt2VP369eXt7a3Dhw9r6dKlN0zK//zzj3n8yqeffrpIT3vOkZOUP/roI02aNMn8x6QlTZo0yfOQLEv++usvPffcc/L29laHDh3UoEEDOTk56eTJk1q+fLlSUlJ022235TtGrKWHSOUYNmyYxSeFX+u+++7Tzp07tWbNGosPufrrr78sPly1du3aev311/X555+rffv2GjdunGJiYtS6dWudOHFCCxculIODg2bOnGm+sz5HixYtVK1aNcXHx8vT01OtWrUyz8v5Yz0+Pl6tW7fO83T06tWra9Gi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",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Vẽ biểu đồ so sánh\n",
"fig, axes = plt.subplots(1, 3, figsize=(15, 4))\n",
"\n",
"metrics = ['test_rmse', 'test_mae', 'test_r2']\n",
"titles = ['Test RMSE (Lower is better)', 'Test MAE (Lower is better)', 'Test R² (Higher is better)']\n",
"\n",
"for idx, (metric, title) in enumerate(zip(metrics, titles)):\n",
" axes[idx].bar(comparison_df['model'], comparison_df[metric])\n",
" axes[idx].set_title(title)\n",
" axes[idx].set_ylabel(metric)\n",
" axes[idx].tick_params(axis='x', rotation=45)\n",
"\n",
"plt.tight_layout()\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"id": "83a8019b",
"metadata": {},
"source": [
"## 6. Dự đoán cho các trường hợp cụ thể"
]
},
{
"cell_type": "code",
"execution_count": 44,
"id": "71b3ee8c",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"🎯 DEMO DỰ ĐOÁN\n",
"============================================================\n",
"\n",
"🏢 Tòa: 559-1 | ⏰ Ca: 6h00:14h00 | 👥 Nhân sự: 4 người\n",
"\n",
"🏢 Tòa: 559-1 | ⏰ Ca: 14h00:22h00 | 👥 Nhân sự: 4 người\n",
"\n",
"🏢 Tòa: 618-1 | ⏰ Ca: 6h00:14h00 | 👥 Nhân sự: 5 người\n",
"\n",
"🏢 Tòa: 283-1 | ⏰ Ca: 6h00:14h00 | 👥 Nhân sự: 8 người\n",
"\n",
"🏢 Tòa: 337-1 | ⏰ Ca: 13h00-21h00 | 👥 Nhân sự: 10 người\n",
"\n",
"📋 Bảng kết quả dự đoán:\n"
]
},
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" Mã địa điểm | \n",
" Ca làm việc | \n",
" Số nhân sự dự đoán | \n",
"
\n",
" \n",
" \n",
" \n",
" | 0 | \n",
" 559-1 | \n",
" 6h00:14h00 | \n",
" 4 | \n",
"
\n",
" \n",
" | 1 | \n",
" 559-1 | \n",
" 14h00:22h00 | \n",
" 4 | \n",
"
\n",
" \n",
" | 2 | \n",
" 618-1 | \n",
" 6h00:14h00 | \n",
" 5 | \n",
"
\n",
" \n",
" | 3 | \n",
" 283-1 | \n",
" 6h00:14h00 | \n",
" 8 | \n",
"
\n",
" \n",
" | 4 | \n",
" 337-1 | \n",
" 13h00-21h00 | \n",
" 10 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" Mã địa điểm Ca làm việc Số nhân sự dự đoán\n",
"0 559-1 6h00:14h00 4\n",
"1 559-1 14h00:22h00 4\n",
"2 618-1 6h00:14h00 5\n",
"3 283-1 6h00:14h00 8\n",
"4 337-1 13h00-21h00 10"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Demo dự đoán\n",
"print(\"🎯 DEMO DỰ ĐOÁN\\n\" + \"=\"*60)\n",
"\n",
"test_cases = [\n",
" ('559-1', '6h00:14h00'),\n",
" ('559-1', '14h00:22h00'),\n",
" ('618-1', '6h00:14h00'),\n",
" ('283-1', '6h00:14h00'),\n",
" ('337-1', '13h00-21h00'),\n",
"]\n",
"\n",
"predictions = []\n",
"for building_code, shift_time in test_cases:\n",
" predicted_staff = predictor.predict_staff(building_code, shift_time)\n",
" print(f\"\\n🏢 Tòa: {building_code} | ⏰ Ca: {shift_time} | 👥 Nhân sự: {predicted_staff} người\")\n",
" predictions.append({\n",
" 'Mã địa điểm': building_code,\n",
" 'Ca làm việc': shift_time,\n",
" 'Số nhân sự dự đoán': predicted_staff\n",
" })\n",
"\n",
"# Tạo DataFrame kết quả\n",
"predictions_df = pd.DataFrame(predictions)\n",
"print(\"\\n📋 Bảng kết quả dự đoán:\")\n",
"display(predictions_df)"
]
},
{
"cell_type": "markdown",
"id": "088dcf73",
"metadata": {},
"source": [
"## 7. Chức năng Dự đoán Tương tác"
]
},
{
"cell_type": "code",
"execution_count": 45,
"id": "fd2aebcf",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"🏢 Danh sách tòa nhà có sẵn:\n",
" 1. 559-1\n",
" 2. 618-1\n",
" 3. 283-1\n",
" 4. 337-1\n",
" 5. 55-1\n",
" 6. 33-1\n",
" 7. 213-1\n",
" 8. 286-1\n"
]
}
],
"source": [
"# Danh sách tòa nhà có sẵn\n",
"available_buildings = building_df['Mã địa điểm'].tolist()\n",
"print(\"🏢 Danh sách tòa nhà có sẵn:\")\n",
"for i, building in enumerate(available_buildings, 1):\n",
" print(f\" {i}. {building}\")"
]
},
{
"cell_type": "code",
"execution_count": 46,
"id": "2afe83da",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
"============================================================\n",
"🎯 KẾT QUẢ DỰ ĐOÁN\n",
"============================================================\n",
"🏢 Tòa nhà: 559-1\n",
"⏰ Ca làm việc: 6h00:14h00\n",
"👥 Số nhân sự cần thiết: 4 người\n",
"============================================================\n"
]
}
],
"source": [
"# DỰ ĐOÁN TÙY CHỈNH - Thay đổi giá trị bên dưới\n",
"building_code = '559-1' # <-- Thay đổi mã tòa nhà ở đây\n",
"shift_time = '6h00:14h00' # <-- Thay đổi ca làm việc ở đây (vd: '6h00:14h00', '14h00:22h00')\n",
"\n",
"try:\n",
" predicted_staff = predictor.predict_staff(building_code, shift_time)\n",
" print(\"\\n\" + \"=\"*60)\n",
" print(\"🎯 KẾT QUẢ DỰ ĐOÁN\")\n",
" print(\"=\"*60)\n",
" print(f\"🏢 Tòa nhà: {building_code}\")\n",
" print(f\"⏰ Ca làm việc: {shift_time}\")\n",
" print(f\"👥 Số nhân sự cần thiết: {predicted_staff} người\")\n",
" print(\"=\"*60)\n",
"except Exception as e:\n",
" print(f\"❌ Lỗi: {e}\")"
]
},
{
"cell_type": "markdown",
"id": "30e092f2",
"metadata": {},
"source": [
"## 8. Phân tích sâu hơn"
]
},
{
"cell_type": "code",
"execution_count": 47,
"id": "c17bef95",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"📊 Ma trận dự đoán nhân sự:\n"
]
},
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | Ca | \n",
" 13h00-21h00 | \n",
" 14h00:22h00 | \n",
" 6h00:14h00 | \n",
" 6h30-14h30 | \n",
"
\n",
" \n",
" | Tòa nhà | \n",
" | \n",
" | \n",
" | \n",
" | \n",
"
\n",
" \n",
" \n",
" \n",
" | 213-1 | \n",
" 5 | \n",
" 5 | \n",
" 7 | \n",
" 7 | \n",
"
\n",
" \n",
" | 283-1 | \n",
" 6 | \n",
" 6 | \n",
" 8 | \n",
" 8 | \n",
"
\n",
" \n",
" | 286-1 | \n",
" 3 | \n",
" 3 | \n",
" 3 | \n",
" 3 | \n",
"
\n",
" \n",
" | 33-1 | \n",
" 5 | \n",
" 5 | \n",
" 6 | \n",
" 6 | \n",
"
\n",
" \n",
" | 337-1 | \n",
" 10 | \n",
" 10 | \n",
" 13 | \n",
" 13 | \n",
"
\n",
" \n",
" | 55-1 | \n",
" 10 | \n",
" 10 | \n",
" 12 | \n",
" 12 | \n",
"
\n",
" \n",
" | 559-1 | \n",
" 4 | \n",
" 4 | \n",
" 4 | \n",
" 4 | \n",
"
\n",
" \n",
" | 618-1 | \n",
" 4 | \n",
" 4 | \n",
" 5 | \n",
" 5 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
"Ca 13h00-21h00 14h00:22h00 6h00:14h00 6h30-14h30\n",
"Tòa nhà \n",
"213-1 5 5 7 7\n",
"283-1 6 6 8 8\n",
"286-1 3 3 3 3\n",
"33-1 5 5 6 6\n",
"337-1 10 10 13 13\n",
"55-1 10 10 12 12\n",
"559-1 4 4 4 4\n",
"618-1 4 4 5 5"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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T8cPCQnRf/7zH917771q06aN7r33XpUpU0YbN27Ujh071LZt22x/GW/ZsqXGjBmjadOmqV69eurVq5eCg4P15ZdfaseOHWrdurWefPJJx/Z33HGHatSooVmzZmn37t1q1qyZTp8+rWXLlqlbt25OdywobDfffLO6dOmiL774wiX7i4mJUZ8+ffThhx+qYcOG6tSpk86dO6c1a9YoICBADRs2zLEbx1X69OmjgIAAtW7dWpUrV5ZhGPr+++/1yy+/qHHjxo6JSSXpX//6l+bNm6dHH31U69atU4UKFbRt2zb98MMP6tq1qz7//PM8H/eWW27R9OnT9eCDD6pnz54KCQlRyZIl9dhjjxXofZQqVUrLli1Tjx49dOONN+qWW25R3bp1ZbVadeTIEf344486c+aMUlNTHa9566231KpVKz355JNavXq1mjZtqqNHj2rp0qWyWq2aN29etm6e69GvXz+tXLlSH330kerWravu3bvLYrFoxYoVOnjwoHr37u3U8TVo0CBNnz5dTzzxhL799ltVr15de/fu1eeff667775bS5YscVk2V2jWrJlatWqlTz75RC1btlTr1q116tQpffnll6pZs6Zjks/8qFSpktq1a6dvv/1Wvr6+ql+/vqPr50rDhg3TvHnz1Lt3b/Xs2VPlypXTjh079NVXX6l37975OldWq1VLly7VwIEDtXLlSsXGxuqWW25R7dq15ePjo8OHD2vdunWKj4/X6NGjHa974okn9Mgjj6hx48bq2bOnbDaboyB955136rPPPsv3+3fXe3QHi8WiQYMGadKkSZoyZYp8fX3Vr1+/PL9+6NCh2rJli2bPnq2qVauqc+fOqlixos6ePauDBw9qw4YNGjJkiN566y1Jf98Za9GiRerVq5fatm2rLl26qH79+jp37py2b9+uY8eO6eDBg+56uwDgecy8jzCAa5NklCtXLk/bDh482JBkrFmzxmn5kSNHjH79+hlly5Y1AgICjDp16hgvv/yyYbfbDUlGu3bt8pxn7969RteuXY2IiAjDYrEYkox58+YZhmEY69evNyQZEydOvOrr85tl4sSJhiRj/fr12fZ18OBBQ5IxePDgPGXPynflIyAgwIiJiTHatGljjB492ti6dWuu+3j33XeNOnXqGH5+fkbp0qWNhx56yEhISDDatWtn5PdL6urVq41WrVoZgYGB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OjpaQ4YMkSStX7/+qu8jMzNTb7zxhnr37q3du3fr4sWLOW6zYMECrVu3Tr6+vurYsaN69+7tWH/l+4mOjlafPn305JNP6vTp04qJicnT1xoA1485R5BNenq61q5dq6CgIFWqVMlp3bJly3TTTTfplVdeUaNGjfTGG2/owoULkqS//vpLFStWdGpjbNCggex2uw4cOODYpk6dOk73jG/QoIESExMVHx+f54yXL19Wenq6QkJC8v3+Pv/8c1WtWlXTpk1T586d9c477+j48eOOfEFBQU6XE9WoUUNBQUHas2dPnt8nkF+ZmZl688031a1bN1WoUOGq2xXGGMyaG2Tnzp1XzZGSkiKLxZJrMTAlJUWBgYFOhRFJ+vDDD3XnnXdq2rRpKlOmjGbOnKmMjIw859u7d69uuOEGp302bNhQBw4cUHp6+lXzAFf69ddfFRsbqxkzZuiBBx7QmDFjtHbt2mzbFdb3jN69e+vbb7/N13vwpK8bQH65Ygz+04ULF/T999+rRo0ajktm3P1z27JlyxQaGqqbb775qtt899138vf314svvqgBAwbo448/1vbt23PcNjU1VevXr1d0dLQiIyMd7+FaX2sAXD+KI3DYsmWLBg4cqP79+2vVqlV65plnsl1S065dO7Vu3VoxMTHq27evLl++rH379kmSkpKSFBYW5rR9SEiIfH19lZSUdNVtsp5nbZMXCxcu1P9r796Doqz6OIB/uS0rCC0kBAtiisKoiYBkWnjBRPNaeAs1LMsbMRo1mpHKZQrzFmqCI1PqSI46XlDUKBCRApuBtEAhHUAELwguCCy4LLrsvn84PONyWRaE9B2+nxlm2POcZ59zmOc85+H3POcca2trrbda9OXh4YHJkyfDzs4O7777LiwtLYV/AlsrX1MZddWheT2JOiohIQFGRkaYMmWKznz/RRs0NjaGVCqFqalpq2V49OgRDh06hLfeeqvN4EhtbS1OnDgBX1/fFttmzJgBT09PSKVSzJs3DzKZDGVlZXqXr608jY2NqK2tbbU8RM3dv38f586dg52dHdatWwdfX1/s378fv//+u1a+/6rPkEqlHX7z8EW6bhB1VFe0wSYHDx5EQEAAPv74Y1RUVGjN+dGd923Xr19Hamoqli9frjNfv379MHfuXNjb22PcuHEYMGAArl69qpUnKSkJAQEBWLRoEXJycrB+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",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Dự đoán cho tất cả các tòa nhà với các ca phổ biến\n",
"common_shifts = ['6h00:14h00', '14h00:22h00', '6h30-14h30', '13h00-21h00']\n",
"all_predictions = []\n",
"\n",
"for building in available_buildings:\n",
" for shift in common_shifts:\n",
" try:\n",
" pred = predictor.predict_staff(building, shift)\n",
" all_predictions.append({\n",
" 'Tòa nhà': building,\n",
" 'Ca': shift,\n",
" 'Nhân sự': pred\n",
" })\n",
" except:\n",
" pass\n",
"\n",
"all_pred_df = pd.DataFrame(all_predictions)\n",
"\n",
"# Tạo pivot table\n",
"pivot_df = all_pred_df.pivot(index='Tòa nhà', columns='Ca', values='Nhân sự')\n",
"print(\"📊 Ma trận dự đoán nhân sự:\")\n",
"display(pivot_df)\n",
"\n",
"# Vẽ heatmap\n",
"plt.figure(figsize=(12, 6))\n",
"sns.heatmap(pivot_df, annot=True, fmt='.0f', cmap='YlOrRd', cbar_kws={'label': 'Số nhân sự'})\n",
"plt.title('Ma trận Dự đoán Nhân sự theo Tòa nhà và Ca làm việc')\n",
"plt.xlabel('Ca làm việc')\n",
"plt.ylabel('Tòa nhà')\n",
"plt.tight_layout()\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"id": "7042bb94",
"metadata": {},
"source": [
"## 9. Xuất kết quả"
]
},
{
"cell_type": "code",
"execution_count": 48,
"id": "07c05f28",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"✅ Đã xuất kết quả ra file: du_doan_nhan_su.csv\n",
"✅ Đã xuất ma trận ra file: ma_tran_nhan_su.csv\n"
]
}
],
"source": [
"# Xuất kết quả ra file CSV\n",
"output_file = 'du_doan_nhan_su.csv'\n",
"all_pred_df.to_csv(output_file, index=False, encoding='utf-8-sig')\n",
"print(f\"✅ Đã xuất kết quả ra file: {output_file}\")\n",
"\n",
"# Xuất ma trận pivot\n",
"pivot_file = 'ma_tran_nhan_su.csv'\n",
"pivot_df.to_csv(pivot_file, encoding='utf-8-sig')\n",
"print(f\"✅ Đã xuất ma trận ra file: {pivot_file}\")"
]
},
{
"cell_type": "markdown",
"id": "92ca69a0",
"metadata": {},
"source": [
"## 10. Hướng dẫn sử dụng\n",
"\n",
"### Để dự đoán cho một trường hợp mới:\n",
"\n",
"```python\n",
"# Ví dụ:\n",
"building_code = '559-1' # Mã tòa nhà\n",
"shift_time = '14h00:22h00' # Ca làm việc\n",
"\n",
"predicted_staff = predictor.predict_staff(building_code, shift_time)\n",
"print(f\"Số nhân sự cần thiết: {predicted_staff} người\")\n",
"```\n",
"\n",
"### Các format ca làm việc được hỗ trợ:\n",
"- `6h00:14h00`\n",
"- `14h00:22h00`\n",
"- `6h30-14h30`\n",
"- `13h00-21h00`\n",
"- `6:30-14:30`\n",
"- `07:00-17:00`\n",
"- và các format tương tự\n",
"\n",
"### Lưu ý:\n",
"- Model được train trên 8 tòa nhà với 31 records\n",
"- Độ chính xác: Test RMSE ~3, R² ~0.5\n",
"- Features quan trọng nhất: Độ dài ca làm việc, Diện tích ngoại cảnh, Diện tích WC"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "base",
"language": "python",
"name": "python3"
},
"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.7"
}
},
"nbformat": 4,
"nbformat_minor": 5
}