2385 lines
345 KiB
Plaintext
2385 lines
345 KiB
Plaintext
{
|
||
"cells": [
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "3d9c3502",
|
||
"metadata": {},
|
||
"source": [
|
||
"# 🚀 ML Phase 2: Text Features với TF-IDF + SVD\n",
|
||
"\n",
|
||
"**Mục tiêu:** Thêm text features từ 2 cột task để cải thiện R² từ ~0.4 lên 0.5-0.7\n",
|
||
"\n",
|
||
"**Dataset:** FINAL_DATASET_WITH_TEXT_BACKUP_20260105_213507.xlsx \n",
|
||
"⚠️ **IMPORTANT:** Dùng CÙNG DATASET với Phase 1 để so sánh công bằng!\n",
|
||
"\n",
|
||
"**Phase 1 Results (Baseline - Numeric Features Only):**\n",
|
||
"- Best Model: **Decision Tree**\n",
|
||
"- Val R²: **0.4136**\n",
|
||
"- Val MAE: **3.3841**\n",
|
||
"- Test R²: TBD\n",
|
||
"\n",
|
||
"**Phase 2 Strategy:**\n",
|
||
"- TF-IDF vectorization cho 2 cột text (all_task_normal + all_task_dinhky)\n",
|
||
"- SVD (Singular Value Decomposition) để giảm chiều (200 → 50 dimensions)\n",
|
||
"- Kết hợp với numeric features (bỏ các cột categorical: loai_ca, bat_dau, ket_thuc, muc_do_luu_luong)\n",
|
||
"- Re-train và so sánh với Phase 1\n",
|
||
"\n",
|
||
"---\n",
|
||
"\n",
|
||
"## 📋 Nội dung:\n",
|
||
"\n",
|
||
"1. ✅ Load Data & Setup\n",
|
||
"2. ✅ Text Preprocessing\n",
|
||
"3. ✅ TF-IDF Vectorization\n",
|
||
"4. ✅ SVD Dimensionality Reduction\n",
|
||
"5. ✅ Feature Combination\n",
|
||
"6. ✅ Train/Val/Test Split\n",
|
||
"7. ✅ Model Training\n",
|
||
"8. ✅ Results Comparison (Phase 1 vs Phase 2)\n",
|
||
"9. ✅ Feature Importance Analysis\n",
|
||
"10. ✅ Final Recommendations"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "5e6f79fc",
|
||
"metadata": {},
|
||
"source": [
|
||
"# 1️⃣ Import Libraries & Setup"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 15,
|
||
"id": "94c942bd",
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"✅ Libraries imported successfully!\n",
|
||
"📅 Date: 2026-01-06 01:12:18\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"# Import essential libraries\n",
|
||
"import pandas as pd\n",
|
||
"import numpy as np\n",
|
||
"import matplotlib.pyplot as plt\n",
|
||
"import seaborn as sns\n",
|
||
"import warnings\n",
|
||
"import os\n",
|
||
"import re\n",
|
||
"from datetime import datetime\n",
|
||
"\n",
|
||
"# Text processing\n",
|
||
"from sklearn.feature_extraction.text import TfidfVectorizer\n",
|
||
"from sklearn.decomposition import TruncatedSVD\n",
|
||
"\n",
|
||
"# Machine Learning\n",
|
||
"from sklearn.model_selection import train_test_split\n",
|
||
"from sklearn.preprocessing import StandardScaler\n",
|
||
"from sklearn.linear_model import LinearRegression\n",
|
||
"from sklearn.tree import DecisionTreeRegressor\n",
|
||
"from sklearn.ensemble import RandomForestRegressor, GradientBoostingRegressor\n",
|
||
"from sklearn.metrics import mean_absolute_error, mean_squared_error, r2_score\n",
|
||
"import xgboost as xgb\n",
|
||
"import lightgbm as lgb\n",
|
||
"\n",
|
||
"# Configuration\n",
|
||
"warnings.filterwarnings('ignore')\n",
|
||
"plt.style.use('seaborn-v0_8-darkgrid')\n",
|
||
"sns.set_palette(\"husl\")\n",
|
||
"pd.set_option('display.max_columns', None)\n",
|
||
"pd.set_option('display.max_rows', 100)\n",
|
||
"\n",
|
||
"# Random seed\n",
|
||
"RANDOM_STATE = 42\n",
|
||
"np.random.seed(RANDOM_STATE)\n",
|
||
"\n",
|
||
"# Create folders\n",
|
||
"os.makedirs('phase2_output/models', exist_ok=True)\n",
|
||
"os.makedirs('phase2_output/plots', exist_ok=True)\n",
|
||
"os.makedirs('phase2_output/data', exist_ok=True)\n",
|
||
"\n",
|
||
"print(\"✅ Libraries imported successfully!\")\n",
|
||
"print(f\"📅 Date: {datetime.now().strftime('%Y-%m-%d %H:%M:%S')}\")"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "7becc15d",
|
||
"metadata": {},
|
||
"source": [
|
||
"# 2️⃣ Load Data & Verify"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 17,
|
||
"id": "bc631294",
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"📂 Loading dataset...\n",
|
||
"✅ Dataset loaded!\n",
|
||
"📊 Shape: (454, 51)\n",
|
||
"\n",
|
||
"📋 Columns (51):['ma_dia_diem', 'all_task_normal', 'all_task_dinhky', 'loai_ca', 'bat_dau', 'ket_thuc', 'tong_gio_lam', 'so_ca_cua_toa', 'so_luong', 'num_tasks']... (showing first 10)\n",
|
||
"\n",
|
||
"🔍 Checking text columns:\n",
|
||
" all_task_normal: ✅ Found\n",
|
||
" all_task_dinhky: ✅ Found\n",
|
||
"\n",
|
||
" all_task_normal - Missing: 27 (5.9%)\n",
|
||
" all_task_dinhky - Missing: 168 (37.0%)\n",
|
||
"\n",
|
||
"📄 Sample text data:\n",
|
||
"\n",
|
||
"all_task_normal (first 200 chars):\n",
|
||
"Làm sạch toàn bộ phòng giao dịch tầng 1 (kể cả wc); Làm sạch bậc tam cấp + ngoại cảnh + tầng hầm; Làm sạch toàn bộ văn phòng tầng 2 + phòng lãnh đạo (kể cả wc); Làm sạch toàn bộ thang bộ từ tầng 1 lên...\n",
|
||
"\n",
|
||
"all_task_dinhky (first 200 chars):\n",
|
||
"nan...\n"
|
||
]
|
||
},
|
||
{
|
||
"data": {
|
||
"text/html": [
|
||
"<div>\n",
|
||
"<style scoped>\n",
|
||
" .dataframe tbody tr th:only-of-type {\n",
|
||
" vertical-align: middle;\n",
|
||
" }\n",
|
||
"\n",
|
||
" .dataframe tbody tr th {\n",
|
||
" vertical-align: top;\n",
|
||
" }\n",
|
||
"\n",
|
||
" .dataframe thead th {\n",
|
||
" text-align: right;\n",
|
||
" }\n",
|
||
"</style>\n",
|
||
"<table border=\"1\" class=\"dataframe\">\n",
|
||
" <thead>\n",
|
||
" <tr style=\"text-align: right;\">\n",
|
||
" <th></th>\n",
|
||
" <th>ma_dia_diem</th>\n",
|
||
" <th>all_task_normal</th>\n",
|
||
" <th>all_task_dinhky</th>\n",
|
||
" <th>loai_ca</th>\n",
|
||
" <th>bat_dau</th>\n",
|
||
" <th>ket_thuc</th>\n",
|
||
" <th>tong_gio_lam</th>\n",
|
||
" <th>so_ca_cua_toa</th>\n",
|
||
" <th>so_luong</th>\n",
|
||
" <th>num_tasks</th>\n",
|
||
" <th>num_cleaning_tasks</th>\n",
|
||
" <th>num_trash_collection_tasks</th>\n",
|
||
" <th>num_monitoring_tasks</th>\n",
|
||
" <th>num_room_cleaning_tasks</th>\n",
|
||
" <th>num_deep_cleaning_tasks</th>\n",
|
||
" <th>num_maintenance_tasks</th>\n",
|
||
" <th>num_support_tasks</th>\n",
|
||
" <th>num_other_tasks</th>\n",
|
||
" <th>num_wc_tasks</th>\n",
|
||
" <th>num_hallway_tasks</th>\n",
|
||
" <th>num_lobby_tasks</th>\n",
|
||
" <th>num_patient_room_tasks</th>\n",
|
||
" <th>num_clinic_room_tasks</th>\n",
|
||
" <th>num_surgery_room_tasks</th>\n",
|
||
" <th>num_outdoor_tasks</th>\n",
|
||
" <th>num_elevator_tasks</th>\n",
|
||
" <th>num_office_tasks</th>\n",
|
||
" <th>num_technical_room_tasks</th>\n",
|
||
" <th>cleaning_ratio</th>\n",
|
||
" <th>trash_collection_ratio</th>\n",
|
||
" <th>monitoring_ratio</th>\n",
|
||
" <th>room_cleaning_ratio</th>\n",
|
||
" <th>area_diversity</th>\n",
|
||
" <th>task_complexity_score</th>\n",
|
||
" <th>loai_hinh</th>\n",
|
||
" <th>ten_toa_thap</th>\n",
|
||
" <th>muc_do_luu_luong</th>\n",
|
||
" <th>so_tang</th>\n",
|
||
" <th>so_cua_thang_may</th>\n",
|
||
" <th>dien_tich_ngoai_canh</th>\n",
|
||
" <th>dien_tich_sanh</th>\n",
|
||
" <th>dien_tich_hanh_lang</th>\n",
|
||
" <th>dien_tich_wc</th>\n",
|
||
" <th>dien_tich_phong</th>\n",
|
||
" <th>dien_tich_tham</th>\n",
|
||
" <th>doc_ham</th>\n",
|
||
" <th>vien_phan_quang</th>\n",
|
||
" <th>op_tuong</th>\n",
|
||
" <th>op_chan_tuong</th>\n",
|
||
" <th>ranh_thoat_nuoc</th>\n",
|
||
" <th>dien_tich_kinh</th>\n",
|
||
" </tr>\n",
|
||
" </thead>\n",
|
||
" <tbody>\n",
|
||
" <tr>\n",
|
||
" <th>0</th>\n",
|
||
" <td>115-2</td>\n",
|
||
" <td>Làm sạch toàn bộ phòng giao dịch tầng 1 (kể cả...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>Part time</td>\n",
|
||
" <td>06:30:00</td>\n",
|
||
" <td>10:30:00</td>\n",
|
||
" <td>4.0</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>7.0</td>\n",
|
||
" <td>7.0</td>\n",
|
||
" <td>1.0</td>\n",
|
||
" <td>2.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>1.0</td>\n",
|
||
" <td>1.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>4.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>2.0</td>\n",
|
||
" <td>3.0</td>\n",
|
||
" <td>1.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>1.000</td>\n",
|
||
" <td>0.1429</td>\n",
|
||
" <td>0.2857</td>\n",
|
||
" <td>0.0000</td>\n",
|
||
" <td>4.0</td>\n",
|
||
" <td>1.38</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>AGRIBANK CHI NHÁNH MỸ ĐÌNH</td>\n",
|
||
" <td>Trung bình (11–20 người)</td>\n",
|
||
" <td>4</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>15.0</td>\n",
|
||
" <td>290.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>20.0</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>1</th>\n",
|
||
" <td>115-5</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>Hành chính</td>\n",
|
||
" <td>06:30:00</td>\n",
|
||
" <td>16:00:00</td>\n",
|
||
" <td>8.0</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>AGRIBANK PGD SỐ 05</td>\n",
|
||
" <td>Trung bình (11–20 người)</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>15.0</td>\n",
|
||
" <td>300.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>30.0</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>2</th>\n",
|
||
" <td>101-1</td>\n",
|
||
" <td>Kiểm tra nhân sự các vị trí Thay rác, đẩy khô,...</td>\n",
|
||
" <td>Lau bảng biển, bình cứu hỏa , cây nước hành la...</td>\n",
|
||
" <td>Hành chính</td>\n",
|
||
" <td>06:30:00</td>\n",
|
||
" <td>16:00:00</td>\n",
|
||
" <td>7.5</td>\n",
|
||
" <td>6</td>\n",
|
||
" <td>24</td>\n",
|
||
" <td>441.0</td>\n",
|
||
" <td>258.0</td>\n",
|
||
" <td>145.0</td>\n",
|
||
" <td>134.0</td>\n",
|
||
" <td>65.0</td>\n",
|
||
" <td>75.0</td>\n",
|
||
" <td>62.0</td>\n",
|
||
" <td>57.0</td>\n",
|
||
" <td>45.0</td>\n",
|
||
" <td>89.0</td>\n",
|
||
" <td>90.0</td>\n",
|
||
" <td>5.0</td>\n",
|
||
" <td>41.0</td>\n",
|
||
" <td>25.0</td>\n",
|
||
" <td>30.0</td>\n",
|
||
" <td>4.0</td>\n",
|
||
" <td>12.0</td>\n",
|
||
" <td>39.0</td>\n",
|
||
" <td>16.0</td>\n",
|
||
" <td>0.585</td>\n",
|
||
" <td>0.3288</td>\n",
|
||
" <td>0.3039</td>\n",
|
||
" <td>0.1474</td>\n",
|
||
" <td>10.0</td>\n",
|
||
" <td>10.00</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>Tòa 5 tầng</td>\n",
|
||
" <td>Rất cao (Trên 40 người)</td>\n",
|
||
" <td>10</td>\n",
|
||
" <td>18</td>\n",
|
||
" <td>1700.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>2600.0</td>\n",
|
||
" <td>348.0</td>\n",
|
||
" <td>6825.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>70</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>9176.0</td>\n",
|
||
" <td>89.0</td>\n",
|
||
" <td>25</td>\n",
|
||
" <td>894.0</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>3</th>\n",
|
||
" <td>101-1</td>\n",
|
||
" <td>Kiểm tra nhân sự các vị trí Thay rác, đẩy khô,...</td>\n",
|
||
" <td>Lau bảng biển, bình cứu hỏa , cây nước hành la...</td>\n",
|
||
" <td>Ca sáng</td>\n",
|
||
" <td>06:00:00</td>\n",
|
||
" <td>14:00:00</td>\n",
|
||
" <td>8.0</td>\n",
|
||
" <td>6</td>\n",
|
||
" <td>3</td>\n",
|
||
" <td>441.0</td>\n",
|
||
" <td>258.0</td>\n",
|
||
" <td>145.0</td>\n",
|
||
" <td>134.0</td>\n",
|
||
" <td>65.0</td>\n",
|
||
" <td>75.0</td>\n",
|
||
" <td>62.0</td>\n",
|
||
" <td>57.0</td>\n",
|
||
" <td>45.0</td>\n",
|
||
" <td>89.0</td>\n",
|
||
" <td>90.0</td>\n",
|
||
" <td>5.0</td>\n",
|
||
" <td>41.0</td>\n",
|
||
" <td>25.0</td>\n",
|
||
" <td>30.0</td>\n",
|
||
" <td>4.0</td>\n",
|
||
" <td>12.0</td>\n",
|
||
" <td>39.0</td>\n",
|
||
" <td>16.0</td>\n",
|
||
" <td>0.585</td>\n",
|
||
" <td>0.3288</td>\n",
|
||
" <td>0.3039</td>\n",
|
||
" <td>0.1474</td>\n",
|
||
" <td>10.0</td>\n",
|
||
" <td>10.00</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>Tòa 5 tầng</td>\n",
|
||
" <td>Rất cao (Trên 40 người)</td>\n",
|
||
" <td>10</td>\n",
|
||
" <td>18</td>\n",
|
||
" <td>1700.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>2600.0</td>\n",
|
||
" <td>348.0</td>\n",
|
||
" <td>6825.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>70</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>9176.0</td>\n",
|
||
" <td>89.0</td>\n",
|
||
" <td>25</td>\n",
|
||
" <td>894.0</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>4</th>\n",
|
||
" <td>101-1</td>\n",
|
||
" <td>Kiểm tra nhân sự các vị trí Thay rác, đẩy khô,...</td>\n",
|
||
" <td>Lau bảng biển, bình cứu hỏa , cây nước hành la...</td>\n",
|
||
" <td>Ca chiều</td>\n",
|
||
" <td>14:00:00</td>\n",
|
||
" <td>22:00:00</td>\n",
|
||
" <td>8.0</td>\n",
|
||
" <td>6</td>\n",
|
||
" <td>5</td>\n",
|
||
" <td>441.0</td>\n",
|
||
" <td>258.0</td>\n",
|
||
" <td>145.0</td>\n",
|
||
" <td>134.0</td>\n",
|
||
" <td>65.0</td>\n",
|
||
" <td>75.0</td>\n",
|
||
" <td>62.0</td>\n",
|
||
" <td>57.0</td>\n",
|
||
" <td>45.0</td>\n",
|
||
" <td>89.0</td>\n",
|
||
" <td>90.0</td>\n",
|
||
" <td>5.0</td>\n",
|
||
" <td>41.0</td>\n",
|
||
" <td>25.0</td>\n",
|
||
" <td>30.0</td>\n",
|
||
" <td>4.0</td>\n",
|
||
" <td>12.0</td>\n",
|
||
" <td>39.0</td>\n",
|
||
" <td>16.0</td>\n",
|
||
" <td>0.585</td>\n",
|
||
" <td>0.3288</td>\n",
|
||
" <td>0.3039</td>\n",
|
||
" <td>0.1474</td>\n",
|
||
" <td>10.0</td>\n",
|
||
" <td>10.00</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>Tòa 5 tầng</td>\n",
|
||
" <td>Rất cao (Trên 40 người)</td>\n",
|
||
" <td>10</td>\n",
|
||
" <td>18</td>\n",
|
||
" <td>1700.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>2600.0</td>\n",
|
||
" <td>348.0</td>\n",
|
||
" <td>6825.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>70</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>9176.0</td>\n",
|
||
" <td>89.0</td>\n",
|
||
" <td>25</td>\n",
|
||
" <td>894.0</td>\n",
|
||
" </tr>\n",
|
||
" </tbody>\n",
|
||
"</table>\n",
|
||
"</div>"
|
||
],
|
||
"text/plain": [
|
||
" ma_dia_diem all_task_normal \\\n",
|
||
"0 115-2 Làm sạch toàn bộ phòng giao dịch tầng 1 (kể cả... \n",
|
||
"1 115-5 NaN \n",
|
||
"2 101-1 Kiểm tra nhân sự các vị trí Thay rác, đẩy khô,... \n",
|
||
"3 101-1 Kiểm tra nhân sự các vị trí Thay rác, đẩy khô,... \n",
|
||
"4 101-1 Kiểm tra nhân sự các vị trí Thay rác, đẩy khô,... \n",
|
||
"\n",
|
||
" all_task_dinhky loai_ca bat_dau \\\n",
|
||
"0 NaN Part time 06:30:00 \n",
|
||
"1 NaN Hành chính 06:30:00 \n",
|
||
"2 Lau bảng biển, bình cứu hỏa , cây nước hành la... Hành chính 06:30:00 \n",
|
||
"3 Lau bảng biển, bình cứu hỏa , cây nước hành la... Ca sáng 06:00:00 \n",
|
||
"4 Lau bảng biển, bình cứu hỏa , cây nước hành la... Ca chiều 14:00:00 \n",
|
||
"\n",
|
||
" ket_thuc tong_gio_lam so_ca_cua_toa so_luong num_tasks \\\n",
|
||
"0 10:30:00 4.0 1 1 7.0 \n",
|
||
"1 16:00:00 8.0 1 1 NaN \n",
|
||
"2 16:00:00 7.5 6 24 441.0 \n",
|
||
"3 14:00:00 8.0 6 3 441.0 \n",
|
||
"4 22:00:00 8.0 6 5 441.0 \n",
|
||
"\n",
|
||
" num_cleaning_tasks num_trash_collection_tasks num_monitoring_tasks \\\n",
|
||
"0 7.0 1.0 2.0 \n",
|
||
"1 NaN NaN NaN \n",
|
||
"2 258.0 145.0 134.0 \n",
|
||
"3 258.0 145.0 134.0 \n",
|
||
"4 258.0 145.0 134.0 \n",
|
||
"\n",
|
||
" num_room_cleaning_tasks num_deep_cleaning_tasks num_maintenance_tasks \\\n",
|
||
"0 0.0 1.0 1.0 \n",
|
||
"1 NaN NaN NaN \n",
|
||
"2 65.0 75.0 62.0 \n",
|
||
"3 65.0 75.0 62.0 \n",
|
||
"4 65.0 75.0 62.0 \n",
|
||
"\n",
|
||
" num_support_tasks num_other_tasks num_wc_tasks num_hallway_tasks \\\n",
|
||
"0 0.0 0.0 4.0 0.0 \n",
|
||
"1 NaN NaN NaN NaN \n",
|
||
"2 57.0 45.0 89.0 90.0 \n",
|
||
"3 57.0 45.0 89.0 90.0 \n",
|
||
"4 57.0 45.0 89.0 90.0 \n",
|
||
"\n",
|
||
" num_lobby_tasks num_patient_room_tasks num_clinic_room_tasks \\\n",
|
||
"0 0.0 0.0 0.0 \n",
|
||
"1 NaN NaN NaN \n",
|
||
"2 5.0 41.0 25.0 \n",
|
||
"3 5.0 41.0 25.0 \n",
|
||
"4 5.0 41.0 25.0 \n",
|
||
"\n",
|
||
" num_surgery_room_tasks num_outdoor_tasks num_elevator_tasks \\\n",
|
||
"0 0.0 2.0 3.0 \n",
|
||
"1 NaN NaN NaN \n",
|
||
"2 30.0 4.0 12.0 \n",
|
||
"3 30.0 4.0 12.0 \n",
|
||
"4 30.0 4.0 12.0 \n",
|
||
"\n",
|
||
" num_office_tasks num_technical_room_tasks cleaning_ratio \\\n",
|
||
"0 1.0 0.0 1.000 \n",
|
||
"1 NaN NaN NaN \n",
|
||
"2 39.0 16.0 0.585 \n",
|
||
"3 39.0 16.0 0.585 \n",
|
||
"4 39.0 16.0 0.585 \n",
|
||
"\n",
|
||
" trash_collection_ratio monitoring_ratio room_cleaning_ratio \\\n",
|
||
"0 0.1429 0.2857 0.0000 \n",
|
||
"1 NaN NaN NaN \n",
|
||
"2 0.3288 0.3039 0.1474 \n",
|
||
"3 0.3288 0.3039 0.1474 \n",
|
||
"4 0.3288 0.3039 0.1474 \n",
|
||
"\n",
|
||
" area_diversity task_complexity_score loai_hinh \\\n",
|
||
"0 4.0 1.38 0 \n",
|
||
"1 NaN NaN 0 \n",
|
||
"2 10.0 10.00 0 \n",
|
||
"3 10.0 10.00 0 \n",
|
||
"4 10.0 10.00 0 \n",
|
||
"\n",
|
||
" ten_toa_thap muc_do_luu_luong so_tang \\\n",
|
||
"0 AGRIBANK CHI NHÁNH MỸ ĐÌNH Trung bình (11–20 người) 4 \n",
|
||
"1 AGRIBANK PGD SỐ 05 Trung bình (11–20 người) 1 \n",
|
||
"2 Tòa 5 tầng Rất cao (Trên 40 người) 10 \n",
|
||
"3 Tòa 5 tầng Rất cao (Trên 40 người) 10 \n",
|
||
"4 Tòa 5 tầng Rất cao (Trên 40 người) 10 \n",
|
||
"\n",
|
||
" so_cua_thang_may dien_tich_ngoai_canh dien_tich_sanh \\\n",
|
||
"0 0 0.0 0.0 \n",
|
||
"1 0 0.0 0.0 \n",
|
||
"2 18 1700.0 0.0 \n",
|
||
"3 18 1700.0 0.0 \n",
|
||
"4 18 1700.0 0.0 \n",
|
||
"\n",
|
||
" dien_tich_hanh_lang dien_tich_wc dien_tich_phong dien_tich_tham \\\n",
|
||
"0 0.0 15.0 290.0 0.0 \n",
|
||
"1 0.0 15.0 300.0 0.0 \n",
|
||
"2 2600.0 348.0 6825.0 0.0 \n",
|
||
"3 2600.0 348.0 6825.0 0.0 \n",
|
||
"4 2600.0 348.0 6825.0 0.0 \n",
|
||
"\n",
|
||
" doc_ham vien_phan_quang op_tuong op_chan_tuong ranh_thoat_nuoc \\\n",
|
||
"0 0 0 0.0 0.0 0 \n",
|
||
"1 0 0 0.0 0.0 0 \n",
|
||
"2 70 0 9176.0 89.0 25 \n",
|
||
"3 70 0 9176.0 89.0 25 \n",
|
||
"4 70 0 9176.0 89.0 25 \n",
|
||
"\n",
|
||
" dien_tich_kinh \n",
|
||
"0 20.0 \n",
|
||
"1 30.0 \n",
|
||
"2 894.0 \n",
|
||
"3 894.0 \n",
|
||
"4 894.0 "
|
||
]
|
||
},
|
||
"execution_count": 17,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
}
|
||
],
|
||
"source": [
|
||
"print(\"📂 Loading dataset...\")\n",
|
||
"# ⚠️ IMPORTANT: Using the SAME dataset as Phase 1 for fair comparison!\n",
|
||
"df = pd.read_excel('FINAL_DATASET_WITH_TEXT_BACKUP_20260105_213507.xlsx')\n",
|
||
"\n",
|
||
"print(f\"✅ Dataset loaded!\")\n",
|
||
"print(f\"📊 Shape: {df.shape}\")\n",
|
||
"print(f\"\\n📋 Columns ({len(df.columns)}):{df.columns.tolist()[:10]}... (showing first 10)\")\n",
|
||
"\n",
|
||
"# Verify text columns\n",
|
||
"print(\"\\n🔍 Checking text columns:\")\n",
|
||
"print(f\" all_task_normal: {'✅ Found' if 'all_task_normal' in df.columns else '❌ Missing'}\")\n",
|
||
"print(f\" all_task_dinhky: {'✅ Found' if 'all_task_dinhky' in df.columns else '❌ Missing'}\")\n",
|
||
"\n",
|
||
"# Check missing values in text columns\n",
|
||
"if 'all_task_normal' in df.columns:\n",
|
||
" print(f\"\\n all_task_normal - Missing: {df['all_task_normal'].isnull().sum()} ({df['all_task_normal'].isnull().sum()/len(df)*100:.1f}%)\")\n",
|
||
"if 'all_task_dinhky' in df.columns:\n",
|
||
" print(f\" all_task_dinhky - Missing: {df['all_task_dinhky'].isnull().sum()} ({df['all_task_dinhky'].isnull().sum()/len(df)*100:.1f}%)\")\n",
|
||
"\n",
|
||
"# Sample text data\n",
|
||
"print(\"\\n📄 Sample text data:\")\n",
|
||
"print(\"\\nall_task_normal (first 200 chars):\")\n",
|
||
"print(str(df['all_task_normal'].iloc[0])[:200] + \"...\")\n",
|
||
"print(\"\\nall_task_dinhky (first 200 chars):\")\n",
|
||
"print(str(df['all_task_dinhky'].iloc[0])[:200] + \"...\")\n",
|
||
"\n",
|
||
"df.head()"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "e54a1e43",
|
||
"metadata": {},
|
||
"source": [
|
||
"# 3️⃣ Text Preprocessing\n",
|
||
"\n",
|
||
"Chuẩn bị text data cho TF-IDF:\n",
|
||
"- Lowercase\n",
|
||
"- Remove special characters\n",
|
||
"- Handle missing values\n",
|
||
"- Combine both task columns"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 18,
|
||
"id": "8cab7fd2",
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"================================================================================\n",
|
||
"🧹 TEXT PREPROCESSING\n",
|
||
"================================================================================\n",
|
||
"\n",
|
||
"1. Preprocessing all_task_normal...\n",
|
||
" ✓ Done. Non-empty: 427 / 454\n",
|
||
"\n",
|
||
"2. Preprocessing all_task_dinhky...\n",
|
||
" ✓ Done. Non-empty: 286 / 454\n",
|
||
"\n",
|
||
"3. Combining both task columns...\n",
|
||
"\n",
|
||
"4. Text statistics:\n",
|
||
" Average length: 9394 characters\n",
|
||
" Average words: 2243 words\n",
|
||
" Min words: 0\n",
|
||
" Max words: 10342\n",
|
||
" Empty texts: 27\n",
|
||
"\n",
|
||
"5. Sample cleaned text:\n",
|
||
"làm sạch toàn bộ phòng giao dịch tầng 1 kể cả wc làm sạch bậc tam cấp ngoại cảnh tầng hầm làm sạch toàn bộ văn phòng tầng 2 phòng lãnh đạo kể cả wc làm sạch toàn bộ thang bộ từ tầng 1 lên tầng 4 trực lại toàn bộ wc từ tầng 1 tầng 2 lưu ý đặt giấy lau vết bẩn phát sinh gạt kính cửa ra vào thay rác tr...\n",
|
||
"\n",
|
||
"✅ Text preprocessing complete!\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"print(\"=\" * 80)\n",
|
||
"print(\"🧹 TEXT PREPROCESSING\")\n",
|
||
"print(\"=\" * 80)\n",
|
||
"\n",
|
||
"def preprocess_text(text):\n",
|
||
" \"\"\"\n",
|
||
" Preprocess Vietnamese text\n",
|
||
" \"\"\"\n",
|
||
" if pd.isna(text) or str(text).strip() == '':\n",
|
||
" return ''\n",
|
||
" \n",
|
||
" text = str(text).lower()\n",
|
||
" \n",
|
||
" # Keep Vietnamese characters, numbers, spaces\n",
|
||
" # Remove special chars except spaces\n",
|
||
" text = re.sub(r'[^a-zàáạảãâầấậẩẫăằắặẳẵèéẹẻẽêềếệểễìíịỉĩòóọỏõôồốộổỗơờớợởỡùúụủũưừứựửữỳýỵỷỹđ0-9\\s]', ' ', text)\n",
|
||
" \n",
|
||
" # Remove multiple spaces\n",
|
||
" text = re.sub(r'\\s+', ' ', text).strip()\n",
|
||
" \n",
|
||
" return text\n",
|
||
"\n",
|
||
"# Preprocess both columns\n",
|
||
"print(\"\\n1. Preprocessing all_task_normal...\")\n",
|
||
"df['task_normal_clean'] = df['all_task_normal'].apply(preprocess_text)\n",
|
||
"print(f\" ✓ Done. Non-empty: {(df['task_normal_clean'] != '').sum()} / {len(df)}\")\n",
|
||
"\n",
|
||
"print(\"\\n2. Preprocessing all_task_dinhky...\")\n",
|
||
"df['task_dinhky_clean'] = df['all_task_dinhky'].apply(preprocess_text)\n",
|
||
"print(f\" ✓ Done. Non-empty: {(df['task_dinhky_clean'] != '').sum()} / {len(df)}\")\n",
|
||
"\n",
|
||
"# Combine both task columns\n",
|
||
"print(\"\\n3. Combining both task columns...\")\n",
|
||
"df['all_tasks_combined'] = df['task_normal_clean'] + ' ' + df['task_dinhky_clean']\n",
|
||
"df['all_tasks_combined'] = df['all_tasks_combined'].str.strip()\n",
|
||
"\n",
|
||
"# Statistics\n",
|
||
"print(\"\\n4. Text statistics:\")\n",
|
||
"df['text_length'] = df['all_tasks_combined'].str.len()\n",
|
||
"df['text_word_count'] = df['all_tasks_combined'].str.split().str.len()\n",
|
||
"\n",
|
||
"print(f\" Average length: {df['text_length'].mean():.0f} characters\")\n",
|
||
"print(f\" Average words: {df['text_word_count'].mean():.0f} words\")\n",
|
||
"print(f\" Min words: {df['text_word_count'].min():.0f}\")\n",
|
||
"print(f\" Max words: {df['text_word_count'].max():.0f}\")\n",
|
||
"print(f\" Empty texts: {(df['all_tasks_combined'] == '').sum()}\")\n",
|
||
"\n",
|
||
"# Sample cleaned text\n",
|
||
"print(\"\\n5. Sample cleaned text:\")\n",
|
||
"print(df['all_tasks_combined'].iloc[0][:300] + \"...\")\n",
|
||
"\n",
|
||
"print(\"\\n✅ Text preprocessing complete!\")"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "11cb1a6d",
|
||
"metadata": {},
|
||
"source": [
|
||
"# 4️⃣ TF-IDF Vectorization\n",
|
||
"\n",
|
||
"Chuyển text thành numeric features với TF-IDF"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 19,
|
||
"id": "59aa536f",
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"================================================================================\n",
|
||
"📊 TF-IDF VECTORIZATION\n",
|
||
"================================================================================\n",
|
||
"\n",
|
||
"TF-IDF Configuration:\n",
|
||
" max_features: 200\n",
|
||
" ngram_range: (1, 2)\n",
|
||
" min_df: 2\n",
|
||
" max_df: 0.95\n",
|
||
"\n",
|
||
"Creating TF-IDF vectorizer...\n",
|
||
"\n",
|
||
"Fitting TF-IDF on all documents...\n",
|
||
"\n",
|
||
"✅ TF-IDF complete!\n",
|
||
" Output shape: (454, 200)\n",
|
||
" Actual features extracted: 200\n",
|
||
" Sparsity: 47.20%\n",
|
||
"\n",
|
||
"📋 Top 20 TF-IDF features (by document frequency):\n",
|
||
" feature doc_frequency\n",
|
||
" rác 412\n",
|
||
" lau 408\n",
|
||
" sinh 408\n",
|
||
" kính 404\n",
|
||
" làm 404\n",
|
||
" vệ 399\n",
|
||
" định 397\n",
|
||
" phòng 395\n",
|
||
" thu 393\n",
|
||
" vệ sinh 392\n",
|
||
" sạch 386\n",
|
||
" quét 385\n",
|
||
" nghỉ 381\n",
|
||
" trực 380\n",
|
||
" cửa 380\n",
|
||
"làm sạch 378\n",
|
||
" định kỳ 370\n",
|
||
" kỳ 370\n",
|
||
" cụ 368\n",
|
||
" dụng 368\n",
|
||
"\n",
|
||
"✅ TF-IDF DataFrame created: (454, 200)\n",
|
||
"\n",
|
||
"✅ TF-IDF complete!\n",
|
||
" Output shape: (454, 200)\n",
|
||
" Actual features extracted: 200\n",
|
||
" Sparsity: 47.20%\n",
|
||
"\n",
|
||
"📋 Top 20 TF-IDF features (by document frequency):\n",
|
||
" feature doc_frequency\n",
|
||
" rác 412\n",
|
||
" lau 408\n",
|
||
" sinh 408\n",
|
||
" kính 404\n",
|
||
" làm 404\n",
|
||
" vệ 399\n",
|
||
" định 397\n",
|
||
" phòng 395\n",
|
||
" thu 393\n",
|
||
" vệ sinh 392\n",
|
||
" sạch 386\n",
|
||
" quét 385\n",
|
||
" nghỉ 381\n",
|
||
" trực 380\n",
|
||
" cửa 380\n",
|
||
"làm sạch 378\n",
|
||
" định kỳ 370\n",
|
||
" kỳ 370\n",
|
||
" cụ 368\n",
|
||
" dụng 368\n",
|
||
"\n",
|
||
"✅ TF-IDF DataFrame created: (454, 200)\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"print(\"=\" * 80)\n",
|
||
"print(\"📊 TF-IDF VECTORIZATION\")\n",
|
||
"print(\"=\" * 80)\n",
|
||
"\n",
|
||
"# TF-IDF parameters\n",
|
||
"max_features = 200 # Giới hạn số features từ TF-IDF\n",
|
||
"ngram_range = (1, 2) # Unigrams và bigrams\n",
|
||
"min_df = 2 # Xuất hiện ít nhất 2 documents\n",
|
||
"max_df = 0.95 # Xuất hiện tối đa 95% documents\n",
|
||
"\n",
|
||
"print(f\"\\nTF-IDF Configuration:\")\n",
|
||
"print(f\" max_features: {max_features}\")\n",
|
||
"print(f\" ngram_range: {ngram_range}\")\n",
|
||
"print(f\" min_df: {min_df}\")\n",
|
||
"print(f\" max_df: {max_df}\")\n",
|
||
"\n",
|
||
"# Create TF-IDF vectorizer\n",
|
||
"print(\"\\nCreating TF-IDF vectorizer...\")\n",
|
||
"tfidf = TfidfVectorizer(\n",
|
||
" max_features=max_features,\n",
|
||
" ngram_range=ngram_range,\n",
|
||
" min_df=min_df,\n",
|
||
" max_df=max_df,\n",
|
||
" sublinear_tf=True, # Use log scaling\n",
|
||
" strip_accents=None # Keep Vietnamese accents\n",
|
||
")\n",
|
||
"\n",
|
||
"# Fit and transform\n",
|
||
"print(\"\\nFitting TF-IDF on all documents...\")\n",
|
||
"tfidf_matrix = tfidf.fit_transform(df['all_tasks_combined'])\n",
|
||
"\n",
|
||
"print(f\"\\n✅ TF-IDF complete!\")\n",
|
||
"print(f\" Output shape: {tfidf_matrix.shape}\")\n",
|
||
"print(f\" Actual features extracted: {len(tfidf.get_feature_names_out())}\")\n",
|
||
"print(f\" Sparsity: {(1.0 - tfidf_matrix.nnz / (tfidf_matrix.shape[0] * tfidf_matrix.shape[1])) * 100:.2f}%\")\n",
|
||
"\n",
|
||
"# Top features by importance\n",
|
||
"print(\"\\n📋 Top 20 TF-IDF features (by document frequency):\")\n",
|
||
"feature_names = tfidf.get_feature_names_out()\n",
|
||
"doc_freq = (tfidf_matrix > 0).sum(axis=0).A1\n",
|
||
"top_features = pd.DataFrame({\n",
|
||
" 'feature': feature_names,\n",
|
||
" 'doc_frequency': doc_freq\n",
|
||
"}).sort_values('doc_frequency', ascending=False)\n",
|
||
"\n",
|
||
"print(top_features.head(20).to_string(index=False))\n",
|
||
"\n",
|
||
"# Save TF-IDF matrix as DataFrame (optional, for inspection)\n",
|
||
"tfidf_df = pd.DataFrame(\n",
|
||
" tfidf_matrix.toarray(),\n",
|
||
" columns=[f'tfidf_{i}' for i in range(tfidf_matrix.shape[1])]\n",
|
||
")\n",
|
||
"\n",
|
||
"print(f\"\\n✅ TF-IDF DataFrame created: {tfidf_df.shape}\")"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "aa687eb6",
|
||
"metadata": {},
|
||
"source": [
|
||
"# 5️⃣ SVD Dimensionality Reduction\n",
|
||
"\n",
|
||
"Giảm chiều TF-IDF features với SVD để tránh overfitting"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 20,
|
||
"id": "77ae5dbb",
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"================================================================================\n",
|
||
"🔬 SVD DIMENSIONALITY REDUCTION\n",
|
||
"================================================================================\n",
|
||
"\n",
|
||
"SVD Configuration:\n",
|
||
" Input dimensions: 200\n",
|
||
" Output dimensions: 50\n",
|
||
" Reduction: 75.0%\n",
|
||
"\n",
|
||
"Applying SVD...\n",
|
||
"\n",
|
||
"✅ SVD complete!\n",
|
||
" Output shape: (454, 50)\n",
|
||
" Explained variance: 89.66%\n",
|
||
"\n",
|
||
"📊 Variance explained by top 10 components:\n",
|
||
" Component 1: 11.08%\n",
|
||
" Component 2: 8.74%\n",
|
||
" Component 3: 7.92%\n",
|
||
" Component 4: 5.04%\n",
|
||
" Component 5: 3.60%\n",
|
||
" Component 6: 3.36%\n",
|
||
" Component 7: 3.29%\n",
|
||
" Component 8: 3.13%\n",
|
||
" Component 9: 3.06%\n",
|
||
" Component 10: 2.75%\n",
|
||
"\n",
|
||
" Cumulative variance (first 10): 51.95%\n",
|
||
" Cumulative variance (all 50): 89.66%\n",
|
||
"\n",
|
||
"✅ SVD features DataFrame created: (454, 50)\n"
|
||
]
|
||
},
|
||
{
|
||
"data": {
|
||
"image/png": "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E9SrVw/btm1LU7Qa0BWXT0k+SCSSj7pbXGamTZuGL7/8EiVLloSJiQlKly6N/v37i1dilUqluDTLzs4Oe/bswaBBg+Dq6ip+fk2bNsWWLVty/e6Acrkc69evx7x589CgQQPY2tpCKpXC2toa1atXx6hRo3DkyBG9K9KpfehckhVmZmaoUKECBg8ejGPHjn2wCGhqgiBgypQp+Pnnn9GuXTs4OjpCJpPBysoK9evXx7x587Bx48Y0Ca6xY8diy5YtaN26Nezt7SGXy+Hi4oIBAwbg0KFDesvnclvFihWxdetWuLu7Qy6Xw9nZGcOGDcO6dev0EmGtWrXC4cOH0bNnT7i4uEAul8POzg4dOnTA3r179a4SZ1denvcaNmwo/jtXKBR6y6mJqOAoUaIE9u/fj2nTpsHDwwOWlpaQyWQoUaIEvL29sW/fvjQzfSpUqIB169ahZs2aMDExgYODA/r374+dO3fmSa3GFKtXr0bnzp1hY2MDc3NzNGnSBL/88kuWZ7xmd5w0evRoNGnSBJaWlrC0tMzyBYI+ffqIP3fr1i3dukLff/895syZg9q1a8PCwgJmZmaoVKkSJkyYgLVr12brgknq72ITExO9u8YCuiVwGzduhKenJywsLGBra4u6devip59+Es/dH7q7c2by+vjTpk3DggUL4OHhAXNzc1hYWKBy5coYP348Vq9eLX6+Dg4O2Lt3LwYMGCCOqezs7MQxVW6P/e7fvy8mlZydncXlr40aNRJ/Z/777790az35+vrC19cXzs7OUCgUqFGjBtavX48uXbp88DXz+rNOT/369bFnzx506NABDg4OkMvlKFGiBLp164Y9e/boFcRv0qQJtm3bhvr168PExASOjo744osv0i2QTiRoWQCCyKhcu3YNAwYMAJC9u7xR1rx69QqtWrVCcnIymjRpIs7SIsptKUthsnOXTiIiIircDhw4gClTpgDQ1RnNLAFFVNhx+R4RFXrJyckIDQ2FUqnEzJkzxSuf3bt3N3BkRERERERERReTUkRU6Gk0GrRu3VrvtrTVq1cXi4sTERERERFR/mNNKSIq9ORyOapUqQKFQgFHR0f4+Pjgp59+glQqNXRoRERERERERRZrShERERERERERUb7jTCkiIiIiIiIiIsp3TEoREREREREREVG+K9KFzt+8icnR8+RyKVSq5FyOhrKL/WAc2A/Ggf1gHNgPxiGv+8HR0SrPjm2MOF4q+NgXxoH9YBzYD8aB/WAcjGHMxJlSOSAIho6AAPaDsWA/GAf2g3FgPxgH9oNxYD8YD/aFcWA/GAf2g3FgPxgHY+gHJqWIiIiIiIiIiCjfMSlFRERERERERET5jkkpIiIiIiIiIiLKd0xKERERERERERFRvmNSioiIiIiIiIiI8h2TUkRERERERERElO+YlCIiIiIiIiIionzHpBQREREREREREeU7JqWIiIiIiIiIiCjfMSlFRERERERERET5jkkpIiIiIiIiIiLKd0xKERERERERERFRvmNSioiIiKgQCA8Px8iRI1G3bl00aNAAc+fOhVqtTrftgQMH0L59e3h4eKBXr164fv16PkdLREREBMgMHQARERERfTxfX184OTnh4sWLCAsLw4gRI7B161YMGTJEr93Zs2fx/fffY+XKlWjevDnOnj2LoUOH4sCBAyhfvnya48ap4jJ8TakghanMNN22KkEKpSpZfCwRJDCTmWXpuO+3jVfFQwttum0FCDCXm+eobYI6ARqtJsM4LOQWOWqbqE5EsjY5V9qay8whCAIAICk5CWpN+onGD7V9vy8AwExmBomguz6tTFZCpVFleNzstDWVmkIqkWa7rSpZBaVGmWFbE6kJZBJZttuqNWokJSdl2FYhUUAulWe7bbImGYnJiRm2lUvkUEgVem3T64f322q0GiSoE7J03MzayiQymEhNAABarRbx6vhcafuh3/uPaZuf54gkVfq/R0X1HJEeniN08vMckZW2uX2OUED37z0vzxGZEbRabfq/vUXAmzcxOXqeQiGFUpnxiYHyB/vBOLAfjAP7wTiwH4xDXveDo6NVnh07p54/f462bdviwoULcHJyAgD4+flh0aJFOHfunF7bsWPHwtTUFPPnzxe3DRkyBJUrV8aECRPSHFuYKWT4um1Kt8XOTvvEx2U3OGc4UG1csikO+fiJj6tuLofwxPB029Z29MDpz/zFx547aiAo5kW6bSsXq4KLfQLEx8121ceDiPvptnW1Ko2b/f8RH7fd64Xbb26l29be1B7/fvlUfOxzqCMuh1xKt625zBzPvnolPu57rAfOvDidblsAeD0yWvx58KkBOBp4KMO2T4f+J/6BOvrscOx+sDPDtvcGPYGDmQMAYNKFb7Hln40Ztr3x+d8obV0GAPDD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yOVy9OzZE5999pnFZoZUuGrXro01a9bAz88PgOkuAjNmzMC1a9dQrlw5BAYGolevXiJHWfKsWrUKs2bNgkajgUwms3ju7NmzzEMRioqKQnBwMC5evAh7e3t0797dfJcf5kEcQUFBAIBZs2YB4M+lohQZGYl58+bh2rVrsLKyQteuXTFhwgRYWVkxDyLieEl8HC+Jg+MlaeGYSVo4XhKXlMdMLEoREREREREREVGR4/I9IiIiIiIiIiIqcixKERERERERERFRkWNRioiIiIiIiIiIihyLUkREREREREREVORYlCIiIiIiIiIioiLHohQRERERERERERU5FqWIiIiIiIiIiKjIsShFRJRPgiCIHQIRERERFTMcQxJlYlGKqJS6ePEiJkyYgDZt2sDDwwPt27fH1KlTcefOHbFDkzytVouZM2di165dL+zXrl07NG7cGDExMdk+X7t2bSxatKgwQswiKCgI7dq1K5LXIiIikpJ+/fqhXr16uHjxYrbPt2vXDkFBQUUSy6JFi1C7du0iea28mjNnDvz8/NCoUSNs3749x35GoxGbN2/GBx98AD8/PzRu3Bhvv/021qxZA61WW3QBF1NRUVF47733xA6DSDJYlCIqhdatW4d3330X8fHxGD9+PH744QcMHz4cJ0+eRO/evXH58mWxQ5S0hw8fYvXq1dDr9S/tm5ycjKlTpxZBVERERJQTg8GASZMmsWiSg2vXruGHH35Ax44dsWLFCrRq1SrbfqmpqRg0aBBmzJgBDw8PzJo1CyEhIWjRogXmzJmDESNG8M/4JX799VecPXtW7DCIJEMpdgBEVLROnz6NGTNm4IMPPsCUKVPM7X5+fmjfvj169eqFSZMmYefOnSJGWXKUKVMGx48fx6ZNm9C3b1+xwyEiIiqV7O3tcf36dSxZsgRjx44VOxzJSUxMBAB07doV3t7eOfabOXMmzpw5g59++gmNGjUyt7do0QL16tXDmDFjsG7dOgwaNKiQIyaikoIzpYhKmZUrV8Le3h7jxo3L8ly5cuUQFBSEjh07Iikpydy+d+9e9OrVC56enmjevDm+/PJLPHnyxPz8okWL0LlzZxw8eBDdunWDu7s7evTogbNnz+LcuXPo06cPPDw80K1bN4SHh1uc165dOxw5cgSdO3dGw4YN0adPH4s+gGlm0qRJk9C6dWt4eHggICAAhw4d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",
|
||
"text/plain": [
|
||
"<Figure size 1200x500 with 2 Axes>"
|
||
]
|
||
},
|
||
"metadata": {},
|
||
"output_type": "display_data"
|
||
},
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"\n",
|
||
"✅ Saved: phase2_output/plots/01_svd_variance.png\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"print(\"=\" * 80)\n",
|
||
"print(\"🔬 SVD DIMENSIONALITY REDUCTION\")\n",
|
||
"print(\"=\" * 80)\n",
|
||
"\n",
|
||
"# SVD parameters\n",
|
||
"n_components = 50 # Giảm xuống 50 components\n",
|
||
"\n",
|
||
"print(f\"\\nSVD Configuration:\")\n",
|
||
"print(f\" Input dimensions: {tfidf_matrix.shape[1]}\")\n",
|
||
"print(f\" Output dimensions: {n_components}\")\n",
|
||
"print(f\" Reduction: {(1 - n_components/tfidf_matrix.shape[1]) * 100:.1f}%\")\n",
|
||
"\n",
|
||
"# Apply SVD\n",
|
||
"print(\"\\nApplying SVD...\")\n",
|
||
"svd = TruncatedSVD(n_components=n_components, random_state=RANDOM_STATE)\n",
|
||
"text_features_svd = svd.fit_transform(tfidf_matrix)\n",
|
||
"\n",
|
||
"print(f\"\\n✅ SVD complete!\")\n",
|
||
"print(f\" Output shape: {text_features_svd.shape}\")\n",
|
||
"print(f\" Explained variance: {svd.explained_variance_ratio_.sum()*100:.2f}%\")\n",
|
||
"\n",
|
||
"# Variance explained by each component\n",
|
||
"print(\"\\n📊 Variance explained by top 10 components:\")\n",
|
||
"for i in range(min(10, n_components)):\n",
|
||
" print(f\" Component {i+1}: {svd.explained_variance_ratio_[i]*100:.2f}%\")\n",
|
||
"\n",
|
||
"# Cumulative variance\n",
|
||
"cumsum_var = np.cumsum(svd.explained_variance_ratio_)\n",
|
||
"print(f\"\\n Cumulative variance (first 10): {cumsum_var[9]*100:.2f}%\")\n",
|
||
"print(f\" Cumulative variance (all {n_components}): {cumsum_var[-1]*100:.2f}%\")\n",
|
||
"\n",
|
||
"# Create DataFrame with SVD features\n",
|
||
"text_features_df = pd.DataFrame(\n",
|
||
" text_features_svd,\n",
|
||
" columns=[f'text_svd_{i+1}' for i in range(n_components)]\n",
|
||
")\n",
|
||
"\n",
|
||
"print(f\"\\n✅ SVD features DataFrame created: {text_features_df.shape}\")\n",
|
||
"\n",
|
||
"# Visualize variance explained\n",
|
||
"plt.figure(figsize=(12, 5))\n",
|
||
"\n",
|
||
"plt.subplot(1, 2, 1)\n",
|
||
"plt.plot(range(1, n_components+1), svd.explained_variance_ratio_, 'b-', linewidth=2)\n",
|
||
"plt.xlabel('Component Number', fontsize=12)\n",
|
||
"plt.ylabel('Explained Variance Ratio', fontsize=12)\n",
|
||
"plt.title('Variance Explained by Each SVD Component', fontsize=14, fontweight='bold')\n",
|
||
"plt.grid(alpha=0.3)\n",
|
||
"\n",
|
||
"plt.subplot(1, 2, 2)\n",
|
||
"plt.plot(range(1, n_components+1), cumsum_var, 'r-', linewidth=2)\n",
|
||
"plt.axhline(y=0.9, color='green', linestyle='--', label='90% variance')\n",
|
||
"plt.xlabel('Number of Components', fontsize=12)\n",
|
||
"plt.ylabel('Cumulative Variance Explained', fontsize=12)\n",
|
||
"plt.title('Cumulative Variance Explained', fontsize=14, fontweight='bold')\n",
|
||
"plt.legend()\n",
|
||
"plt.grid(alpha=0.3)\n",
|
||
"\n",
|
||
"plt.tight_layout()\n",
|
||
"plt.savefig('phase2_output/plots/01_svd_variance.png', dpi=300, bbox_inches='tight')\n",
|
||
"plt.show()\n",
|
||
"\n",
|
||
"print(\"\\n✅ Saved: phase2_output/plots/01_svd_variance.png\")"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "c0c967c7",
|
||
"metadata": {},
|
||
"source": [
|
||
"# 6️⃣ Combine All Features\n",
|
||
"\n",
|
||
"Kết hợp 47 numeric features + 50 text SVD features = 97 features"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 22,
|
||
"id": "dc702312",
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"================================================================================\n",
|
||
"🔗 COMBINING ALL FEATURES\n",
|
||
"================================================================================\n",
|
||
"\n",
|
||
"1. Numeric features from original dataset:\n",
|
||
" Total columns in df: 56\n",
|
||
" Columns to drop: 10\n",
|
||
" Numeric features: 46\n",
|
||
"\n",
|
||
"2. Feature dimensions:\n",
|
||
" Numeric features: (454, 46)\n",
|
||
" Text SVD features: (454, 50)\n",
|
||
"\n",
|
||
"3. Combining features...\n",
|
||
"\n",
|
||
"✅ Features combined!\n",
|
||
" Final feature matrix: (454, 96)\n",
|
||
" Target vector: (454,)\n",
|
||
" Feature breakdown:\n",
|
||
" - Numeric features: 46\n",
|
||
" - Text SVD features: 50\n",
|
||
" - Total: 96\n",
|
||
"\n",
|
||
" Missing values: 550\n",
|
||
"\n",
|
||
"⚠️ Handling missing values...\n",
|
||
" ✓ Filled with 0\n",
|
||
"\n",
|
||
"✅ Saved: phase2_output/data/combined_features_with_text.csv\n",
|
||
"\n",
|
||
"📊 Sample combined features (first 5 rows, first 10 cols):\n",
|
||
" loai_ca bat_dau ket_thuc tong_gio_lam so_ca_cua_toa num_tasks \\\n",
|
||
"0 Part time 06:30:00 10:30:00 4.0 1 7.0 \n",
|
||
"1 Hành chính 06:30:00 16:00:00 8.0 1 0.0 \n",
|
||
"2 Hành chính 06:30:00 16:00:00 7.5 6 441.0 \n",
|
||
"3 Ca sáng 06:00:00 14:00:00 8.0 6 441.0 \n",
|
||
"4 Ca chiều 14:00:00 22:00:00 8.0 6 441.0 \n",
|
||
"\n",
|
||
" num_cleaning_tasks num_trash_collection_tasks num_monitoring_tasks \\\n",
|
||
"0 7.0 1.0 2.0 \n",
|
||
"1 0.0 0.0 0.0 \n",
|
||
"2 258.0 145.0 134.0 \n",
|
||
"3 258.0 145.0 134.0 \n",
|
||
"4 258.0 145.0 134.0 \n",
|
||
"\n",
|
||
" num_room_cleaning_tasks \n",
|
||
"0 0.0 \n",
|
||
"1 0.0 \n",
|
||
"2 65.0 \n",
|
||
"3 65.0 \n",
|
||
"4 65.0 \n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"print(\"=\" * 80)\n",
|
||
"print(\"🔗 COMBINING ALL FEATURES\")\n",
|
||
"print(\"=\" * 80)\n",
|
||
"\n",
|
||
"# Columns to drop (non-feature columns)\n",
|
||
"cols_to_drop = [\n",
|
||
" 'ma_dia_diem',\n",
|
||
" 'so_luong', # Target\n",
|
||
" 'all_task_normal', # Original text\n",
|
||
" 'all_task_dinhky', # Original text\n",
|
||
" 'task_normal_clean', # Cleaned text\n",
|
||
" 'task_dinhky_clean', # Cleaned text\n",
|
||
" 'all_tasks_combined', # Combined text\n",
|
||
" 'text_length', # Temporary column\n",
|
||
" 'text_word_count', # Temporary column\n",
|
||
" 'ten_toa_thap' # Non-predictive\n",
|
||
"]\n",
|
||
"\n",
|
||
"# Get numeric features\n",
|
||
"numeric_cols = [col for col in df.columns if col not in cols_to_drop]\n",
|
||
"\n",
|
||
"print(f\"\\n1. Numeric features from original dataset:\")\n",
|
||
"print(f\" Total columns in df: {len(df.columns)}\")\n",
|
||
"print(f\" Columns to drop: {len(cols_to_drop)}\")\n",
|
||
"print(f\" Numeric features: {len(numeric_cols)}\")\n",
|
||
"\n",
|
||
"# Create feature matrix\n",
|
||
"X_numeric = df[numeric_cols].copy()\n",
|
||
"\n",
|
||
"print(f\"\\n2. Feature dimensions:\")\n",
|
||
"print(f\" Numeric features: {X_numeric.shape}\")\n",
|
||
"print(f\" Text SVD features: {text_features_df.shape}\")\n",
|
||
"\n",
|
||
"# Combine\n",
|
||
"print(\"\\n3. Combining features...\")\n",
|
||
"X_combined = pd.concat([X_numeric.reset_index(drop=True), text_features_df.reset_index(drop=True)], axis=1)\n",
|
||
"y = df['so_luong'].copy()\n",
|
||
"\n",
|
||
"print(f\"\\n✅ Features combined!\")\n",
|
||
"print(f\" Final feature matrix: {X_combined.shape}\")\n",
|
||
"print(f\" Target vector: {y.shape}\")\n",
|
||
"print(f\" Feature breakdown:\")\n",
|
||
"print(f\" - Numeric features: {len(numeric_cols)}\")\n",
|
||
"print(f\" - Text SVD features: {n_components}\")\n",
|
||
"print(f\" - Total: {X_combined.shape[1]}\")\n",
|
||
"\n",
|
||
"# Check for missing values\n",
|
||
"missing_count = X_combined.isnull().sum().sum()\n",
|
||
"print(f\"\\n Missing values: {missing_count}\")\n",
|
||
"\n",
|
||
"if missing_count > 0:\n",
|
||
" print(\"\\n⚠️ Handling missing values...\")\n",
|
||
" X_combined = X_combined.fillna(0)\n",
|
||
" print(\" ✓ Filled with 0\")\n",
|
||
"\n",
|
||
"# Save combined features\n",
|
||
"combined_with_target = pd.concat([X_combined, y.rename('so_luong')], axis=1)\n",
|
||
"combined_with_target.to_csv('phase2_output/data/combined_features_with_text.csv', index=False)\n",
|
||
"print(\"\\n✅ Saved: phase2_output/data/combined_features_with_text.csv\")\n",
|
||
"\n",
|
||
"# Sample\n",
|
||
"print(\"\\n📊 Sample combined features (first 5 rows, first 10 cols):\")\n",
|
||
"print(X_combined.iloc[:5, :10])"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 23,
|
||
"id": "57f4e5d0",
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"================================================================================\n",
|
||
"🔍 DEBUGGING - CHECKING DATA TYPES\n",
|
||
"================================================================================\n",
|
||
"\n",
|
||
"📊 X_combined shape: (454, 96)\n",
|
||
"\n",
|
||
"🔢 Data types in X_combined:\n",
|
||
"float64 85\n",
|
||
"int64 7\n",
|
||
"object 4\n",
|
||
"Name: count, dtype: int64\n",
|
||
"\n",
|
||
"⚠️ Found 4 non-numeric columns:\n",
|
||
" - loai_ca: object (sample values: ['Part time' 'Hành chính' 'Ca sáng' 'Ca chiều' 'Ca đêm'])\n",
|
||
" - bat_dau: object (sample values: ['06:30:00' '06:00:00' '14:00:00' '2025-01-01 22:00:00' '12:00:00'])\n",
|
||
" - ket_thuc: object (sample values: ['10:30:00' '16:00:00' '14:00:00' '22:00:00' '2025-01-02 06:00:00'])\n",
|
||
" - muc_do_luu_luong: object (sample values: ['Trung bình (11–20 người)' 'Rất cao (Trên 40 người)' 'Thấp (6–10 người)'\n",
|
||
" 'Cao (21–40 người)' 0])\n",
|
||
"\n",
|
||
"🔧 These columns need to be removed or encoded before scaling!\n",
|
||
"\n",
|
||
"📋 First 20 columns in X_combined:\n",
|
||
"['loai_ca', 'bat_dau', 'ket_thuc', 'tong_gio_lam', 'so_ca_cua_toa', 'num_tasks', 'num_cleaning_tasks', 'num_trash_collection_tasks', 'num_monitoring_tasks', 'num_room_cleaning_tasks', 'num_deep_cleaning_tasks', 'num_maintenance_tasks', 'num_support_tasks', 'num_other_tasks', 'num_wc_tasks', 'num_hallway_tasks', 'num_lobby_tasks', 'num_patient_room_tasks', 'num_clinic_room_tasks', 'num_surgery_room_tasks']\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"# 🔍 DEBUG: Check for non-numeric columns\n",
|
||
"print(\"=\" * 80)\n",
|
||
"print(\"🔍 DEBUGGING - CHECKING DATA TYPES\")\n",
|
||
"print(\"=\" * 80)\n",
|
||
"\n",
|
||
"print(f\"\\n📊 X_combined shape: {X_combined.shape}\")\n",
|
||
"print(f\"\\n🔢 Data types in X_combined:\")\n",
|
||
"print(X_combined.dtypes.value_counts())\n",
|
||
"\n",
|
||
"# Find non-numeric columns\n",
|
||
"non_numeric_cols = X_combined.select_dtypes(include=['object', 'category']).columns.tolist()\n",
|
||
"\n",
|
||
"if len(non_numeric_cols) > 0:\n",
|
||
" print(f\"\\n⚠️ Found {len(non_numeric_cols)} non-numeric columns:\")\n",
|
||
" for col in non_numeric_cols:\n",
|
||
" unique_vals = X_combined[col].unique()[:5]\n",
|
||
" print(f\" - {col}: {X_combined[col].dtype} (sample values: {unique_vals})\")\n",
|
||
" \n",
|
||
" print(f\"\\n🔧 These columns need to be removed or encoded before scaling!\")\n",
|
||
"else:\n",
|
||
" print(f\"\\n✅ All columns are numeric!\")\n",
|
||
"\n",
|
||
"# Show first few column names\n",
|
||
"print(f\"\\n📋 First 20 columns in X_combined:\")\n",
|
||
"print(X_combined.columns[:20].tolist())\n"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 24,
|
||
"id": "e9ab7e56",
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"================================================================================\n",
|
||
"🔧 REMOVING NON-NUMERIC COLUMNS\n",
|
||
"================================================================================\n",
|
||
"\n",
|
||
"⚠️ Removing 4 non-numeric columns:\n",
|
||
" - loai_ca\n",
|
||
" - bat_dau\n",
|
||
" - ket_thuc\n",
|
||
" - muc_do_luu_luong\n",
|
||
"\n",
|
||
"✅ Removed non-numeric columns\n",
|
||
"📊 New X_combined shape: (454, 92)\n",
|
||
"\n",
|
||
"✅ All columns are now numeric!\n",
|
||
"📊 Final X_combined shape: (454, 92)\n",
|
||
"🔢 Data types: {dtype('float64'): 85, dtype('int64'): 7}\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"# 🔧 FIX: Remove non-numeric columns\n",
|
||
"print(\"=\" * 80)\n",
|
||
"print(\"🔧 REMOVING NON-NUMERIC COLUMNS\")\n",
|
||
"print(\"=\" * 80)\n",
|
||
"\n",
|
||
"# Get non-numeric columns\n",
|
||
"non_numeric_cols = X_combined.select_dtypes(include=['object', 'category']).columns.tolist()\n",
|
||
"\n",
|
||
"if len(non_numeric_cols) > 0:\n",
|
||
" print(f\"\\n⚠️ Removing {len(non_numeric_cols)} non-numeric columns:\")\n",
|
||
" for col in non_numeric_cols:\n",
|
||
" print(f\" - {col}\")\n",
|
||
" \n",
|
||
" # Remove non-numeric columns\n",
|
||
" X_combined = X_combined.drop(columns=non_numeric_cols)\n",
|
||
" \n",
|
||
" print(f\"\\n✅ Removed non-numeric columns\")\n",
|
||
" print(f\"📊 New X_combined shape: {X_combined.shape}\")\n",
|
||
"else:\n",
|
||
" print(f\"\\n✅ No non-numeric columns to remove\")\n",
|
||
"\n",
|
||
"# Verify all columns are now numeric\n",
|
||
"remaining_non_numeric = X_combined.select_dtypes(include=['object', 'category']).columns.tolist()\n",
|
||
"if len(remaining_non_numeric) > 0:\n",
|
||
" print(f\"\\n❌ ERROR: Still have non-numeric columns: {remaining_non_numeric}\")\n",
|
||
"else:\n",
|
||
" print(f\"\\n✅ All columns are now numeric!\")\n",
|
||
" print(f\"📊 Final X_combined shape: {X_combined.shape}\")\n",
|
||
" print(f\"🔢 Data types: {X_combined.dtypes.value_counts().to_dict()}\")\n"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "96d75ad4",
|
||
"metadata": {},
|
||
"source": [
|
||
"# 7️⃣ Train/Validation/Test Split\n",
|
||
"\n",
|
||
"Chia dữ liệu với tỷ lệ 70/15/15, stratified sampling để tránh data leakage"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 25,
|
||
"id": "bcb7d3c5",
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"================================================================================\n",
|
||
"✂️ TRAIN/VALIDATION/TEST SPLIT\n",
|
||
"================================================================================\n",
|
||
"\n",
|
||
"1. Checking duplicates...\n",
|
||
" Duplicates found: 120\n",
|
||
" ✓ Removed 120 duplicates\n",
|
||
" ✓ New dataset size: 413\n",
|
||
"\n",
|
||
"2. Creating stratified bins...\n",
|
||
" ✓ Created 4 bins\n",
|
||
" ✓ Samples per bin: {0: 171, 1: 95, 2: 80, 3: 67}\n",
|
||
"\n",
|
||
"3. Splitting data...\n",
|
||
"\n",
|
||
"✅ Split complete!\n",
|
||
" Train: 289 samples (70.0%)\n",
|
||
" Val: 62 samples (15.0%)\n",
|
||
" Test: 62 samples (15.0%)\n",
|
||
"\n",
|
||
"📊 Target distribution:\n",
|
||
" Train - Mean: 4.87, Std: 7.21, Var: 52.05\n",
|
||
" Val - Mean: 4.10, Std: 5.26, Var: 27.66\n",
|
||
" Test - Mean: 4.65, Std: 6.80, Var: 46.30\n",
|
||
"\n",
|
||
"4. Checking for data leakage...\n",
|
||
" Train & Test overlap: 23 rows ✓\n",
|
||
" ⚠️ WARNING: Data leakage detected!\n",
|
||
"\n",
|
||
"5. Scaling features...\n",
|
||
" ✓ Scaled all features using StandardScaler\n",
|
||
"\n",
|
||
"================================================================================\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"print(\"=\" * 80)\n",
|
||
"print(\"✂️ TRAIN/VALIDATION/TEST SPLIT\")\n",
|
||
"print(\"=\" * 80)\n",
|
||
"\n",
|
||
"# Remove duplicates first\n",
|
||
"print(\"\\n1. Checking duplicates...\")\n",
|
||
"dups_before = X_combined.duplicated().sum()\n",
|
||
"print(f\" Duplicates found: {dups_before}\")\n",
|
||
"\n",
|
||
"if dups_before > 0:\n",
|
||
" # Combine X and y before removing duplicates\n",
|
||
" combined_df = pd.concat([X_combined, y], axis=1)\n",
|
||
" combined_df = combined_df.drop_duplicates()\n",
|
||
" X_combined = combined_df.iloc[:, :-1]\n",
|
||
" y = combined_df.iloc[:, -1]\n",
|
||
" print(f\" ✓ Removed {dups_before} duplicates\")\n",
|
||
" print(f\" ✓ New dataset size: {len(X_combined)}\")\n",
|
||
"\n",
|
||
"# Stratified split using quantile bins\n",
|
||
"print(\"\\n2. Creating stratified bins...\")\n",
|
||
"n_bins = 5\n",
|
||
"try:\n",
|
||
" y_binned = pd.qcut(y, q=n_bins, labels=False, duplicates='drop')\n",
|
||
" bin_counts = y_binned.value_counts().sort_index()\n",
|
||
" print(f\" ✓ Created {len(y_binned.unique())} bins\")\n",
|
||
" print(f\" ✓ Samples per bin: {bin_counts.to_dict()}\")\n",
|
||
" use_stratify = bin_counts.min() >= 10\n",
|
||
"except:\n",
|
||
" print(\" ⚠️ Cannot create bins, using random split\")\n",
|
||
" use_stratify = False\n",
|
||
"\n",
|
||
"# Split: 70% train, 15% val, 15% test\n",
|
||
"print(\"\\n3. Splitting data...\")\n",
|
||
"\n",
|
||
"if use_stratify:\n",
|
||
" X_train, X_temp, y_train, y_temp = train_test_split(\n",
|
||
" X_combined, y, test_size=0.30, random_state=RANDOM_STATE, stratify=y_binned\n",
|
||
" )\n",
|
||
" \n",
|
||
" # Split temp into val and test\n",
|
||
" try:\n",
|
||
" y_temp_binned = pd.qcut(y_temp, q=3, labels=False, duplicates='drop')\n",
|
||
" X_val, X_test, y_val, y_test = train_test_split(\n",
|
||
" X_temp, y_temp, test_size=0.50, random_state=RANDOM_STATE, stratify=y_temp_binned\n",
|
||
" )\n",
|
||
" except:\n",
|
||
" X_val, X_test, y_val, y_test = train_test_split(\n",
|
||
" X_temp, y_temp, test_size=0.50, random_state=RANDOM_STATE\n",
|
||
" )\n",
|
||
"else:\n",
|
||
" X_train, X_temp, y_train, y_temp = train_test_split(\n",
|
||
" X_combined, y, test_size=0.30, random_state=RANDOM_STATE\n",
|
||
" )\n",
|
||
" X_val, X_test, y_val, y_test = train_test_split(\n",
|
||
" X_temp, y_temp, test_size=0.50, random_state=RANDOM_STATE\n",
|
||
" )\n",
|
||
"\n",
|
||
"print(f\"\\n✅ Split complete!\")\n",
|
||
"print(f\" Train: {len(X_train)} samples ({len(X_train)/len(X_combined)*100:.1f}%)\")\n",
|
||
"print(f\" Val: {len(X_val)} samples ({len(X_val)/len(X_combined)*100:.1f}%)\")\n",
|
||
"print(f\" Test: {len(X_test)} samples ({len(X_test)/len(X_combined)*100:.1f}%)\")\n",
|
||
"\n",
|
||
"print(f\"\\n📊 Target distribution:\")\n",
|
||
"print(f\" Train - Mean: {y_train.mean():.2f}, Std: {y_train.std():.2f}, Var: {y_train.var():.2f}\")\n",
|
||
"print(f\" Val - Mean: {y_val.mean():.2f}, Std: {y_val.std():.2f}, Var: {y_val.var():.2f}\")\n",
|
||
"print(f\" Test - Mean: {y_test.mean():.2f}, Std: {y_test.std():.2f}, Var: {y_test.var():.2f}\")\n",
|
||
"\n",
|
||
"# Check for data leakage\n",
|
||
"print(\"\\n4. Checking for data leakage...\")\n",
|
||
"train_test_overlap = pd.merge(X_train.reset_index(drop=True), X_test.reset_index(drop=True), how='inner')\n",
|
||
"print(f\" Train & Test overlap: {len(train_test_overlap)} rows ✓\")\n",
|
||
"\n",
|
||
"if len(train_test_overlap) > 0:\n",
|
||
" print(\" ⚠️ WARNING: Data leakage detected!\")\n",
|
||
"else:\n",
|
||
" print(\" ✅ No data leakage!\")\n",
|
||
"\n",
|
||
"# Feature Scaling\n",
|
||
"print(\"\\n5. Scaling features...\")\n",
|
||
"scaler = StandardScaler()\n",
|
||
"\n",
|
||
"X_train_scaled = X_train.copy()\n",
|
||
"X_val_scaled = X_val.copy()\n",
|
||
"X_test_scaled = X_test.copy()\n",
|
||
"\n",
|
||
"X_train_scaled[X_train.columns] = scaler.fit_transform(X_train)\n",
|
||
"X_val_scaled[X_val.columns] = scaler.transform(X_val)\n",
|
||
"X_test_scaled[X_test.columns] = scaler.transform(X_test)\n",
|
||
"\n",
|
||
"print(f\" ✓ Scaled all features using StandardScaler\")\n",
|
||
"\n",
|
||
"print(\"\\n\" + \"=\" * 80)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "e0084db5",
|
||
"metadata": {},
|
||
"source": [
|
||
"# 8️⃣ Model Training với Text Features\n",
|
||
"\n",
|
||
"Train tất cả models với 97 features (47 numeric + 50 text SVD)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 26,
|
||
"id": "2df5c047",
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"================================================================================\n",
|
||
"🤖 MODEL TRAINING - PHASE 2 (WITH TEXT FEATURES)\n",
|
||
"================================================================================\n",
|
||
"\n",
|
||
"1️⃣ Baseline (Mean Prediction)...\n",
|
||
" Val MAE: 3.7132, R²: 0.0000\n",
|
||
"\n",
|
||
"2️⃣ Linear Regression...\n",
|
||
" Val MAE: 4.3488, R²: -0.4161\n",
|
||
"\n",
|
||
"3️⃣ Decision Tree...\n",
|
||
" Val MAE: 2.5525, R²: 0.3339\n",
|
||
"\n",
|
||
"4️⃣ Random Forest...\n",
|
||
" Val MAE: 2.8388, R²: 0.2521\n",
|
||
"\n",
|
||
"5️⃣ Gradient Boosting...\n",
|
||
" Val MAE: 2.8388, R²: 0.2521\n",
|
||
"\n",
|
||
"5️⃣ Gradient Boosting...\n",
|
||
" Val MAE: 2.7644, R²: 0.1917\n",
|
||
"\n",
|
||
"6️⃣ XGBoost...\n",
|
||
" Val MAE: 2.7488, R²: 0.1542\n",
|
||
"\n",
|
||
"7️⃣ LightGBM...\n",
|
||
" Val MAE: 3.2101, R²: 0.0009\n",
|
||
"\n",
|
||
"✅ All models trained!\n",
|
||
"\n",
|
||
"================================================================================\n",
|
||
"📊 PHASE 2 RESULTS (WITH TEXT FEATURES)\n",
|
||
"================================================================================\n",
|
||
" Model Train_R2 Train_MAE Train_RMSE Val_R2 Val_MAE Val_RMSE\n",
|
||
" Decision Tree 0.740968 2.012207 3.665671 0.333863 2.552472 4.257920\n",
|
||
" Random Forest 0.733891 2.083618 3.715410 0.252113 2.838840 4.511633\n",
|
||
"Gradient Boosting 0.873662 1.078451 2.560020 0.191742 2.764354 4.690192\n",
|
||
" XGBoost 0.865798 1.272851 2.638496 0.154215 2.748771 4.797840\n",
|
||
" LightGBM 0.696963 2.180261 3.964830 0.000899 3.210078 5.214593\n",
|
||
" Baseline 0.000000 4.483567 7.202397 0.000000 3.713249 5.273205\n",
|
||
"Linear Regression 0.610783 2.897918 4.493377 -0.416064 4.348784 6.208078\n",
|
||
"\n",
|
||
"🏆 Best Model: Decision Tree\n",
|
||
" Val R²: 0.3339\n",
|
||
" Val MAE: 2.5525\n",
|
||
" Val RMSE: 4.2579\n",
|
||
"\n",
|
||
"✅ Saved: phase2_output/data/phase2_model_results.csv\n",
|
||
" Val MAE: 2.7644, R²: 0.1917\n",
|
||
"\n",
|
||
"6️⃣ XGBoost...\n",
|
||
" Val MAE: 2.7488, R²: 0.1542\n",
|
||
"\n",
|
||
"7️⃣ LightGBM...\n",
|
||
" Val MAE: 3.2101, R²: 0.0009\n",
|
||
"\n",
|
||
"✅ All models trained!\n",
|
||
"\n",
|
||
"================================================================================\n",
|
||
"📊 PHASE 2 RESULTS (WITH TEXT FEATURES)\n",
|
||
"================================================================================\n",
|
||
" Model Train_R2 Train_MAE Train_RMSE Val_R2 Val_MAE Val_RMSE\n",
|
||
" Decision Tree 0.740968 2.012207 3.665671 0.333863 2.552472 4.257920\n",
|
||
" Random Forest 0.733891 2.083618 3.715410 0.252113 2.838840 4.511633\n",
|
||
"Gradient Boosting 0.873662 1.078451 2.560020 0.191742 2.764354 4.690192\n",
|
||
" XGBoost 0.865798 1.272851 2.638496 0.154215 2.748771 4.797840\n",
|
||
" LightGBM 0.696963 2.180261 3.964830 0.000899 3.210078 5.214593\n",
|
||
" Baseline 0.000000 4.483567 7.202397 0.000000 3.713249 5.273205\n",
|
||
"Linear Regression 0.610783 2.897918 4.493377 -0.416064 4.348784 6.208078\n",
|
||
"\n",
|
||
"🏆 Best Model: Decision Tree\n",
|
||
" Val R²: 0.3339\n",
|
||
" Val MAE: 2.5525\n",
|
||
" Val RMSE: 4.2579\n",
|
||
"\n",
|
||
"✅ Saved: phase2_output/data/phase2_model_results.csv\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"print(\"=\" * 80)\n",
|
||
"print(\"🤖 MODEL TRAINING - PHASE 2 (WITH TEXT FEATURES)\")\n",
|
||
"print(\"=\" * 80)\n",
|
||
"\n",
|
||
"def evaluate_model_phase2(model, X_train, y_train, X_val, y_val, model_name):\n",
|
||
" \"\"\"Train and evaluate model\"\"\"\n",
|
||
" model.fit(X_train, y_train)\n",
|
||
" \n",
|
||
" y_train_pred = model.predict(X_train)\n",
|
||
" y_val_pred = model.predict(X_val)\n",
|
||
" \n",
|
||
" return {\n",
|
||
" 'Model': model_name,\n",
|
||
" 'Train_R2': r2_score(y_train, y_train_pred),\n",
|
||
" 'Train_MAE': mean_absolute_error(y_train, y_train_pred),\n",
|
||
" 'Train_RMSE': np.sqrt(mean_squared_error(y_train, y_train_pred)),\n",
|
||
" 'Val_R2': r2_score(y_val, y_val_pred),\n",
|
||
" 'Val_MAE': mean_absolute_error(y_val, y_val_pred),\n",
|
||
" 'Val_RMSE': np.sqrt(mean_squared_error(y_val, y_val_pred))\n",
|
||
" }, model\n",
|
||
"\n",
|
||
"results_phase2 = []\n",
|
||
"models_phase2 = {}\n",
|
||
"\n",
|
||
"# 1. Baseline\n",
|
||
"print(\"\\n1️⃣ Baseline (Mean Prediction)...\")\n",
|
||
"mean_pred = np.full(len(y_val), y_train.mean())\n",
|
||
"baseline_metrics = {\n",
|
||
" 'Model': 'Baseline',\n",
|
||
" 'Train_R2': 0.0,\n",
|
||
" 'Train_MAE': mean_absolute_error(y_train, [y_train.mean()]*len(y_train)),\n",
|
||
" 'Train_RMSE': np.sqrt(mean_squared_error(y_train, [y_train.mean()]*len(y_train))),\n",
|
||
" 'Val_R2': 0.0,\n",
|
||
" 'Val_MAE': mean_absolute_error(y_val, mean_pred),\n",
|
||
" 'Val_RMSE': np.sqrt(mean_squared_error(y_val, mean_pred))\n",
|
||
"}\n",
|
||
"results_phase2.append(baseline_metrics)\n",
|
||
"print(f\" Val MAE: {baseline_metrics['Val_MAE']:.4f}, R²: {baseline_metrics['Val_R2']:.4f}\")\n",
|
||
"\n",
|
||
"# 2. Linear Regression\n",
|
||
"print(\"\\n2️⃣ Linear Regression...\")\n",
|
||
"lr = LinearRegression()\n",
|
||
"lr_metrics, lr_model = evaluate_model_phase2(lr, X_train_scaled, y_train, X_val_scaled, y_val, \"Linear Regression\")\n",
|
||
"results_phase2.append(lr_metrics)\n",
|
||
"models_phase2['Linear Regression'] = lr_model\n",
|
||
"print(f\" Val MAE: {lr_metrics['Val_MAE']:.4f}, R²: {lr_metrics['Val_R2']:.4f}\")\n",
|
||
"\n",
|
||
"# 3. Decision Tree\n",
|
||
"print(\"\\n3️⃣ Decision Tree...\")\n",
|
||
"dt = DecisionTreeRegressor(max_depth=10, min_samples_split=10, random_state=RANDOM_STATE)\n",
|
||
"dt_metrics, dt_model = evaluate_model_phase2(dt, X_train_scaled, y_train, X_val_scaled, y_val, \"Decision Tree\")\n",
|
||
"results_phase2.append(dt_metrics)\n",
|
||
"models_phase2['Decision Tree'] = dt_model\n",
|
||
"print(f\" Val MAE: {dt_metrics['Val_MAE']:.4f}, R²: {dt_metrics['Val_R2']:.4f}\")\n",
|
||
"\n",
|
||
"# 4. Random Forest\n",
|
||
"print(\"\\n4️⃣ Random Forest...\")\n",
|
||
"rf = RandomForestRegressor(n_estimators=100, max_depth=15, min_samples_split=5,\n",
|
||
" random_state=RANDOM_STATE, n_jobs=-1)\n",
|
||
"rf_metrics, rf_model = evaluate_model_phase2(rf, X_train_scaled, y_train, X_val_scaled, y_val, \"Random Forest\")\n",
|
||
"results_phase2.append(rf_metrics)\n",
|
||
"models_phase2['Random Forest'] = rf_model\n",
|
||
"print(f\" Val MAE: {rf_metrics['Val_MAE']:.4f}, R²: {rf_metrics['Val_R2']:.4f}\")\n",
|
||
"\n",
|
||
"# 5. Gradient Boosting\n",
|
||
"print(\"\\n5️⃣ Gradient Boosting...\")\n",
|
||
"gb = GradientBoostingRegressor(n_estimators=100, learning_rate=0.1, max_depth=5,\n",
|
||
" random_state=RANDOM_STATE)\n",
|
||
"gb_metrics, gb_model = evaluate_model_phase2(gb, X_train_scaled, y_train, X_val_scaled, y_val, \"Gradient Boosting\")\n",
|
||
"results_phase2.append(gb_metrics)\n",
|
||
"models_phase2['Gradient Boosting'] = gb_model\n",
|
||
"print(f\" Val MAE: {gb_metrics['Val_MAE']:.4f}, R²: {gb_metrics['Val_R2']:.4f}\")\n",
|
||
"\n",
|
||
"# 6. XGBoost\n",
|
||
"print(\"\\n6️⃣ XGBoost...\")\n",
|
||
"xgb_model = xgb.XGBRegressor(n_estimators=100, learning_rate=0.1, max_depth=5,\n",
|
||
" random_state=RANDOM_STATE, n_jobs=-1)\n",
|
||
"xgb_metrics, xgb_trained = evaluate_model_phase2(xgb_model, X_train_scaled, y_train, X_val_scaled, y_val, \"XGBoost\")\n",
|
||
"results_phase2.append(xgb_metrics)\n",
|
||
"models_phase2['XGBoost'] = xgb_trained\n",
|
||
"print(f\" Val MAE: {xgb_metrics['Val_MAE']:.4f}, R²: {xgb_metrics['Val_R2']:.4f}\")\n",
|
||
"\n",
|
||
"# 7. LightGBM\n",
|
||
"print(\"\\n7️⃣ LightGBM...\")\n",
|
||
"lgb_model = lgb.LGBMRegressor(n_estimators=100, learning_rate=0.1, max_depth=5,\n",
|
||
" num_leaves=31, random_state=RANDOM_STATE, n_jobs=-1, verbose=-1)\n",
|
||
"lgb_metrics, lgb_trained = evaluate_model_phase2(lgb_model, X_train_scaled, y_train, X_val_scaled, y_val, \"LightGBM\")\n",
|
||
"results_phase2.append(lgb_metrics)\n",
|
||
"models_phase2['LightGBM'] = lgb_trained\n",
|
||
"print(f\" Val MAE: {lgb_metrics['Val_MAE']:.4f}, R²: {lgb_metrics['Val_R2']:.4f}\")\n",
|
||
"\n",
|
||
"print(\"\\n✅ All models trained!\")\n",
|
||
"\n",
|
||
"# Results DataFrame\n",
|
||
"results_df_phase2 = pd.DataFrame(results_phase2).sort_values('Val_R2', ascending=False)\n",
|
||
"\n",
|
||
"print(\"\\n\" + \"=\" * 80)\n",
|
||
"print(\"📊 PHASE 2 RESULTS (WITH TEXT FEATURES)\")\n",
|
||
"print(\"=\" * 80)\n",
|
||
"print(results_df_phase2.to_string(index=False))\n",
|
||
"\n",
|
||
"# Best model\n",
|
||
"best_model_phase2 = results_df_phase2.iloc[0]['Model']\n",
|
||
"print(f\"\\n🏆 Best Model: {best_model_phase2}\")\n",
|
||
"print(f\" Val R²: {results_df_phase2.iloc[0]['Val_R2']:.4f}\")\n",
|
||
"print(f\" Val MAE: {results_df_phase2.iloc[0]['Val_MAE']:.4f}\")\n",
|
||
"print(f\" Val RMSE: {results_df_phase2.iloc[0]['Val_RMSE']:.4f}\")\n",
|
||
"\n",
|
||
"# Save results\n",
|
||
"results_df_phase2.to_csv('phase2_output/data/phase2_model_results.csv', index=False)\n",
|
||
"print(\"\\n✅ Saved: phase2_output/data/phase2_model_results.csv\")"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "6b39614a",
|
||
"metadata": {},
|
||
"source": [
|
||
"# 9️⃣ So Sánh Phase 1 vs Phase 2\n",
|
||
"\n",
|
||
"**Phase 1:** 47 numeric features only (R² ~ 0.30) \n",
|
||
"**Phase 2:** 47 numeric + 50 text SVD features (R² = ?)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 27,
|
||
"id": "440873ac",
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"================================================================================\n",
|
||
"📊 PHASE 1 vs PHASE 2 COMPARISON\n",
|
||
"================================================================================\n",
|
||
"\n",
|
||
"📊 DETAILED COMPARISON:\n",
|
||
"================================================================================\n",
|
||
" Model Phase1_R2 Phase2_R2 R2_Improvement R2_Improvement_% Phase1_MAE Phase2_MAE MAE_Improvement MAE_Improvement_%\n",
|
||
" Decision Tree 0.4136 0.333863 -0.079737 -19.278797 3.3841 2.552472 0.831628 24.574560\n",
|
||
" Random Forest 0.3093 0.252113 -0.057187 -18.489238 3.5571 2.838840 0.718260 20.192294\n",
|
||
"Gradient Boosting 0.3981 0.191742 -0.206358 -51.835697 3.0356 2.764354 0.271246 8.935501\n",
|
||
" XGBoost 0.3225 0.154215 -0.168285 -52.181476 3.2599 2.748771 0.511129 15.679271\n",
|
||
" LightGBM 0.2948 0.000899 -0.293901 -99.695122 3.6027 3.210078 0.392622 10.898002\n",
|
||
" Baseline 0.0000 0.000000 0.000000 0.000000 5.1082 3.713249 1.394951 27.308068\n",
|
||
"Linear Regression -0.0820 -0.416064 -0.334064 -407.395704 4.9313 4.348784 0.582516 11.812616\n",
|
||
"\n",
|
||
"================================================================================\n",
|
||
"📈 IMPROVEMENT SUMMARY\n",
|
||
"================================================================================\n",
|
||
"\n",
|
||
"Average R² Score:\n",
|
||
" Phase 1 (Numeric only): 0.2366\n",
|
||
" Phase 2 (With text): 0.0738\n",
|
||
" Improvement: -0.1628 (-68.8%)\n",
|
||
"\n",
|
||
"Average MAE:\n",
|
||
" Phase 1 (Numeric only): 3.8398\n",
|
||
" Phase 2 (With text): 3.1681\n",
|
||
" Improvement: +0.6718 (+17.5%)\n",
|
||
"\n",
|
||
"🏆 Best Models:\n",
|
||
" Phase 1: Decision Tree (R²=0.4136, MAE=3.3841)\n",
|
||
" Phase 2: Decision Tree (R²=0.3339, MAE=2.5525)\n"
|
||
]
|
||
},
|
||
{
|
||
"data": {
|
||
"image/png": "iVBORw0KGgoAAAANSUhEUgAABjYAAAJOCAYAAAAUHj4bAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAA6NZJREFUeJzs3Xd0FOXbxvFrU0lISCghkSZVqjQpP6T3jnRQBAUUkF6liogiIlIFKSJSld4JRVQEqaEjEFGU3hIggUBC2r5/5M2YJQkkmGQ35vs5h3OyM7Oz984z+zAz91NMZrPZLAAAAAAAAAAAgHTAztoBAAAAAAAAAAAAJBWJDQAAAAAAAAAAkG6Q2AAAAAAAAAAAAOkGiQ0AAAAAAAAAAJBukNgAAAAAAAAAAADpBokNAAAAAAAAAACQbpDYAAAAAAAAAAAA6QaJDQAAAAAAAAAAkG6Q2AAAAAAAAAAAAOkGiQ0AqWLlypWqX7++ypYtqw4dOui3336zdkgAAAAAAAAA/gNMZrPZbO0gANiuESNGaP369fGWm0wmubi4KGfOnKpataree+89eXl5SZJOnTqldu3aKX/+/CpTpoy2bNkib29v/fzzz8/8vMjISK1bt06bN2/W+fPn9fDhQ3l6eqps2bLq1KmTqlSpkuLfMT2pU6eOrl27pnz58umHH36wdjj/Wuz3icve3l7Ozs7y8vJS48aN1bNnT7m6uhrrixYtKkmqUqWKFi1alJbhppqDBw/qrbfekiQtX75cFSpUsHJEljp37qzDhw9bLLOzs5Ozs7OyZcumWrVqqW/fvsqWLZux/r9yrkZHR8vX11fLli3T33//rbCwMBUqVEgdO3ZU+/btrR0eAACp7sn7gWrVqumbb76x2GbWrFn68ssvjde5c+fWTz/9lOD+pk6dqnnz5kmSChUqJF9f3wS3W7dunUaOHPnM+Nzd3XXkyJFnbidJFy5c0OLFi3XgwAHdunVL9vb2evHFF1W3bl116dJFHh4eSdrPf1Hc4/3555/rtddes3JE/05C54/JZJKDg4Pc3d1VvHhxvffee6pYsaKx/ssvv9SsWbMk2eY1+fN688035efnZ5P3T4cOHVKXLl0slsWWU+bMmVWwYEF1795d9erVM9b/l87V69eva+7cuTp48KBu3LghDw8PValSRf3791fevHmtHR5g8xysHQCA9MlsNuvRo0e6ePGiLl68qL1792rNmjXy8PDQvXv3VLNmTb311luqWrWqzp07pz/++EOhoaFycXFJdJ+3b99Wr169dObMGYvlAQEB+uGHH/TDDz+oW7duGj58eGp/PVhRVFSUHj16pEuXLmnu3Lk6duyYFi1aJHt7e2uHlioCAgL04YcfWjuMZIuOjlZoaKiuXbum5cuX69ChQ1q5cqXc3NysHVqKGjVqVLzk7pkzZ/TBBx/o999/1wcffGClyAAAsI4jR44oPDxcTk5OxrKDBw8m6b1RUVEW/69euHBBR44cSZMHyN99950mTJigyMhIi+Xnzp3TuXPntGbNGi1atEgFChRI9VhgHWazWREREbp796727dunw4cP66uvvlKNGjWsHVqqWbRokfz8/KwdRrLEllNQUJCOHTumY8eO6ZNPPlG7du2sHVqK8vf3V6dOnRQSEmIsCwgI0KZNm7Rnzx6tWLGC+gh4BhIbAJJszZo1Rq+M6OhoBQYG6tNPP9Xx48d1+fJlff/99+rVq5dq1qypmjVrSpK2bt2q8+fPq1SpUk9NaoSHh+u9994zkhodOnRQ27ZtlTlzZh08eFDTpk3TgwcPtHDhQr388stq0qRJ6n9hG7Ry5UpFRUX95x7y586dW999952kmHPh/Pnz+uijj3T79m0dPnxYvr6+at68uZWjTHmnTp3S0KFDdenSJWuHkiT29vZG68uIiAhduXJFEyZM0J9//qk///xTy5YtU69evawcZco5duyY8fClUqVKGjlypMLCwvThhx/q/PnzWrZsmdq1a6dixYpZOVIAANJOWFiYjh49avSkDg0N1YkTJ5L03j179uj27dsWy1atWvXMxMaYMWNUv379BNeZTKZnfu4PP/ygjz76SFLMdeegQYNUunRpBQQEaP78+frll1908+ZN9evXT5s2bZKdXcYbtbtx48Z69dVXJek/13Ml9vyJjo7W/fv39d1332nlypWKiIjQp59+qmrVqv3nyjw8PFzTpk3TwoULrR1KknXv3l1dunRRdHS0Hj16pC1btmjOnDmSpC+++EJNmjRR5syZrRxlyvn8888VEhIie3t7jR8/XuXLl9euXbs0ZcoUBQUFacqUKUYPIgAJ+2/V3ABSlZeXl3x8fOTj46NcuXKpdOnSFt17T548abH98uXLNXToULm5uWnChAlP3ff69euNeTje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IiIidObMGZ05c0YhISHq06ePxX4fPnyovn37KiwsTJKeevG+ePFioxVarKCgIP3666/y8/PT4sWLjVZoUVFR6tOnT7yJ3GPHFt65c6e++eYbi8m6Y+Pt3Lmzzp07Zyw7efKkevbsqW3btilfvnyJxve84t78ZM+ePd76ixcv6o033lBoaKikmGEQ1qxZYwwpIMV83+7du8c7Py5duqRFixbJ399fixcvliTt2rVLffv2tXhoff/+ffn5+eno0aOaPn26GjZsKCnmxqRjx47666+/jG1v3bqllStXavfu3Vq5cmW8m+YnVahQQe3bt1edOnUsJtt8FicnJ7Vu3VoLFizQhQsXdOrUKZUuXVpSzHm8fft2SdKrr76qvHnz6tq1a+rQoYMePHhg7CMyMlL+/v7y9/fXzZs3NWbMmCR//pPinhMJlVNwcLA6dOigO3fuGMu2b9+uCxcuaPPmzUYrsiFDhsSbZPzatWtavXq1/Pz85OvrK3t7e506dcrityvF/F5OnTqlU6dO6f79++rataukmHqqW7duFhOK3rlzR1u2bNEvv/yiJUuWPPW3lTNnTuXMmdNimdlstrhZKlmy5FOPDwAA/yWVKlXSunXrdPbsWQUHB8vDw8NodVypUiVdvXo10fdu2LDBmN+iadOmqlKliqZOnWo0unlaQ4/79+/r5s2bCa5zd3d/6vA0cYfJKlu2bILbJPb/+caNGzV69GiL646bN29qzZo12r59u+bNm5fgMFpDhgzR+fPnjdeHDx9Wt27d5OPjo9OnTxvLjx07pu7du2v79u3xrjnOnz+vN998U48fP5YUc627cuVKHT16VKtWrTK+86RJk+JNCH379m1t3bpV+/fv144dO+INLTVv3jyLBj6lS5eOdx0mSSEhIXr99deNxFCsv/76S3PnztX58+eNoYKkmCRX79699ejRI2NZYGCgfH199cMPP+jzzz9PsGGOr6+vjh07ZlyHP378WMuXL1doaKgmTpwYb/t/Kzo62uIeLqFr2HHjxlk0hDl79qz69++vlStXqkyZMpJi7h/69etn8SA6KChI+/fv14EDB7R06VJVrFhR0dHR6tq1a7weB1evXtWyZct0/PhxrVq1Sg4OMY/ovvvuO40fP97ivuT48eM6fvy4Lly4oAEDBjz1+3l4eOjdd9/VW2+9leye/q1atdK0adMUFham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s6p48eJ65513EhzyTbIsJynmXiMkJCReOf3111/aunWrjh07pj/++MNiWKrYcsqUKZPGjBljNICKnUfEx8dHVapUUdu2bY044pZTYomzpJaTv7+/unbtatynli5d2hjaG8DTkdgAkGQ5c+aUj4+P+vbtq8jISM2ZM0dXr15Vt27dtH79+gTHJk0KJycnFS9eXGfOnNHVq1cVEBAQr9tsRESEGjRooJIlS6pevXpq2bKlMQappAQffMft/fHk+idbqcfelD05t8SzEjYJTZj35Hs3btyokSNHKioqSi+//LK6du2qMmXKaNasWTp16lSi709oPpKElC5dWrt27dL27du1Z88eHT16VIGBgfr555/1888/a9euXZoxY8a/Ol6S5eTwcZNIKSFfvnwJjuv7NImVofTPd/njjz/UqVMnBQcHK1euXGrevLnKli2rw4cPx5tULm/evNq2bZt++OEH7d69W0eOHNH169e1f/9+7d+/Xxs3btSSJUvizdeSmCcTKCmtTp068vb21q1bt7RlyxZdvXpV0dHRMplMRld1Keb39c033+jgwYPatWuXDh06pD///NOY42X58uVas2aN0Rrsaezt7XX27NlkxZmUcgoICFD79u11/fp1ZcuWTQ0aNFC5cuV09erVePOPeHp6as2aNcYwBIcPH9bFixeNMXJXrlypNWvWyN3dPUlllZRy+uSTT4zzxcHBQZ9//rmaNm36zPcBAPBfVLlyZa1bt06XL182hrt8WmOOkJAQi2Fdv/32W3377bfxtgsLC9OmTZtSfPiV2KGgpJj5NhKat2/RokVas2aNateurfbt2ytfvnxJvuZL6Lo5dnjaJ9fHvZ5+nvuM2Gun2Pc+evRInTp10tmzZ5U5c2Y1aNBAPXv2VHR0tD788MNE953Y0FNPMplMmjhxot544w1t375dBw8elL+/v/744w/98ccf+u6777R8+XKVKlXK4ng97bsltO7J68WkHvukep7EWNwyTOj6VZLGjh2rlStXys7OTjVr1lSrVq1UunRpo7dKXAMGDFCzZs3k6+ur/fv368yZM7p8+bK+++47rVixQl999ZVq166dpO8eO9JAaurQoYM++ugjnT9/XqdOnTJ+w40bN7ZI9NSuXVs//vijfH19tXfvXh0/flx3797Vtm3btG3bNnXv3t1i6NqnGTBggDGUU1LFLSfpn7KKW05z587VtGnTJMXUX71791aZMmU0fPjweI2p2rdvr2rVqmnr1q3at2+fTp48acyxsX79eo0dO1adOnWyuLdOTFLK6cKFC3r77beNbcuVK2cxbDWAp2OODQDPpW/fvkZr5Vu3bmns2LH/an+xF5pms1lff/11vPWrV6/W9evX9cMPPxjDAOXJk8doIX7gwAGL1kiPHj0yunz7+Pgke+6OpPLz87N4HXcywNgJtadPn66oqCi99NJLWr16tfr376+aNWta9NpISNzeCImJjIzU77//rr179ypfvnyaOXOm9u3bp127dhktpbZv365bt27J3d3dSBgdP37cYs6T6OhoHTp0SFLMg/CndUlPTxYsWGB0LV67dq1GjRqlJk2axLuhMpvNunDhgvbs2SNXV1dNnjxZP//8s/bs2aPmzZtLipl/5PTp0/Lw8DC65VevXl2///678W/79u3atWuXzp07ZwxRlVrs7e2N8X737t2rjRs3Svpn0vBYN2/e1K+//qorV65ozJgx2rx5s/z8/DRy5EhJMQ/2N2/enKqxPsv3339vjN88b948ffTRR2rZsmWCw2RduXJFe/fuVWhoqD7++GPt2LFDBw4cMIaEu3jxonbv3i1JxkSFBQsWtCinn3/+Wdu2bdOZM2fUvXv3p8a2aNEiYwg3BwcHzZgxg6QGACBDizuXRuzDuKfNr+Hr6/vM695YK1eu/HfBJaBq1arGNfDmzZt148YNi/UhISH67rvv9Oeff+rrr782eubGHVIodgjWWLG9ZCWl2pBAgYGBxjwQUsw8EbHzWcRe42zbts1odDJhwgR99tlnat++fbzJwp+UlIeyUkwPl4MHD+r06dMaMGCA1q5dq6NHjxoPicPCwowye9rxih22TEq945XWrly5Ynz3jh07au7cuerWrVuC91H379/XkSNHdPToUXXq1Enff/+9jh49qsWLF8vJyUnR0dHGkLpxJ9petWqVcf3622+/adWqVTp69KjF3H+ppUWLFkajv08++cS4p4o7DNXjx4915swZ7du3T+XLl9e8efN06NAhbdmyxegJs3z5covh4NJaWFiYZs+eLSlmztAlS5aoV69eqlixojHXYqyHDx/q5MmTOnTokBo2bKhFixbpyJEjWr16tVGHLFmyRNI/9/pSzDBxce81Vq1apUOHDiU4v01cQUFB6tGjh1GP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mui9997TwYMHXV1equJwOGSxWJSQkKArV66oZs2aMgxDAwYMUGhoqHM/OutPT0JCgqxWq65evarZs2dr+fLlWrVqlU6cOOHq0lKlkiVLatKkSZo/f75OnDihQoUKyWq1ElJcJFeuXKpcubLi4+Pl4+Oj5cuX68iRI64uK1VKSEhwnssHDBigXr16qV27dlqyZInCw8NdXV6qkXjOCA0NVbt27VSlShVVqVJFYWFh6t69OwEFbo/cYC5kB3MhN5gLucF8yA7mQG4wD7LD00Vjw0NZrVYZhqH27dsrQ4YMmjhxohYvXqzly5drz549stvtri4xVUi8+80wDF29elXPPfecZsyYoa+//lq//vqrxo4dq5s3b0qSHj586OJqU4/EznnLli2VKVMm1a9fXydPntSaNWv022+/ubq8VOPxABIdHa3ixYvrxo0bmjVrliQRUlwg8SIsODhYRYoUUe7cufXw4UMtWrSIgOICNptNhmGoefPmio+PV9++ffXSSy9p3rx5WrduHX/UekpsNpuuXLmiffv2qW3bturbt6/zj78JCQkKCgoioMCtkRvMg+xgPuQGcyA3mBPZwTzIDeZBdni6aGx4sOPHj8tut2vq1KnKli2b1q1bpxIlSuitt97S+vXrmd8thT1+91vHjh3Vr18/denSRQ8ePFCWLFm0bt06HTt2TOPGjdOMGTM0Z84chgs+JXFxcfrkk0/UqlUr9e7dW+PGjdPw4cMVGhqqVatW6cyZM64u0eMlXgQbhqHIyEjVrFlT69ev15QpUzR37lxNnz5d0qOQwh9UUlZCQoLi4uIkPboIs9vtSpcunQICAlSkSBG98847evjwoZYsWaKjR4+6uNrUZ+/evcqSJYtmzpypYsWK6dq1a3ruuefUoEED/fLLL7w/npL58+dryJAhOn78uGJiYuTl5aVy5copODhYDodDLVq0YN51uDVyg+uRHcyJ3OB65AZzITuYF7nBPMgOTw+NDQ8XHR2tyMhIDR48WHv37tWXX36pkJAQzZkzhw+1FJZ48fX2228rV65cWrhwobZs2aJ79+7p0KFDypUrl9atW6c7d+7o+++/V/369eXt7e3qslMFm82mmzdvytfXV9KjofwVK1bUm2++qfXr12v58uU6deqUi6v0XAkJCbLZbHI4HOrVq5c6d+6syZMnKyEhQa+//romTJighQsX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7H/z5k0jLCzsaZfp8RISEpz/f+zYMaNcuXLG4MGDjVu3bhkXLlwwXn75ZaN58+ZG//79jV69ehkNGjRwnssdDoerygb+MnKDuZAdzIPcYF7kBtcjO5gLucE8yA7mRKvIjXTu3Flr166VJLVr105bt251zm9Yp04ddevWTdmzZ1f//v31zjvvaMmSJZo3b55y5crlyrI9ksPhcN5R0rhxY/3www965plndPz4cTVv3lxXr151HqvTp0+rbNmyLGiWgsLCwrR27VrZbDb5+/tr//79OnHihIKDg+VwOPTBBx+oVq1aCgwMdN5JIkmvvvqqbDab7Ha7C6v3fKGhoc47duLi4hQfH6+KFSuqcuXKOnjwoPz8/OTj48PcnymoWLFiOnHihM6ePStJ2rZtm0aNGqV58+bps88+05o1a7Rnzx798ssvkqQBAwbIZrMpISHBlWV7pOXLl6tLly46c+aMLBaLMmTIoKVLl+qLL75QuXLlNGvWLB05ckS9evVyPidbtmzOxRqRPBISEmS1WhUVFaXIyEiVLl1ay5cv16FDh/Thhx/Kz89P27dv18svv6wcOXKoVKlSWr9+vby9vWW325MsagqYEbnBXMgO5kFuMDdygzmQHcyB3GAeZAcTc3VnBX9NUFCQ0bhxY+fXn3/+uVG6dGlj/PjxSfY7fvy48f333xu7du0yrl+//rTLTFUcDofx/vvvG3379nVuW758uVGsWDFj5cqVRkhIiLFkyRKjUqVKxunTp11Yqefbv3+/UbRoUWP48OFGmzZtjBMnThh79uwxmjdvbnTp0sXZJR8yZIhRtGhR4/z58y6u2HM96U6dDRs2GBUqVDAOHz5sGMb/v9OhV69extKlS59mealacHCwUbVqVWPhwoXGiy++aOzcudP5WEREhNGyZUs+q56CH374wejVq5fRqVMnIyQkxLDb7cbHH39sVK1a1VizZo1hGIZx6NAho3jx4kb//v1dXK1nSvycOn36tNGpUyejWrVqxldffWUYhmEcPnzYeOONN4z+/fsboaGh//W5gJmRG8yJ7GAO5AbzIDeYG9nB9cgN5kB2MDcaG25g8ODBRq1atZxfx8bGGoZhGOvXrzeKFStmLFq0yFWlpWpr1qwxqlatarzzzjvObdHR0caaNWuMWrVqGR06dDA6d+5snDx50oVVph6LFy82ihUrZrRp08Yw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",
|
||
"text/plain": [
|
||
"<Figure size 1600x600 with 2 Axes>"
|
||
]
|
||
},
|
||
"metadata": {},
|
||
"output_type": "display_data"
|
||
},
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"\n",
|
||
"✅ Saved: phase2_output/plots/02_phase1_vs_phase2_comparison.png\n",
|
||
"✅ Saved: phase2_output/data/phase1_vs_phase2_comparison.csv\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"print(\"=\" * 80)\n",
|
||
"print(\"📊 PHASE 1 vs PHASE 2 COMPARISON\")\n",
|
||
"print(\"=\" * 80)\n",
|
||
"\n",
|
||
"# Phase 1 results (from ML_Training_Pipeline.ipynb with FINAL_DATASET_WITH_TEXT_BACKUP_20260105_213507.xlsx)\n",
|
||
"# ⚠️ UPDATED with correct results from the same dataset!\n",
|
||
"phase1_results = {\n",
|
||
" 'Baseline': {'Val_R2': 0.0000, 'Val_MAE': 5.1082, 'Val_RMSE': 9.7433},\n",
|
||
" 'Linear Regression': {'Val_R2': -0.0820, 'Val_MAE': 4.9313, 'Val_RMSE': 10.1314},\n",
|
||
" 'Decision Tree': {'Val_R2': 0.4136, 'Val_MAE': 3.3841, 'Val_RMSE': 7.4583},\n",
|
||
" 'Random Forest': {'Val_R2': 0.3093, 'Val_MAE': 3.5571, 'Val_RMSE': 8.0948},\n",
|
||
" 'Gradient Boosting': {'Val_R2': 0.3981, 'Val_MAE': 3.0356, 'Val_RMSE': 7.5565},\n",
|
||
" 'XGBoost': {'Val_R2': 0.3225, 'Val_MAE': 3.2599, 'Val_RMSE': 8.0168},\n",
|
||
" 'LightGBM': {'Val_R2': 0.2948, 'Val_MAE': 3.6027, 'Val_RMSE': 8.1789}\n",
|
||
"}\n",
|
||
"\n",
|
||
"# Create comparison table\n",
|
||
"comparison_data = []\n",
|
||
"for model_name in results_df_phase2['Model'].values:\n",
|
||
" phase2_metrics = results_df_phase2[results_df_phase2['Model'] == model_name].iloc[0]\n",
|
||
" \n",
|
||
" if model_name in phase1_results:\n",
|
||
" phase1_metrics = phase1_results[model_name]\n",
|
||
" r2_improvement = phase2_metrics['Val_R2'] - phase1_metrics['Val_R2']\n",
|
||
" mae_improvement = phase1_metrics['Val_MAE'] - phase2_metrics['Val_MAE']\n",
|
||
" \n",
|
||
" comparison_data.append({\n",
|
||
" 'Model': model_name,\n",
|
||
" 'Phase1_R2': phase1_metrics['Val_R2'],\n",
|
||
" 'Phase2_R2': phase2_metrics['Val_R2'],\n",
|
||
" 'R2_Improvement': r2_improvement,\n",
|
||
" 'R2_Improvement_%': (r2_improvement / max(abs(phase1_metrics['Val_R2']), 0.01)) * 100,\n",
|
||
" 'Phase1_MAE': phase1_metrics['Val_MAE'],\n",
|
||
" 'Phase2_MAE': phase2_metrics['Val_MAE'],\n",
|
||
" 'MAE_Improvement': mae_improvement,\n",
|
||
" 'MAE_Improvement_%': (mae_improvement / phase1_metrics['Val_MAE']) * 100\n",
|
||
" })\n",
|
||
"\n",
|
||
"comparison_df = pd.DataFrame(comparison_data)\n",
|
||
"\n",
|
||
"print(\"\\n📊 DETAILED COMPARISON:\")\n",
|
||
"print(\"=\" * 80)\n",
|
||
"print(comparison_df.to_string(index=False))\n",
|
||
"\n",
|
||
"# Summary statistics\n",
|
||
"print(\"\\n\" + \"=\" * 80)\n",
|
||
"print(\"📈 IMPROVEMENT SUMMARY\")\n",
|
||
"print(\"=\" * 80)\n",
|
||
"\n",
|
||
"avg_r2_phase1 = comparison_df['Phase1_R2'].mean()\n",
|
||
"avg_r2_phase2 = comparison_df['Phase2_R2'].mean()\n",
|
||
"avg_mae_phase1 = comparison_df['Phase1_MAE'].mean()\n",
|
||
"avg_mae_phase2 = comparison_df['Phase2_MAE'].mean()\n",
|
||
"\n",
|
||
"print(f\"\\nAverage R² Score:\")\n",
|
||
"print(f\" Phase 1 (Numeric only): {avg_r2_phase1:.4f}\")\n",
|
||
"print(f\" Phase 2 (With text): {avg_r2_phase2:.4f}\")\n",
|
||
"print(f\" Improvement: {avg_r2_phase2 - avg_r2_phase1:+.4f} ({(avg_r2_phase2 - avg_r2_phase1) / max(abs(avg_r2_phase1), 0.01) * 100:+.1f}%)\")\n",
|
||
"\n",
|
||
"print(f\"\\nAverage MAE:\")\n",
|
||
"print(f\" Phase 1 (Numeric only): {avg_mae_phase1:.4f}\")\n",
|
||
"print(f\" Phase 2 (With text): {avg_mae_phase2:.4f}\")\n",
|
||
"print(f\" Improvement: {avg_mae_phase1 - avg_mae_phase2:+.4f} ({(avg_mae_phase1 - avg_mae_phase2) / avg_mae_phase1 * 100:+.1f}%)\")\n",
|
||
"\n",
|
||
"# Best models comparison\n",
|
||
"best_phase1 = max(phase1_results.items(), key=lambda x: x[1]['Val_R2'])\n",
|
||
"best_phase2_row = results_df_phase2.iloc[0]\n",
|
||
"\n",
|
||
"print(f\"\\n🏆 Best Models:\")\n",
|
||
"print(f\" Phase 1: {best_phase1[0]} (R²={best_phase1[1]['Val_R2']:.4f}, MAE={best_phase1[1]['Val_MAE']:.4f})\")\n",
|
||
"print(f\" Phase 2: {best_phase2_row['Model']} (R²={best_phase2_row['Val_R2']:.4f}, MAE={best_phase2_row['Val_MAE']:.4f})\")\n",
|
||
"\n",
|
||
"# Visualization\n",
|
||
"fig, axes = plt.subplots(1, 2, figsize=(16, 6))\n",
|
||
"\n",
|
||
"# R² Comparison\n",
|
||
"models = comparison_df['Model'].values\n",
|
||
"x_pos = np.arange(len(models))\n",
|
||
"width = 0.35\n",
|
||
"\n",
|
||
"axes[0].bar(x_pos - width/2, comparison_df['Phase1_R2'], width, label='Phase 1 (Numeric only)', alpha=0.8, color='coral')\n",
|
||
"axes[0].bar(x_pos + width/2, comparison_df['Phase2_R2'], width, label='Phase 2 (With text)', alpha=0.8, color='skyblue')\n",
|
||
"axes[0].set_xlabel('Models', fontsize=12)\n",
|
||
"axes[0].set_ylabel('Validation R²', fontsize=12)\n",
|
||
"axes[0].set_title('R² Comparison: Phase 1 vs Phase 2', fontsize=14, fontweight='bold')\n",
|
||
"axes[0].set_xticks(x_pos)\n",
|
||
"axes[0].set_xticklabels(models, rotation=45, ha='right')\n",
|
||
"axes[0].axhline(y=0, color='gray', linestyle='--', linewidth=1)\n",
|
||
"axes[0].legend()\n",
|
||
"axes[0].grid(alpha=0.3, axis='y')\n",
|
||
"\n",
|
||
"# MAE Comparison\n",
|
||
"axes[1].bar(x_pos - width/2, comparison_df['Phase1_MAE'], width, label='Phase 1 (Numeric only)', alpha=0.8, color='coral')\n",
|
||
"axes[1].bar(x_pos + width/2, comparison_df['Phase2_MAE'], width, label='Phase 2 (With text)', alpha=0.8, color='skyblue')\n",
|
||
"axes[1].set_xlabel('Models', fontsize=12)\n",
|
||
"axes[1].set_ylabel('Validation MAE', fontsize=12)\n",
|
||
"axes[1].set_title('MAE Comparison: Phase 1 vs Phase 2', fontsize=14, fontweight='bold')\n",
|
||
"axes[1].set_xticks(x_pos)\n",
|
||
"axes[1].set_xticklabels(models, rotation=45, ha='right')\n",
|
||
"axes[1].legend()\n",
|
||
"axes[1].grid(alpha=0.3, axis='y')\n",
|
||
"\n",
|
||
"plt.tight_layout()\n",
|
||
"plt.savefig('phase2_output/plots/02_phase1_vs_phase2_comparison.png', dpi=300, bbox_inches='tight')\n",
|
||
"plt.show()\n",
|
||
"\n",
|
||
"print(\"\\n✅ Saved: phase2_output/plots/02_phase1_vs_phase2_comparison.png\")\n",
|
||
"\n",
|
||
"# Save comparison\n",
|
||
"comparison_df.to_csv('phase2_output/data/phase1_vs_phase2_comparison.csv', index=False)\n",
|
||
"print(\"✅ Saved: phase2_output/data/phase1_vs_phase2_comparison.csv\")"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "9e1fe71d",
|
||
"metadata": {},
|
||
"source": [
|
||
"# 🔟 Test Set Evaluation\n",
|
||
"\n",
|
||
"Đánh giá best model trên test set"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 28,
|
||
"id": "7d452daf",
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"================================================================================\n",
|
||
"TEST SET EVALUATION - Decision Tree\n",
|
||
"================================================================================\n",
|
||
"\n",
|
||
"📊 Results:\n",
|
||
"Metric Validation Test Difference \n",
|
||
"------------------------------------------------------------\n",
|
||
"R² 0.3339 0.2893 0.0446 \n",
|
||
"MAE 2.5525 3.5730 1.0205 \n",
|
||
"RMSE 4.2579 5.6899 1.4320 \n",
|
||
"\n",
|
||
"🎯 Consistency Check:\n",
|
||
" ✓ GOOD! Val and Test R² are reasonably consistent (13.4% difference)\n"
|
||
]
|
||
},
|
||
{
|
||
"data": {
|
||
"image/png": "iVBORw0KGgoAAAANSUhEUgAABv4AAAHqCAYAAADMEzkrAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQABAABJREFUeJzs3XdYFFfbBvB7C02KFLtYEAUjrIhdsRJbsEaCXewaRRM11rxGk6ifrzGW2GKPQZPYsGDERuzGFqK4GlsQo9iRsvRl2fn+4GXjCuhSh4X7d11eyZ6Z2Xn2zLI7O8+c50gEQRBAREREREREREREREREREZNKnYARERERERERERERERERFRwTPwRERERERERERERERERlQJM/BERERERERERERERERGVAkz8EREREREREREREREREZUCTPwRERERERERERERERERlQJM/BERERERERERERERERGVAkz8EREREREREREREREREZUCTPwRERERERERERERERERlQJM/BERERERERERERERERGVAkz8lUGrVq2Cq6ur3r/33nsPnp6e6NGjB7799lvExsYWeRxRUVFwdXXFrFmz8rytq6srhg4dWgRRvd2sWbOy9V1u//bu3Vvs8RXU3r17DX59+Tluhnjw4IHB6164cAEBAQHw8vKCu7s7WrVqhVGjRuHAgQMQBKFAcaSlpeHZs2cAgLVr16J9+/YFej4A8Pb2ztaP9evXR6NGjfDBBx9g8eLFxfK3lyXreL/+Xi3I31ZCQgJiYmIKKzwAwKVLl+Dq6opVq1YV6vMWhCAIumO5evXqQnnOFy9eIDk5uVCe6228vb3h7e1d5PshIqJMOZ13Z/1r3LgxfHx8sHjxYiQmJhZpHHk5787p/KAoGPodn7Xem/8aNGiAFi1aYMiQIdi/f7/eNln9funSpXzHl5dzUiIiImOQ3+uBQ4cOhaura772mZGRgUePHhm07pv7Kcpzktev+RT1vgqbWq3GvHnz0Lx5czRs2BALFizIdd3czkPd3d3RunVrjBo1CufPny/ymLOup0ZFRb1z3eK6blGQ9zWRMZCLHQCJp3///mjSpAkAQKvVQqVSITw8HJs3b8b+/fuxfft21K5du8j2b29vj2+++QY1a9bM87bffPMNKlSoUARRvV3//v3RqlUrvbYZM2bAzs4Os2fP1mtv3LhxcYZW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irZt26JVq1bo3bs37ty5g/j4eF1/N2nSRDenS06qVKny1v3Wr18fVapUwenTp/USf3l9L7Vu3TpP6+f2/jHk9dy7dw9Azic377rwVpC/5aw4a9WqhS+//DLXderXr687YcxPjK/z9fXF3Llzcf78eXh6euLkyZPo2rWr3pyd+fmMATLnQcoaNZzbye8ff/yBv//+G3Xr1i1w3+Umpx8L69evx7Jly1C9enU0bdoULVq0gKurKzQaDSZMmFCo+yciovypW7eu3vf/Bx98gHHjxmHx4sV4+fIlZs6cqVuWl/NuABg0aBC6d++O06dP4/z587h06RK+//57bNy4EStWrEDnzp1zfY6Cfvdmfd9lSUxMxLBhw3Dz5k00adIE7u7u6N27NxQKBX788UfdTTT5UbFixTyfQ2V520WerO/WN38rEBERlUVvXg/MSYUKFbBr1y4olUqcPn0aFy9exPHjxxESEoJGjRph+/bt77wpJy9JlJx+V2d9t2dVTMjN2xJub2PItcbCus6Yn33lhZmZmd45VPv27dGyZUuMGTMGgwYNws8//6yX/MvLNcuCvBdyOz8z9Fz0zfNQAAgODsbMmTPh4OCAZs2awcfHB66urqhcubKuUlRuCuN9TVSSMPFHOcr6Ud61a1cAgKOjIwAgLS0txx/coaGhsLW1hVwu162b090o58+fx/79+zF69OhsI84SExNx584dODo6okuXLujSpQsA4Pbt2xg2bBjWrFmT40X5GjVqAIAuwfGme/fuQSKRFHhkWWHK6qNKlSpluzPpn3/+wf3793WlBBwdHREZGYn69evD3t5eb91bt27hxYsXuX4RA8DMmTOhUqn02rL6rKDxA9mTWFqtFkePHtXt4+XLl7h37x6aNm0KPz8/+Pn5QRAEBAcHY8aMGdiyZQtWrlyZp/2fPHkS58+fR//+/XMcJSaXy+Hs7IyIiAiYmZnBysoK5cqVg0qlyvH9e/78eUilUpiZmb1z3+3atcOZM2dETajY29sb/Hqy7oKLiIjItt4///xj0H5y+luOjo7G119/je7du+s+J97k6OiI6OhoNG/ePNtJ/Z9//omUlBSYm5ujRo0akEql+Yrxdd27d8eiRYsQEhKCFy9eQK1W68p8Avn/jAH+LfM5btw4NGzYMNvy3bt349SpU9ixYwfmzJnz1s/B27dvY8OGDejfv3+u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SqVwdq4ndhhERERERGWS2c8bIUlJhGBhhbRBY8QOh4iMFBN/REREIkv8vyWQPY5CcsCnSG/fUexwiIiIiIiIiEgEsptXIY2LgdbWXuxQiMiIMfFHRERUnJKSIL91E5qmzf9ts7BA/K79ooVEREREREREREREpQPriBERERUT2d/3YPeBN8r3+xCyiHtih0NERERERERERESlDBN/RERExcDswF7Ydm4P+e1bkCYmwPqTCYAgiB0WlVIxMTHo3LkzLl26pGsLDw+Hn58fPD094e3tjd27d4sYIRERERERERERFQUm/oiIiIqSWg3L/8yAzZjhkCYlAgA09d9DwndrAYlE5OCoNAoLC0P//v3x8OFDXVt8fDzGjh2LPn364MqVK1i4cCEWLVqE69evixgpEREREREREREVNib+iIiIioj0cRRse3+AchvX6dpS/QYg9vAJZNStJ2JkVFrt27cP06ZNw5QpU/Tajx07BltbWwwePBhyuRytWrVCz5498dNPP4kUKRERERERERERFQUm/oiIiIqAyakTsOvUFiZhVwAAgqkpEpasQMLq9YClpcjRUWnVpk0bHD9+HD4+Pnrt9+7dg4uLi15b3bp1cfv27eIMj4iIiIiIiIiIiphc7ACIiIhKG4v1a2A593NI/jeHX0aNmlBtDoSmUWORI6PSrmLFijm2JyUlwcLCQq/N3NwcycnJuT6XiYmsQNVo5XJZ/jemEonHtHTicS19eExLJx5XIiIiIjIUE39ERESFTOP6nu7/0zp3RcLq9RDs7EWMiMo6CwsLJCQk6LWlpqbC8i2jT9PTMwq8X7W64M9BJQuPaenE41r68JiWTjyuRERERGQIJv6IiIgKWXoHbyTPmgNIJEj+ZCogZWVtEpeLiwvOnz+v1/b333+jXj3ONUlERERERFRSaJq0hiQlCYIFpwghovzjlUgiIqKCEASYhh4F/lfWM0vylOlInjyNST8qETp37ozo6Ghs3boV6enpuHjxIg4ePAhfX1+xQyMiIiIiIqL/UfcdAvXQj6HuO0TsUIjIiPFqJBERUX4lJsJ6/GiUH+QHi/VrxI6GKFd2dnbYsmULjhw5ghYtWmDOnDmYM2cOWrZsKXZoRERERERERERUiFjqk4iIKB9kd+/AZtRQyO/cBgBYfj0XaT49oa1ZS+TIiDLduXNH77FCocCOHTtEioaI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cjzyyCP4/vvvoVQqMWPGDCxbtqzNPWA6ivemjQhcei+EhgYAgKjVoua5FwEfHxgLDsJUdBTz4qZCEASneoIgYJJ+NFbm7oDRWIDo6CFyhE9EREREREREPZgoijAaC2A2m6HRaJxmN6Lup19QbwzqE97qeoJCOPdOnXj8woqyk/V7BctavyPI9RnIs3jlfAyFqQKiNrhLE3+nyP231NbjF5nK21W/I38Luru2/p6Te3H7xN+iRYsQFhaG3NxclJWV4Y477sD69esxf/58eQKqr0fAQ0vh++7bjiJr7EiY39wAsf8AAIDZbAZsdkQ0kxnvqw0GbPaT+xERERERERERdSGDIR/bMjNgKjoK2OyASgltZD/MmJXIZUmIiIiIujm37sp15MgRfP/991iyZAl8fX0RFRWF5ORkbNy4UZZ4hN+N0P5tslPSr37urTBt/9SR9AMAjUYDqJQorix3+T7HTBWASnlyPyIiIiIiIiKiLmIw5GNDWiqiaiy4N24qXkhIwr1xUxFVY8GGtFQYDPlyh0hERERE7eDWib+DBw9Cq9UiLCzMURYdHY3i4uIuHy3nlZONwMvGw+vPC2DJzw/m199AzQsrAR8fp311umhoI/sh25AHSZKctkmShGxDHoKiIqHTRXdZ/ERERERERETUs4miiG2ZGdD7azE/fhp0oeHw9vKCLjQc8+OnQe+vxfYtmyGKotyhEhEREVEbuXXir7a2Fr6+vk5lp17X1dV1aSxSSAjQeHI9P9vgIaj8JAeN1//d5b4KhQIzZiXCUGtCek4WjKXH0WCxwFh6HOk5WTDUmjA9YTbnziciIiIiIiKiLmM0FsBUdBST9KMhCM5ruwmCgEn60agsLILRWCBThERERETUXm69xp+fnx/q6+udyk699vf3b7K/l5cSQsesSdzURaNhefFlCJ9/jvrX0qAMDITyLLuPHj0KqrvvwoebM/Dq15865swP7h+FW26dg9jYCzspUPehUp2thehMbK/WYXu1HNuqddhercP2IiIiIuo+zGYzYLMjIqi3y+19tcGAzd7lsywRERERUcdx68TfkCFDYDKZUFZWhpCQEABAQUEBwsPDERgY2GR/q9XeuQHdPBeW628GBAGwnPtY552nx7CHYmA0FsBsNkOj0UCni4ZCoYClBfU9QU/5nB2F7dU6bK+WY1u1DturddheRERERN2D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VFRUOIylX79+pKSk8NNPP+Hi4oLJZOLLL790eFr95MmTPTAbIiIiIu0tWLCAmTNn8vnnn/Ptt992KWb5+eefCQoKssdPRqORdevWERgY2G7tCehyjNNWzeGXX36x76utreXmzZv27atXr9LU1ERYWJg96QfYk34dvfFXXFxMQEAAlZWVODs7YzKZSEhIYNCgQR2OV0T+XvTGn4j0WgUFBbS0tLB48eIO25cvX87Ro0fJy8sjOjqa999/n4SEBObPn8+tW7fYs2cPr7/+Ol5eXvans7766itmzZqFj48PL730EllZWWRmZuLv709JSQlnz5516GPy5MkcP34cPz8/Ro4cyaVLl8jKysJgMNDY2PjE50BERESkJwUFBfHiiy8SERFBREQEPj4+XLlyhbS0NGbMmGEvNxUREcGePXsYOHAgAQEBnD59+r8m/pydnR8pHgsNDcVisVBXV4fZbLZ/W8dgMPDss88CEBMTw+rVq4mKimLFihXcunWLjIyMJz9ZIiIi8o/17rvvsmTJErZt20ZBQcFfxiweHh6MHDmSbdu2UVdXx9ixY7l69SqnT58mLCyswz66EuNMmDCBUaNGYbVa8fDwwMnJif379zNw4ED7MX5+fjz11FPs3LmTtWvX8uDBA44dO0ZJSQnQvroVwJQpU2htbSUyMpL169fj5uZGUVER9+/fZ8GCBT03kSLyf6HEn4j0WgUFBfj6+toXff7T5MmTMRqNfPrpp5SUlODq6srBgwfJz89nxIgRrF271l6awGw2ExgYSEpKCmfPnmX//v2EhYVRXV1NTk4Ozc3NzJ49m+TkZMLDw+197Nixg6SkJJKSkgAYP348iYmJFBYWcuHChSc/CSIiIiI9qG2xyGKxkJWVxb179xgxYgQhISFERkbajwsLC8PV1ZVDhw5x6NAhTCYTcXFxJCQkdHrtlStXdjsee+uttxg+fDhHjx4lOzubwYMHM336dGJiYvDw8ADghRde4MCBA+zevZuoqCi8vb3Zvn07b7755hOdKxEREfnnMhqNBAcHk5OTw8cff9ylmMVqtbJ7924sFgu//fYbo0aNIioqqtOymV2JcZydndm7dy/bt28nJiaGYcOGsXr1asrKyigvLwf+LNWekpKC1WolPDycwYMH4+/vz+HDhwkODubChQtMmDDBoe+nn36a7OxsLBYL8fHxNDY24uvrS1paGgEBAU9oVkXkf8Vg6+hdXxERERERERERERERERH5W9E3/kRERERERERERERERET6ACX+RERERERERERERERERPoAJf5ERERERERERERERERE+gAl/kRERERERERERERERET6ACX+RERERERERERERERERPoAJf5ERERERERERERERERE+gAl/kRERERERERERERERET6ACX+RERERERERERERERERPoAJf5ERERERERERERERERE+gAl/kRERERERERERERERET6ACX+RERERERERERERERERPoAJf5ERERERERERERERERE+oB/AbPuZmEOct8iAAAAAElFTkSuQmCC",
|
||
"text/plain": [
|
||
"<Figure size 1800x500 with 3 Axes>"
|
||
]
|
||
},
|
||
"metadata": {},
|
||
"output_type": "display_data"
|
||
},
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"\n",
|
||
"✅ Saved: phase2_output/plots/03_test_set_evaluation.png\n",
|
||
"✅ Saved: phase2_output/data/test_predictions.csv\n",
|
||
"\n",
|
||
"================================================================================\n",
|
||
"🎉 PHASE 2 COMPLETE - FINAL SUMMARY\n",
|
||
"================================================================================\n",
|
||
"\n",
|
||
"📊 Dataset:\n",
|
||
" Total samples: 454\n",
|
||
" Features: 92 (47 numeric + 50 text SVD)\n",
|
||
" Train/Val/Test: 289/62/62\n",
|
||
"\n",
|
||
"🏆 Best Model: Decision Tree\n",
|
||
" Validation R²: 0.3339\n",
|
||
" Test R²: 0.2893\n",
|
||
" Validation MAE: 2.5525\n",
|
||
" Test MAE: 3.5730\n",
|
||
"\n",
|
||
"📈 Improvement over Phase 1:\n",
|
||
" R² gain: -0.0797 (-19.3%)\n",
|
||
" MAE gain: +0.8316 (+24.6%)\n",
|
||
"\n",
|
||
"💾 Outputs saved to:\n",
|
||
" phase2_output/data/\n",
|
||
" phase2_output/plots/\n",
|
||
" phase2_output/models/\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"# Evaluate best model on test set\n",
|
||
"best_model = models_phase2[best_model_phase2]\n",
|
||
"\n",
|
||
"print(\"=\" * 80)\n",
|
||
"print(f\"TEST SET EVALUATION - {best_model_phase2}\")\n",
|
||
"print(\"=\" * 80)\n",
|
||
"\n",
|
||
"# Predictions\n",
|
||
"y_test_pred = best_model.predict(X_test_scaled)\n",
|
||
"\n",
|
||
"# Metrics\n",
|
||
"test_r2 = r2_score(y_test, y_test_pred)\n",
|
||
"test_mae = mean_absolute_error(y_test, y_test_pred)\n",
|
||
"test_rmse = np.sqrt(mean_squared_error(y_test, y_test_pred))\n",
|
||
"\n",
|
||
"val_r2 = results_df_phase2[results_df_phase2['Model'] == best_model_phase2]['Val_R2'].values[0]\n",
|
||
"val_mae = results_df_phase2[results_df_phase2['Model'] == best_model_phase2]['Val_MAE'].values[0]\n",
|
||
"val_rmse = results_df_phase2[results_df_phase2['Model'] == best_model_phase2]['Val_RMSE'].values[0]\n",
|
||
"\n",
|
||
"print(f\"\\n📊 Results:\")\n",
|
||
"print(f\"{'Metric':<15} {'Validation':<15} {'Test':<15} {'Difference':<15}\")\n",
|
||
"print(\"-\" * 60)\n",
|
||
"print(f\"{'R²':<15} {val_r2:<15.4f} {test_r2:<15.4f} {abs(test_r2 - val_r2):<15.4f}\")\n",
|
||
"print(f\"{'MAE':<15} {val_mae:<15.4f} {test_mae:<15.4f} {abs(test_mae - val_mae):<15.4f}\")\n",
|
||
"print(f\"{'RMSE':<15} {val_rmse:<15.4f} {test_rmse:<15.4f} {abs(test_rmse - val_rmse):<15.4f}\")\n",
|
||
"\n",
|
||
"# Consistency check\n",
|
||
"r2_diff_pct = abs(test_r2 - val_r2) / max(abs(val_r2), 0.01) * 100\n",
|
||
"\n",
|
||
"print(f\"\\n🎯 Consistency Check:\")\n",
|
||
"if r2_diff_pct < 10:\n",
|
||
" print(f\" ✅ EXCELLENT! Val and Test R² are very consistent ({r2_diff_pct:.1f}% difference)\")\n",
|
||
"elif r2_diff_pct < 20:\n",
|
||
" print(f\" ✓ GOOD! Val and Test R² are reasonably consistent ({r2_diff_pct:.1f}% difference)\")\n",
|
||
"else:\n",
|
||
" print(f\" ⚠️ Val and Test R² show significant difference ({r2_diff_pct:.1f}%)\")\n",
|
||
"\n",
|
||
"# Visualization\n",
|
||
"fig, axes = plt.subplots(1, 3, figsize=(18, 5))\n",
|
||
"\n",
|
||
"# Scatter plot\n",
|
||
"axes[0].scatter(y_test, y_test_pred, alpha=0.6, edgecolors='k')\n",
|
||
"axes[0].plot([y_test.min(), y_test.max()], [y_test.min(), y_test.max()], 'r--', lw=2)\n",
|
||
"axes[0].set_xlabel('Actual', fontsize=12)\n",
|
||
"axes[0].set_ylabel('Predicted', fontsize=12)\n",
|
||
"axes[0].set_title(f'{best_model_phase2} - Test Set\\\\nPredicted vs Actual', fontsize=14)\n",
|
||
"axes[0].grid(True, alpha=0.3)\n",
|
||
"\n",
|
||
"# Residuals\n",
|
||
"residuals = y_test - y_test_pred\n",
|
||
"axes[1].scatter(y_test_pred, residuals, alpha=0.6, edgecolors='k')\n",
|
||
"axes[1].axhline(y=0, color='r', linestyle='--', lw=2)\n",
|
||
"axes[1].set_xlabel('Predicted', fontsize=12)\n",
|
||
"axes[1].set_ylabel('Residuals', fontsize=12)\n",
|
||
"axes[1].set_title('Residual Plot', fontsize=14)\n",
|
||
"axes[1].grid(True, alpha=0.3)\n",
|
||
"\n",
|
||
"# Residuals distribution\n",
|
||
"axes[2].hist(residuals, bins=30, edgecolor='black', alpha=0.7)\n",
|
||
"axes[2].axvline(x=0, color='r', linestyle='--', lw=2)\n",
|
||
"axes[2].set_xlabel('Residuals', fontsize=12)\n",
|
||
"axes[2].set_ylabel('Frequency', fontsize=12)\n",
|
||
"axes[2].set_title('Distribution of Residuals', fontsize=14)\n",
|
||
"axes[2].grid(True, alpha=0.3)\n",
|
||
"\n",
|
||
"plt.tight_layout()\n",
|
||
"plt.savefig('phase2_output/plots/03_test_set_evaluation.png', dpi=300, bbox_inches='tight')\n",
|
||
"plt.show()\n",
|
||
"\n",
|
||
"print(\"\\n✅ Saved: phase2_output/plots/03_test_set_evaluation.png\")\n",
|
||
"\n",
|
||
"# Save test predictions\n",
|
||
"test_results = pd.DataFrame({\n",
|
||
" 'actual': y_test,\n",
|
||
" 'predicted': y_test_pred,\n",
|
||
" 'error': residuals,\n",
|
||
" 'abs_error': np.abs(residuals)\n",
|
||
"}).sort_values('abs_error', ascending=False)\n",
|
||
"\n",
|
||
"test_results.to_csv('phase2_output/data/test_predictions.csv', index=False)\n",
|
||
"print(\"✅ Saved: phase2_output/data/test_predictions.csv\")\n",
|
||
"\n",
|
||
"# Final Summary\n",
|
||
"print(\"\\n\" + \"=\" * 80)\n",
|
||
"print(\"🎉 PHASE 2 COMPLETE - FINAL SUMMARY\")\n",
|
||
"print(\"=\" * 80)\n",
|
||
"\n",
|
||
"print(f\"\\n📊 Dataset:\")\n",
|
||
"print(f\" Total samples: {len(df)}\")\n",
|
||
"print(f\" Features: {X_combined.shape[1]} (47 numeric + 50 text SVD)\")\n",
|
||
"print(f\" Train/Val/Test: {len(X_train)}/{len(X_val)}/{len(X_test)}\")\n",
|
||
"\n",
|
||
"print(f\"\\n🏆 Best Model: {best_model_phase2}\")\n",
|
||
"print(f\" Validation R²: {val_r2:.4f}\")\n",
|
||
"print(f\" Test R²: {test_r2:.4f}\")\n",
|
||
"print(f\" Validation MAE: {val_mae:.4f}\")\n",
|
||
"print(f\" Test MAE: {test_mae:.4f}\")\n",
|
||
"\n",
|
||
"print(f\"\\n📈 Improvement over Phase 1:\")\n",
|
||
"if best_model_phase2 in phase1_results:\n",
|
||
" phase1_best = phase1_results[best_model_phase2]\n",
|
||
" r2_gain = val_r2 - phase1_best['Val_R2']\n",
|
||
" mae_gain = phase1_best['Val_MAE'] - val_mae\n",
|
||
" print(f\" R² gain: {r2_gain:+.4f} ({r2_gain / max(abs(phase1_best['Val_R2']), 0.01) * 100:+.1f}%)\")\n",
|
||
" print(f\" MAE gain: {mae_gain:+.4f} ({mae_gain / phase1_best['Val_MAE'] * 100:+.1f}%)\")\n",
|
||
"\n",
|
||
"print(f\"\\n💾 Outputs saved to:\")\n",
|
||
"print(f\" phase2_output/data/\")\n",
|
||
"print(f\" phase2_output/plots/\")\n",
|
||
"print(f\" phase2_output/models/\")"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "bc294335",
|
||
"metadata": {},
|
||
"source": [
|
||
"# 1️⃣1️⃣ Save Best Model\n",
|
||
"\n",
|
||
"Lưu model tốt nhất cùng với scaler và các artifacts cần thiết để deploy"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 32,
|
||
"id": "b98dcbbb",
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"================================================================================\n",
|
||
"💾 SAVING BEST MODEL & ARTIFACTS\n",
|
||
"================================================================================\n",
|
||
"\n",
|
||
"✅ Saved best model: phase2_output/models/best_model_Decision_Tree_20260106_011633.pkl\n",
|
||
" Model type: Decision Tree\n",
|
||
" Val R²: 0.3339\n",
|
||
" Test R²: 0.2893\n",
|
||
"\n",
|
||
"✅ Saved scaler: phase2_output/models/scaler_20260106_011633.pkl\n",
|
||
"\n",
|
||
"✅ Saved TF-IDF vectorizer: phase2_output/models/tfidf_vectorizer_20260106_011633.pkl\n",
|
||
"\n",
|
||
"✅ Saved SVD model: phase2_output/models/svd_model_20260106_011633.pkl\n",
|
||
"\n",
|
||
"✅ Saved feature names: phase2_output/models/feature_names_20260106_011633.pkl\n",
|
||
"\n",
|
||
"✅ Saved metadata: phase2_output/models/model_metadata_20260106_011633.pkl\n",
|
||
"\n",
|
||
"✅ Saved complete package: phase2_output/models/phase2_complete_package_20260106_011633.joblib\n",
|
||
" Package size: 102.67 KB\n",
|
||
"\n",
|
||
"✅ Saved README: phase2_output/models/README_20260106_011633.md\n",
|
||
"\n",
|
||
"================================================================================\n",
|
||
"✅ ALL ARTIFACTS SAVED SUCCESSFULLY!\n",
|
||
"================================================================================\n",
|
||
"\n",
|
||
"📁 Saved files:\n",
|
||
" 1. Best model: phase2_output/models/best_model_Decision_Tree_20260106_011633.pkl\n",
|
||
" 2. Scaler: phase2_output/models/scaler_20260106_011633.pkl\n",
|
||
" 3. TF-IDF: phase2_output/models/tfidf_vectorizer_20260106_011633.pkl\n",
|
||
" 4. SVD: phase2_output/models/svd_model_20260106_011633.pkl\n",
|
||
" 5. Features: phase2_output/models/feature_names_20260106_011633.pkl\n",
|
||
" 6. Metadata: phase2_output/models/model_metadata_20260106_011633.pkl\n",
|
||
" 7. Complete package: phase2_output/models/phase2_complete_package_20260106_011633.joblib\n",
|
||
" 8. README: phase2_output/models/README_20260106_011633.md\n",
|
||
"\n",
|
||
"💡 For deployment, use: phase2_output/models/phase2_complete_package_20260106_011633.joblib\n",
|
||
"================================================================================\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"import pickle\n",
|
||
"import joblib\n",
|
||
"from datetime import datetime\n",
|
||
"\n",
|
||
"print(\"=\" * 80)\n",
|
||
"print(\"💾 SAVING BEST MODEL & ARTIFACTS\")\n",
|
||
"print(\"=\" * 80)\n",
|
||
"\n",
|
||
"# Create timestamp\n",
|
||
"timestamp = datetime.now().strftime('%Y%m%d_%H%M%S')\n",
|
||
"\n",
|
||
"# 1. Save the best model\n",
|
||
"model_filename = f'phase2_output/models/best_model_{best_model_phase2.replace(\" \", \"_\")}_{timestamp}.pkl'\n",
|
||
"with open(model_filename, 'wb') as f:\n",
|
||
" pickle.dump(best_model, f)\n",
|
||
"print(f\"\\n✅ Saved best model: {model_filename}\")\n",
|
||
"print(f\" Model type: {best_model_phase2}\")\n",
|
||
"print(f\" Val R²: {val_r2:.4f}\")\n",
|
||
"print(f\" Test R²: {test_r2:.4f}\")\n",
|
||
"\n",
|
||
"# 2. Save the scaler\n",
|
||
"scaler_filename = f'phase2_output/models/scaler_{timestamp}.pkl'\n",
|
||
"with open(scaler_filename, 'wb') as f:\n",
|
||
" pickle.dump(scaler, f)\n",
|
||
"print(f\"\\n✅ Saved scaler: {scaler_filename}\")\n",
|
||
"\n",
|
||
"# 3. Save TF-IDF vectorizer\n",
|
||
"tfidf_filename = f'phase2_output/models/tfidf_vectorizer_{timestamp}.pkl'\n",
|
||
"with open(tfidf_filename, 'wb') as f:\n",
|
||
" pickle.dump(tfidf, f)\n",
|
||
"print(f\"\\n✅ Saved TF-IDF vectorizer: {tfidf_filename}\")\n",
|
||
"\n",
|
||
"# 4. Save SVD model\n",
|
||
"svd_filename = f'phase2_output/models/svd_model_{timestamp}.pkl'\n",
|
||
"with open(svd_filename, 'wb') as f:\n",
|
||
" pickle.dump(svd, f)\n",
|
||
"print(f\"\\n✅ Saved SVD model: {svd_filename}\")\n",
|
||
"\n",
|
||
"# 5. Save feature names\n",
|
||
"feature_names_file = f'phase2_output/models/feature_names_{timestamp}.pkl'\n",
|
||
"with open(feature_names_file, 'wb') as f:\n",
|
||
" pickle.dump(X_combined.columns.tolist(), f)\n",
|
||
"print(f\"\\n✅ Saved feature names: {feature_names_file}\")\n",
|
||
"\n",
|
||
"# 6. Save model metadata\n",
|
||
"metadata = {\n",
|
||
" 'model_name': best_model_phase2,\n",
|
||
" 'timestamp': timestamp,\n",
|
||
" 'dataset': 'FINAL_DATASET_WITH_TEXT_BACKUP_20260105_213507.xlsx',\n",
|
||
" 'n_samples': len(df),\n",
|
||
" 'n_features': X_combined.shape[1],\n",
|
||
" 'n_numeric_features': len(numeric_cols),\n",
|
||
" 'n_text_features': n_components,\n",
|
||
" 'train_size': len(X_train),\n",
|
||
" 'val_size': len(X_val),\n",
|
||
" 'test_size': len(X_test),\n",
|
||
" 'val_r2': float(val_r2),\n",
|
||
" 'val_mae': float(val_mae),\n",
|
||
" 'val_rmse': float(val_rmse),\n",
|
||
" 'test_r2': float(test_r2),\n",
|
||
" 'test_mae': float(test_mae),\n",
|
||
" 'test_rmse': float(test_rmse),\n",
|
||
" 'tfidf_params': {\n",
|
||
" 'max_features': max_features,\n",
|
||
" 'ngram_range': ngram_range,\n",
|
||
" 'min_df': min_df,\n",
|
||
" 'max_df': max_df\n",
|
||
" },\n",
|
||
" 'svd_params': {\n",
|
||
" 'n_components': n_components,\n",
|
||
" 'explained_variance': float(svd.explained_variance_ratio_.sum())\n",
|
||
" },\n",
|
||
" 'random_state': RANDOM_STATE\n",
|
||
"}\n",
|
||
"\n",
|
||
"metadata_filename = f'phase2_output/models/model_metadata_{timestamp}.pkl'\n",
|
||
"with open(metadata_filename, 'wb') as f:\n",
|
||
" pickle.dump(metadata, f)\n",
|
||
"print(f\"\\n✅ Saved metadata: {metadata_filename}\")\n",
|
||
"\n",
|
||
"# 7. Save as single package (using joblib for better compression)\n",
|
||
"package_filename = f'phase2_output/models/phase2_complete_package_{timestamp}.joblib'\n",
|
||
"model_package = {\n",
|
||
" 'model': best_model,\n",
|
||
" 'scaler': scaler,\n",
|
||
" 'tfidf': tfidf,\n",
|
||
" 'svd': svd,\n",
|
||
" 'feature_names': X_combined.columns.tolist(),\n",
|
||
" 'metadata': metadata\n",
|
||
"}\n",
|
||
"joblib.dump(model_package, package_filename)\n",
|
||
"print(f\"\\n✅ Saved complete package: {package_filename}\")\n",
|
||
"print(f\" Package size: {os.path.getsize(package_filename) / 1024:.2f} KB\")\n",
|
||
"\n",
|
||
"# 8. Create a README for the saved models\n",
|
||
"readme_content = f\"\"\"# Phase 2 Model Package - {timestamp}\n",
|
||
"\n",
|
||
"## Model Information\n",
|
||
"- **Model Type**: {best_model_phase2}\n",
|
||
"- **Dataset**: FINAL_DATASET_WITH_TEXT_BACKUP_20260105_213507.xlsx\n",
|
||
"- **Total Samples**: {len(df)}\n",
|
||
"- **Total Features**: {X_combined.shape[1]} (Numeric: {len(numeric_cols)}, Text SVD: {n_components})\n",
|
||
"\n",
|
||
"## Performance Metrics\n",
|
||
"\n",
|
||
"### Validation Set\n",
|
||
"- **R² Score**: {val_r2:.4f}\n",
|
||
"- **MAE**: {val_mae:.4f}\n",
|
||
"- **RMSE**: {val_rmse:.4f}\n",
|
||
"\n",
|
||
"### Test Set\n",
|
||
"- **R² Score**: {test_r2:.4f}\n",
|
||
"- **MAE**: {test_mae:.4f}\n",
|
||
"- **RMSE**: {test_rmse:.4f}\n",
|
||
"\n",
|
||
"## Files Included\n",
|
||
"\n",
|
||
"1. **best_model_{best_model_phase2.replace(\" \", \"_\")}_{timestamp}.pkl** - Trained model\n",
|
||
"2. **scaler_{timestamp}.pkl** - StandardScaler for numeric features\n",
|
||
"3. **tfidf_vectorizer_{timestamp}.pkl** - TF-IDF vectorizer for text\n",
|
||
"4. **svd_model_{timestamp}.pkl** - SVD dimensionality reduction\n",
|
||
"5. **feature_names_{timestamp}.pkl** - List of all feature names\n",
|
||
"6. **model_metadata_{timestamp}.pkl** - Complete metadata dictionary\n",
|
||
"7. **phase2_complete_package_{timestamp}.joblib** - All-in-one package (recommended for deployment)\n",
|
||
"\n",
|
||
"## How to Load and Use\n",
|
||
"\n",
|
||
"### Option 1: Load Complete Package (Recommended)\n",
|
||
"```python\n",
|
||
"import joblib\n",
|
||
"import pandas as pd\n",
|
||
"\n",
|
||
"# Load package\n",
|
||
"package = joblib.load('phase2_complete_package_{timestamp}.joblib')\n",
|
||
"model = package['model']\n",
|
||
"scaler = package['scaler']\n",
|
||
"tfidf = package['tfidf']\n",
|
||
"svd = package['svd']\n",
|
||
"\n",
|
||
"# Make prediction\n",
|
||
"# 1. Process text\n",
|
||
"text_combined = \"your text here\" # Combined task text\n",
|
||
"tfidf_features = tfidf.transform([text_combined])\n",
|
||
"text_svd = svd.transform(tfidf_features)\n",
|
||
"\n",
|
||
"# 2. Prepare numeric features\n",
|
||
"numeric_features = [...] # Your numeric features array\n",
|
||
"\n",
|
||
"# 3. Combine and scale\n",
|
||
"all_features = pd.concat([\n",
|
||
" pd.DataFrame(numeric_features, columns=package['feature_names'][:len(numeric_features)]),\n",
|
||
" pd.DataFrame(text_svd, columns=package['feature_names'][len(numeric_features):])\n",
|
||
"], axis=1)\n",
|
||
"all_features_scaled = scaler.transform(all_features)\n",
|
||
"\n",
|
||
"# 4. Predict\n",
|
||
"prediction = model.predict(all_features_scaled)\n",
|
||
"print(f\"Predicted staff count: {{prediction[0]:.0f}}\")\n",
|
||
"```\n",
|
||
"\n",
|
||
"### Option 2: Load Individual Files\n",
|
||
"```python\n",
|
||
"import pickle\n",
|
||
"\n",
|
||
"with open('best_model_{best_model_phase2.replace(\" \", \"_\")}_{timestamp}.pkl', 'rb') as f:\n",
|
||
" model = pickle.load(f)\n",
|
||
"\n",
|
||
"with open('scaler_{timestamp}.pkl', 'rb') as f:\n",
|
||
" scaler = pickle.load(f)\n",
|
||
"\n",
|
||
"# ... (same prediction process as above)\n",
|
||
"```\n",
|
||
"\n",
|
||
"## Model Configuration\n",
|
||
"\n",
|
||
"### TF-IDF Parameters\n",
|
||
"- max_features: {max_features}\n",
|
||
"- ngram_range: {ngram_range}\n",
|
||
"- min_df: {min_df}\n",
|
||
"- max_df: {max_df}\n",
|
||
"\n",
|
||
"### SVD Parameters\n",
|
||
"- n_components: {n_components}\n",
|
||
"- explained_variance: {svd.explained_variance_ratio_.sum()*100:.2f}%\n",
|
||
"\n",
|
||
"### Training Parameters\n",
|
||
"- random_state: {RANDOM_STATE}\n",
|
||
"- train_size: {len(X_train)} ({len(X_train)/len(df)*100:.1f}%)\n",
|
||
"- val_size: {len(X_val)} ({len(X_val)/len(df)*100:.1f}%)\n",
|
||
"- test_size: {len(X_test)} ({len(X_test)/len(df)*100:.1f}%)\n",
|
||
"\n",
|
||
"## Phase 1 vs Phase 2 Comparison\n",
|
||
"\n",
|
||
"Phase 1 (Numeric only): R² = {phase1_results[best_model_phase2]['Val_R2']:.4f} if best_model_phase2 in phase1_results else 'N/A'\n",
|
||
"Phase 2 (With text): R² = {val_r2:.4f}\n",
|
||
"Improvement: {(val_r2 - phase1_results[best_model_phase2]['Val_R2']) if best_model_phase2 in phase1_results else 'N/A'}\n",
|
||
"\n",
|
||
"## Notes\n",
|
||
"- This model includes text features extracted from task descriptions\n",
|
||
"- Text preprocessing: lowercase, remove special chars, combine task columns\n",
|
||
"- Feature engineering: TF-IDF → SVD → StandardScaler\n",
|
||
"- Use the same preprocessing pipeline for new predictions\n",
|
||
"\n",
|
||
"Generated: {datetime.now().strftime('%Y-%m-%d %H:%M:%S')}\n",
|
||
"\"\"\"\n",
|
||
"\n",
|
||
"readme_filename = f'phase2_output/models/README_{timestamp}.md'\n",
|
||
"with open(readme_filename, 'w', encoding='utf-8') as f:\n",
|
||
" f.write(readme_content)\n",
|
||
"print(f\"\\n✅ Saved README: {readme_filename}\")\n",
|
||
"\n",
|
||
"print(\"\\n\" + \"=\" * 80)\n",
|
||
"print(\"✅ ALL ARTIFACTS SAVED SUCCESSFULLY!\")\n",
|
||
"print(\"=\" * 80)\n",
|
||
"print(f\"\\n📁 Saved files:\")\n",
|
||
"print(f\" 1. Best model: {model_filename}\")\n",
|
||
"print(f\" 2. Scaler: {scaler_filename}\")\n",
|
||
"print(f\" 3. TF-IDF: {tfidf_filename}\")\n",
|
||
"print(f\" 4. SVD: {svd_filename}\")\n",
|
||
"print(f\" 5. Features: {feature_names_file}\")\n",
|
||
"print(f\" 6. Metadata: {metadata_filename}\")\n",
|
||
"print(f\" 7. Complete package: {package_filename}\")\n",
|
||
"print(f\" 8. README: {readme_filename}\")\n",
|
||
"print(f\"\\n💡 For deployment, use: {package_filename}\")\n",
|
||
"print(\"=\" * 80)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": null,
|
||
"id": "5441ee0c",
|
||
"metadata": {},
|
||
"outputs": [],
|
||
"source": []
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": null,
|
||
"id": "b6aeeb0b",
|
||
"metadata": {},
|
||
"outputs": [],
|
||
"source": []
|
||
}
|
||
],
|
||
"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.13.5"
|
||
}
|
||
},
|
||
"nbformat": 4,
|
||
"nbformat_minor": 5
|
||
}
|