TRAINING RESULTS / V5

ผลการฝึกโมเดลราคารถ

12 การทดลอง · DT / RF / XGB · 2 ชุดข้อมูล · base และ adj

อ่านจาก output ที่บันทึกไว้เท่านั้น ไม่มีการฝึกหรือรัน notebook ใหม่ · หน่วยเงิน: บาท

1. สรุปสั้น

new_cardb

XGB / adj มี test MAE ต่ำสุด

62,883 บาท

ตัวแปรสำคัญ 3 อันดับของโมเดลนี้: car_age → engine → brand

adj ลด test MAE: XGB; ไม่ลด: ไม่มี

merge50minC

XGB / base มี test MAE ต่ำสุด

52,195 บาท

ตัวแปรสำคัญ 3 อันดับของโมเดลนี้: car_age → engine → car_type

adj ลด test MAE: DT; ไม่ลด: ไม่มี

เลือกผู้ชนะจาก test MAE ในผลที่มีอยู่ เป็นการสรุปเชิงพรรณนา ไม่ใช่หลักฐานยืนยันผลบนข้อมูลใหม่ ความสำคัญแบบ permutation วัด MAE ที่เพิ่มขึ้นเมื่อสลับตัวแปร ไม่ได้บอกเหตุและผล

2. ข้อมูลที่ใช้

ชุดข้อมูลแถวรุ่น (brand|model)TrainValidationTest
new_cardb29,57144523,6572,9572,957
merge50minC47,00111537,6004,7004,701

เทียบภายในชุดข้อมูลก่อน: สองชุดใช้แถว test คนละชุดและวิธีแบ่งต่างกัน ค่า error ข้ามชุดจึงไม่ใช่การแข่งบนข้อสอบเดียวกัน

3. ผลหลักทั้ง 12 งาน

เลื่อนตารางแนวนอนได้ · แถวสีเน้น = test MAE ต่ำสุดในชุดข้อมูล · CV คือ validation MAE ของโมเดลที่เลือก บน 5 folds ใน train; mean ± SD อ่านจากตารางที่พิมพ์และปัดเป็นบาท

โมเดลชุดข้อมูลแบบTest R²RMSE (บาท)MAE (บาท)MAPECV MAE ± SD (บาท)
DTnew_cardbbase0.9250161,29975,92713.67%89,298 ± 5,251
RFnew_cardbbase0.9458137,11565,86411.35%75,331 ± 2,738
XGBnew_cardbbase0.9398144,54764,22810.98%73,564 ± 2,474
DTnew_cardbadj0.8859198,93076,60812.26%87,038 ± 1,968
RFnew_cardbadj0.9343150,94266,01311.20%76,110 ± 2,201
XGBnew_cardbadj0.9386145,96562,88310.46%72,802 ± 2,478
DTmerge50minCbase0.928687,45457,79411.00%58,291 ± 162
RFmerge50minCbase0.939480,55953,41610.25%53,541 ± 316
XGBmerge50minCbase0.943178,05252,19510.04%52,646 ± 261
DTmerge50minCadj0.926288,89757,18710.72%57,379 ± 244
RFmerge50minCadj0.937481,92553,45710.04%53,356 ± 367
XGBmerge50minCadj0.942278,72252,2299.87%52,567 ± 394

ดาวน์โหลดตัวเลขทั้งหมด (JSON) รวม train / validation / test, best params, CV และ importance

พารามิเตอร์ของแต่ละไฟล์

ค่าของโมเดลสุดท้ายจาก RESULT_JSON หรือสรุปผู้ชนะ 1-SE ของแต่ละไฟล์; ค่าคงที่อ่านจาก source และค่าที่ไม่ได้ระบุอ่านจาก get_params() ของไลบรารีที่ติดตั้งขณะสร้างรายงาน โดยไม่ฝึกโมเดล

ที่มา: GridSearchCV + กฎ 1-SE คือค้นในช่วงที่ระบุแล้วเลือกชุดที่ใบน้อยที่สุดเมื่อ CV MAE ไม่เกินค่าต่ำสุด + SD/√จำนวน fold (SD แบบ ddof=0); เสมอกันเลือก CV MAE ต่ำกว่าแล้ว index ต่ำกว่า · DT นับใบบน train ทั้งชุด ส่วน RF/XGB ใช้ค่าเฉลี่ยใบรวมใน CV; กฎนี้เป็น heuristic ไม่ใช่หลักฐานว่าผลเท่ากันทางสถิติ

เลือกจาก ccp path: สร้างตัวเลือก alpha จาก train แล้วคัดเพื่อนบ้านด้วย CV ก่อนเข้า grid; ช่วง alpha อ่านจากผลพิมพ์ 4 หลักนัยสำคัญ แต่ค่าผู้ชนะเก็บความละเอียดจาก JSON · กราฟ OOB / MAE รายรอบ: ใช้เป็นที่มาเฉพาะเมื่อโค้ดระบุว่าตรึงจำนวนต้นจากกราฟ (RF ระบุ OOB; XGB ค้นจำนวนรอบใน grid และกราฟรายรอบใช้ตรวจภายหลัง) · กำหนดคงที่ในโค้ด: ส่งค่าเอง แม้เท่ากับ default · ค่าเริ่มต้นของไลบรารี: ไม่ส่งค่าเอง ระบุเวอร์ชันที่ติดตั้งขณะสร้างรายงาน ซึ่งไม่ใช่การยืนยันเวอร์ชันขณะฝึก; XGB None หมายถึงไม่ได้ระบุใน wrapper และ NaN คือค่าข้อมูลสูญหาย

เรียงค่าที่ค้นหา → ค่าคงที่ → ค่าเริ่มต้น; ค่าที่ไม่มีหลักฐานแสดงว่า ไม่พบในผลรัน และอยู่ในรายการที่ขาด · ตารางเลื่อนแนวนอนได้บนจอเล็ก

DT

DT/DT_new_cardb.ipynb
พารามิเตอร์ค่าที่ใช้ที่มาคำอธิบาย
ccp_alpha4865092.784376718GridSearchCV + กฎ 1-SE (ช่วงที่ค้น: [0.0, 128200.0, 265500.0, 549600.0, 1138000.0, 2345000.0, 4865000.0, 10090000.0])ความแรงของการตัดกิ่ง; เลือกค่าของผู้ชนะที่มีใบน้อยที่สุดในช่วง 1-SE; ตัวเลือกจาก ccp path บน train และ CV (ช่วงแสดงตามผลพิมพ์ 4 หลักนัยสำคัญ); ตรวจขอบ: PASS (อยู่ด้านในของ grid)।
max_depthnullGridSearchCV + กฎ 1-SE (ช่วงที่ค้น: [10, 15, 20, 25, null])ความลึกสูงสุดของต้นไม้; เลือกค่าของผู้ชนะที่มีใบน้อยที่สุดในช่วง 1-SE; ตรวจขอบ: PASS (อยู่ที่ขอบธรรมชาติ ขยายต่อไม่ได้)।
min_samples_leaf1GridSearchCV + กฎ 1-SE (ช่วงที่ค้น: [1, 5, 7, 9, 12, 15])จำนวนแถวขั้นต่ำต่อใบ; เลือกค่าของผู้ชนะที่มีใบน้อยที่สุดในช่วง 1-SE; ตรวจขอบ: PASS (อยู่ที่ขอบธรรมชาติ ขยายต่อไม่ได้)।
criterion"squared_error"กำหนดคงที่ในโค้ดวัดคุณภาพการแตกกิ่งด้วย MSE (ค่าเริ่มต้น เหมาะกับการทายราคา); กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
max_featuresnullกำหนดคงที่ในโค้ดทุกการแตกกิ่งเห็นตัวแปรครบ (ใช้กับต้นไม้ต้นเดียวได้ แต่ยังไม่ได้ทดสอบ); กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
max_leaf_nodesnullกำหนดคงที่ในโค้ดจำนวนใบสูงสุด None = ไม่จำกัด (ยังไม่ได้ทดสอบขีดจำกัดนี้); กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
min_impurity_decrease0.0กำหนดคงที่ในโค้ดแตกกิ่งได้แม้ลด error น้อย (ยังไม่ได้ทดสอบเกณฑ์นี้); กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
min_samples_split2กำหนดคงที่ในโค้ดรถขั้นต่ำในโหนดก่อนแตกกิ่ง (ค่าเริ่มต้น ยังไม่ได้ทดสอบการปรับ); กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
min_weight_fraction_leaf0.0กำหนดคงที่ในโค้ดสัดส่วนน้ำหนักขั้นต่ำต่อใบ 0 = ไม่ใช้ (ทุกแถวน้ำหนักเท่ากัน); กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
monotonic_cstnullกำหนดคงที่ในโค้ดไม่บังคับทิศทางความสัมพันธ์ของตัวแปรกับราคา; กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
random_state99กำหนดคงที่ในโค้ดเลขสุ่มคงที่ ใช้ตัดสินกรณีจุดตัดดีเท่ากัน ให้ผลซ้ำได้; กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
splitter"best"กำหนดคงที่ในโค้ดลองทุกจุดตัดแล้วเลือกจุดที่ดีที่สุด ไม่สุ่ม; กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
SEED99กำหนดคงที่ในโค้ดเลขสุ่มกลาง ใช้ทุกที่ที่มีการสุ่ม เพื่อให้ผลซ้ำได้।
N_FOLDS5กำหนดคงที่ในโค้ดจำนวน fold ของ cross-validation।
NUM_COLS["engine", "mileage", "car_age"]กำหนดคงที่ในโค้ดfeature ตัวเลข।
CAT_COLS["brand", "model", "car_type", "fuel", "gear"]กำหนดคงที่ในโค้ดfeature ประเภทกลุ่ม।
DATA_SHA256"04574b158eecae7a353528c575f19a14c542bdd379368fc756829446cf68d412"กำหนดคงที่ในโค้ดลายนิ้วมือไฟล์ข้อมูล।
MODEL_NAME"DT"กำหนดคงที่ในโค้ดชื่อโมเดล ใช้ในผลลัพธ์ JSON।
VERSION"v5"กำหนดคงที่ในโค้ดเวอร์ชันของวิธีฝึก ใช้ในผลลัพธ์ JSON।
CURRENT_YEAR2026กำหนดคงที่ในโค้ดปีที่เก็บข้อมูล ใช้คำนวณ car_age = CURRENT_YEAR - year।
TRAIN_SIZE0.8กำหนดคงที่ในโค้ดสัดส่วนแบ่ง train / validation / test।
VAL_SIZE0.1กำหนดคงที่ในโค้ดสัดส่วนแบ่ง train / validation / test।
TEST_SIZE0.1กำหนดคงที่ในโค้ดสัดส่วนแบ่ง train / validation / test।
MIN_LEAVES20กำหนดคงที่ในโค้ดจำนวนใบขั้นต่ำที่ยอมรับตอนเลือก ccp_alpha (heuristic)।
CCP_N_CANDIDATES20กำหนดคงที่ในโค้ดจำนวนค่า ccp_alpha ที่คัดมาลอง (heuristic)।
CCP_NEIGHBOURS3กำหนดคงที่ในโค้ดจำนวนค่าข้างเคียงที่เพิ่มรอบค่าที่เลือก (heuristic)।
LC_FRACTIONS[0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0]กำหนดคงที่ในโค้ดสัดส่วน train ที่ใช้วาด learning curve: 10% ถึง 100%।
LC_REPEATS5กำหนดคงที่ในโค้ดจำนวนรอบสุ่มซ้ำของ learning curve ต่อหนึ่งสัดส่วน।
SEARCH_JOBS8กำหนดคงที่ในโค้ดจำนวนงานค้นหาที่รันพร้อมกันใน GridSearchCV (SEARCH_JOBS x MODEL_THREADS ไม่เกิน 20)।
MODEL_THREADS1กำหนดคงที่ในโค้ดจำนวน thread ของไลบรารีคำนวณภายในแต่ละงาน (DT ฝึกด้วย thread เดียวอยู่แล้ว)।
MAE_AXIS[20000, 90000]กำหนดคงที่ในโค้ดแกน MAE (บาท) ของ learning curve และ validation curve ครอบทุกโมเดล।
R2_AXIS[0.8, 1.0]กำหนดคงที่ในโค้ดแกน R² ของ learning curve।
ROWS_AXIS[0, 40000]กำหนดคงที่ในโค้ดแกน x ของ learning curve: จำนวนแถวฝึก (ทุกโมเดลฝึกบนข้อมูลชุดเดียวกัน)।
FOLD_AXIS[-0.5, 4.5]กำหนดคงที่ในโค้ดแกน x ของกราฟแท่งราย fold: ตำแหน่ง 0..4 (ต้องสัมพันธ์กับ N_FOLDS = 5)।
MAE_BAR_AXIS[0, 70000]กำหนดคงที่ในโค้ดแกน y ของกราฟแท่ง MAE ต่อ fold: แท่งต้องเริ่มที่ 0 จึงแยกจาก MAE_AXIS।
MAE_CCP_AXIS[50000, 130000]กำหนดคงที่ในโค้ดแกน y ของกราฟ ccp_alpha (เฉพาะ DT): ฝั่ง alpha สูงเกิน MAE_AXIS จึงใช้ช่วงซูมแยก।
MAE_OOB_AXIS[52000, 54000]กำหนดคงที่ในโค้ดแกน y ของกราฟ OOB (เฉพาะ RF): เส้นแบนมาก ถ้าใช้ MAE_AXIS เส้นจะเป็นขีดตรง จึงใช้ช่วงซูมแยก।
MAE_ROUND_AXIS[30000, 70000]กำหนดคงที่ในโค้ดแกน y ของกราฟรายรอบ (เฉพาะ XGB): ตัดรอบแรกๆ ที่ MAE สูงมากทิ้งเหมือนเดิม จึงใช้ช่วงซูมแยก।
RUN_ID"DT_new_cardb"กำหนดคงที่ในโค้ดชื่อการทดลอง; กำหนดคงที่โดยไม่ได้ปรับจูน।
DATASET"new_car_dataset.csv"กำหนดคงที่ในโค้ดชื่อชุดข้อมูล; กำหนดคงที่โดยไม่ได้ปรับจูน।
VARIANT"base"กำหนดคงที่ในโค้ดรูปแบบ base หรือ adj; กำหนดคงที่โดยไม่ได้ปรับจูน।
MAX_CAR_AGE25กำหนดคงที่ในโค้ดอายุรถสูงสุดที่ยอมรับในการกรองข้อมูล; กำหนดคงที่โดยไม่ได้ปรับจูน।
MODEL_ALIASES{"ALTIS": "COROLLAALTIS", "NP300NAVARA": "NAVARA"}กำหนดคงที่ในโค้ดกฎรวมชื่อรุ่นที่สะกดต่างกัน; กำหนดคงที่โดยไม่ได้ปรับจูน।
PERM_AXIS[0, 150000]กำหนดคงที่ในโค้ดช่วงแกนกราฟ permutation importance; กำหนดคงที่โดยไม่ได้ปรับจูน।
SHARE_AXIS[0, 1.0]กำหนดคงที่ในโค้ดช่วงแกนสัดส่วนความสำคัญตัวแปร; กำหนดคงที่โดยไม่ได้ปรับจูน।
ccp_alpha.candidates[0.0, 128200.0, 265500.0, 549600.0, 1138000.0, 2345000.0, 4865000.0, 10090000.0]เลือกจาก ccp pathเลือก alpha บวกบนสเกล log ที่ต้นไม้ยังเกิน MIN_LEAVES แล้วใช้ CV คัดเพื่อนบ้าน CCP_NEIGHBOURS พร้อมเพิ่ม 0 ก่อนค้น grid; ค่าตัวเลือกแสดงตามผลพิมพ์ 4 หลักนัยสำคัญ।
pipeline.target_transform"identity (บาท)"กำหนดคงที่ในโค้ดใช้ราคาเป็นบาทโดยไม่แปลงเป้าหมาย; กำหนดคงที่ไม่ได้ปรับจูน।
FoldOneHot.scale_numericfalseกำหนดคงที่ในโค้ดกำหนดว่าจะปรับสเกลเฉพาะตัวเลขในแต่ละ fold หรือไม่ตาม pipeline; กำหนดคงที่ไม่ได้ปรับจูน।
scaler"ไม่มี"กำหนดคงที่ในโค้ดส่งค่าตัวเลขเดิมเข้าโมเดลตามโค้ดโดยไม่ได้ปรับจูนการ scale।
encoder"FoldOneHot; numeric=float; dummy=float; dense"กำหนดคงที่ในโค้ดแปลงหมวดหมู่เป็น 0/1 และต่อกับตัวเลขโดย fit ใหม่ในแต่ละ fold เพื่อป้องกันข้อมูลรั่ว।
FoldOneHot.reference"most frequent; ties: name ascending, stable"กำหนดคงที่ในโค้ดทิ้งระดับที่พบบ่อยที่สุดเพื่อลดคอลัมน์ซ้ำซ้อนและใช้ชื่อเรียงตัดสินเมื่อความถี่เสมอกันตามโค้ด।
FoldOneHot.unseen"all zeros"กำหนดคงที่ในโค้ดระดับที่ไม่เคยพบในแถวฝึกได้ศูนย์ทุกคอลัมน์ตามโค้ดเพื่อให้แปลงข้อมูลใหม่ได้।
split.strategy"forced-train 1 / brand|model"กำหนดคงที่ในโค้ดใช้กติกาแบ่งชุดของไฟล์นี้ร่วมกับ TRAIN_SIZE/VAL_SIZE/TEST_SIZE และ SEED ตามโค้ดโดยไม่ได้ปรับจูน।
KFold.shuffletrueกำหนดคงที่ในโค้ดสลับลำดับแถวก่อนแบ่ง fold เพื่อให้กระจายข้อมูล; กำหนดคงที่ตามโค้ดโดยไม่ได้ปรับจูน।
KFold.random_state99กำหนดคงที่ในโค้ดเลขสุ่มของการแบ่ง fold เพื่อทำผลซ้ำ; กำหนดคงที่ตามโค้ดโดยไม่ได้ปรับจูน।
GridSearchCV.scoring{"MAE": "neg_mean_absolute_error", "RMSE": "neg_root_mean_squared_error", "MAPE": "neg_mean_absolute_percentage_error", "R2": "r2"}กำหนดคงที่ในโค้ดตัววัด CV โดยใช้ MAE หน่วยบาทเลือกผู้ชนะและใช้ใบวัดความซับซ้อน; กำหนดคงที่ตามโค้ดโดยไม่ได้ปรับจูน।
GridSearchCV.refit"refit_1se"กำหนดคงที่ในโค้ดฟังก์ชันเลือกชุดค่าด้วยกฎ 1-SE แล้วฝึกผู้ชนะบน train ทั้งชุด; กำหนดคงที่ตามโค้ดโดยไม่ได้ปรับจูน।
GridSearchCV.return_train_scoretrueกำหนดคงที่ในโค้ดเก็บคะแนน train เพื่อเทียบกับ CV; กำหนดคงที่ตามโค้ดโดยไม่ได้ปรับจูน।
GridSearchCV.error_score"raise"กำหนดคงที่ในโค้ดให้หยุดเมื่อการฝึกเกิดข้อผิดพลาด; กำหนดคงที่ตามโค้ดโดยไม่ได้ปรับจูน।
GridSearchCV.n_jobs8กำหนดคงที่ในโค้ดจำนวนงานค้นหาที่ทำพร้อมกัน; กำหนดคงที่ตามโค้ดโดยไม่ได้ปรับจูน।
GridSearchCV.pre_dispatch8กำหนดคงที่ในโค้ดจำนวนงานที่ส่งล่วงหน้าเพื่อคุมหน่วยความจำ; กำหนดคงที่ตามโค้ดโดยไม่ได้ปรับจูน।
GridSearchCV.verbose0กำหนดคงที่ในโค้ดระดับข้อความความคืบหน้าของการค้นหา; กำหนดคงที่ตามโค้ดโดยไม่ได้ปรับจูน।
selection.1SE"min CV MAE + SD(ddof=0)/sqrt(N_FOLDS); min leaves → CV MAE → index"กำหนดคงที่ในโค้ดเลือกใบน้อยที่สุดในช่วงหนึ่ง SE จาก MAE ต่ำสุด; DT นับใบบน train ทั้งชุด ส่วน RF/XGB ใช้ค่าเฉลี่ยใบรวมจาก CV ตามโค้ด।
DT/DT_new_cardb_adj.ipynb
พารามิเตอร์ค่าที่ใช้ที่มาคำอธิบาย
ccp_alpha7.0248221691964315e-06GridSearchCV + กฎ 1-SE (ช่วงที่ค้น: [0.0, 7.94e-07, 1.644e-06, 3.398e-06, 7.025e-06, 1.459e-05, 3e-05, 6.228e-05])ความแรงของการตัดกิ่ง; เลือกค่าของผู้ชนะที่มีใบน้อยที่สุดในช่วง 1-SE; ตัวเลือกจาก ccp path บน train และ CV (ช่วงแสดงตามผลพิมพ์ 4 หลักนัยสำคัญ); ตรวจขอบ: PASS (อยู่ด้านในของ grid)।
max_depthnullGridSearchCV + กฎ 1-SE (ช่วงที่ค้น: [10, 15, 20, 25, null])ความลึกสูงสุดของต้นไม้; เลือกค่าของผู้ชนะที่มีใบน้อยที่สุดในช่วง 1-SE; ตรวจขอบ: PASS (อยู่ที่ขอบธรรมชาติ ขยายต่อไม่ได้)।
min_samples_leaf1GridSearchCV + กฎ 1-SE (ช่วงที่ค้น: [1, 5, 7, 9, 12, 15])จำนวนแถวขั้นต่ำต่อใบ; เลือกค่าของผู้ชนะที่มีใบน้อยที่สุดในช่วง 1-SE; ตรวจขอบ: PASS (อยู่ที่ขอบธรรมชาติ ขยายต่อไม่ได้)।
criterion"squared_error"กำหนดคงที่ในโค้ดวัดคุณภาพการแตกกิ่งด้วย MSE (ค่าเริ่มต้น เหมาะกับการทายราคา); กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
max_featuresnullกำหนดคงที่ในโค้ดทุกการแตกกิ่งเห็นตัวแปรครบ (ใช้กับต้นไม้ต้นเดียวได้ แต่ยังไม่ได้ทดสอบ); กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
max_leaf_nodesnullกำหนดคงที่ในโค้ดจำนวนใบสูงสุด None = ไม่จำกัด (ยังไม่ได้ทดสอบขีดจำกัดนี้); กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
min_impurity_decrease0.0กำหนดคงที่ในโค้ดแตกกิ่งได้แม้ลด error น้อย (ยังไม่ได้ทดสอบเกณฑ์นี้); กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
min_samples_split2กำหนดคงที่ในโค้ดรถขั้นต่ำในโหนดก่อนแตกกิ่ง (ค่าเริ่มต้น ยังไม่ได้ทดสอบการปรับ); กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
min_weight_fraction_leaf0.0กำหนดคงที่ในโค้ดสัดส่วนน้ำหนักขั้นต่ำต่อใบ 0 = ไม่ใช้ (ทุกแถวน้ำหนักเท่ากัน); กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
monotonic_cstnullกำหนดคงที่ในโค้ดไม่บังคับทิศทางความสัมพันธ์ของตัวแปรกับราคา; กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
random_state99กำหนดคงที่ในโค้ดเลขสุ่มคงที่ ใช้ตัดสินกรณีจุดตัดดีเท่ากัน ให้ผลซ้ำได้; กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
splitter"best"กำหนดคงที่ในโค้ดลองทุกจุดตัดแล้วเลือกจุดที่ดีที่สุด ไม่สุ่ม; กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
SEED99กำหนดคงที่ในโค้ดเลขสุ่มกลาง ใช้ทุกที่ที่มีการสุ่ม เพื่อให้ผลซ้ำได้।
N_FOLDS5กำหนดคงที่ในโค้ดจำนวน fold ของ cross-validation।
NUM_COLS["engine", "mileage", "car_age"]กำหนดคงที่ในโค้ดfeature ตัวเลข।
CAT_COLS["brand", "model", "car_type", "fuel", "gear"]กำหนดคงที่ในโค้ดfeature ประเภทกลุ่ม।
DATA_SHA256"04574b158eecae7a353528c575f19a14c542bdd379368fc756829446cf68d412"กำหนดคงที่ในโค้ดลายนิ้วมือไฟล์ข้อมูล।
MODEL_NAME"DT"กำหนดคงที่ในโค้ดชื่อโมเดล ใช้ในผลลัพธ์ JSON।
VERSION"v5"กำหนดคงที่ในโค้ดเวอร์ชันของวิธีฝึก ใช้ในผลลัพธ์ JSON।
CURRENT_YEAR2026กำหนดคงที่ในโค้ดปีที่เก็บข้อมูล ใช้คำนวณ car_age = CURRENT_YEAR - year।
TRAIN_SIZE0.8กำหนดคงที่ในโค้ดสัดส่วนแบ่ง train / validation / test।
VAL_SIZE0.1กำหนดคงที่ในโค้ดสัดส่วนแบ่ง train / validation / test।
TEST_SIZE0.1กำหนดคงที่ในโค้ดสัดส่วนแบ่ง train / validation / test।
MIN_LEAVES20กำหนดคงที่ในโค้ดจำนวนใบขั้นต่ำที่ยอมรับตอนเลือก ccp_alpha (heuristic)।
CCP_N_CANDIDATES20กำหนดคงที่ในโค้ดจำนวนค่า ccp_alpha ที่คัดมาลอง (heuristic)।
CCP_NEIGHBOURS3กำหนดคงที่ในโค้ดจำนวนค่าข้างเคียงที่เพิ่มรอบค่าที่เลือก (heuristic)।
LC_FRACTIONS[0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0]กำหนดคงที่ในโค้ดสัดส่วน train ที่ใช้วาด learning curve: 10% ถึง 100%।
LC_REPEATS5กำหนดคงที่ในโค้ดจำนวนรอบสุ่มซ้ำของ learning curve ต่อหนึ่งสัดส่วน।
SEARCH_JOBS8กำหนดคงที่ในโค้ดจำนวนงานค้นหาที่รันพร้อมกันใน GridSearchCV (SEARCH_JOBS x MODEL_THREADS ไม่เกิน 20)।
MODEL_THREADS1กำหนดคงที่ในโค้ดจำนวน thread ของไลบรารีคำนวณภายในแต่ละงาน (DT ฝึกด้วย thread เดียวอยู่แล้ว)।
MAE_AXIS[20000, 90000]กำหนดคงที่ในโค้ดแกน MAE (บาท) ของ learning curve และ validation curve ครอบทุกโมเดล।
R2_AXIS[0.8, 1.0]กำหนดคงที่ในโค้ดแกน R² ของ learning curve।
ROWS_AXIS[0, 40000]กำหนดคงที่ในโค้ดแกน x ของ learning curve: จำนวนแถวฝึก (ทุกโมเดลฝึกบนข้อมูลชุดเดียวกัน)।
FOLD_AXIS[-0.5, 4.5]กำหนดคงที่ในโค้ดแกน x ของกราฟแท่งราย fold: ตำแหน่ง 0..4 (ต้องสัมพันธ์กับ N_FOLDS = 5)।
MAE_BAR_AXIS[0, 70000]กำหนดคงที่ในโค้ดแกน y ของกราฟแท่ง MAE ต่อ fold: แท่งต้องเริ่มที่ 0 จึงแยกจาก MAE_AXIS।
MAE_CCP_AXIS[50000, 130000]กำหนดคงที่ในโค้ดแกน y ของกราฟ ccp_alpha (เฉพาะ DT): ฝั่ง alpha สูงเกิน MAE_AXIS จึงใช้ช่วงซูมแยก।
MAE_OOB_AXIS[52000, 54000]กำหนดคงที่ในโค้ดแกน y ของกราฟ OOB (เฉพาะ RF): เส้นแบนมาก ถ้าใช้ MAE_AXIS เส้นจะเป็นขีดตรง จึงใช้ช่วงซูมแยก।
MAE_ROUND_AXIS[30000, 70000]กำหนดคงที่ในโค้ดแกน y ของกราฟรายรอบ (เฉพาะ XGB): ตัดรอบแรกๆ ที่ MAE สูงมากทิ้งเหมือนเดิม จึงใช้ช่วงซูมแยก।
RUN_ID"DT_new_cardb_adj"กำหนดคงที่ในโค้ดชื่อการทดลอง; กำหนดคงที่โดยไม่ได้ปรับจูน।
DATASET"new_car_dataset.csv"กำหนดคงที่ในโค้ดชื่อชุดข้อมูล; กำหนดคงที่โดยไม่ได้ปรับจูน।
VARIANT"adj"กำหนดคงที่ในโค้ดรูปแบบ base หรือ adj; กำหนดคงที่โดยไม่ได้ปรับจูน।
MAX_CAR_AGE25กำหนดคงที่ในโค้ดอายุรถสูงสุดที่ยอมรับในการกรองข้อมูล; กำหนดคงที่โดยไม่ได้ปรับจูน।
MODEL_ALIASES{"ALTIS": "COROLLAALTIS", "NP300NAVARA": "NAVARA"}กำหนดคงที่ในโค้ดกฎรวมชื่อรุ่นที่สะกดต่างกัน; กำหนดคงที่โดยไม่ได้ปรับจูน।
PERM_AXIS[0, 150000]กำหนดคงที่ในโค้ดช่วงแกนกราฟ permutation importance; กำหนดคงที่โดยไม่ได้ปรับจูน।
SHARE_AXIS[0, 1.0]กำหนดคงที่ในโค้ดช่วงแกนสัดส่วนความสำคัญตัวแปร; กำหนดคงที่โดยไม่ได้ปรับจูน।
ccp_alpha.candidates[0.0, 7.94e-07, 1.644e-06, 3.398e-06, 7.025e-06, 1.459e-05, 3e-05, 6.228e-05]เลือกจาก ccp pathเลือก alpha บวกบนสเกล log ที่ต้นไม้ยังเกิน MIN_LEAVES แล้วใช้ CV คัดเพื่อนบ้าน CCP_NEIGHBOURS พร้อมเพิ่ม 0 ก่อนค้น grid; ค่าตัวเลือกแสดงตามผลพิมพ์ 4 หลักนัยสำคัญ।
pipeline.target_transform"np.log / np.exp"กำหนดคงที่ในโค้ดแปลงราคา log แล้วคืนด้วย exp ก่อนวัดผลเป็นบาท; กำหนดคงที่ไม่ได้ปรับจูน।
FoldOneHot.scale_numerictrueกำหนดคงที่ในโค้ดกำหนดว่าจะปรับสเกลเฉพาะตัวเลขในแต่ละ fold หรือไม่ตาม pipeline; กำหนดคงที่ไม่ได้ปรับจูน।
scaler"(x - mean_train_fold) / std_train_fold; ddof=0; std=0 → 1"กำหนดคงที่ในโค้ดใช้ mean/std จากแถวฝึกของแต่ละ fold เท่านั้นและไม่ scale dummy ตามโค้ดเพื่อป้องกันข้อมูลรั่ว।
encoder"FoldOneHot; numeric=float; dummy=float; dense"กำหนดคงที่ในโค้ดแปลงหมวดหมู่เป็น 0/1 และต่อกับตัวเลขโดย fit ใหม่ในแต่ละ fold เพื่อป้องกันข้อมูลรั่ว।
FoldOneHot.reference"most frequent; ties: name ascending, stable"กำหนดคงที่ในโค้ดทิ้งระดับที่พบบ่อยที่สุดเพื่อลดคอลัมน์ซ้ำซ้อนและใช้ชื่อเรียงตัดสินเมื่อความถี่เสมอกันตามโค้ด।
FoldOneHot.unseen"all zeros"กำหนดคงที่ในโค้ดระดับที่ไม่เคยพบในแถวฝึกได้ศูนย์ทุกคอลัมน์ตามโค้ดเพื่อให้แปลงข้อมูลใหม่ได้।
split.strategy"forced-train 1 / brand|model"กำหนดคงที่ในโค้ดใช้กติกาแบ่งชุดของไฟล์นี้ร่วมกับ TRAIN_SIZE/VAL_SIZE/TEST_SIZE และ SEED ตามโค้ดโดยไม่ได้ปรับจูน।
KFold.shuffletrueกำหนดคงที่ในโค้ดสลับลำดับแถวก่อนแบ่ง fold เพื่อให้กระจายข้อมูล; กำหนดคงที่ตามโค้ดโดยไม่ได้ปรับจูน।
KFold.random_state99กำหนดคงที่ในโค้ดเลขสุ่มของการแบ่ง fold เพื่อทำผลซ้ำ; กำหนดคงที่ตามโค้ดโดยไม่ได้ปรับจูน।
GridSearchCV.scoring{"MAE": "neg_mean_absolute_error", "RMSE": "neg_root_mean_squared_error", "MAPE": "neg_mean_absolute_percentage_error", "R2": "r2"}กำหนดคงที่ในโค้ดตัววัด CV โดยใช้ MAE หน่วยบาทเลือกผู้ชนะและใช้ใบวัดความซับซ้อน; กำหนดคงที่ตามโค้ดโดยไม่ได้ปรับจูน।
GridSearchCV.refit"refit_1se"กำหนดคงที่ในโค้ดฟังก์ชันเลือกชุดค่าด้วยกฎ 1-SE แล้วฝึกผู้ชนะบน train ทั้งชุด; กำหนดคงที่ตามโค้ดโดยไม่ได้ปรับจูน।
GridSearchCV.return_train_scoretrueกำหนดคงที่ในโค้ดเก็บคะแนน train เพื่อเทียบกับ CV; กำหนดคงที่ตามโค้ดโดยไม่ได้ปรับจูน।
GridSearchCV.error_score"raise"กำหนดคงที่ในโค้ดให้หยุดเมื่อการฝึกเกิดข้อผิดพลาด; กำหนดคงที่ตามโค้ดโดยไม่ได้ปรับจูน।
GridSearchCV.n_jobs8กำหนดคงที่ในโค้ดจำนวนงานค้นหาที่ทำพร้อมกัน; กำหนดคงที่ตามโค้ดโดยไม่ได้ปรับจูน।
GridSearchCV.pre_dispatch8กำหนดคงที่ในโค้ดจำนวนงานที่ส่งล่วงหน้าเพื่อคุมหน่วยความจำ; กำหนดคงที่ตามโค้ดโดยไม่ได้ปรับจูน।
GridSearchCV.verbose0กำหนดคงที่ในโค้ดระดับข้อความความคืบหน้าของการค้นหา; กำหนดคงที่ตามโค้ดโดยไม่ได้ปรับจูน।
selection.1SE"min CV MAE + SD(ddof=0)/sqrt(N_FOLDS); min leaves → CV MAE → index"กำหนดคงที่ในโค้ดเลือกใบน้อยที่สุดในช่วงหนึ่ง SE จาก MAE ต่ำสุด; DT นับใบบน train ทั้งชุด ส่วน RF/XGB ใช้ค่าเฉลี่ยใบรวมจาก CV ตามโค้ด।
target.check_inversetrueค่าเริ่มต้นของไลบรารี (sklearn 1.9.1)ตรวจว่าฟังก์ชันแปลงและแปลงกลับสอดคล้องกัน; คงค่าเริ่มต้นโดยไม่ได้ปรับจูน।
target.transformernullค่าเริ่มต้นของไลบรารี (sklearn 1.9.1)ตัวแปลงเป้าหมายแบบ estimator ซึ่งไม่ได้ส่งเพราะใช้คู่ฟังก์ชัน log/exp; คงค่าเริ่มต้นโดยไม่ได้ปรับจูน।
DT/DT_merge50minC.ipynb
พารามิเตอร์ค่าที่ใช้ที่มาคำอธิบาย
ccp_alpha564591.7380491865GridSearchCV + กฎ 1-SE (ช่วงที่ค้น: [0.0, 131700.0, 272800.0, 564600.0, 1168000.0, 2415000.0, 5013000.0, 10340000.0])ความแรงของการตัดกิ่ง; เลือกค่าของผู้ชนะที่มีใบน้อยที่สุดในช่วง 1-SE; ตัวเลือกจาก ccp path บน train และ CV (ช่วงแสดงตามผลพิมพ์ 4 หลักนัยสำคัญ); ตรวจขอบ: PASS (อยู่ด้านในของ grid)।
max_depth25GridSearchCV + กฎ 1-SE (ช่วงที่ค้น: [10, 15, 20, 25, null])ความลึกสูงสุดของต้นไม้; เลือกค่าของผู้ชนะที่มีใบน้อยที่สุดในช่วง 1-SE; ตรวจขอบ: PASS (อยู่ด้านในของ grid)।
min_samples_leaf5GridSearchCV + กฎ 1-SE (ช่วงที่ค้น: [1, 5, 7, 9, 12, 15])จำนวนแถวขั้นต่ำต่อใบ; เลือกค่าของผู้ชนะที่มีใบน้อยที่สุดในช่วง 1-SE; ตรวจขอบ: PASS (อยู่ด้านในของ grid)।
criterion"squared_error"กำหนดคงที่ในโค้ดวัดคุณภาพการแตกกิ่งด้วย MSE (ค่าเริ่มต้น เหมาะกับการทายราคา); กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
max_featuresnullกำหนดคงที่ในโค้ดทุกการแตกกิ่งเห็นตัวแปรครบ (ใช้กับต้นไม้ต้นเดียวได้ แต่ยังไม่ได้ทดสอบ); กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
max_leaf_nodesnullกำหนดคงที่ในโค้ดจำนวนใบสูงสุด None = ไม่จำกัด (ยังไม่ได้ทดสอบขีดจำกัดนี้); กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
min_impurity_decrease0.0กำหนดคงที่ในโค้ดแตกกิ่งได้แม้ลด error น้อย (ยังไม่ได้ทดสอบเกณฑ์นี้); กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
min_samples_split2กำหนดคงที่ในโค้ดรถขั้นต่ำในโหนดก่อนแตกกิ่ง (ค่าเริ่มต้น ยังไม่ได้ทดสอบการปรับ); กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
min_weight_fraction_leaf0.0กำหนดคงที่ในโค้ดสัดส่วนน้ำหนักขั้นต่ำต่อใบ 0 = ไม่ใช้ (ทุกแถวน้ำหนักเท่ากัน); กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
monotonic_cstnullกำหนดคงที่ในโค้ดไม่บังคับทิศทางความสัมพันธ์ของตัวแปรกับราคา; กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
random_state99กำหนดคงที่ในโค้ดเลขสุ่มคงที่ ใช้ตัดสินกรณีจุดตัดดีเท่ากัน ให้ผลซ้ำได้; กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
splitter"best"กำหนดคงที่ในโค้ดลองทุกจุดตัดแล้วเลือกจุดที่ดีที่สุด ไม่สุ่ม; กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
SEED99กำหนดคงที่ในโค้ดเลขสุ่มกลาง ใช้ทุกที่ที่มีการสุ่ม เพื่อให้ผลซ้ำได้।
N_FOLDS5กำหนดคงที่ในโค้ดจำนวน fold ของ cross-validation।
NUM_COLS["engine", "mileage", "car_age"]กำหนดคงที่ในโค้ดfeature ตัวเลข।
CAT_COLS["brand", "model", "car_type", "fuel", "gear"]กำหนดคงที่ในโค้ดfeature ประเภทกลุ่ม।
DATA_SHA256"191adb789285fe531bf82521e7ac0892020cbf0bf4325d22f6a657fabaab8aa1"กำหนดคงที่ในโค้ดลายนิ้วมือไฟล์ข้อมูล।
MODEL_NAME"DT"กำหนดคงที่ในโค้ดชื่อโมเดล ใช้ในผลลัพธ์ JSON।
VERSION"v5"กำหนดคงที่ในโค้ดเวอร์ชันของวิธีฝึก ใช้ในผลลัพธ์ JSON।
CURRENT_YEAR2026กำหนดคงที่ในโค้ดปีที่เก็บข้อมูล ใช้คำนวณ car_age = CURRENT_YEAR - year।
TRAIN_SIZE0.8กำหนดคงที่ในโค้ดสัดส่วนแบ่ง train / validation / test।
VAL_SIZE0.1กำหนดคงที่ในโค้ดสัดส่วนแบ่ง train / validation / test।
TEST_SIZE0.1กำหนดคงที่ในโค้ดสัดส่วนแบ่ง train / validation / test।
MIN_LEAVES20กำหนดคงที่ในโค้ดจำนวนใบขั้นต่ำที่ยอมรับตอนเลือก ccp_alpha (heuristic)।
CCP_N_CANDIDATES20กำหนดคงที่ในโค้ดจำนวนค่า ccp_alpha ที่คัดมาลอง (heuristic)।
CCP_NEIGHBOURS3กำหนดคงที่ในโค้ดจำนวนค่าข้างเคียงที่เพิ่มรอบค่าที่เลือก (heuristic)।
LC_FRACTIONS[0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0]กำหนดคงที่ในโค้ดสัดส่วน train ที่ใช้วาด learning curve: 10% ถึง 100%।
LC_REPEATS5กำหนดคงที่ในโค้ดจำนวนรอบสุ่มซ้ำของ learning curve ต่อหนึ่งสัดส่วน।
SEARCH_JOBS8กำหนดคงที่ในโค้ดจำนวนงานค้นหาที่รันพร้อมกันใน GridSearchCV (SEARCH_JOBS x MODEL_THREADS ไม่เกิน 20)।
MODEL_THREADS1กำหนดคงที่ในโค้ดจำนวน thread ของไลบรารีคำนวณภายในแต่ละงาน (DT ฝึกด้วย thread เดียวอยู่แล้ว)।
MAE_AXIS[20000, 90000]กำหนดคงที่ในโค้ดแกน MAE (บาท) ของ learning curve และ validation curve ครอบทุกโมเดล।
R2_AXIS[0.8, 1.0]กำหนดคงที่ในโค้ดแกน R² ของ learning curve।
ROWS_AXIS[0, 40000]กำหนดคงที่ในโค้ดแกน x ของ learning curve: จำนวนแถวฝึก (ทุกโมเดลฝึกบนข้อมูลชุดเดียวกัน)।
FOLD_AXIS[-0.5, 4.5]กำหนดคงที่ในโค้ดแกน x ของกราฟแท่งราย fold: ตำแหน่ง 0..4 (ต้องสัมพันธ์กับ N_FOLDS = 5)।
MAE_BAR_AXIS[0, 70000]กำหนดคงที่ในโค้ดแกน y ของกราฟแท่ง MAE ต่อ fold: แท่งต้องเริ่มที่ 0 จึงแยกจาก MAE_AXIS।
MAE_CCP_AXIS[50000, 130000]กำหนดคงที่ในโค้ดแกน y ของกราฟ ccp_alpha (เฉพาะ DT): ฝั่ง alpha สูงเกิน MAE_AXIS จึงใช้ช่วงซูมแยก।
MAE_OOB_AXIS[52000, 54000]กำหนดคงที่ในโค้ดแกน y ของกราฟ OOB (เฉพาะ RF): เส้นแบนมาก ถ้าใช้ MAE_AXIS เส้นจะเป็นขีดตรง จึงใช้ช่วงซูมแยก।
MAE_ROUND_AXIS[30000, 70000]กำหนดคงที่ในโค้ดแกน y ของกราฟรายรอบ (เฉพาะ XGB): ตัดรอบแรกๆ ที่ MAE สูงมากทิ้งเหมือนเดิม จึงใช้ช่วงซูมแยก।
RUN_ID"DT_merge50minC"กำหนดคงที่ในโค้ดชื่อการทดลอง; กำหนดคงที่โดยไม่ได้ปรับจูน।
DATASET"merge_50min_clean.csv"กำหนดคงที่ในโค้ดชื่อชุดข้อมูล; กำหนดคงที่โดยไม่ได้ปรับจูน।
VARIANT"base"กำหนดคงที่ในโค้ดรูปแบบ base หรือ adj; กำหนดคงที่โดยไม่ได้ปรับจูน।
PERM_AXIS[0, 150000]กำหนดคงที่ในโค้ดช่วงแกนกราฟ permutation importance; กำหนดคงที่โดยไม่ได้ปรับจูน।
SHARE_AXIS[0, 1.0]กำหนดคงที่ในโค้ดช่วงแกนสัดส่วนความสำคัญตัวแปร; กำหนดคงที่โดยไม่ได้ปรับจูน।
ccp_alpha.candidates[0.0, 131700.0, 272800.0, 564600.0, 1168000.0, 2415000.0, 5013000.0, 10340000.0]เลือกจาก ccp pathเลือก alpha บวกบนสเกล log ที่ต้นไม้ยังเกิน MIN_LEAVES แล้วใช้ CV คัดเพื่อนบ้าน CCP_NEIGHBOURS พร้อมเพิ่ม 0 ก่อนค้น grid; ค่าตัวเลือกแสดงตามผลพิมพ์ 4 หลักนัยสำคัญ।
pipeline.target_transform"identity (บาท)"กำหนดคงที่ในโค้ดใช้ราคาเป็นบาทโดยไม่แปลงเป้าหมาย; กำหนดคงที่ไม่ได้ปรับจูน।
FoldOneHot.scale_numericfalseกำหนดคงที่ในโค้ดกำหนดว่าจะปรับสเกลเฉพาะตัวเลขในแต่ละ fold หรือไม่ตาม pipeline; กำหนดคงที่ไม่ได้ปรับจูน।
scaler"ไม่มี"กำหนดคงที่ในโค้ดส่งค่าตัวเลขเดิมเข้าโมเดลตามโค้ดโดยไม่ได้ปรับจูนการ scale।
encoder"FoldOneHot; numeric=float; dummy=float; dense"กำหนดคงที่ในโค้ดแปลงหมวดหมู่เป็น 0/1 และต่อกับตัวเลขโดย fit ใหม่ในแต่ละ fold เพื่อป้องกันข้อมูลรั่ว।
FoldOneHot.reference"most frequent; ties: name ascending, stable"กำหนดคงที่ในโค้ดทิ้งระดับที่พบบ่อยที่สุดเพื่อลดคอลัมน์ซ้ำซ้อนและใช้ชื่อเรียงตัดสินเมื่อความถี่เสมอกันตามโค้ด।
FoldOneHot.unseen"all zeros"กำหนดคงที่ในโค้ดระดับที่ไม่เคยพบในแถวฝึกได้ศูนย์ทุกคอลัมน์ตามโค้ดเพื่อให้แปลงข้อมูลใหม่ได้।
split.strategy"stratify brand|model"กำหนดคงที่ในโค้ดใช้กติกาแบ่งชุดของไฟล์นี้ร่วมกับ TRAIN_SIZE/VAL_SIZE/TEST_SIZE และ SEED ตามโค้ดโดยไม่ได้ปรับจูน।
KFold.shuffletrueกำหนดคงที่ในโค้ดสลับลำดับแถวก่อนแบ่ง fold เพื่อให้กระจายข้อมูล; กำหนดคงที่ตามโค้ดโดยไม่ได้ปรับจูน।
KFold.random_state99กำหนดคงที่ในโค้ดเลขสุ่มของการแบ่ง fold เพื่อทำผลซ้ำ; กำหนดคงที่ตามโค้ดโดยไม่ได้ปรับจูน।
GridSearchCV.scoring{"MAE": "neg_mean_absolute_error", "RMSE": "neg_root_mean_squared_error", "MAPE": "neg_mean_absolute_percentage_error", "R2": "r2"}กำหนดคงที่ในโค้ดตัววัด CV โดยใช้ MAE หน่วยบาทเลือกผู้ชนะและใช้ใบวัดความซับซ้อน; กำหนดคงที่ตามโค้ดโดยไม่ได้ปรับจูน।
GridSearchCV.refit"refit_1se"กำหนดคงที่ในโค้ดฟังก์ชันเลือกชุดค่าด้วยกฎ 1-SE แล้วฝึกผู้ชนะบน train ทั้งชุด; กำหนดคงที่ตามโค้ดโดยไม่ได้ปรับจูน।
GridSearchCV.return_train_scoretrueกำหนดคงที่ในโค้ดเก็บคะแนน train เพื่อเทียบกับ CV; กำหนดคงที่ตามโค้ดโดยไม่ได้ปรับจูน।
GridSearchCV.error_score"raise"กำหนดคงที่ในโค้ดให้หยุดเมื่อการฝึกเกิดข้อผิดพลาด; กำหนดคงที่ตามโค้ดโดยไม่ได้ปรับจูน।
GridSearchCV.n_jobs8กำหนดคงที่ในโค้ดจำนวนงานค้นหาที่ทำพร้อมกัน; กำหนดคงที่ตามโค้ดโดยไม่ได้ปรับจูน।
GridSearchCV.pre_dispatch8กำหนดคงที่ในโค้ดจำนวนงานที่ส่งล่วงหน้าเพื่อคุมหน่วยความจำ; กำหนดคงที่ตามโค้ดโดยไม่ได้ปรับจูน।
GridSearchCV.verbose0กำหนดคงที่ในโค้ดระดับข้อความความคืบหน้าของการค้นหา; กำหนดคงที่ตามโค้ดโดยไม่ได้ปรับจูน।
selection.1SE"min CV MAE + SD(ddof=0)/sqrt(N_FOLDS); min leaves → CV MAE → index"กำหนดคงที่ในโค้ดเลือกใบน้อยที่สุดในช่วงหนึ่ง SE จาก MAE ต่ำสุด; DT นับใบบน train ทั้งชุด ส่วน RF/XGB ใช้ค่าเฉลี่ยใบรวมจาก CV ตามโค้ด।
DT/DT_merge50minC_adj.ipynb
พารามิเตอร์ค่าที่ใช้ที่มาคำอธิบาย
ccp_alpha2.7592604952954323e-06GridSearchCV + กฎ 1-SE (ช่วงที่ค้น: [0.0, 3.115e-07, 6.443e-07, 1.334e-06, 2.759e-06, 5.71e-06, 1.184e-05, 2.443e-05])ความแรงของการตัดกิ่ง; เลือกค่าของผู้ชนะที่มีใบน้อยที่สุดในช่วง 1-SE; ตัวเลือกจาก ccp path บน train และ CV (ช่วงแสดงตามผลพิมพ์ 4 หลักนัยสำคัญ); ตรวจขอบ: PASS (อยู่ด้านในของ grid)।
max_depthnullGridSearchCV + กฎ 1-SE (ช่วงที่ค้น: [10, 15, 20, 25, null])ความลึกสูงสุดของต้นไม้; เลือกค่าของผู้ชนะที่มีใบน้อยที่สุดในช่วง 1-SE; ตรวจขอบ: PASS (อยู่ที่ขอบธรรมชาติ ขยายต่อไม่ได้)।
min_samples_leaf1GridSearchCV + กฎ 1-SE (ช่วงที่ค้น: [1, 5, 7, 9, 12, 15])จำนวนแถวขั้นต่ำต่อใบ; เลือกค่าของผู้ชนะที่มีใบน้อยที่สุดในช่วง 1-SE; ตรวจขอบ: PASS (อยู่ที่ขอบธรรมชาติ ขยายต่อไม่ได้)।
criterion"squared_error"กำหนดคงที่ในโค้ดวัดคุณภาพการแตกกิ่งด้วย MSE (ค่าเริ่มต้น เหมาะกับการทายราคา); กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
max_featuresnullกำหนดคงที่ในโค้ดทุกการแตกกิ่งเห็นตัวแปรครบ (ใช้กับต้นไม้ต้นเดียวได้ แต่ยังไม่ได้ทดสอบ); กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
max_leaf_nodesnullกำหนดคงที่ในโค้ดจำนวนใบสูงสุด None = ไม่จำกัด (ยังไม่ได้ทดสอบขีดจำกัดนี้); กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
min_impurity_decrease0.0กำหนดคงที่ในโค้ดแตกกิ่งได้แม้ลด error น้อย (ยังไม่ได้ทดสอบเกณฑ์นี้); กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
min_samples_split2กำหนดคงที่ในโค้ดรถขั้นต่ำในโหนดก่อนแตกกิ่ง (ค่าเริ่มต้น ยังไม่ได้ทดสอบการปรับ); กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
min_weight_fraction_leaf0.0กำหนดคงที่ในโค้ดสัดส่วนน้ำหนักขั้นต่ำต่อใบ 0 = ไม่ใช้ (ทุกแถวน้ำหนักเท่ากัน); กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
monotonic_cstnullกำหนดคงที่ในโค้ดไม่บังคับทิศทางความสัมพันธ์ของตัวแปรกับราคา; กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
random_state99กำหนดคงที่ในโค้ดเลขสุ่มคงที่ ใช้ตัดสินกรณีจุดตัดดีเท่ากัน ให้ผลซ้ำได้; กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
splitter"best"กำหนดคงที่ในโค้ดลองทุกจุดตัดแล้วเลือกจุดที่ดีที่สุด ไม่สุ่ม; กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
SEED99กำหนดคงที่ในโค้ดเลขสุ่มกลาง ใช้ทุกที่ที่มีการสุ่ม เพื่อให้ผลซ้ำได้।
N_FOLDS5กำหนดคงที่ในโค้ดจำนวน fold ของ cross-validation।
NUM_COLS["engine", "mileage", "car_age"]กำหนดคงที่ในโค้ดfeature ตัวเลข।
CAT_COLS["brand", "model", "car_type", "fuel", "gear"]กำหนดคงที่ในโค้ดfeature ประเภทกลุ่ม।
DATA_SHA256"191adb789285fe531bf82521e7ac0892020cbf0bf4325d22f6a657fabaab8aa1"กำหนดคงที่ในโค้ดลายนิ้วมือไฟล์ข้อมูล।
MODEL_NAME"DT"กำหนดคงที่ในโค้ดชื่อโมเดล ใช้ในผลลัพธ์ JSON।
VERSION"v5"กำหนดคงที่ในโค้ดเวอร์ชันของวิธีฝึก ใช้ในผลลัพธ์ JSON।
CURRENT_YEAR2026กำหนดคงที่ในโค้ดปีที่เก็บข้อมูล ใช้คำนวณ car_age = CURRENT_YEAR - year।
TRAIN_SIZE0.8กำหนดคงที่ในโค้ดสัดส่วนแบ่ง train / validation / test।
VAL_SIZE0.1กำหนดคงที่ในโค้ดสัดส่วนแบ่ง train / validation / test।
TEST_SIZE0.1กำหนดคงที่ในโค้ดสัดส่วนแบ่ง train / validation / test।
MIN_LEAVES20กำหนดคงที่ในโค้ดจำนวนใบขั้นต่ำที่ยอมรับตอนเลือก ccp_alpha (heuristic)।
CCP_N_CANDIDATES20กำหนดคงที่ในโค้ดจำนวนค่า ccp_alpha ที่คัดมาลอง (heuristic)।
CCP_NEIGHBOURS3กำหนดคงที่ในโค้ดจำนวนค่าข้างเคียงที่เพิ่มรอบค่าที่เลือก (heuristic)।
LC_FRACTIONS[0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0]กำหนดคงที่ในโค้ดสัดส่วน train ที่ใช้วาด learning curve: 10% ถึง 100%।
LC_REPEATS5กำหนดคงที่ในโค้ดจำนวนรอบสุ่มซ้ำของ learning curve ต่อหนึ่งสัดส่วน।
SEARCH_JOBS8กำหนดคงที่ในโค้ดจำนวนงานค้นหาที่รันพร้อมกันใน GridSearchCV (SEARCH_JOBS x MODEL_THREADS ไม่เกิน 20)।
MODEL_THREADS1กำหนดคงที่ในโค้ดจำนวน thread ของไลบรารีคำนวณภายในแต่ละงาน (DT ฝึกด้วย thread เดียวอยู่แล้ว)।
MAE_AXIS[20000, 90000]กำหนดคงที่ในโค้ดแกน MAE (บาท) ของ learning curve และ validation curve ครอบทุกโมเดล।
R2_AXIS[0.8, 1.0]กำหนดคงที่ในโค้ดแกน R² ของ learning curve।
ROWS_AXIS[0, 40000]กำหนดคงที่ในโค้ดแกน x ของ learning curve: จำนวนแถวฝึก (ทุกโมเดลฝึกบนข้อมูลชุดเดียวกัน)।
FOLD_AXIS[-0.5, 4.5]กำหนดคงที่ในโค้ดแกน x ของกราฟแท่งราย fold: ตำแหน่ง 0..4 (ต้องสัมพันธ์กับ N_FOLDS = 5)।
MAE_BAR_AXIS[0, 70000]กำหนดคงที่ในโค้ดแกน y ของกราฟแท่ง MAE ต่อ fold: แท่งต้องเริ่มที่ 0 จึงแยกจาก MAE_AXIS।
MAE_CCP_AXIS[50000, 130000]กำหนดคงที่ในโค้ดแกน y ของกราฟ ccp_alpha (เฉพาะ DT): ฝั่ง alpha สูงเกิน MAE_AXIS จึงใช้ช่วงซูมแยก।
MAE_OOB_AXIS[52000, 54000]กำหนดคงที่ในโค้ดแกน y ของกราฟ OOB (เฉพาะ RF): เส้นแบนมาก ถ้าใช้ MAE_AXIS เส้นจะเป็นขีดตรง จึงใช้ช่วงซูมแยก।
MAE_ROUND_AXIS[30000, 70000]กำหนดคงที่ในโค้ดแกน y ของกราฟรายรอบ (เฉพาะ XGB): ตัดรอบแรกๆ ที่ MAE สูงมากทิ้งเหมือนเดิม จึงใช้ช่วงซูมแยก।
RUN_ID"DT_merge50minC_adj"กำหนดคงที่ในโค้ดชื่อการทดลอง; กำหนดคงที่โดยไม่ได้ปรับจูน।
DATASET"merge_50min_clean.csv"กำหนดคงที่ในโค้ดชื่อชุดข้อมูล; กำหนดคงที่โดยไม่ได้ปรับจูน।
VARIANT"adj"กำหนดคงที่ในโค้ดรูปแบบ base หรือ adj; กำหนดคงที่โดยไม่ได้ปรับจูน।
PERM_AXIS[0, 150000]กำหนดคงที่ในโค้ดช่วงแกนกราฟ permutation importance; กำหนดคงที่โดยไม่ได้ปรับจูน।
SHARE_AXIS[0, 1.0]กำหนดคงที่ในโค้ดช่วงแกนสัดส่วนความสำคัญตัวแปร; กำหนดคงที่โดยไม่ได้ปรับจูน।
ccp_alpha.candidates[0.0, 3.115e-07, 6.443e-07, 1.334e-06, 2.759e-06, 5.71e-06, 1.184e-05, 2.443e-05]เลือกจาก ccp pathเลือก alpha บวกบนสเกล log ที่ต้นไม้ยังเกิน MIN_LEAVES แล้วใช้ CV คัดเพื่อนบ้าน CCP_NEIGHBOURS พร้อมเพิ่ม 0 ก่อนค้น grid; ค่าตัวเลือกแสดงตามผลพิมพ์ 4 หลักนัยสำคัญ।
pipeline.target_transform"np.log / np.exp"กำหนดคงที่ในโค้ดแปลงราคา log แล้วคืนด้วย exp ก่อนวัดผลเป็นบาท; กำหนดคงที่ไม่ได้ปรับจูน।
FoldOneHot.scale_numerictrueกำหนดคงที่ในโค้ดกำหนดว่าจะปรับสเกลเฉพาะตัวเลขในแต่ละ fold หรือไม่ตาม pipeline; กำหนดคงที่ไม่ได้ปรับจูน।
scaler"(x - mean_train_fold) / std_train_fold; ddof=0; std=0 → 1"กำหนดคงที่ในโค้ดใช้ mean/std จากแถวฝึกของแต่ละ fold เท่านั้นและไม่ scale dummy ตามโค้ดเพื่อป้องกันข้อมูลรั่ว।
encoder"FoldOneHot; numeric=float; dummy=float; dense"กำหนดคงที่ในโค้ดแปลงหมวดหมู่เป็น 0/1 และต่อกับตัวเลขโดย fit ใหม่ในแต่ละ fold เพื่อป้องกันข้อมูลรั่ว।
FoldOneHot.reference"most frequent; ties: name ascending, stable"กำหนดคงที่ในโค้ดทิ้งระดับที่พบบ่อยที่สุดเพื่อลดคอลัมน์ซ้ำซ้อนและใช้ชื่อเรียงตัดสินเมื่อความถี่เสมอกันตามโค้ด।
FoldOneHot.unseen"all zeros"กำหนดคงที่ในโค้ดระดับที่ไม่เคยพบในแถวฝึกได้ศูนย์ทุกคอลัมน์ตามโค้ดเพื่อให้แปลงข้อมูลใหม่ได้।
split.strategy"stratify brand|model"กำหนดคงที่ในโค้ดใช้กติกาแบ่งชุดของไฟล์นี้ร่วมกับ TRAIN_SIZE/VAL_SIZE/TEST_SIZE และ SEED ตามโค้ดโดยไม่ได้ปรับจูน।
KFold.shuffletrueกำหนดคงที่ในโค้ดสลับลำดับแถวก่อนแบ่ง fold เพื่อให้กระจายข้อมูล; กำหนดคงที่ตามโค้ดโดยไม่ได้ปรับจูน।
KFold.random_state99กำหนดคงที่ในโค้ดเลขสุ่มของการแบ่ง fold เพื่อทำผลซ้ำ; กำหนดคงที่ตามโค้ดโดยไม่ได้ปรับจูน।
GridSearchCV.scoring{"MAE": "neg_mean_absolute_error", "RMSE": "neg_root_mean_squared_error", "MAPE": "neg_mean_absolute_percentage_error", "R2": "r2"}กำหนดคงที่ในโค้ดตัววัด CV โดยใช้ MAE หน่วยบาทเลือกผู้ชนะและใช้ใบวัดความซับซ้อน; กำหนดคงที่ตามโค้ดโดยไม่ได้ปรับจูน।
GridSearchCV.refit"refit_1se"กำหนดคงที่ในโค้ดฟังก์ชันเลือกชุดค่าด้วยกฎ 1-SE แล้วฝึกผู้ชนะบน train ทั้งชุด; กำหนดคงที่ตามโค้ดโดยไม่ได้ปรับจูน।
GridSearchCV.return_train_scoretrueกำหนดคงที่ในโค้ดเก็บคะแนน train เพื่อเทียบกับ CV; กำหนดคงที่ตามโค้ดโดยไม่ได้ปรับจูน।
GridSearchCV.error_score"raise"กำหนดคงที่ในโค้ดให้หยุดเมื่อการฝึกเกิดข้อผิดพลาด; กำหนดคงที่ตามโค้ดโดยไม่ได้ปรับจูน।
GridSearchCV.n_jobs8กำหนดคงที่ในโค้ดจำนวนงานค้นหาที่ทำพร้อมกัน; กำหนดคงที่ตามโค้ดโดยไม่ได้ปรับจูน।
GridSearchCV.pre_dispatch8กำหนดคงที่ในโค้ดจำนวนงานที่ส่งล่วงหน้าเพื่อคุมหน่วยความจำ; กำหนดคงที่ตามโค้ดโดยไม่ได้ปรับจูน।
GridSearchCV.verbose0กำหนดคงที่ในโค้ดระดับข้อความความคืบหน้าของการค้นหา; กำหนดคงที่ตามโค้ดโดยไม่ได้ปรับจูน।
selection.1SE"min CV MAE + SD(ddof=0)/sqrt(N_FOLDS); min leaves → CV MAE → index"กำหนดคงที่ในโค้ดเลือกใบน้อยที่สุดในช่วงหนึ่ง SE จาก MAE ต่ำสุด; DT นับใบบน train ทั้งชุด ส่วน RF/XGB ใช้ค่าเฉลี่ยใบรวมจาก CV ตามโค้ด।
target.check_inversetrueค่าเริ่มต้นของไลบรารี (sklearn 1.9.1)ตรวจว่าฟังก์ชันแปลงและแปลงกลับสอดคล้องกัน; คงค่าเริ่มต้นโดยไม่ได้ปรับจูน।
target.transformernullค่าเริ่มต้นของไลบรารี (sklearn 1.9.1)ตัวแปลงเป้าหมายแบบ estimator ซึ่งไม่ได้ส่งเพราะใช้คู่ฟังก์ชัน log/exp; คงค่าเริ่มต้นโดยไม่ได้ปรับจูน।

RF

RF/RF_new_cardb.ipynb
พารามิเตอร์ค่าที่ใช้ที่มาคำอธิบาย
max_features0.8GridSearchCV + กฎ 1-SE (ช่วงที่ค้น: [0.2, 0.3, 0.4, 0.5, 0.6, 0.8, 1.0])จำนวนหรือสัดส่วนตัวแปรที่ใช้เลือกจุดแตกกิ่ง; เลือกค่าของผู้ชนะที่มีใบน้อยที่สุดในช่วง 1-SE; ตรวจขอบ: PASS (อยู่ด้านในของ grid)।
min_samples_leaf1GridSearchCV + กฎ 1-SE (ช่วงที่ค้น: [1, 2, 3, 4, 6, 8])จำนวนแถวขั้นต่ำต่อใบ; เลือกค่าของผู้ชนะที่มีใบน้อยที่สุดในช่วง 1-SE; ตรวจขอบ: PASS (อยู่ที่ขอบธรรมชาติ ขยายต่อไม่ได้)।
bootstraptrueกำหนดคงที่ในโค้ดแต่ละต้นฝึกด้วยแถวที่สุ่มแบบหยิบแล้วใส่คืน (หัวใจของป่าสุ่ม และจำเป็นต่อ OOB); กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
ccp_alpha0.0กำหนดคงที่ในโค้ดไม่ตัดกิ่ง ป่าคุมความซับซ้อนด้วยการเฉลี่ยหลายต้นและ min_samples_leaf; กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
criterion"squared_error"กำหนดคงที่ในโค้ดวัดคุณภาพการแตกกิ่งด้วย MSE (ค่าเริ่มต้น เร็ว เหมาะกับการทายราคา); กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
max_depthnullกำหนดคงที่ในโค้ดความลึกสูงสุด None = ไม่จำกัด ขนาดต้นไม้คุมด้วย min_samples_leaf แทน; กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
max_leaf_nodesnullกำหนดคงที่ในโค้ดจำนวนใบสูงสุด None = ไม่จำกัด (ยังไม่ได้ทดสอบขีดจำกัดนี้); กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
max_samplesnullกำหนดคงที่ในโค้ดbootstrap มีขนาดเท่าแถวฝึกทั้งหมด (pilot: ขนาดเล็กลงทำให้ MAE แย่ลง); กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
min_impurity_decrease0.0กำหนดคงที่ในโค้ดแตกกิ่งได้แม้ลด error น้อย (ยังไม่ได้ทดสอบเกณฑ์นี้); กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
min_samples_split2กำหนดคงที่ในโค้ดรถขั้นต่ำในโหนดก่อนแตกกิ่ง (ค่าเริ่มต้น ยังไม่ได้ทดสอบการปรับ); กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
min_weight_fraction_leaf0.0กำหนดคงที่ในโค้ดสัดส่วนน้ำหนักขั้นต่ำต่อใบ 0 = ไม่ใช้ (ทุกแถวน้ำหนักเท่ากัน); กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
monotonic_cstnullกำหนดคงที่ในโค้ดไม่บังคับทิศทางความสัมพันธ์ของตัวแปรกับราคา; กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
n_estimators300กราฟ OOBจำนวนต้นไม้ ตั้งตายตัวตรงที่ OOB error แบนแล้ว (เซลล์ [03]); กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
n_jobs20กำหนดคงที่ในโค้ดจำนวน thread ที่ใช้ฝึกและทายพร้อมกัน (เซลล์ [03]); กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
oob_scorefalseกำหนดคงที่ในโค้ดไม่คำนวณ OOB ระหว่าง grid search เพื่อประหยัดเวลา (เซลล์ [38] เปิดเอง); กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
random_state99กำหนดคงที่ในโค้ดเลขสุ่มคงที่ ทั้ง bootstrap และการสุ่ม feature ให้ผลซ้ำได้; กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
verbose0กำหนดคงที่ในโค้ดไม่พิมพ์ความคืบหน้าระหว่างฝึก; กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
warm_startfalseกำหนดคงที่ในโค้ดฝึกใหม่ทั้งป่าทุกครั้ง (เซลล์ [38] เปิดเพื่อเพิ่มต้นไม้ทีละช่วง); กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
SEED99กำหนดคงที่ในโค้ดเลขสุ่มกลาง ใช้ทุกที่ที่มีการสุ่ม เพื่อให้ผลซ้ำได้।
N_FOLDS5กำหนดคงที่ในโค้ดจำนวน fold ของ cross-validation।
NUM_COLS["engine", "mileage", "car_age"]กำหนดคงที่ในโค้ดfeature ตัวเลข।
CAT_COLS["brand", "model", "car_type", "fuel", "gear"]กำหนดคงที่ในโค้ดfeature ประเภทกลุ่ม।
DATA_SHA256"04574b158eecae7a353528c575f19a14c542bdd379368fc756829446cf68d412"กำหนดคงที่ในโค้ดลายนิ้วมือไฟล์ข้อมูล।
MODEL_NAME"RF"กำหนดคงที่ในโค้ดชื่อโมเดล ใช้ในผลลัพธ์ JSON।
VERSION"v5"กำหนดคงที่ในโค้ดเวอร์ชันของวิธีฝึก ใช้ในผลลัพธ์ JSON।
CURRENT_YEAR2026กำหนดคงที่ในโค้ดปีที่เก็บข้อมูล ใช้คำนวณ car_age = CURRENT_YEAR - year।
TRAIN_SIZE0.8กำหนดคงที่ในโค้ดสัดส่วนแบ่ง train / validation / test।
VAL_SIZE0.1กำหนดคงที่ในโค้ดสัดส่วนแบ่ง train / validation / test।
TEST_SIZE0.1กำหนดคงที่ในโค้ดสัดส่วนแบ่ง train / validation / test।
N_TREES300กำหนดคงที่ในโค้ดจำนวนต้นไม้ในป่า (n_estimators) ตั้งตายตัว ไม่ปรับใน grid।
OOB_TREE_COUNTS[50, 100, 150, 200, 300, 400, 600, 800, 1000]กำหนดคงที่ในโค้ดจำนวนต้นที่วัด OOB error।
LC_FRACTIONS[0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0]กำหนดคงที่ในโค้ดสัดส่วน train ที่ใช้วาด learning curve: 10% ถึง 100%।
LC_REPEATS5กำหนดคงที่ในโค้ดจำนวนรอบสุ่มซ้ำของ learning curve ต่อหนึ่งสัดส่วน।
SEARCH_JOBS1กำหนดคงที่ในโค้ดจำนวนงานค้นหาที่รันพร้อมกันใน GridSearchCV (1 = ทีละโมเดล ประหยัดหน่วยความจำ)।
MODEL_THREADS20กำหนดคงที่ในโค้ดจำนวน thread ที่ป่าใช้ฝึกและทายพร้อมกัน (n_jobs ของ RandomForestRegressor)।
MAE_AXIS[20000, 90000]กำหนดคงที่ในโค้ดแกน MAE (บาท) ของ learning curve และ validation curve ครอบทุกโมเดล।
R2_AXIS[0.8, 1.0]กำหนดคงที่ในโค้ดแกน R² ของ learning curve।
ROWS_AXIS[0, 40000]กำหนดคงที่ในโค้ดแกน x ของ learning curve: จำนวนแถวฝึก (ทุกโมเดลฝึกบนข้อมูลชุดเดียวกัน)।
FOLD_AXIS[-0.5, 4.5]กำหนดคงที่ในโค้ดแกน x ของกราฟแท่งราย fold: ตำแหน่ง 0..4 (ต้องสัมพันธ์กับ N_FOLDS = 5)।
MAE_BAR_AXIS[0, 70000]กำหนดคงที่ในโค้ดแกน y ของกราฟแท่ง MAE ต่อ fold: แท่งต้องเริ่มที่ 0 จึงแยกจาก MAE_AXIS।
MAE_CCP_AXIS[50000, 130000]กำหนดคงที่ในโค้ดแกน y ของกราฟ ccp_alpha (เฉพาะ DT): ฝั่ง alpha สูงเกิน MAE_AXIS จึงใช้ช่วงซูมแยก।
MAE_OOB_AXIS[52000, 54000]กำหนดคงที่ในโค้ดแกน y ของกราฟ OOB (เฉพาะ RF): เส้นแบนมาก ถ้าใช้ MAE_AXIS เส้นจะเป็นขีดตรง จึงใช้ช่วงซูมแยก।
MAE_ROUND_AXIS[30000, 70000]กำหนดคงที่ในโค้ดแกน y ของกราฟรายรอบ (เฉพาะ XGB): ตัดรอบแรกๆ ที่ MAE สูงมากทิ้งเหมือนเดิม จึงใช้ช่วงซูมแยก।
RUN_ID"RF_new_cardb"กำหนดคงที่ในโค้ดชื่อการทดลอง; กำหนดคงที่โดยไม่ได้ปรับจูน।
DATASET"new_car_dataset.csv"กำหนดคงที่ในโค้ดชื่อชุดข้อมูล; กำหนดคงที่โดยไม่ได้ปรับจูน।
VARIANT"base"กำหนดคงที่ในโค้ดรูปแบบ base หรือ adj; กำหนดคงที่โดยไม่ได้ปรับจูน।
MAX_CAR_AGE25กำหนดคงที่ในโค้ดอายุรถสูงสุดที่ยอมรับในการกรองข้อมูล; กำหนดคงที่โดยไม่ได้ปรับจูน।
MODEL_ALIASES{"ALTIS": "COROLLAALTIS", "NP300NAVARA": "NAVARA"}กำหนดคงที่ในโค้ดกฎรวมชื่อรุ่นที่สะกดต่างกัน; กำหนดคงที่โดยไม่ได้ปรับจูน।
PERM_AXIS[0, 150000]กำหนดคงที่ในโค้ดช่วงแกนกราฟ permutation importance; กำหนดคงที่โดยไม่ได้ปรับจูน।
SHARE_AXIS[0, 1.0]กำหนดคงที่ในโค้ดช่วงแกนสัดส่วนความสำคัญตัวแปร; กำหนดคงที่โดยไม่ได้ปรับจูน।
pipeline.target_transform"identity (บาท)"กำหนดคงที่ในโค้ดใช้ราคาเป็นบาทโดยไม่แปลงเป้าหมาย; กำหนดคงที่ไม่ได้ปรับจูน।
FoldOneHot.scale_numericfalseกำหนดคงที่ในโค้ดกำหนดว่าจะปรับสเกลเฉพาะตัวเลขในแต่ละ fold หรือไม่ตาม pipeline; กำหนดคงที่ไม่ได้ปรับจูน।
scaler"ไม่มี"กำหนดคงที่ในโค้ดส่งค่าตัวเลขเดิมเข้าโมเดลตามโค้ดโดยไม่ได้ปรับจูนการ scale।
encoder"FoldOneHot; numeric=float; dummy=float; dense"กำหนดคงที่ในโค้ดแปลงหมวดหมู่เป็น 0/1 และต่อกับตัวเลขโดย fit ใหม่ในแต่ละ fold เพื่อป้องกันข้อมูลรั่ว।
FoldOneHot.reference"most frequent; ties: name ascending, stable"กำหนดคงที่ในโค้ดทิ้งระดับที่พบบ่อยที่สุดเพื่อลดคอลัมน์ซ้ำซ้อนและใช้ชื่อเรียงตัดสินเมื่อความถี่เสมอกันตามโค้ด।
FoldOneHot.unseen"all zeros"กำหนดคงที่ในโค้ดระดับที่ไม่เคยพบในแถวฝึกได้ศูนย์ทุกคอลัมน์ตามโค้ดเพื่อให้แปลงข้อมูลใหม่ได้।
split.strategy"forced-train 1 / brand|model"กำหนดคงที่ในโค้ดใช้กติกาแบ่งชุดของไฟล์นี้ร่วมกับ TRAIN_SIZE/VAL_SIZE/TEST_SIZE และ SEED ตามโค้ดโดยไม่ได้ปรับจูน।
KFold.shuffletrueกำหนดคงที่ในโค้ดสลับลำดับแถวก่อนแบ่ง fold เพื่อให้กระจายข้อมูล; กำหนดคงที่ตามโค้ดโดยไม่ได้ปรับจูน।
KFold.random_state99กำหนดคงที่ในโค้ดเลขสุ่มของการแบ่ง fold เพื่อทำผลซ้ำ; กำหนดคงที่ตามโค้ดโดยไม่ได้ปรับจูน।
GridSearchCV.scoring"{'MAE': 'neg_mean_absolute_error', 'RMSE': 'neg_root_mean_squared_error', 'MAPE': 'neg_mean_absolute_percentage_error', 'R2': 'r2', 'leaves': count_leaves_scorer}"กำหนดคงที่ในโค้ดตัววัด CV โดยใช้ MAE หน่วยบาทเลือกผู้ชนะและใช้ใบวัดความซับซ้อน; กำหนดคงที่ตามโค้ดโดยไม่ได้ปรับจูน।
GridSearchCV.refit"select_1se"กำหนดคงที่ในโค้ดฟังก์ชันเลือกชุดค่าด้วยกฎ 1-SE แล้วฝึกผู้ชนะบน train ทั้งชุด; กำหนดคงที่ตามโค้ดโดยไม่ได้ปรับจูน।
GridSearchCV.return_train_scoretrueกำหนดคงที่ในโค้ดเก็บคะแนน train เพื่อเทียบกับ CV; กำหนดคงที่ตามโค้ดโดยไม่ได้ปรับจูน।
GridSearchCV.error_score"raise"กำหนดคงที่ในโค้ดให้หยุดเมื่อการฝึกเกิดข้อผิดพลาด; กำหนดคงที่ตามโค้ดโดยไม่ได้ปรับจูน।
GridSearchCV.n_jobs1กำหนดคงที่ในโค้ดจำนวนงานค้นหาที่ทำพร้อมกัน; กำหนดคงที่ตามโค้ดโดยไม่ได้ปรับจูน।
GridSearchCV.pre_dispatch1กำหนดคงที่ในโค้ดจำนวนงานที่ส่งล่วงหน้าเพื่อคุมหน่วยความจำ; กำหนดคงที่ตามโค้ดโดยไม่ได้ปรับจูน।
GridSearchCV.verbose0กำหนดคงที่ในโค้ดระดับข้อความความคืบหน้าของการค้นหา; กำหนดคงที่ตามโค้ดโดยไม่ได้ปรับจูน।
selection.1SE"min CV MAE + SD(ddof=0)/sqrt(N_FOLDS); min leaves → CV MAE → index"กำหนดคงที่ในโค้ดเลือกใบน้อยที่สุดในช่วงหนึ่ง SE จาก MAE ต่ำสุด; DT นับใบบน train ทั้งชุด ส่วน RF/XGB ใช้ค่าเฉลี่ยใบรวมจาก CV ตามโค้ด।
RF/RF_new_cardb_adj.ipynb
พารามิเตอร์ค่าที่ใช้ที่มาคำอธิบาย
max_features0.6GridSearchCV + กฎ 1-SE (ช่วงที่ค้น: [0.2, 0.3, 0.4, 0.5, 0.6, 0.8, 1.0])จำนวนหรือสัดส่วนตัวแปรที่ใช้เลือกจุดแตกกิ่ง; เลือกค่าของผู้ชนะที่มีใบน้อยที่สุดในช่วง 1-SE; ตรวจขอบ: PASS (อยู่ด้านในของ grid)।
min_samples_leaf1GridSearchCV + กฎ 1-SE (ช่วงที่ค้น: [1, 2, 3, 4, 6, 8])จำนวนแถวขั้นต่ำต่อใบ; เลือกค่าของผู้ชนะที่มีใบน้อยที่สุดในช่วง 1-SE; ตรวจขอบ: PASS (อยู่ที่ขอบธรรมชาติ ขยายต่อไม่ได้)।
bootstraptrueกำหนดคงที่ในโค้ดแต่ละต้นฝึกด้วยแถวที่สุ่มแบบหยิบแล้วใส่คืน (หัวใจของป่าสุ่ม และจำเป็นต่อ OOB); กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
ccp_alpha0.0กำหนดคงที่ในโค้ดไม่ตัดกิ่ง ป่าคุมความซับซ้อนด้วยการเฉลี่ยหลายต้นและ min_samples_leaf; กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
criterion"squared_error"กำหนดคงที่ในโค้ดวัดคุณภาพการแตกกิ่งด้วย MSE (ค่าเริ่มต้น เร็ว เหมาะกับการทายราคา); กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
max_depthnullกำหนดคงที่ในโค้ดความลึกสูงสุด None = ไม่จำกัด ขนาดต้นไม้คุมด้วย min_samples_leaf แทน; กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
max_leaf_nodesnullกำหนดคงที่ในโค้ดจำนวนใบสูงสุด None = ไม่จำกัด (ยังไม่ได้ทดสอบขีดจำกัดนี้); กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
max_samplesnullกำหนดคงที่ในโค้ดbootstrap มีขนาดเท่าแถวฝึกทั้งหมด (pilot: ขนาดเล็กลงทำให้ MAE แย่ลง); กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
min_impurity_decrease0.0กำหนดคงที่ในโค้ดแตกกิ่งได้แม้ลด error น้อย (ยังไม่ได้ทดสอบเกณฑ์นี้); กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
min_samples_split2กำหนดคงที่ในโค้ดรถขั้นต่ำในโหนดก่อนแตกกิ่ง (ค่าเริ่มต้น ยังไม่ได้ทดสอบการปรับ); กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
min_weight_fraction_leaf0.0กำหนดคงที่ในโค้ดสัดส่วนน้ำหนักขั้นต่ำต่อใบ 0 = ไม่ใช้ (ทุกแถวน้ำหนักเท่ากัน); กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
monotonic_cstnullกำหนดคงที่ในโค้ดไม่บังคับทิศทางความสัมพันธ์ของตัวแปรกับราคา; กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
n_estimators300กราฟ OOBจำนวนต้นไม้ ตั้งตายตัวตรงที่ OOB error แบนแล้ว (เซลล์ [03]); กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
n_jobs20กำหนดคงที่ในโค้ดจำนวน thread ที่ใช้ฝึกและทายพร้อมกัน (เซลล์ [03]); กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
oob_scorefalseกำหนดคงที่ในโค้ดไม่คำนวณ OOB ระหว่าง grid search เพื่อประหยัดเวลา (เซลล์ [38] เปิดเอง); กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
random_state99กำหนดคงที่ในโค้ดเลขสุ่มคงที่ ทั้ง bootstrap และการสุ่ม feature ให้ผลซ้ำได้; กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
verbose0กำหนดคงที่ในโค้ดไม่พิมพ์ความคืบหน้าระหว่างฝึก; กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
warm_startfalseกำหนดคงที่ในโค้ดฝึกใหม่ทั้งป่าทุกครั้ง (เซลล์ [38] เปิดเพื่อเพิ่มต้นไม้ทีละช่วง); กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
SEED99กำหนดคงที่ในโค้ดเลขสุ่มกลาง ใช้ทุกที่ที่มีการสุ่ม เพื่อให้ผลซ้ำได้।
N_FOLDS5กำหนดคงที่ในโค้ดจำนวน fold ของ cross-validation।
NUM_COLS["engine", "mileage", "car_age"]กำหนดคงที่ในโค้ดfeature ตัวเลข।
CAT_COLS["brand", "model", "car_type", "fuel", "gear"]กำหนดคงที่ในโค้ดfeature ประเภทกลุ่ม।
DATA_SHA256"04574b158eecae7a353528c575f19a14c542bdd379368fc756829446cf68d412"กำหนดคงที่ในโค้ดลายนิ้วมือไฟล์ข้อมูล।
MODEL_NAME"RF"กำหนดคงที่ในโค้ดชื่อโมเดล ใช้ในผลลัพธ์ JSON।
VERSION"v5"กำหนดคงที่ในโค้ดเวอร์ชันของวิธีฝึก ใช้ในผลลัพธ์ JSON।
CURRENT_YEAR2026กำหนดคงที่ในโค้ดปีที่เก็บข้อมูล ใช้คำนวณ car_age = CURRENT_YEAR - year।
TRAIN_SIZE0.8กำหนดคงที่ในโค้ดสัดส่วนแบ่ง train / validation / test।
VAL_SIZE0.1กำหนดคงที่ในโค้ดสัดส่วนแบ่ง train / validation / test।
TEST_SIZE0.1กำหนดคงที่ในโค้ดสัดส่วนแบ่ง train / validation / test।
N_TREES300กำหนดคงที่ในโค้ดจำนวนต้นไม้ในป่า (n_estimators) ตั้งตายตัว ไม่ปรับใน grid।
OOB_TREE_COUNTS[50, 100, 150, 200, 300, 400, 600, 800, 1000]กำหนดคงที่ในโค้ดจำนวนต้นที่วัด OOB error।
LC_FRACTIONS[0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0]กำหนดคงที่ในโค้ดสัดส่วน train ที่ใช้วาด learning curve: 10% ถึง 100%।
LC_REPEATS5กำหนดคงที่ในโค้ดจำนวนรอบสุ่มซ้ำของ learning curve ต่อหนึ่งสัดส่วน।
SEARCH_JOBS1กำหนดคงที่ในโค้ดจำนวนงานค้นหาที่รันพร้อมกันใน GridSearchCV (1 = ทีละโมเดล ประหยัดหน่วยความจำ)।
MODEL_THREADS20กำหนดคงที่ในโค้ดจำนวน thread ที่ป่าใช้ฝึกและทายพร้อมกัน (n_jobs ของ RandomForestRegressor)।
MAE_AXIS[20000, 90000]กำหนดคงที่ในโค้ดแกน MAE (บาท) ของ learning curve และ validation curve ครอบทุกโมเดล।
R2_AXIS[0.8, 1.0]กำหนดคงที่ในโค้ดแกน R² ของ learning curve।
ROWS_AXIS[0, 40000]กำหนดคงที่ในโค้ดแกน x ของ learning curve: จำนวนแถวฝึก (ทุกโมเดลฝึกบนข้อมูลชุดเดียวกัน)।
FOLD_AXIS[-0.5, 4.5]กำหนดคงที่ในโค้ดแกน x ของกราฟแท่งราย fold: ตำแหน่ง 0..4 (ต้องสัมพันธ์กับ N_FOLDS = 5)।
MAE_BAR_AXIS[0, 70000]กำหนดคงที่ในโค้ดแกน y ของกราฟแท่ง MAE ต่อ fold: แท่งต้องเริ่มที่ 0 จึงแยกจาก MAE_AXIS।
MAE_CCP_AXIS[50000, 130000]กำหนดคงที่ในโค้ดแกน y ของกราฟ ccp_alpha (เฉพาะ DT): ฝั่ง alpha สูงเกิน MAE_AXIS จึงใช้ช่วงซูมแยก।
MAE_OOB_AXIS[52000, 54000]กำหนดคงที่ในโค้ดแกน y ของกราฟ OOB (เฉพาะ RF): เส้นแบนมาก ถ้าใช้ MAE_AXIS เส้นจะเป็นขีดตรง จึงใช้ช่วงซูมแยก।
MAE_ROUND_AXIS[30000, 70000]กำหนดคงที่ในโค้ดแกน y ของกราฟรายรอบ (เฉพาะ XGB): ตัดรอบแรกๆ ที่ MAE สูงมากทิ้งเหมือนเดิม จึงใช้ช่วงซูมแยก।
RUN_ID"RF_new_cardb_adj"กำหนดคงที่ในโค้ดชื่อการทดลอง; กำหนดคงที่โดยไม่ได้ปรับจูน।
DATASET"new_car_dataset.csv"กำหนดคงที่ในโค้ดชื่อชุดข้อมูล; กำหนดคงที่โดยไม่ได้ปรับจูน।
VARIANT"adj"กำหนดคงที่ในโค้ดรูปแบบ base หรือ adj; กำหนดคงที่โดยไม่ได้ปรับจูน।
MAX_CAR_AGE25กำหนดคงที่ในโค้ดอายุรถสูงสุดที่ยอมรับในการกรองข้อมูล; กำหนดคงที่โดยไม่ได้ปรับจูน।
MODEL_ALIASES{"ALTIS": "COROLLAALTIS", "NP300NAVARA": "NAVARA"}กำหนดคงที่ในโค้ดกฎรวมชื่อรุ่นที่สะกดต่างกัน; กำหนดคงที่โดยไม่ได้ปรับจูน।
PERM_AXIS[0, 150000]กำหนดคงที่ในโค้ดช่วงแกนกราฟ permutation importance; กำหนดคงที่โดยไม่ได้ปรับจูน।
SHARE_AXIS[0, 1.0]กำหนดคงที่ในโค้ดช่วงแกนสัดส่วนความสำคัญตัวแปร; กำหนดคงที่โดยไม่ได้ปรับจูน।
pipeline.target_transform"np.log / np.exp"กำหนดคงที่ในโค้ดแปลงราคา log แล้วคืนด้วย exp ก่อนวัดผลเป็นบาท; กำหนดคงที่ไม่ได้ปรับจูน।
FoldOneHot.scale_numerictrueกำหนดคงที่ในโค้ดกำหนดว่าจะปรับสเกลเฉพาะตัวเลขในแต่ละ fold หรือไม่ตาม pipeline; กำหนดคงที่ไม่ได้ปรับจูน।
scaler"(x - mean_train_fold) / std_train_fold; ddof=0; std=0 → 1"กำหนดคงที่ในโค้ดใช้ mean/std จากแถวฝึกของแต่ละ fold เท่านั้นและไม่ scale dummy ตามโค้ดเพื่อป้องกันข้อมูลรั่ว।
encoder"FoldOneHot; numeric=float; dummy=float; dense"กำหนดคงที่ในโค้ดแปลงหมวดหมู่เป็น 0/1 และต่อกับตัวเลขโดย fit ใหม่ในแต่ละ fold เพื่อป้องกันข้อมูลรั่ว।
FoldOneHot.reference"most frequent; ties: name ascending, stable"กำหนดคงที่ในโค้ดทิ้งระดับที่พบบ่อยที่สุดเพื่อลดคอลัมน์ซ้ำซ้อนและใช้ชื่อเรียงตัดสินเมื่อความถี่เสมอกันตามโค้ด।
FoldOneHot.unseen"all zeros"กำหนดคงที่ในโค้ดระดับที่ไม่เคยพบในแถวฝึกได้ศูนย์ทุกคอลัมน์ตามโค้ดเพื่อให้แปลงข้อมูลใหม่ได้।
split.strategy"forced-train 1 / brand|model"กำหนดคงที่ในโค้ดใช้กติกาแบ่งชุดของไฟล์นี้ร่วมกับ TRAIN_SIZE/VAL_SIZE/TEST_SIZE และ SEED ตามโค้ดโดยไม่ได้ปรับจูน।
KFold.shuffletrueกำหนดคงที่ในโค้ดสลับลำดับแถวก่อนแบ่ง fold เพื่อให้กระจายข้อมูล; กำหนดคงที่ตามโค้ดโดยไม่ได้ปรับจูน।
KFold.random_state99กำหนดคงที่ในโค้ดเลขสุ่มของการแบ่ง fold เพื่อทำผลซ้ำ; กำหนดคงที่ตามโค้ดโดยไม่ได้ปรับจูน।
GridSearchCV.scoring"{'MAE': 'neg_mean_absolute_error', 'RMSE': 'neg_root_mean_squared_error', 'MAPE': 'neg_mean_absolute_percentage_error', 'R2': 'r2', 'leaves': count_leaves_scorer}"กำหนดคงที่ในโค้ดตัววัด CV โดยใช้ MAE หน่วยบาทเลือกผู้ชนะและใช้ใบวัดความซับซ้อน; กำหนดคงที่ตามโค้ดโดยไม่ได้ปรับจูน।
GridSearchCV.refit"select_1se"กำหนดคงที่ในโค้ดฟังก์ชันเลือกชุดค่าด้วยกฎ 1-SE แล้วฝึกผู้ชนะบน train ทั้งชุด; กำหนดคงที่ตามโค้ดโดยไม่ได้ปรับจูน।
GridSearchCV.return_train_scoretrueกำหนดคงที่ในโค้ดเก็บคะแนน train เพื่อเทียบกับ CV; กำหนดคงที่ตามโค้ดโดยไม่ได้ปรับจูน।
GridSearchCV.error_score"raise"กำหนดคงที่ในโค้ดให้หยุดเมื่อการฝึกเกิดข้อผิดพลาด; กำหนดคงที่ตามโค้ดโดยไม่ได้ปรับจูน।
GridSearchCV.n_jobs1กำหนดคงที่ในโค้ดจำนวนงานค้นหาที่ทำพร้อมกัน; กำหนดคงที่ตามโค้ดโดยไม่ได้ปรับจูน।
GridSearchCV.pre_dispatch1กำหนดคงที่ในโค้ดจำนวนงานที่ส่งล่วงหน้าเพื่อคุมหน่วยความจำ; กำหนดคงที่ตามโค้ดโดยไม่ได้ปรับจูน।
GridSearchCV.verbose0กำหนดคงที่ในโค้ดระดับข้อความความคืบหน้าของการค้นหา; กำหนดคงที่ตามโค้ดโดยไม่ได้ปรับจูน।
selection.1SE"min CV MAE + SD(ddof=0)/sqrt(N_FOLDS); min leaves → CV MAE → index"กำหนดคงที่ในโค้ดเลือกใบน้อยที่สุดในช่วงหนึ่ง SE จาก MAE ต่ำสุด; DT นับใบบน train ทั้งชุด ส่วน RF/XGB ใช้ค่าเฉลี่ยใบรวมจาก CV ตามโค้ด।
target.check_inversetrueค่าเริ่มต้นของไลบรารี (sklearn 1.9.1)ตรวจว่าฟังก์ชันแปลงและแปลงกลับสอดคล้องกัน; คงค่าเริ่มต้นโดยไม่ได้ปรับจูน।
target.transformernullค่าเริ่มต้นของไลบรารี (sklearn 1.9.1)ตัวแปลงเป้าหมายแบบ estimator ซึ่งไม่ได้ส่งเพราะใช้คู่ฟังก์ชัน log/exp; คงค่าเริ่มต้นโดยไม่ได้ปรับจูน।
RF/RF_merge50minC.ipynb
พารามิเตอร์ค่าที่ใช้ที่มาคำอธิบาย
max_features0.3GridSearchCV + กฎ 1-SE (ช่วงที่ค้น: [0.2, 0.3, 0.4, 0.5, 0.6, 0.8, 1.0])จำนวนหรือสัดส่วนตัวแปรที่ใช้เลือกจุดแตกกิ่ง; เลือกค่าของผู้ชนะที่มีใบน้อยที่สุดในช่วง 1-SE; ตรวจขอบ: PASS (อยู่ด้านในของ grid)।
min_samples_leaf2GridSearchCV + กฎ 1-SE (ช่วงที่ค้น: [1, 2, 3, 4, 6, 8])จำนวนแถวขั้นต่ำต่อใบ; เลือกค่าของผู้ชนะที่มีใบน้อยที่สุดในช่วง 1-SE; ตรวจขอบ: PASS (อยู่ด้านในของ grid)।
bootstraptrueกำหนดคงที่ในโค้ดแต่ละต้นฝึกด้วยแถวที่สุ่มแบบหยิบแล้วใส่คืน (หัวใจของป่าสุ่ม และจำเป็นต่อ OOB); กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
ccp_alpha0.0กำหนดคงที่ในโค้ดไม่ตัดกิ่ง ป่าคุมความซับซ้อนด้วยการเฉลี่ยหลายต้นและ min_samples_leaf; กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
criterion"squared_error"กำหนดคงที่ในโค้ดวัดคุณภาพการแตกกิ่งด้วย MSE (ค่าเริ่มต้น เร็ว เหมาะกับการทายราคา); กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
max_depthnullกำหนดคงที่ในโค้ดความลึกสูงสุด None = ไม่จำกัด ขนาดต้นไม้คุมด้วย min_samples_leaf แทน; กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
max_leaf_nodesnullกำหนดคงที่ในโค้ดจำนวนใบสูงสุด None = ไม่จำกัด (ยังไม่ได้ทดสอบขีดจำกัดนี้); กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
max_samplesnullกำหนดคงที่ในโค้ดbootstrap มีขนาดเท่าแถวฝึกทั้งหมด (pilot: ขนาดเล็กลงทำให้ MAE แย่ลง); กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
min_impurity_decrease0.0กำหนดคงที่ในโค้ดแตกกิ่งได้แม้ลด error น้อย (ยังไม่ได้ทดสอบเกณฑ์นี้); กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
min_samples_split2กำหนดคงที่ในโค้ดรถขั้นต่ำในโหนดก่อนแตกกิ่ง (ค่าเริ่มต้น ยังไม่ได้ทดสอบการปรับ); กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
min_weight_fraction_leaf0.0กำหนดคงที่ในโค้ดสัดส่วนน้ำหนักขั้นต่ำต่อใบ 0 = ไม่ใช้ (ทุกแถวน้ำหนักเท่ากัน); กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
monotonic_cstnullกำหนดคงที่ในโค้ดไม่บังคับทิศทางความสัมพันธ์ของตัวแปรกับราคา; กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
n_estimators300กราฟ OOBจำนวนต้นไม้ ตั้งตายตัวตรงที่ OOB error แบนแล้ว (เซลล์ [03]); กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
n_jobs20กำหนดคงที่ในโค้ดจำนวน thread ที่ใช้ฝึกและทายพร้อมกัน (เซลล์ [03]); กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
oob_scorefalseกำหนดคงที่ในโค้ดไม่คำนวณ OOB ระหว่าง grid search เพื่อประหยัดเวลา (เซลล์ [38] เปิดเอง); กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
random_state99กำหนดคงที่ในโค้ดเลขสุ่มคงที่ ทั้ง bootstrap และการสุ่ม feature ให้ผลซ้ำได้; กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
verbose0กำหนดคงที่ในโค้ดไม่พิมพ์ความคืบหน้าระหว่างฝึก; กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
warm_startfalseกำหนดคงที่ในโค้ดฝึกใหม่ทั้งป่าทุกครั้ง (เซลล์ [38] เปิดเพื่อเพิ่มต้นไม้ทีละช่วง); กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
SEED99กำหนดคงที่ในโค้ดเลขสุ่มกลาง ใช้ทุกที่ที่มีการสุ่ม เพื่อให้ผลซ้ำได้।
N_FOLDS5กำหนดคงที่ในโค้ดจำนวน fold ของ cross-validation।
NUM_COLS["engine", "mileage", "car_age"]กำหนดคงที่ในโค้ดfeature ตัวเลข।
CAT_COLS["brand", "model", "car_type", "fuel", "gear"]กำหนดคงที่ในโค้ดfeature ประเภทกลุ่ม।
DATA_SHA256"191adb789285fe531bf82521e7ac0892020cbf0bf4325d22f6a657fabaab8aa1"กำหนดคงที่ในโค้ดลายนิ้วมือไฟล์ข้อมูล।
MODEL_NAME"RF"กำหนดคงที่ในโค้ดชื่อโมเดล ใช้ในผลลัพธ์ JSON।
VERSION"v5"กำหนดคงที่ในโค้ดเวอร์ชันของวิธีฝึก ใช้ในผลลัพธ์ JSON।
CURRENT_YEAR2026กำหนดคงที่ในโค้ดปีที่เก็บข้อมูล ใช้คำนวณ car_age = CURRENT_YEAR - year।
TRAIN_SIZE0.8กำหนดคงที่ในโค้ดสัดส่วนแบ่ง train / validation / test।
VAL_SIZE0.1กำหนดคงที่ในโค้ดสัดส่วนแบ่ง train / validation / test।
TEST_SIZE0.1กำหนดคงที่ในโค้ดสัดส่วนแบ่ง train / validation / test।
N_TREES300กำหนดคงที่ในโค้ดจำนวนต้นไม้ในป่า (n_estimators) ตั้งตายตัว ไม่ปรับใน grid।
OOB_TREE_COUNTS[50, 100, 150, 200, 300, 400, 600, 800, 1000]กำหนดคงที่ในโค้ดจำนวนต้นที่วัด OOB error।
LC_FRACTIONS[0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0]กำหนดคงที่ในโค้ดสัดส่วน train ที่ใช้วาด learning curve: 10% ถึง 100%।
LC_REPEATS5กำหนดคงที่ในโค้ดจำนวนรอบสุ่มซ้ำของ learning curve ต่อหนึ่งสัดส่วน।
SEARCH_JOBS1กำหนดคงที่ในโค้ดจำนวนงานค้นหาที่รันพร้อมกันใน GridSearchCV (1 = ทีละโมเดล ประหยัดหน่วยความจำ)।
MODEL_THREADS20กำหนดคงที่ในโค้ดจำนวน thread ที่ป่าใช้ฝึกและทายพร้อมกัน (n_jobs ของ RandomForestRegressor)।
MAE_AXIS[20000, 90000]กำหนดคงที่ในโค้ดแกน MAE (บาท) ของ learning curve และ validation curve ครอบทุกโมเดล।
R2_AXIS[0.8, 1.0]กำหนดคงที่ในโค้ดแกน R² ของ learning curve।
ROWS_AXIS[0, 40000]กำหนดคงที่ในโค้ดแกน x ของ learning curve: จำนวนแถวฝึก (ทุกโมเดลฝึกบนข้อมูลชุดเดียวกัน)।
FOLD_AXIS[-0.5, 4.5]กำหนดคงที่ในโค้ดแกน x ของกราฟแท่งราย fold: ตำแหน่ง 0..4 (ต้องสัมพันธ์กับ N_FOLDS = 5)।
MAE_BAR_AXIS[0, 70000]กำหนดคงที่ในโค้ดแกน y ของกราฟแท่ง MAE ต่อ fold: แท่งต้องเริ่มที่ 0 จึงแยกจาก MAE_AXIS।
MAE_CCP_AXIS[50000, 130000]กำหนดคงที่ในโค้ดแกน y ของกราฟ ccp_alpha (เฉพาะ DT): ฝั่ง alpha สูงเกิน MAE_AXIS จึงใช้ช่วงซูมแยก।
MAE_OOB_AXIS[52000, 54000]กำหนดคงที่ในโค้ดแกน y ของกราฟ OOB (เฉพาะ RF): เส้นแบนมาก ถ้าใช้ MAE_AXIS เส้นจะเป็นขีดตรง จึงใช้ช่วงซูมแยก।
MAE_ROUND_AXIS[30000, 70000]กำหนดคงที่ในโค้ดแกน y ของกราฟรายรอบ (เฉพาะ XGB): ตัดรอบแรกๆ ที่ MAE สูงมากทิ้งเหมือนเดิม จึงใช้ช่วงซูมแยก।
RUN_ID"RF_merge50minC"กำหนดคงที่ในโค้ดชื่อการทดลอง; กำหนดคงที่โดยไม่ได้ปรับจูน।
DATASET"merge_50min_clean.csv"กำหนดคงที่ในโค้ดชื่อชุดข้อมูล; กำหนดคงที่โดยไม่ได้ปรับจูน।
VARIANT"base"กำหนดคงที่ในโค้ดรูปแบบ base หรือ adj; กำหนดคงที่โดยไม่ได้ปรับจูน।
PERM_AXIS[0, 150000]กำหนดคงที่ในโค้ดช่วงแกนกราฟ permutation importance; กำหนดคงที่โดยไม่ได้ปรับจูน।
SHARE_AXIS[0, 1.0]กำหนดคงที่ในโค้ดช่วงแกนสัดส่วนความสำคัญตัวแปร; กำหนดคงที่โดยไม่ได้ปรับจูน।
pipeline.target_transform"identity (บาท)"กำหนดคงที่ในโค้ดใช้ราคาเป็นบาทโดยไม่แปลงเป้าหมาย; กำหนดคงที่ไม่ได้ปรับจูน।
FoldOneHot.scale_numericfalseกำหนดคงที่ในโค้ดกำหนดว่าจะปรับสเกลเฉพาะตัวเลขในแต่ละ fold หรือไม่ตาม pipeline; กำหนดคงที่ไม่ได้ปรับจูน।
scaler"ไม่มี"กำหนดคงที่ในโค้ดส่งค่าตัวเลขเดิมเข้าโมเดลตามโค้ดโดยไม่ได้ปรับจูนการ scale।
encoder"FoldOneHot; numeric=float; dummy=float; dense"กำหนดคงที่ในโค้ดแปลงหมวดหมู่เป็น 0/1 และต่อกับตัวเลขโดย fit ใหม่ในแต่ละ fold เพื่อป้องกันข้อมูลรั่ว।
FoldOneHot.reference"most frequent; ties: name ascending, stable"กำหนดคงที่ในโค้ดทิ้งระดับที่พบบ่อยที่สุดเพื่อลดคอลัมน์ซ้ำซ้อนและใช้ชื่อเรียงตัดสินเมื่อความถี่เสมอกันตามโค้ด।
FoldOneHot.unseen"all zeros"กำหนดคงที่ในโค้ดระดับที่ไม่เคยพบในแถวฝึกได้ศูนย์ทุกคอลัมน์ตามโค้ดเพื่อให้แปลงข้อมูลใหม่ได้।
split.strategy"stratify brand|model"กำหนดคงที่ในโค้ดใช้กติกาแบ่งชุดของไฟล์นี้ร่วมกับ TRAIN_SIZE/VAL_SIZE/TEST_SIZE และ SEED ตามโค้ดโดยไม่ได้ปรับจูน।
KFold.shuffletrueกำหนดคงที่ในโค้ดสลับลำดับแถวก่อนแบ่ง fold เพื่อให้กระจายข้อมูล; กำหนดคงที่ตามโค้ดโดยไม่ได้ปรับจูน।
KFold.random_state99กำหนดคงที่ในโค้ดเลขสุ่มของการแบ่ง fold เพื่อทำผลซ้ำ; กำหนดคงที่ตามโค้ดโดยไม่ได้ปรับจูน।
GridSearchCV.scoring"{'MAE': 'neg_mean_absolute_error', 'RMSE': 'neg_root_mean_squared_error', 'MAPE': 'neg_mean_absolute_percentage_error', 'R2': 'r2', 'leaves': count_leaves_scorer}"กำหนดคงที่ในโค้ดตัววัด CV โดยใช้ MAE หน่วยบาทเลือกผู้ชนะและใช้ใบวัดความซับซ้อน; กำหนดคงที่ตามโค้ดโดยไม่ได้ปรับจูน।
GridSearchCV.refit"select_1se"กำหนดคงที่ในโค้ดฟังก์ชันเลือกชุดค่าด้วยกฎ 1-SE แล้วฝึกผู้ชนะบน train ทั้งชุด; กำหนดคงที่ตามโค้ดโดยไม่ได้ปรับจูน।
GridSearchCV.return_train_scoretrueกำหนดคงที่ในโค้ดเก็บคะแนน train เพื่อเทียบกับ CV; กำหนดคงที่ตามโค้ดโดยไม่ได้ปรับจูน।
GridSearchCV.error_score"raise"กำหนดคงที่ในโค้ดให้หยุดเมื่อการฝึกเกิดข้อผิดพลาด; กำหนดคงที่ตามโค้ดโดยไม่ได้ปรับจูน।
GridSearchCV.n_jobs1กำหนดคงที่ในโค้ดจำนวนงานค้นหาที่ทำพร้อมกัน; กำหนดคงที่ตามโค้ดโดยไม่ได้ปรับจูน।
GridSearchCV.pre_dispatch1กำหนดคงที่ในโค้ดจำนวนงานที่ส่งล่วงหน้าเพื่อคุมหน่วยความจำ; กำหนดคงที่ตามโค้ดโดยไม่ได้ปรับจูน।
GridSearchCV.verbose0กำหนดคงที่ในโค้ดระดับข้อความความคืบหน้าของการค้นหา; กำหนดคงที่ตามโค้ดโดยไม่ได้ปรับจูน।
selection.1SE"min CV MAE + SD(ddof=0)/sqrt(N_FOLDS); min leaves → CV MAE → index"กำหนดคงที่ในโค้ดเลือกใบน้อยที่สุดในช่วงหนึ่ง SE จาก MAE ต่ำสุด; DT นับใบบน train ทั้งชุด ส่วน RF/XGB ใช้ค่าเฉลี่ยใบรวมจาก CV ตามโค้ด।
RF/RF_merge50minC_adj.ipynb
พารามิเตอร์ค่าที่ใช้ที่มาคำอธิบาย
max_features0.3GridSearchCV + กฎ 1-SE (ช่วงที่ค้น: [0.2, 0.3, 0.4, 0.5, 0.6, 0.8, 1.0])จำนวนหรือสัดส่วนตัวแปรที่ใช้เลือกจุดแตกกิ่ง; เลือกค่าของผู้ชนะที่มีใบน้อยที่สุดในช่วง 1-SE; ตรวจขอบ: PASS (อยู่ด้านในของ grid)।
min_samples_leaf2GridSearchCV + กฎ 1-SE (ช่วงที่ค้น: [1, 2, 3, 4, 6, 8])จำนวนแถวขั้นต่ำต่อใบ; เลือกค่าของผู้ชนะที่มีใบน้อยที่สุดในช่วง 1-SE; ตรวจขอบ: PASS (อยู่ด้านในของ grid)।
bootstraptrueกำหนดคงที่ในโค้ดแต่ละต้นฝึกด้วยแถวที่สุ่มแบบหยิบแล้วใส่คืน (หัวใจของป่าสุ่ม และจำเป็นต่อ OOB); กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
ccp_alpha0.0กำหนดคงที่ในโค้ดไม่ตัดกิ่ง ป่าคุมความซับซ้อนด้วยการเฉลี่ยหลายต้นและ min_samples_leaf; กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
criterion"squared_error"กำหนดคงที่ในโค้ดวัดคุณภาพการแตกกิ่งด้วย MSE (ค่าเริ่มต้น เร็ว เหมาะกับการทายราคา); กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
max_depthnullกำหนดคงที่ในโค้ดความลึกสูงสุด None = ไม่จำกัด ขนาดต้นไม้คุมด้วย min_samples_leaf แทน; กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
max_leaf_nodesnullกำหนดคงที่ในโค้ดจำนวนใบสูงสุด None = ไม่จำกัด (ยังไม่ได้ทดสอบขีดจำกัดนี้); กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
max_samplesnullกำหนดคงที่ในโค้ดbootstrap มีขนาดเท่าแถวฝึกทั้งหมด (pilot: ขนาดเล็กลงทำให้ MAE แย่ลง); กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
min_impurity_decrease0.0กำหนดคงที่ในโค้ดแตกกิ่งได้แม้ลด error น้อย (ยังไม่ได้ทดสอบเกณฑ์นี้); กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
min_samples_split2กำหนดคงที่ในโค้ดรถขั้นต่ำในโหนดก่อนแตกกิ่ง (ค่าเริ่มต้น ยังไม่ได้ทดสอบการปรับ); กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
min_weight_fraction_leaf0.0กำหนดคงที่ในโค้ดสัดส่วนน้ำหนักขั้นต่ำต่อใบ 0 = ไม่ใช้ (ทุกแถวน้ำหนักเท่ากัน); กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
monotonic_cstnullกำหนดคงที่ในโค้ดไม่บังคับทิศทางความสัมพันธ์ของตัวแปรกับราคา; กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
n_estimators300กราฟ OOBจำนวนต้นไม้ ตั้งตายตัวตรงที่ OOB error แบนแล้ว (เซลล์ [03]); กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
n_jobs20กำหนดคงที่ในโค้ดจำนวน thread ที่ใช้ฝึกและทายพร้อมกัน (เซลล์ [03]); กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
oob_scorefalseกำหนดคงที่ในโค้ดไม่คำนวณ OOB ระหว่าง grid search เพื่อประหยัดเวลา (เซลล์ [38] เปิดเอง); กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
random_state99กำหนดคงที่ในโค้ดเลขสุ่มคงที่ ทั้ง bootstrap และการสุ่ม feature ให้ผลซ้ำได้; กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
verbose0กำหนดคงที่ในโค้ดไม่พิมพ์ความคืบหน้าระหว่างฝึก; กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
warm_startfalseกำหนดคงที่ในโค้ดฝึกใหม่ทั้งป่าทุกครั้ง (เซลล์ [38] เปิดเพื่อเพิ่มต้นไม้ทีละช่วง); กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
SEED99กำหนดคงที่ในโค้ดเลขสุ่มกลาง ใช้ทุกที่ที่มีการสุ่ม เพื่อให้ผลซ้ำได้।
N_FOLDS5กำหนดคงที่ในโค้ดจำนวน fold ของ cross-validation।
NUM_COLS["engine", "mileage", "car_age"]กำหนดคงที่ในโค้ดfeature ตัวเลข।
CAT_COLS["brand", "model", "car_type", "fuel", "gear"]กำหนดคงที่ในโค้ดfeature ประเภทกลุ่ม।
DATA_SHA256"191adb789285fe531bf82521e7ac0892020cbf0bf4325d22f6a657fabaab8aa1"กำหนดคงที่ในโค้ดลายนิ้วมือไฟล์ข้อมูล।
MODEL_NAME"RF"กำหนดคงที่ในโค้ดชื่อโมเดล ใช้ในผลลัพธ์ JSON।
VERSION"v5"กำหนดคงที่ในโค้ดเวอร์ชันของวิธีฝึก ใช้ในผลลัพธ์ JSON।
CURRENT_YEAR2026กำหนดคงที่ในโค้ดปีที่เก็บข้อมูล ใช้คำนวณ car_age = CURRENT_YEAR - year।
TRAIN_SIZE0.8กำหนดคงที่ในโค้ดสัดส่วนแบ่ง train / validation / test।
VAL_SIZE0.1กำหนดคงที่ในโค้ดสัดส่วนแบ่ง train / validation / test।
TEST_SIZE0.1กำหนดคงที่ในโค้ดสัดส่วนแบ่ง train / validation / test।
N_TREES300กำหนดคงที่ในโค้ดจำนวนต้นไม้ในป่า (n_estimators) ตั้งตายตัว ไม่ปรับใน grid।
OOB_TREE_COUNTS[50, 100, 150, 200, 300, 400, 600, 800, 1000]กำหนดคงที่ในโค้ดจำนวนต้นที่วัด OOB error।
LC_FRACTIONS[0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0]กำหนดคงที่ในโค้ดสัดส่วน train ที่ใช้วาด learning curve: 10% ถึง 100%।
LC_REPEATS5กำหนดคงที่ในโค้ดจำนวนรอบสุ่มซ้ำของ learning curve ต่อหนึ่งสัดส่วน।
SEARCH_JOBS1กำหนดคงที่ในโค้ดจำนวนงานค้นหาที่รันพร้อมกันใน GridSearchCV (1 = ทีละโมเดล ประหยัดหน่วยความจำ)।
MODEL_THREADS20กำหนดคงที่ในโค้ดจำนวน thread ที่ป่าใช้ฝึกและทายพร้อมกัน (n_jobs ของ RandomForestRegressor)।
MAE_AXIS[20000, 90000]กำหนดคงที่ในโค้ดแกน MAE (บาท) ของ learning curve และ validation curve ครอบทุกโมเดล।
R2_AXIS[0.8, 1.0]กำหนดคงที่ในโค้ดแกน R² ของ learning curve।
ROWS_AXIS[0, 40000]กำหนดคงที่ในโค้ดแกน x ของ learning curve: จำนวนแถวฝึก (ทุกโมเดลฝึกบนข้อมูลชุดเดียวกัน)।
FOLD_AXIS[-0.5, 4.5]กำหนดคงที่ในโค้ดแกน x ของกราฟแท่งราย fold: ตำแหน่ง 0..4 (ต้องสัมพันธ์กับ N_FOLDS = 5)।
MAE_BAR_AXIS[0, 70000]กำหนดคงที่ในโค้ดแกน y ของกราฟแท่ง MAE ต่อ fold: แท่งต้องเริ่มที่ 0 จึงแยกจาก MAE_AXIS।
MAE_CCP_AXIS[50000, 130000]กำหนดคงที่ในโค้ดแกน y ของกราฟ ccp_alpha (เฉพาะ DT): ฝั่ง alpha สูงเกิน MAE_AXIS จึงใช้ช่วงซูมแยก।
MAE_OOB_AXIS[52000, 54000]กำหนดคงที่ในโค้ดแกน y ของกราฟ OOB (เฉพาะ RF): เส้นแบนมาก ถ้าใช้ MAE_AXIS เส้นจะเป็นขีดตรง จึงใช้ช่วงซูมแยก।
MAE_ROUND_AXIS[30000, 70000]กำหนดคงที่ในโค้ดแกน y ของกราฟรายรอบ (เฉพาะ XGB): ตัดรอบแรกๆ ที่ MAE สูงมากทิ้งเหมือนเดิม จึงใช้ช่วงซูมแยก।
RUN_ID"RF_merge50minC_adj"กำหนดคงที่ในโค้ดชื่อการทดลอง; กำหนดคงที่โดยไม่ได้ปรับจูน।
DATASET"merge_50min_clean.csv"กำหนดคงที่ในโค้ดชื่อชุดข้อมูล; กำหนดคงที่โดยไม่ได้ปรับจูน।
VARIANT"adj"กำหนดคงที่ในโค้ดรูปแบบ base หรือ adj; กำหนดคงที่โดยไม่ได้ปรับจูน।
PERM_AXIS[0, 150000]กำหนดคงที่ในโค้ดช่วงแกนกราฟ permutation importance; กำหนดคงที่โดยไม่ได้ปรับจูน।
SHARE_AXIS[0, 1.0]กำหนดคงที่ในโค้ดช่วงแกนสัดส่วนความสำคัญตัวแปร; กำหนดคงที่โดยไม่ได้ปรับจูน।
pipeline.target_transform"np.log / np.exp"กำหนดคงที่ในโค้ดแปลงราคา log แล้วคืนด้วย exp ก่อนวัดผลเป็นบาท; กำหนดคงที่ไม่ได้ปรับจูน।
FoldOneHot.scale_numerictrueกำหนดคงที่ในโค้ดกำหนดว่าจะปรับสเกลเฉพาะตัวเลขในแต่ละ fold หรือไม่ตาม pipeline; กำหนดคงที่ไม่ได้ปรับจูน।
scaler"(x - mean_train_fold) / std_train_fold; ddof=0; std=0 → 1"กำหนดคงที่ในโค้ดใช้ mean/std จากแถวฝึกของแต่ละ fold เท่านั้นและไม่ scale dummy ตามโค้ดเพื่อป้องกันข้อมูลรั่ว।
encoder"FoldOneHot; numeric=float; dummy=float; dense"กำหนดคงที่ในโค้ดแปลงหมวดหมู่เป็น 0/1 และต่อกับตัวเลขโดย fit ใหม่ในแต่ละ fold เพื่อป้องกันข้อมูลรั่ว।
FoldOneHot.reference"most frequent; ties: name ascending, stable"กำหนดคงที่ในโค้ดทิ้งระดับที่พบบ่อยที่สุดเพื่อลดคอลัมน์ซ้ำซ้อนและใช้ชื่อเรียงตัดสินเมื่อความถี่เสมอกันตามโค้ด।
FoldOneHot.unseen"all zeros"กำหนดคงที่ในโค้ดระดับที่ไม่เคยพบในแถวฝึกได้ศูนย์ทุกคอลัมน์ตามโค้ดเพื่อให้แปลงข้อมูลใหม่ได้।
split.strategy"stratify brand|model"กำหนดคงที่ในโค้ดใช้กติกาแบ่งชุดของไฟล์นี้ร่วมกับ TRAIN_SIZE/VAL_SIZE/TEST_SIZE และ SEED ตามโค้ดโดยไม่ได้ปรับจูน।
KFold.shuffletrueกำหนดคงที่ในโค้ดสลับลำดับแถวก่อนแบ่ง fold เพื่อให้กระจายข้อมูล; กำหนดคงที่ตามโค้ดโดยไม่ได้ปรับจูน।
KFold.random_state99กำหนดคงที่ในโค้ดเลขสุ่มของการแบ่ง fold เพื่อทำผลซ้ำ; กำหนดคงที่ตามโค้ดโดยไม่ได้ปรับจูน।
GridSearchCV.scoring"{'MAE': 'neg_mean_absolute_error', 'RMSE': 'neg_root_mean_squared_error', 'MAPE': 'neg_mean_absolute_percentage_error', 'R2': 'r2', 'leaves': count_leaves_scorer}"กำหนดคงที่ในโค้ดตัววัด CV โดยใช้ MAE หน่วยบาทเลือกผู้ชนะและใช้ใบวัดความซับซ้อน; กำหนดคงที่ตามโค้ดโดยไม่ได้ปรับจูน।
GridSearchCV.refit"select_1se"กำหนดคงที่ในโค้ดฟังก์ชันเลือกชุดค่าด้วยกฎ 1-SE แล้วฝึกผู้ชนะบน train ทั้งชุด; กำหนดคงที่ตามโค้ดโดยไม่ได้ปรับจูน।
GridSearchCV.return_train_scoretrueกำหนดคงที่ในโค้ดเก็บคะแนน train เพื่อเทียบกับ CV; กำหนดคงที่ตามโค้ดโดยไม่ได้ปรับจูน।
GridSearchCV.error_score"raise"กำหนดคงที่ในโค้ดให้หยุดเมื่อการฝึกเกิดข้อผิดพลาด; กำหนดคงที่ตามโค้ดโดยไม่ได้ปรับจูน।
GridSearchCV.n_jobs1กำหนดคงที่ในโค้ดจำนวนงานค้นหาที่ทำพร้อมกัน; กำหนดคงที่ตามโค้ดโดยไม่ได้ปรับจูน।
GridSearchCV.pre_dispatch1กำหนดคงที่ในโค้ดจำนวนงานที่ส่งล่วงหน้าเพื่อคุมหน่วยความจำ; กำหนดคงที่ตามโค้ดโดยไม่ได้ปรับจูน।
GridSearchCV.verbose0กำหนดคงที่ในโค้ดระดับข้อความความคืบหน้าของการค้นหา; กำหนดคงที่ตามโค้ดโดยไม่ได้ปรับจูน।
selection.1SE"min CV MAE + SD(ddof=0)/sqrt(N_FOLDS); min leaves → CV MAE → index"กำหนดคงที่ในโค้ดเลือกใบน้อยที่สุดในช่วงหนึ่ง SE จาก MAE ต่ำสุด; DT นับใบบน train ทั้งชุด ส่วน RF/XGB ใช้ค่าเฉลี่ยใบรวมจาก CV ตามโค้ด।
target.check_inversetrueค่าเริ่มต้นของไลบรารี (sklearn 1.9.1)ตรวจว่าฟังก์ชันแปลงและแปลงกลับสอดคล้องกัน; คงค่าเริ่มต้นโดยไม่ได้ปรับจูน।
target.transformernullค่าเริ่มต้นของไลบรารี (sklearn 1.9.1)ตัวแปลงเป้าหมายแบบ estimator ซึ่งไม่ได้ส่งเพราะใช้คู่ฟังก์ชัน log/exp; คงค่าเริ่มต้นโดยไม่ได้ปรับจูน।

XGB

XGB/XGB_new_cardb.ipynb
พารามิเตอร์ค่าที่ใช้ที่มาคำอธิบาย
max_depth12GridSearchCV + กฎ 1-SE (ช่วงที่ค้น: [8, 12, 16, 20, 24])ความลึกสูงสุดของต้นไม้; เลือกค่าของผู้ชนะที่มีใบน้อยที่สุดในช่วง 1-SE; ตรวจขอบ: PASS (inside)।
min_child_weight1GridSearchCV + กฎ 1-SE (ช่วงที่ค้น: [1, 5, 20])น้ำหนัก Hessian ขั้นต่ำของโหนดลูก; เลือกค่าของผู้ชนะที่มีใบน้อยที่สุดในช่วง 1-SE; ตรวจขอบ: PASS (natural bound) (min edge)।
n_estimators300GridSearchCV + กฎ 1-SE (ช่วงที่ค้น: [25, 50, 100, 200, 300])จำนวนต้นไม้หรือรอบ boosting; เลือกค่าของผู้ชนะที่มีใบน้อยที่สุดในช่วง 1-SE; ตรวจขอบ: WARN (max edge)।
reg_lambda1.0GridSearchCV + กฎ 1-SE (ช่วงที่ค้น: [0.0, 1.0, 10.0, 100.0])บทลงโทษ L2 ของค่าในใบ; เลือกค่าของผู้ชนะที่มีใบน้อยที่สุดในช่วง 1-SE; ตรวจขอบ: PASS (inside)।
objective"reg:squarederror"กำหนดคงที่ในโค้ดเรียนรู้จากความผิดพลาดยกกำลังสอง (ค่าเริ่มต้น); กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
booster"gbtree"กำหนดคงที่ในโค้ดใช้ต้นไม้เป็นตัวเรียนรู้ย่อย (ค่าเริ่มต้น); กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
colsample_bytree0.8กำหนดคงที่ในโค้ดแต่ละต้นสุ่มเห็นคอลัมน์ 80%; กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
early_stopping_roundsnullกำหนดคงที่ในโค้ดไม่หยุดก่อนครบรอบ (จำนวนรอบเลือกด้วย CV ใน grid); กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
eval_metric"mae"กำหนดคงที่ในโค้ดใช้เฉพาะตอนส่ง eval_set ในเซลล์ [38] เพื่อวาดกราฟรายรอบ; กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
gamma0.0กำหนดคงที่ในโค้ดerror ต้องลดอย่างน้อยเท่านี้จึงแตกกิ่ง 0 = ไม่บังคับ (ค่าเริ่มต้น); กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
grow_policy"depthwise"กำหนดคงที่ในโค้ดโตทีละชั้นจนถึง max_depth (ค่าเริ่มต้น); กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
learning_rate0.1กำหนดคงที่ในโค้ดย่อขนาดการแก้ของแต่ละต้น (คงที่ ดูเซลล์ [03]); กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
max_bin256กำหนดคงที่ในโค้ดจำนวนช่วงต่อคอลัมน์ของ hist (ค่าเริ่มต้น); กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
max_delta_step0.0กำหนดคงที่ในโค้ดจำกัดขนาดค่าในใบ 0 = ไม่จำกัด (ค่าเริ่มต้น); กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
n_jobs3กำหนดคงที่ในโค้ดจำนวน thread ภายในโมเดล (คงที่ทั้งโน้ตบุ๊ค); กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
random_state99กำหนดคงที่ในโค้ดเลขสุ่มคงที่ ให้ผลซ้ำได้; กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
reg_alpha0.0กำหนดคงที่ในโค้ดบทลงโทษ L1 ของค่าในใบ 0 = ไม่ใช้ (ค่าเริ่มต้น); กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
subsample0.8กำหนดคงที่ในโค้ดแต่ละต้นสุ่มเห็นแถว 80% ของข้อมูลฝึก; กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
tree_method"hist"กำหนดคงที่ในโค้ดแบ่งค่าเป็นช่วง (histogram) ก่อนหาจุดตัด เร็วกว่าวิธี exact มาก; กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
SEED99กำหนดคงที่ในโค้ดเลขสุ่มกลาง ใช้ทุกที่ที่มีการสุ่ม เพื่อให้ผลซ้ำได้।
N_FOLDS5กำหนดคงที่ในโค้ดจำนวน fold ของ cross-validation।
NUM_COLS["engine", "mileage", "car_age"]กำหนดคงที่ในโค้ดfeature ตัวเลข।
CAT_COLS["brand", "model", "car_type", "fuel", "gear"]กำหนดคงที่ในโค้ดfeature ประเภทกลุ่ม।
DATA_SHA256"04574b158eecae7a353528c575f19a14c542bdd379368fc756829446cf68d412"กำหนดคงที่ในโค้ดลายนิ้วมือไฟล์ข้อมูล।
MODEL_NAME"XGB"กำหนดคงที่ในโค้ดชื่อโมเดล ใช้ในผลลัพธ์ JSON।
VERSION"v5"กำหนดคงที่ในโค้ดเวอร์ชันของวิธีฝึก ใช้ในผลลัพธ์ JSON।
CURRENT_YEAR2026กำหนดคงที่ในโค้ดปีที่เก็บข้อมูล ใช้คำนวณ car_age = CURRENT_YEAR - year।
TRAIN_SIZE0.8กำหนดคงที่ในโค้ดสัดส่วนแบ่ง train / validation / test।
VAL_SIZE0.1กำหนดคงที่ในโค้ดสัดส่วนแบ่ง train / validation / test।
TEST_SIZE0.1กำหนดคงที่ในโค้ดสัดส่วนแบ่ง train / validation / test।
LEARNING_RATE0.1กำหนดคงที่ในโค้ดขนาดก้าวของ boosting (คงที่ ไม่อยู่ใน grid)।
LC_FRACTIONS[0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0]กำหนดคงที่ในโค้ดสัดส่วน train ที่ใช้วาด learning curve: 10% ถึง 100%।
LC_REPEATS5กำหนดคงที่ในโค้ดจำนวนรอบสุ่มซ้ำของ learning curve ต่อหนึ่งสัดส่วน।
SEARCH_JOBS6กำหนดคงที่ในโค้ดจำนวนงานที่รันพร้อมกันใน GridSearchCV (process คู่ขนาน)।
MODEL_THREADS3กำหนดคงที่ในโค้ดจำนวน thread ที่โมเดลแต่ละตัวใช้ภายใน।
MAE_AXIS[20000, 90000]กำหนดคงที่ในโค้ดแกน MAE (บาท) ของ learning curve และ validation curve ครอบทุกโมเดล।
R2_AXIS[0.8, 1.0]กำหนดคงที่ในโค้ดแกน R² ของ learning curve।
ROWS_AXIS[0, 40000]กำหนดคงที่ในโค้ดแกน x ของ learning curve: จำนวนแถวฝึก (ทุกโมเดลฝึกบนข้อมูลชุดเดียวกัน)।
FOLD_AXIS[-0.5, 4.5]กำหนดคงที่ในโค้ดแกน x ของกราฟแท่งราย fold: ตำแหน่ง 0..4 (ต้องสัมพันธ์กับ N_FOLDS = 5)।
MAE_BAR_AXIS[0, 70000]กำหนดคงที่ในโค้ดแกน y ของกราฟแท่ง MAE ต่อ fold: แท่งต้องเริ่มที่ 0 จึงแยกจาก MAE_AXIS।
MAE_CCP_AXIS[50000, 130000]กำหนดคงที่ในโค้ดแกน y ของกราฟ ccp_alpha (เฉพาะ DT): ฝั่ง alpha สูงเกิน MAE_AXIS จึงใช้ช่วงซูมแยก।
MAE_OOB_AXIS[52000, 54000]กำหนดคงที่ในโค้ดแกน y ของกราฟ OOB (เฉพาะ RF): เส้นแบนมาก ถ้าใช้ MAE_AXIS เส้นจะเป็นขีดตรง จึงใช้ช่วงซูมแยก।
MAE_ROUND_AXIS[30000, 70000]กำหนดคงที่ในโค้ดแกน y ของกราฟรายรอบ (เฉพาะ XGB): ตัดรอบแรกๆ ที่ MAE สูงมากทิ้งเหมือนเดิม จึงใช้ช่วงซูมแยก।
RUN_ID"XGB_new_cardb"กำหนดคงที่ในโค้ดชื่อการทดลอง; กำหนดคงที่โดยไม่ได้ปรับจูน।
DATASET"new_car_dataset.csv"กำหนดคงที่ในโค้ดชื่อชุดข้อมูล; กำหนดคงที่โดยไม่ได้ปรับจูน।
VARIANT"base"กำหนดคงที่ในโค้ดรูปแบบ base หรือ adj; กำหนดคงที่โดยไม่ได้ปรับจูน।
MAX_CAR_AGE25กำหนดคงที่ในโค้ดอายุรถสูงสุดที่ยอมรับในการกรองข้อมูล; กำหนดคงที่โดยไม่ได้ปรับจูน।
MODEL_ALIASES{"ALTIS": "COROLLAALTIS", "NP300NAVARA": "NAVARA"}กำหนดคงที่ในโค้ดกฎรวมชื่อรุ่นที่สะกดต่างกัน; กำหนดคงที่โดยไม่ได้ปรับจูน।
PERM_AXIS[0, 150000]กำหนดคงที่ในโค้ดช่วงแกนกราฟ permutation importance; กำหนดคงที่โดยไม่ได้ปรับจูน।
SHARE_AXIS[0, 1.0]กำหนดคงที่ในโค้ดช่วงแกนสัดส่วนความสำคัญตัวแปร; กำหนดคงที่โดยไม่ได้ปรับจูน।
pipeline.target_transform"identity (บาท)"กำหนดคงที่ในโค้ดใช้ราคาเป็นบาทโดยไม่แปลงเป้าหมาย; กำหนดคงที่ไม่ได้ปรับจูน।
FoldOneHot.scale_numericfalseกำหนดคงที่ในโค้ดกำหนดว่าจะปรับสเกลเฉพาะตัวเลขในแต่ละ fold หรือไม่ตาม pipeline; กำหนดคงที่ไม่ได้ปรับจูน।
scaler"ไม่มี"กำหนดคงที่ในโค้ดส่งค่าตัวเลขเดิมเข้าโมเดลตามโค้ดโดยไม่ได้ปรับจูนการ scale।
encoder"FoldOneHot; numeric=float; dummy=float; dense"กำหนดคงที่ในโค้ดแปลงหมวดหมู่เป็น 0/1 และต่อกับตัวเลขโดย fit ใหม่ในแต่ละ fold เพื่อป้องกันข้อมูลรั่ว।
FoldOneHot.reference"most frequent; ties: name ascending, stable"กำหนดคงที่ในโค้ดทิ้งระดับที่พบบ่อยที่สุดเพื่อลดคอลัมน์ซ้ำซ้อนและใช้ชื่อเรียงตัดสินเมื่อความถี่เสมอกันตามโค้ด।
FoldOneHot.unseen"all zeros"กำหนดคงที่ในโค้ดระดับที่ไม่เคยพบในแถวฝึกได้ศูนย์ทุกคอลัมน์ตามโค้ดเพื่อให้แปลงข้อมูลใหม่ได้।
split.strategy"forced-train 1 / brand|model"กำหนดคงที่ในโค้ดใช้กติกาแบ่งชุดของไฟล์นี้ร่วมกับ TRAIN_SIZE/VAL_SIZE/TEST_SIZE และ SEED ตามโค้ดโดยไม่ได้ปรับจูน।
KFold.shuffletrueกำหนดคงที่ในโค้ดสลับลำดับแถวก่อนแบ่ง fold เพื่อให้กระจายข้อมูล; กำหนดคงที่ตามโค้ดโดยไม่ได้ปรับจูน।
KFold.random_state99กำหนดคงที่ในโค้ดเลขสุ่มของการแบ่ง fold เพื่อทำผลซ้ำ; กำหนดคงที่ตามโค้ดโดยไม่ได้ปรับจูน।
GridSearchCV.scoring"{'MAE': 'neg_mean_absolute_error', 'RMSE': 'neg_root_mean_squared_error', 'MAPE': 'neg_mean_absolute_percentage_error', 'R2': 'r2', 'leaves': count_leaves_scorer}"กำหนดคงที่ในโค้ดตัววัด CV โดยใช้ MAE หน่วยบาทเลือกผู้ชนะและใช้ใบวัดความซับซ้อน; กำหนดคงที่ตามโค้ดโดยไม่ได้ปรับจูน।
GridSearchCV.refit"select_1se"กำหนดคงที่ในโค้ดฟังก์ชันเลือกชุดค่าด้วยกฎ 1-SE แล้วฝึกผู้ชนะบน train ทั้งชุด; กำหนดคงที่ตามโค้ดโดยไม่ได้ปรับจูน।
GridSearchCV.return_train_scoretrueกำหนดคงที่ในโค้ดเก็บคะแนน train เพื่อเทียบกับ CV; กำหนดคงที่ตามโค้ดโดยไม่ได้ปรับจูน।
GridSearchCV.error_score"raise"กำหนดคงที่ในโค้ดให้หยุดเมื่อการฝึกเกิดข้อผิดพลาด; กำหนดคงที่ตามโค้ดโดยไม่ได้ปรับจูน।
GridSearchCV.n_jobs6กำหนดคงที่ในโค้ดจำนวนงานค้นหาที่ทำพร้อมกัน; กำหนดคงที่ตามโค้ดโดยไม่ได้ปรับจูน।
GridSearchCV.pre_dispatch6กำหนดคงที่ในโค้ดจำนวนงานที่ส่งล่วงหน้าเพื่อคุมหน่วยความจำ; กำหนดคงที่ตามโค้ดโดยไม่ได้ปรับจูน।
GridSearchCV.verbose0กำหนดคงที่ในโค้ดระดับข้อความความคืบหน้าของการค้นหา; กำหนดคงที่ตามโค้ดโดยไม่ได้ปรับจูน।
selection.1SE"min CV MAE + SD(ddof=0)/sqrt(N_FOLDS); min leaves → CV MAE → index"กำหนดคงที่ในโค้ดเลือกใบน้อยที่สุดในช่วงหนึ่ง SE จาก MAE ต่ำสุด; DT นับใบบน train ทั้งชุด ส่วน RF/XGB ใช้ค่าเฉลี่ยใบรวมจาก CV ตามโค้ด।
base_scorenullค่าเริ่มต้นของไลบรารี (xgboost 3.4.1)ค่าทำนายเริ่มต้น; คงค่าเริ่มต้นของไลบรารีโดยไม่ได้ปรับจูน (None คือไม่ได้ระบุใน Python wrapper ให้ backend ตัดสิน)।
callbacksnullค่าเริ่มต้นของไลบรารี (xgboost 3.4.1)ฟังก์ชันเสริมระหว่างฝึก; คงค่าเริ่มต้นของไลบรารีโดยไม่ได้ปรับจูน (None คือไม่ได้ระบุใน Python wrapper ให้ backend ตัดสิน)।
colsample_bylevelnullค่าเริ่มต้นของไลบรารี (xgboost 3.4.1)สัดส่วนคอลัมน์ที่สุ่มต่อระดับ; คงค่าเริ่มต้นของไลบรารีโดยไม่ได้ปรับจูน (None คือไม่ได้ระบุใน Python wrapper ให้ backend ตัดสิน)।
colsample_bynodenullค่าเริ่มต้นของไลบรารี (xgboost 3.4.1)สัดส่วนคอลัมน์ที่สุ่มต่อโหนด; คงค่าเริ่มต้นของไลบรารีโดยไม่ได้ปรับจูน (None คือไม่ได้ระบุใน Python wrapper ให้ backend ตัดสิน)।
devicenullค่าเริ่มต้นของไลบรารี (xgboost 3.4.1)อุปกรณ์ประมวลผล; คงค่าเริ่มต้นของไลบรารีโดยไม่ได้ปรับจูน (None คือไม่ได้ระบุใน Python wrapper ให้ backend ตัดสิน)।
enable_categoricaltrueค่าเริ่มต้นของไลบรารี (xgboost 3.4.1)การอนุญาตข้อมูลหมวดหมู่แบบ native; คงค่าเริ่มต้นของไลบรารีโดยไม่ได้ปรับจูน; pipeline ใช้ FoldOneHot จึงไม่ได้ส่งหมวดหมู่ native।
feature_typesnullค่าเริ่มต้นของไลบรารี (xgboost 3.4.1)ชนิดข้อมูลของตัวแปร; คงค่าเริ่มต้นของไลบรารีโดยไม่ได้ปรับจูน (None คือไม่ได้ระบุใน Python wrapper ให้ backend ตัดสิน)।
feature_weightsnullค่าเริ่มต้นของไลบรารี (xgboost 3.4.1)น้ำหนักในการสุ่มตัวแปร; คงค่าเริ่มต้นของไลบรารีโดยไม่ได้ปรับจูน (None คือไม่ได้ระบุใน Python wrapper ให้ backend ตัดสิน)।
importance_typenullค่าเริ่มต้นของไลบรารี (xgboost 3.4.1)วิธีสรุปความสำคัญตัวแปร; คงค่าเริ่มต้นของไลบรารีโดยไม่ได้ปรับจูน (None คือไม่ได้ระบุใน Python wrapper ให้ backend ตัดสิน)।
interaction_constraintsnullค่าเริ่มต้นของไลบรารี (xgboost 3.4.1)ข้อจำกัดปฏิสัมพันธ์ของตัวแปร; คงค่าเริ่มต้นของไลบรารีโดยไม่ได้ปรับจูน (None คือไม่ได้ระบุใน Python wrapper ให้ backend ตัดสิน)।
max_cat_thresholdnullค่าเริ่มต้นของไลบรารี (xgboost 3.4.1)จำนวนหมวดหมู่สูงสุดที่พิจารณาจุดแบ่ง; คงค่าเริ่มต้นของไลบรารีโดยไม่ได้ปรับจูน (None คือไม่ได้ระบุใน Python wrapper ให้ backend ตัดสิน); pipeline ใช้ FoldOneHot จึงไม่ได้ส่งหมวดหมู่ native।
max_cat_to_onehotnullค่าเริ่มต้นของไลบรารี (xgboost 3.4.1)เกณฑ์เลือก one-hot สำหรับข้อมูลหมวดหมู่ native; คงค่าเริ่มต้นของไลบรารีโดยไม่ได้ปรับจูน (None คือไม่ได้ระบุใน Python wrapper ให้ backend ตัดสิน); pipeline ใช้ FoldOneHot จึงไม่ได้ส่งหมวดหมู่ native।
max_leavesnullค่าเริ่มต้นของไลบรารี (xgboost 3.4.1)จำนวนใบสูงสุด; คงค่าเริ่มต้นของไลบรารีโดยไม่ได้ปรับจูน (None คือไม่ได้ระบุใน Python wrapper ให้ backend ตัดสิน)।
missing"NaN"ค่าเริ่มต้นของไลบรารี (xgboost 3.4.1)ค่าที่ใช้แทนข้อมูลสูญหาย; คงค่าเริ่มต้นของไลบรารีโดยไม่ได้ปรับจูน।
monotone_constraintsnullค่าเริ่มต้นของไลบรารี (xgboost 3.4.1)ข้อบังคับทิศทางความสัมพันธ์; คงค่าเริ่มต้นของไลบรารีโดยไม่ได้ปรับจูน (None คือไม่ได้ระบุใน Python wrapper ให้ backend ตัดสิน)।
multi_strategynullค่าเริ่มต้นของไลบรารี (xgboost 3.4.1)วิธีเรียนรู้หลายเป้าหมาย; คงค่าเริ่มต้นของไลบรารีโดยไม่ได้ปรับจูน (None คือไม่ได้ระบุใน Python wrapper ให้ backend ตัดสิน)।
num_parallel_treenullค่าเริ่มต้นของไลบรารี (xgboost 3.4.1)จำนวนต้นไม้ขนานต่อรอบ; คงค่าเริ่มต้นของไลบรารีโดยไม่ได้ปรับจูน (None คือไม่ได้ระบุใน Python wrapper ให้ backend ตัดสิน)।
sampling_methodnullค่าเริ่มต้นของไลบรารี (xgboost 3.4.1)วิธีสุ่มแถวฝึก; คงค่าเริ่มต้นของไลบรารีโดยไม่ได้ปรับจูน (None คือไม่ได้ระบุใน Python wrapper ให้ backend ตัดสิน)।
scale_pos_weightnullค่าเริ่มต้นของไลบรารี (xgboost 3.4.1)น้ำหนักสัมพัทธ์ของคลาสบวก; คงค่าเริ่มต้นของไลบรารีโดยไม่ได้ปรับจูน (None คือไม่ได้ระบุใน Python wrapper ให้ backend ตัดสิน)।
validate_parametersnullค่าเริ่มต้นของไลบรารี (xgboost 3.4.1)การตรวจชื่อพารามิเตอร์; คงค่าเริ่มต้นของไลบรารีโดยไม่ได้ปรับจูน (None คือไม่ได้ระบุใน Python wrapper ให้ backend ตัดสิน)।
verbositynullค่าเริ่มต้นของไลบรารี (xgboost 3.4.1)ระดับข้อความของ XGBoost; คงค่าเริ่มต้นของไลบรารีโดยไม่ได้ปรับจูน (None คือไม่ได้ระบุใน Python wrapper ให้ backend ตัดสิน)।
XGB/XGB_new_cardb_adj.ipynb
พารามิเตอร์ค่าที่ใช้ที่มาคำอธิบาย
max_depth12GridSearchCV + กฎ 1-SE (ช่วงที่ค้น: [8, 12, 16, 20, 24])ความลึกสูงสุดของต้นไม้; เลือกค่าของผู้ชนะที่มีใบน้อยที่สุดในช่วง 1-SE; ตรวจขอบ: PASS (inside)।
min_child_weight1GridSearchCV + กฎ 1-SE (ช่วงที่ค้น: [1, 5, 20])น้ำหนัก Hessian ขั้นต่ำของโหนดลูก; เลือกค่าของผู้ชนะที่มีใบน้อยที่สุดในช่วง 1-SE; ตรวจขอบ: PASS (natural bound) (min edge)।
n_estimators200GridSearchCV + กฎ 1-SE (ช่วงที่ค้น: [25, 50, 100, 200, 300])จำนวนต้นไม้หรือรอบ boosting; เลือกค่าของผู้ชนะที่มีใบน้อยที่สุดในช่วง 1-SE; ตรวจขอบ: PASS (inside)।
reg_lambda1.0GridSearchCV + กฎ 1-SE (ช่วงที่ค้น: [0.0, 1.0, 10.0, 100.0])บทลงโทษ L2 ของค่าในใบ; เลือกค่าของผู้ชนะที่มีใบน้อยที่สุดในช่วง 1-SE; ตรวจขอบ: PASS (inside)।
objective"reg:squarederror"กำหนดคงที่ในโค้ดเรียนรู้จากความผิดพลาดยกกำลังสอง (ค่าเริ่มต้น); กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
booster"gbtree"กำหนดคงที่ในโค้ดใช้ต้นไม้เป็นตัวเรียนรู้ย่อย (ค่าเริ่มต้น); กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
colsample_bytree0.8กำหนดคงที่ในโค้ดแต่ละต้นสุ่มเห็นคอลัมน์ 80%; กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
early_stopping_roundsnullกำหนดคงที่ในโค้ดไม่หยุดก่อนครบรอบ (จำนวนรอบเลือกด้วย CV ใน grid); กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
eval_metric"mae"กำหนดคงที่ในโค้ดใช้เฉพาะตอนส่ง eval_set ในเซลล์ [38] เพื่อวาดกราฟรายรอบ; กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
gamma0.0กำหนดคงที่ในโค้ดerror ต้องลดอย่างน้อยเท่านี้จึงแตกกิ่ง 0 = ไม่บังคับ (ค่าเริ่มต้น); กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
grow_policy"depthwise"กำหนดคงที่ในโค้ดโตทีละชั้นจนถึง max_depth (ค่าเริ่มต้น); กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
learning_rate0.1กำหนดคงที่ในโค้ดย่อขนาดการแก้ของแต่ละต้น (คงที่ ดูเซลล์ [03]); กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
max_bin256กำหนดคงที่ในโค้ดจำนวนช่วงต่อคอลัมน์ของ hist (ค่าเริ่มต้น); กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
max_delta_step0.0กำหนดคงที่ในโค้ดจำกัดขนาดค่าในใบ 0 = ไม่จำกัด (ค่าเริ่มต้น); กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
n_jobs3กำหนดคงที่ในโค้ดจำนวน thread ภายในโมเดล (คงที่ทั้งโน้ตบุ๊ค); กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
random_state99กำหนดคงที่ในโค้ดเลขสุ่มคงที่ ให้ผลซ้ำได้; กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
reg_alpha0.0กำหนดคงที่ในโค้ดบทลงโทษ L1 ของค่าในใบ 0 = ไม่ใช้ (ค่าเริ่มต้น); กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
subsample0.8กำหนดคงที่ในโค้ดแต่ละต้นสุ่มเห็นแถว 80% ของข้อมูลฝึก; กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
tree_method"hist"กำหนดคงที่ในโค้ดแบ่งค่าเป็นช่วง (histogram) ก่อนหาจุดตัด เร็วกว่าวิธี exact มาก; กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
SEED99กำหนดคงที่ในโค้ดเลขสุ่มกลาง ใช้ทุกที่ที่มีการสุ่ม เพื่อให้ผลซ้ำได้।
N_FOLDS5กำหนดคงที่ในโค้ดจำนวน fold ของ cross-validation।
NUM_COLS["engine", "mileage", "car_age"]กำหนดคงที่ในโค้ดfeature ตัวเลข।
CAT_COLS["brand", "model", "car_type", "fuel", "gear"]กำหนดคงที่ในโค้ดfeature ประเภทกลุ่ม।
DATA_SHA256"04574b158eecae7a353528c575f19a14c542bdd379368fc756829446cf68d412"กำหนดคงที่ในโค้ดลายนิ้วมือไฟล์ข้อมูล।
MODEL_NAME"XGB"กำหนดคงที่ในโค้ดชื่อโมเดล ใช้ในผลลัพธ์ JSON।
VERSION"v5"กำหนดคงที่ในโค้ดเวอร์ชันของวิธีฝึก ใช้ในผลลัพธ์ JSON।
CURRENT_YEAR2026กำหนดคงที่ในโค้ดปีที่เก็บข้อมูล ใช้คำนวณ car_age = CURRENT_YEAR - year।
TRAIN_SIZE0.8กำหนดคงที่ในโค้ดสัดส่วนแบ่ง train / validation / test।
VAL_SIZE0.1กำหนดคงที่ในโค้ดสัดส่วนแบ่ง train / validation / test।
TEST_SIZE0.1กำหนดคงที่ในโค้ดสัดส่วนแบ่ง train / validation / test।
LEARNING_RATE0.1กำหนดคงที่ในโค้ดขนาดก้าวของ boosting (คงที่ ไม่อยู่ใน grid)।
LC_FRACTIONS[0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0]กำหนดคงที่ในโค้ดสัดส่วน train ที่ใช้วาด learning curve: 10% ถึง 100%।
LC_REPEATS5กำหนดคงที่ในโค้ดจำนวนรอบสุ่มซ้ำของ learning curve ต่อหนึ่งสัดส่วน।
SEARCH_JOBS6กำหนดคงที่ในโค้ดจำนวนงานที่รันพร้อมกันใน GridSearchCV (process คู่ขนาน)।
MODEL_THREADS3กำหนดคงที่ในโค้ดจำนวน thread ที่โมเดลแต่ละตัวใช้ภายใน।
MAE_AXIS[20000, 90000]กำหนดคงที่ในโค้ดแกน MAE (บาท) ของ learning curve และ validation curve ครอบทุกโมเดล।
R2_AXIS[0.8, 1.0]กำหนดคงที่ในโค้ดแกน R² ของ learning curve।
ROWS_AXIS[0, 40000]กำหนดคงที่ในโค้ดแกน x ของ learning curve: จำนวนแถวฝึก (ทุกโมเดลฝึกบนข้อมูลชุดเดียวกัน)।
FOLD_AXIS[-0.5, 4.5]กำหนดคงที่ในโค้ดแกน x ของกราฟแท่งราย fold: ตำแหน่ง 0..4 (ต้องสัมพันธ์กับ N_FOLDS = 5)।
MAE_BAR_AXIS[0, 70000]กำหนดคงที่ในโค้ดแกน y ของกราฟแท่ง MAE ต่อ fold: แท่งต้องเริ่มที่ 0 จึงแยกจาก MAE_AXIS।
MAE_CCP_AXIS[50000, 130000]กำหนดคงที่ในโค้ดแกน y ของกราฟ ccp_alpha (เฉพาะ DT): ฝั่ง alpha สูงเกิน MAE_AXIS จึงใช้ช่วงซูมแยก।
MAE_OOB_AXIS[52000, 54000]กำหนดคงที่ในโค้ดแกน y ของกราฟ OOB (เฉพาะ RF): เส้นแบนมาก ถ้าใช้ MAE_AXIS เส้นจะเป็นขีดตรง จึงใช้ช่วงซูมแยก।
MAE_ROUND_AXIS[30000, 70000]กำหนดคงที่ในโค้ดแกน y ของกราฟรายรอบ (เฉพาะ XGB): ตัดรอบแรกๆ ที่ MAE สูงมากทิ้งเหมือนเดิม จึงใช้ช่วงซูมแยก।
RUN_ID"XGB_new_cardb_adj"กำหนดคงที่ในโค้ดชื่อการทดลอง; กำหนดคงที่โดยไม่ได้ปรับจูน।
DATASET"new_car_dataset.csv"กำหนดคงที่ในโค้ดชื่อชุดข้อมูล; กำหนดคงที่โดยไม่ได้ปรับจูน।
VARIANT"adj"กำหนดคงที่ในโค้ดรูปแบบ base หรือ adj; กำหนดคงที่โดยไม่ได้ปรับจูน।
MAX_CAR_AGE25กำหนดคงที่ในโค้ดอายุรถสูงสุดที่ยอมรับในการกรองข้อมูล; กำหนดคงที่โดยไม่ได้ปรับจูน।
MODEL_ALIASES{"ALTIS": "COROLLAALTIS", "NP300NAVARA": "NAVARA"}กำหนดคงที่ในโค้ดกฎรวมชื่อรุ่นที่สะกดต่างกัน; กำหนดคงที่โดยไม่ได้ปรับจูน।
PERM_AXIS[0, 150000]กำหนดคงที่ในโค้ดช่วงแกนกราฟ permutation importance; กำหนดคงที่โดยไม่ได้ปรับจูน।
SHARE_AXIS[0, 1.0]กำหนดคงที่ในโค้ดช่วงแกนสัดส่วนความสำคัญตัวแปร; กำหนดคงที่โดยไม่ได้ปรับจูน।
pipeline.target_transform"np.log / np.exp"กำหนดคงที่ในโค้ดแปลงราคา log แล้วคืนด้วย exp ก่อนวัดผลเป็นบาท; กำหนดคงที่ไม่ได้ปรับจูน।
FoldOneHot.scale_numerictrueกำหนดคงที่ในโค้ดกำหนดว่าจะปรับสเกลเฉพาะตัวเลขในแต่ละ fold หรือไม่ตาม pipeline; กำหนดคงที่ไม่ได้ปรับจูน।
scaler"(x - mean_train_fold) / std_train_fold; ddof=0; std=0 → 1"กำหนดคงที่ในโค้ดใช้ mean/std จากแถวฝึกของแต่ละ fold เท่านั้นและไม่ scale dummy ตามโค้ดเพื่อป้องกันข้อมูลรั่ว।
encoder"FoldOneHot; numeric=float; dummy=float; dense"กำหนดคงที่ในโค้ดแปลงหมวดหมู่เป็น 0/1 และต่อกับตัวเลขโดย fit ใหม่ในแต่ละ fold เพื่อป้องกันข้อมูลรั่ว।
FoldOneHot.reference"most frequent; ties: name ascending, stable"กำหนดคงที่ในโค้ดทิ้งระดับที่พบบ่อยที่สุดเพื่อลดคอลัมน์ซ้ำซ้อนและใช้ชื่อเรียงตัดสินเมื่อความถี่เสมอกันตามโค้ด।
FoldOneHot.unseen"all zeros"กำหนดคงที่ในโค้ดระดับที่ไม่เคยพบในแถวฝึกได้ศูนย์ทุกคอลัมน์ตามโค้ดเพื่อให้แปลงข้อมูลใหม่ได้।
split.strategy"forced-train 1 / brand|model"กำหนดคงที่ในโค้ดใช้กติกาแบ่งชุดของไฟล์นี้ร่วมกับ TRAIN_SIZE/VAL_SIZE/TEST_SIZE และ SEED ตามโค้ดโดยไม่ได้ปรับจูน।
KFold.shuffletrueกำหนดคงที่ในโค้ดสลับลำดับแถวก่อนแบ่ง fold เพื่อให้กระจายข้อมูล; กำหนดคงที่ตามโค้ดโดยไม่ได้ปรับจูน।
KFold.random_state99กำหนดคงที่ในโค้ดเลขสุ่มของการแบ่ง fold เพื่อทำผลซ้ำ; กำหนดคงที่ตามโค้ดโดยไม่ได้ปรับจูน।
GridSearchCV.scoring"{'MAE': 'neg_mean_absolute_error', 'RMSE': 'neg_root_mean_squared_error', 'MAPE': 'neg_mean_absolute_percentage_error', 'R2': 'r2', 'leaves': count_leaves_scorer}"กำหนดคงที่ในโค้ดตัววัด CV โดยใช้ MAE หน่วยบาทเลือกผู้ชนะและใช้ใบวัดความซับซ้อน; กำหนดคงที่ตามโค้ดโดยไม่ได้ปรับจูน।
GridSearchCV.refit"select_1se"กำหนดคงที่ในโค้ดฟังก์ชันเลือกชุดค่าด้วยกฎ 1-SE แล้วฝึกผู้ชนะบน train ทั้งชุด; กำหนดคงที่ตามโค้ดโดยไม่ได้ปรับจูน।
GridSearchCV.return_train_scoretrueกำหนดคงที่ในโค้ดเก็บคะแนน train เพื่อเทียบกับ CV; กำหนดคงที่ตามโค้ดโดยไม่ได้ปรับจูน।
GridSearchCV.error_score"raise"กำหนดคงที่ในโค้ดให้หยุดเมื่อการฝึกเกิดข้อผิดพลาด; กำหนดคงที่ตามโค้ดโดยไม่ได้ปรับจูน।
GridSearchCV.n_jobs6กำหนดคงที่ในโค้ดจำนวนงานค้นหาที่ทำพร้อมกัน; กำหนดคงที่ตามโค้ดโดยไม่ได้ปรับจูน।
GridSearchCV.pre_dispatch6กำหนดคงที่ในโค้ดจำนวนงานที่ส่งล่วงหน้าเพื่อคุมหน่วยความจำ; กำหนดคงที่ตามโค้ดโดยไม่ได้ปรับจูน।
GridSearchCV.verbose0กำหนดคงที่ในโค้ดระดับข้อความความคืบหน้าของการค้นหา; กำหนดคงที่ตามโค้ดโดยไม่ได้ปรับจูน।
selection.1SE"min CV MAE + SD(ddof=0)/sqrt(N_FOLDS); min leaves → CV MAE → index"กำหนดคงที่ในโค้ดเลือกใบน้อยที่สุดในช่วงหนึ่ง SE จาก MAE ต่ำสุด; DT นับใบบน train ทั้งชุด ส่วน RF/XGB ใช้ค่าเฉลี่ยใบรวมจาก CV ตามโค้ด।
base_scorenullค่าเริ่มต้นของไลบรารี (xgboost 3.4.1)ค่าทำนายเริ่มต้น; คงค่าเริ่มต้นของไลบรารีโดยไม่ได้ปรับจูน (None คือไม่ได้ระบุใน Python wrapper ให้ backend ตัดสิน)।
callbacksnullค่าเริ่มต้นของไลบรารี (xgboost 3.4.1)ฟังก์ชันเสริมระหว่างฝึก; คงค่าเริ่มต้นของไลบรารีโดยไม่ได้ปรับจูน (None คือไม่ได้ระบุใน Python wrapper ให้ backend ตัดสิน)।
colsample_bylevelnullค่าเริ่มต้นของไลบรารี (xgboost 3.4.1)สัดส่วนคอลัมน์ที่สุ่มต่อระดับ; คงค่าเริ่มต้นของไลบรารีโดยไม่ได้ปรับจูน (None คือไม่ได้ระบุใน Python wrapper ให้ backend ตัดสิน)।
colsample_bynodenullค่าเริ่มต้นของไลบรารี (xgboost 3.4.1)สัดส่วนคอลัมน์ที่สุ่มต่อโหนด; คงค่าเริ่มต้นของไลบรารีโดยไม่ได้ปรับจูน (None คือไม่ได้ระบุใน Python wrapper ให้ backend ตัดสิน)।
devicenullค่าเริ่มต้นของไลบรารี (xgboost 3.4.1)อุปกรณ์ประมวลผล; คงค่าเริ่มต้นของไลบรารีโดยไม่ได้ปรับจูน (None คือไม่ได้ระบุใน Python wrapper ให้ backend ตัดสิน)।
enable_categoricaltrueค่าเริ่มต้นของไลบรารี (xgboost 3.4.1)การอนุญาตข้อมูลหมวดหมู่แบบ native; คงค่าเริ่มต้นของไลบรารีโดยไม่ได้ปรับจูน; pipeline ใช้ FoldOneHot จึงไม่ได้ส่งหมวดหมู่ native।
feature_typesnullค่าเริ่มต้นของไลบรารี (xgboost 3.4.1)ชนิดข้อมูลของตัวแปร; คงค่าเริ่มต้นของไลบรารีโดยไม่ได้ปรับจูน (None คือไม่ได้ระบุใน Python wrapper ให้ backend ตัดสิน)।
feature_weightsnullค่าเริ่มต้นของไลบรารี (xgboost 3.4.1)น้ำหนักในการสุ่มตัวแปร; คงค่าเริ่มต้นของไลบรารีโดยไม่ได้ปรับจูน (None คือไม่ได้ระบุใน Python wrapper ให้ backend ตัดสิน)।
importance_typenullค่าเริ่มต้นของไลบรารี (xgboost 3.4.1)วิธีสรุปความสำคัญตัวแปร; คงค่าเริ่มต้นของไลบรารีโดยไม่ได้ปรับจูน (None คือไม่ได้ระบุใน Python wrapper ให้ backend ตัดสิน)।
interaction_constraintsnullค่าเริ่มต้นของไลบรารี (xgboost 3.4.1)ข้อจำกัดปฏิสัมพันธ์ของตัวแปร; คงค่าเริ่มต้นของไลบรารีโดยไม่ได้ปรับจูน (None คือไม่ได้ระบุใน Python wrapper ให้ backend ตัดสิน)।
max_cat_thresholdnullค่าเริ่มต้นของไลบรารี (xgboost 3.4.1)จำนวนหมวดหมู่สูงสุดที่พิจารณาจุดแบ่ง; คงค่าเริ่มต้นของไลบรารีโดยไม่ได้ปรับจูน (None คือไม่ได้ระบุใน Python wrapper ให้ backend ตัดสิน); pipeline ใช้ FoldOneHot จึงไม่ได้ส่งหมวดหมู่ native।
max_cat_to_onehotnullค่าเริ่มต้นของไลบรารี (xgboost 3.4.1)เกณฑ์เลือก one-hot สำหรับข้อมูลหมวดหมู่ native; คงค่าเริ่มต้นของไลบรารีโดยไม่ได้ปรับจูน (None คือไม่ได้ระบุใน Python wrapper ให้ backend ตัดสิน); pipeline ใช้ FoldOneHot จึงไม่ได้ส่งหมวดหมู่ native।
max_leavesnullค่าเริ่มต้นของไลบรารี (xgboost 3.4.1)จำนวนใบสูงสุด; คงค่าเริ่มต้นของไลบรารีโดยไม่ได้ปรับจูน (None คือไม่ได้ระบุใน Python wrapper ให้ backend ตัดสิน)।
missing"NaN"ค่าเริ่มต้นของไลบรารี (xgboost 3.4.1)ค่าที่ใช้แทนข้อมูลสูญหาย; คงค่าเริ่มต้นของไลบรารีโดยไม่ได้ปรับจูน।
monotone_constraintsnullค่าเริ่มต้นของไลบรารี (xgboost 3.4.1)ข้อบังคับทิศทางความสัมพันธ์; คงค่าเริ่มต้นของไลบรารีโดยไม่ได้ปรับจูน (None คือไม่ได้ระบุใน Python wrapper ให้ backend ตัดสิน)।
multi_strategynullค่าเริ่มต้นของไลบรารี (xgboost 3.4.1)วิธีเรียนรู้หลายเป้าหมาย; คงค่าเริ่มต้นของไลบรารีโดยไม่ได้ปรับจูน (None คือไม่ได้ระบุใน Python wrapper ให้ backend ตัดสิน)।
num_parallel_treenullค่าเริ่มต้นของไลบรารี (xgboost 3.4.1)จำนวนต้นไม้ขนานต่อรอบ; คงค่าเริ่มต้นของไลบรารีโดยไม่ได้ปรับจูน (None คือไม่ได้ระบุใน Python wrapper ให้ backend ตัดสิน)।
sampling_methodnullค่าเริ่มต้นของไลบรารี (xgboost 3.4.1)วิธีสุ่มแถวฝึก; คงค่าเริ่มต้นของไลบรารีโดยไม่ได้ปรับจูน (None คือไม่ได้ระบุใน Python wrapper ให้ backend ตัดสิน)।
scale_pos_weightnullค่าเริ่มต้นของไลบรารี (xgboost 3.4.1)น้ำหนักสัมพัทธ์ของคลาสบวก; คงค่าเริ่มต้นของไลบรารีโดยไม่ได้ปรับจูน (None คือไม่ได้ระบุใน Python wrapper ให้ backend ตัดสิน)।
validate_parametersnullค่าเริ่มต้นของไลบรารี (xgboost 3.4.1)การตรวจชื่อพารามิเตอร์; คงค่าเริ่มต้นของไลบรารีโดยไม่ได้ปรับจูน (None คือไม่ได้ระบุใน Python wrapper ให้ backend ตัดสิน)।
verbositynullค่าเริ่มต้นของไลบรารี (xgboost 3.4.1)ระดับข้อความของ XGBoost; คงค่าเริ่มต้นของไลบรารีโดยไม่ได้ปรับจูน (None คือไม่ได้ระบุใน Python wrapper ให้ backend ตัดสิน)।
target.check_inversetrueค่าเริ่มต้นของไลบรารี (sklearn 1.9.1)ตรวจว่าฟังก์ชันแปลงและแปลงกลับสอดคล้องกัน; คงค่าเริ่มต้นโดยไม่ได้ปรับจูน।
target.transformernullค่าเริ่มต้นของไลบรารี (sklearn 1.9.1)ตัวแปลงเป้าหมายแบบ estimator ซึ่งไม่ได้ส่งเพราะใช้คู่ฟังก์ชัน log/exp; คงค่าเริ่มต้นโดยไม่ได้ปรับจูน।
XGB/XGB_merge50minC.ipynb
พารามิเตอร์ค่าที่ใช้ที่มาคำอธิบาย
max_depth16GridSearchCV + กฎ 1-SE (ช่วงที่ค้น: [8, 12, 16, 20, 24])ความลึกสูงสุดของต้นไม้; เลือกค่าของผู้ชนะที่มีใบน้อยที่สุดในช่วง 1-SE; ตรวจขอบ: PASS (inside)।
min_child_weight1GridSearchCV + กฎ 1-SE (ช่วงที่ค้น: [1, 5, 20])น้ำหนัก Hessian ขั้นต่ำของโหนดลูก; เลือกค่าของผู้ชนะที่มีใบน้อยที่สุดในช่วง 1-SE; ตรวจขอบ: PASS (natural bound) (min edge)।
n_estimators100GridSearchCV + กฎ 1-SE (ช่วงที่ค้น: [25, 50, 100, 200, 300])จำนวนต้นไม้หรือรอบ boosting; เลือกค่าของผู้ชนะที่มีใบน้อยที่สุดในช่วง 1-SE; ตรวจขอบ: PASS (inside)।
reg_lambda10.0GridSearchCV + กฎ 1-SE (ช่วงที่ค้น: [0.0, 1.0, 10.0, 100.0])บทลงโทษ L2 ของค่าในใบ; เลือกค่าของผู้ชนะที่มีใบน้อยที่สุดในช่วง 1-SE; ตรวจขอบ: PASS (inside)।
objective"reg:squarederror"กำหนดคงที่ในโค้ดเรียนรู้จากความผิดพลาดยกกำลังสอง (ค่าเริ่มต้น); กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
booster"gbtree"กำหนดคงที่ในโค้ดใช้ต้นไม้เป็นตัวเรียนรู้ย่อย (ค่าเริ่มต้น); กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
colsample_bytree0.8กำหนดคงที่ในโค้ดแต่ละต้นสุ่มเห็นคอลัมน์ 80%; กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
early_stopping_roundsnullกำหนดคงที่ในโค้ดไม่หยุดก่อนครบรอบ (จำนวนรอบเลือกด้วย CV ใน grid); กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
eval_metric"mae"กำหนดคงที่ในโค้ดใช้เฉพาะตอนส่ง eval_set ในเซลล์ [38] เพื่อวาดกราฟรายรอบ; กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
gamma0.0กำหนดคงที่ในโค้ดerror ต้องลดอย่างน้อยเท่านี้จึงแตกกิ่ง 0 = ไม่บังคับ (ค่าเริ่มต้น); กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
grow_policy"depthwise"กำหนดคงที่ในโค้ดโตทีละชั้นจนถึง max_depth (ค่าเริ่มต้น); กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
learning_rate0.1กำหนดคงที่ในโค้ดย่อขนาดการแก้ของแต่ละต้น (คงที่ ดูเซลล์ [03]); กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
max_bin256กำหนดคงที่ในโค้ดจำนวนช่วงต่อคอลัมน์ของ hist (ค่าเริ่มต้น); กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
max_delta_step0.0กำหนดคงที่ในโค้ดจำกัดขนาดค่าในใบ 0 = ไม่จำกัด (ค่าเริ่มต้น); กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
n_jobs3กำหนดคงที่ในโค้ดจำนวน thread ภายในโมเดล (คงที่ทั้งโน้ตบุ๊ค); กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
random_state99กำหนดคงที่ในโค้ดเลขสุ่มคงที่ ให้ผลซ้ำได้; กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
reg_alpha0.0กำหนดคงที่ในโค้ดบทลงโทษ L1 ของค่าในใบ 0 = ไม่ใช้ (ค่าเริ่มต้น); กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
subsample0.8กำหนดคงที่ในโค้ดแต่ละต้นสุ่มเห็นแถว 80% ของข้อมูลฝึก; กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
tree_method"hist"กำหนดคงที่ในโค้ดแบ่งค่าเป็นช่วง (histogram) ก่อนหาจุดตัด เร็วกว่าวิธี exact มาก; กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
SEED99กำหนดคงที่ในโค้ดเลขสุ่มกลาง ใช้ทุกที่ที่มีการสุ่ม เพื่อให้ผลซ้ำได้।
N_FOLDS5กำหนดคงที่ในโค้ดจำนวน fold ของ cross-validation।
NUM_COLS["engine", "mileage", "car_age"]กำหนดคงที่ในโค้ดfeature ตัวเลข।
CAT_COLS["brand", "model", "car_type", "fuel", "gear"]กำหนดคงที่ในโค้ดfeature ประเภทกลุ่ม।
DATA_SHA256"191adb789285fe531bf82521e7ac0892020cbf0bf4325d22f6a657fabaab8aa1"กำหนดคงที่ในโค้ดลายนิ้วมือไฟล์ข้อมูล।
MODEL_NAME"XGB"กำหนดคงที่ในโค้ดชื่อโมเดล ใช้ในผลลัพธ์ JSON।
VERSION"v5"กำหนดคงที่ในโค้ดเวอร์ชันของวิธีฝึก ใช้ในผลลัพธ์ JSON।
CURRENT_YEAR2026กำหนดคงที่ในโค้ดปีที่เก็บข้อมูล ใช้คำนวณ car_age = CURRENT_YEAR - year।
TRAIN_SIZE0.8กำหนดคงที่ในโค้ดสัดส่วนแบ่ง train / validation / test।
VAL_SIZE0.1กำหนดคงที่ในโค้ดสัดส่วนแบ่ง train / validation / test।
TEST_SIZE0.1กำหนดคงที่ในโค้ดสัดส่วนแบ่ง train / validation / test।
LEARNING_RATE0.1กำหนดคงที่ในโค้ดขนาดก้าวของ boosting (คงที่ ไม่อยู่ใน grid)।
LC_FRACTIONS[0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0]กำหนดคงที่ในโค้ดสัดส่วน train ที่ใช้วาด learning curve: 10% ถึง 100%।
LC_REPEATS5กำหนดคงที่ในโค้ดจำนวนรอบสุ่มซ้ำของ learning curve ต่อหนึ่งสัดส่วน।
SEARCH_JOBS6กำหนดคงที่ในโค้ดจำนวนงานที่รันพร้อมกันใน GridSearchCV (process คู่ขนาน)।
MODEL_THREADS3กำหนดคงที่ในโค้ดจำนวน thread ที่โมเดลแต่ละตัวใช้ภายใน।
MAE_AXIS[20000, 90000]กำหนดคงที่ในโค้ดแกน MAE (บาท) ของ learning curve และ validation curve ครอบทุกโมเดล।
R2_AXIS[0.8, 1.0]กำหนดคงที่ในโค้ดแกน R² ของ learning curve।
ROWS_AXIS[0, 40000]กำหนดคงที่ในโค้ดแกน x ของ learning curve: จำนวนแถวฝึก (ทุกโมเดลฝึกบนข้อมูลชุดเดียวกัน)।
FOLD_AXIS[-0.5, 4.5]กำหนดคงที่ในโค้ดแกน x ของกราฟแท่งราย fold: ตำแหน่ง 0..4 (ต้องสัมพันธ์กับ N_FOLDS = 5)।
MAE_BAR_AXIS[0, 70000]กำหนดคงที่ในโค้ดแกน y ของกราฟแท่ง MAE ต่อ fold: แท่งต้องเริ่มที่ 0 จึงแยกจาก MAE_AXIS।
MAE_CCP_AXIS[50000, 130000]กำหนดคงที่ในโค้ดแกน y ของกราฟ ccp_alpha (เฉพาะ DT): ฝั่ง alpha สูงเกิน MAE_AXIS จึงใช้ช่วงซูมแยก।
MAE_OOB_AXIS[52000, 54000]กำหนดคงที่ในโค้ดแกน y ของกราฟ OOB (เฉพาะ RF): เส้นแบนมาก ถ้าใช้ MAE_AXIS เส้นจะเป็นขีดตรง จึงใช้ช่วงซูมแยก।
MAE_ROUND_AXIS[30000, 70000]กำหนดคงที่ในโค้ดแกน y ของกราฟรายรอบ (เฉพาะ XGB): ตัดรอบแรกๆ ที่ MAE สูงมากทิ้งเหมือนเดิม จึงใช้ช่วงซูมแยก।
RUN_ID"XGB_merge50minC"กำหนดคงที่ในโค้ดชื่อการทดลอง; กำหนดคงที่โดยไม่ได้ปรับจูน।
DATASET"merge_50min_clean.csv"กำหนดคงที่ในโค้ดชื่อชุดข้อมูล; กำหนดคงที่โดยไม่ได้ปรับจูน।
VARIANT"base"กำหนดคงที่ในโค้ดรูปแบบ base หรือ adj; กำหนดคงที่โดยไม่ได้ปรับจูน।
PERM_AXIS[0, 150000]กำหนดคงที่ในโค้ดช่วงแกนกราฟ permutation importance; กำหนดคงที่โดยไม่ได้ปรับจูน।
SHARE_AXIS[0, 1.0]กำหนดคงที่ในโค้ดช่วงแกนสัดส่วนความสำคัญตัวแปร; กำหนดคงที่โดยไม่ได้ปรับจูน।
pipeline.target_transform"identity (บาท)"กำหนดคงที่ในโค้ดใช้ราคาเป็นบาทโดยไม่แปลงเป้าหมาย; กำหนดคงที่ไม่ได้ปรับจูน।
FoldOneHot.scale_numericfalseกำหนดคงที่ในโค้ดกำหนดว่าจะปรับสเกลเฉพาะตัวเลขในแต่ละ fold หรือไม่ตาม pipeline; กำหนดคงที่ไม่ได้ปรับจูน।
scaler"ไม่มี"กำหนดคงที่ในโค้ดส่งค่าตัวเลขเดิมเข้าโมเดลตามโค้ดโดยไม่ได้ปรับจูนการ scale।
encoder"FoldOneHot; numeric=float; dummy=float; dense"กำหนดคงที่ในโค้ดแปลงหมวดหมู่เป็น 0/1 และต่อกับตัวเลขโดย fit ใหม่ในแต่ละ fold เพื่อป้องกันข้อมูลรั่ว।
FoldOneHot.reference"most frequent; ties: name ascending, stable"กำหนดคงที่ในโค้ดทิ้งระดับที่พบบ่อยที่สุดเพื่อลดคอลัมน์ซ้ำซ้อนและใช้ชื่อเรียงตัดสินเมื่อความถี่เสมอกันตามโค้ด।
FoldOneHot.unseen"all zeros"กำหนดคงที่ในโค้ดระดับที่ไม่เคยพบในแถวฝึกได้ศูนย์ทุกคอลัมน์ตามโค้ดเพื่อให้แปลงข้อมูลใหม่ได้।
split.strategy"stratify brand|model"กำหนดคงที่ในโค้ดใช้กติกาแบ่งชุดของไฟล์นี้ร่วมกับ TRAIN_SIZE/VAL_SIZE/TEST_SIZE และ SEED ตามโค้ดโดยไม่ได้ปรับจูน।
KFold.shuffletrueกำหนดคงที่ในโค้ดสลับลำดับแถวก่อนแบ่ง fold เพื่อให้กระจายข้อมูล; กำหนดคงที่ตามโค้ดโดยไม่ได้ปรับจูน।
KFold.random_state99กำหนดคงที่ในโค้ดเลขสุ่มของการแบ่ง fold เพื่อทำผลซ้ำ; กำหนดคงที่ตามโค้ดโดยไม่ได้ปรับจูน।
GridSearchCV.scoring"{'MAE': 'neg_mean_absolute_error', 'RMSE': 'neg_root_mean_squared_error', 'MAPE': 'neg_mean_absolute_percentage_error', 'R2': 'r2', 'leaves': count_leaves_scorer}"กำหนดคงที่ในโค้ดตัววัด CV โดยใช้ MAE หน่วยบาทเลือกผู้ชนะและใช้ใบวัดความซับซ้อน; กำหนดคงที่ตามโค้ดโดยไม่ได้ปรับจูน।
GridSearchCV.refit"select_1se"กำหนดคงที่ในโค้ดฟังก์ชันเลือกชุดค่าด้วยกฎ 1-SE แล้วฝึกผู้ชนะบน train ทั้งชุด; กำหนดคงที่ตามโค้ดโดยไม่ได้ปรับจูน।
GridSearchCV.return_train_scoretrueกำหนดคงที่ในโค้ดเก็บคะแนน train เพื่อเทียบกับ CV; กำหนดคงที่ตามโค้ดโดยไม่ได้ปรับจูน।
GridSearchCV.error_score"raise"กำหนดคงที่ในโค้ดให้หยุดเมื่อการฝึกเกิดข้อผิดพลาด; กำหนดคงที่ตามโค้ดโดยไม่ได้ปรับจูน।
GridSearchCV.n_jobs6กำหนดคงที่ในโค้ดจำนวนงานค้นหาที่ทำพร้อมกัน; กำหนดคงที่ตามโค้ดโดยไม่ได้ปรับจูน।
GridSearchCV.pre_dispatch6กำหนดคงที่ในโค้ดจำนวนงานที่ส่งล่วงหน้าเพื่อคุมหน่วยความจำ; กำหนดคงที่ตามโค้ดโดยไม่ได้ปรับจูน।
GridSearchCV.verbose0กำหนดคงที่ในโค้ดระดับข้อความความคืบหน้าของการค้นหา; กำหนดคงที่ตามโค้ดโดยไม่ได้ปรับจูน।
selection.1SE"min CV MAE + SD(ddof=0)/sqrt(N_FOLDS); min leaves → CV MAE → index"กำหนดคงที่ในโค้ดเลือกใบน้อยที่สุดในช่วงหนึ่ง SE จาก MAE ต่ำสุด; DT นับใบบน train ทั้งชุด ส่วน RF/XGB ใช้ค่าเฉลี่ยใบรวมจาก CV ตามโค้ด।
base_scorenullค่าเริ่มต้นของไลบรารี (xgboost 3.4.1)ค่าทำนายเริ่มต้น; คงค่าเริ่มต้นของไลบรารีโดยไม่ได้ปรับจูน (None คือไม่ได้ระบุใน Python wrapper ให้ backend ตัดสิน)।
callbacksnullค่าเริ่มต้นของไลบรารี (xgboost 3.4.1)ฟังก์ชันเสริมระหว่างฝึก; คงค่าเริ่มต้นของไลบรารีโดยไม่ได้ปรับจูน (None คือไม่ได้ระบุใน Python wrapper ให้ backend ตัดสิน)।
colsample_bylevelnullค่าเริ่มต้นของไลบรารี (xgboost 3.4.1)สัดส่วนคอลัมน์ที่สุ่มต่อระดับ; คงค่าเริ่มต้นของไลบรารีโดยไม่ได้ปรับจูน (None คือไม่ได้ระบุใน Python wrapper ให้ backend ตัดสิน)।
colsample_bynodenullค่าเริ่มต้นของไลบรารี (xgboost 3.4.1)สัดส่วนคอลัมน์ที่สุ่มต่อโหนด; คงค่าเริ่มต้นของไลบรารีโดยไม่ได้ปรับจูน (None คือไม่ได้ระบุใน Python wrapper ให้ backend ตัดสิน)।
devicenullค่าเริ่มต้นของไลบรารี (xgboost 3.4.1)อุปกรณ์ประมวลผล; คงค่าเริ่มต้นของไลบรารีโดยไม่ได้ปรับจูน (None คือไม่ได้ระบุใน Python wrapper ให้ backend ตัดสิน)।
enable_categoricaltrueค่าเริ่มต้นของไลบรารี (xgboost 3.4.1)การอนุญาตข้อมูลหมวดหมู่แบบ native; คงค่าเริ่มต้นของไลบรารีโดยไม่ได้ปรับจูน; pipeline ใช้ FoldOneHot จึงไม่ได้ส่งหมวดหมู่ native।
feature_typesnullค่าเริ่มต้นของไลบรารี (xgboost 3.4.1)ชนิดข้อมูลของตัวแปร; คงค่าเริ่มต้นของไลบรารีโดยไม่ได้ปรับจูน (None คือไม่ได้ระบุใน Python wrapper ให้ backend ตัดสิน)।
feature_weightsnullค่าเริ่มต้นของไลบรารี (xgboost 3.4.1)น้ำหนักในการสุ่มตัวแปร; คงค่าเริ่มต้นของไลบรารีโดยไม่ได้ปรับจูน (None คือไม่ได้ระบุใน Python wrapper ให้ backend ตัดสิน)।
importance_typenullค่าเริ่มต้นของไลบรารี (xgboost 3.4.1)วิธีสรุปความสำคัญตัวแปร; คงค่าเริ่มต้นของไลบรารีโดยไม่ได้ปรับจูน (None คือไม่ได้ระบุใน Python wrapper ให้ backend ตัดสิน)।
interaction_constraintsnullค่าเริ่มต้นของไลบรารี (xgboost 3.4.1)ข้อจำกัดปฏิสัมพันธ์ของตัวแปร; คงค่าเริ่มต้นของไลบรารีโดยไม่ได้ปรับจูน (None คือไม่ได้ระบุใน Python wrapper ให้ backend ตัดสิน)।
max_cat_thresholdnullค่าเริ่มต้นของไลบรารี (xgboost 3.4.1)จำนวนหมวดหมู่สูงสุดที่พิจารณาจุดแบ่ง; คงค่าเริ่มต้นของไลบรารีโดยไม่ได้ปรับจูน (None คือไม่ได้ระบุใน Python wrapper ให้ backend ตัดสิน); pipeline ใช้ FoldOneHot จึงไม่ได้ส่งหมวดหมู่ native।
max_cat_to_onehotnullค่าเริ่มต้นของไลบรารี (xgboost 3.4.1)เกณฑ์เลือก one-hot สำหรับข้อมูลหมวดหมู่ native; คงค่าเริ่มต้นของไลบรารีโดยไม่ได้ปรับจูน (None คือไม่ได้ระบุใน Python wrapper ให้ backend ตัดสิน); pipeline ใช้ FoldOneHot จึงไม่ได้ส่งหมวดหมู่ native।
max_leavesnullค่าเริ่มต้นของไลบรารี (xgboost 3.4.1)จำนวนใบสูงสุด; คงค่าเริ่มต้นของไลบรารีโดยไม่ได้ปรับจูน (None คือไม่ได้ระบุใน Python wrapper ให้ backend ตัดสิน)।
missing"NaN"ค่าเริ่มต้นของไลบรารี (xgboost 3.4.1)ค่าที่ใช้แทนข้อมูลสูญหาย; คงค่าเริ่มต้นของไลบรารีโดยไม่ได้ปรับจูน।
monotone_constraintsnullค่าเริ่มต้นของไลบรารี (xgboost 3.4.1)ข้อบังคับทิศทางความสัมพันธ์; คงค่าเริ่มต้นของไลบรารีโดยไม่ได้ปรับจูน (None คือไม่ได้ระบุใน Python wrapper ให้ backend ตัดสิน)।
multi_strategynullค่าเริ่มต้นของไลบรารี (xgboost 3.4.1)วิธีเรียนรู้หลายเป้าหมาย; คงค่าเริ่มต้นของไลบรารีโดยไม่ได้ปรับจูน (None คือไม่ได้ระบุใน Python wrapper ให้ backend ตัดสิน)।
num_parallel_treenullค่าเริ่มต้นของไลบรารี (xgboost 3.4.1)จำนวนต้นไม้ขนานต่อรอบ; คงค่าเริ่มต้นของไลบรารีโดยไม่ได้ปรับจูน (None คือไม่ได้ระบุใน Python wrapper ให้ backend ตัดสิน)।
sampling_methodnullค่าเริ่มต้นของไลบรารี (xgboost 3.4.1)วิธีสุ่มแถวฝึก; คงค่าเริ่มต้นของไลบรารีโดยไม่ได้ปรับจูน (None คือไม่ได้ระบุใน Python wrapper ให้ backend ตัดสิน)।
scale_pos_weightnullค่าเริ่มต้นของไลบรารี (xgboost 3.4.1)น้ำหนักสัมพัทธ์ของคลาสบวก; คงค่าเริ่มต้นของไลบรารีโดยไม่ได้ปรับจูน (None คือไม่ได้ระบุใน Python wrapper ให้ backend ตัดสิน)।
validate_parametersnullค่าเริ่มต้นของไลบรารี (xgboost 3.4.1)การตรวจชื่อพารามิเตอร์; คงค่าเริ่มต้นของไลบรารีโดยไม่ได้ปรับจูน (None คือไม่ได้ระบุใน Python wrapper ให้ backend ตัดสิน)।
verbositynullค่าเริ่มต้นของไลบรารี (xgboost 3.4.1)ระดับข้อความของ XGBoost; คงค่าเริ่มต้นของไลบรารีโดยไม่ได้ปรับจูน (None คือไม่ได้ระบุใน Python wrapper ให้ backend ตัดสิน)।
XGB/XGB_merge50minC_adj.ipynb
พารามิเตอร์ค่าที่ใช้ที่มาคำอธิบาย
max_depth12GridSearchCV + กฎ 1-SE (ช่วงที่ค้น: [8, 12, 16, 20, 24])ความลึกสูงสุดของต้นไม้; เลือกค่าของผู้ชนะที่มีใบน้อยที่สุดในช่วง 1-SE; ตรวจขอบ: PASS (inside)।
min_child_weight1GridSearchCV + กฎ 1-SE (ช่วงที่ค้น: [1, 5, 20])น้ำหนัก Hessian ขั้นต่ำของโหนดลูก; เลือกค่าของผู้ชนะที่มีใบน้อยที่สุดในช่วง 1-SE; ตรวจขอบ: PASS (natural bound) (min edge)।
n_estimators100GridSearchCV + กฎ 1-SE (ช่วงที่ค้น: [25, 50, 100, 200, 300])จำนวนต้นไม้หรือรอบ boosting; เลือกค่าของผู้ชนะที่มีใบน้อยที่สุดในช่วง 1-SE; ตรวจขอบ: PASS (inside)।
reg_lambda1.0GridSearchCV + กฎ 1-SE (ช่วงที่ค้น: [0.0, 1.0, 10.0, 100.0])บทลงโทษ L2 ของค่าในใบ; เลือกค่าของผู้ชนะที่มีใบน้อยที่สุดในช่วง 1-SE; ตรวจขอบ: PASS (inside)।
objective"reg:squarederror"กำหนดคงที่ในโค้ดเรียนรู้จากความผิดพลาดยกกำลังสอง (ค่าเริ่มต้น); กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
booster"gbtree"กำหนดคงที่ในโค้ดใช้ต้นไม้เป็นตัวเรียนรู้ย่อย (ค่าเริ่มต้น); กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
colsample_bytree0.8กำหนดคงที่ในโค้ดแต่ละต้นสุ่มเห็นคอลัมน์ 80%; กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
early_stopping_roundsnullกำหนดคงที่ในโค้ดไม่หยุดก่อนครบรอบ (จำนวนรอบเลือกด้วย CV ใน grid); กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
eval_metric"mae"กำหนดคงที่ในโค้ดใช้เฉพาะตอนส่ง eval_set ในเซลล์ [38] เพื่อวาดกราฟรายรอบ; กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
gamma0.0กำหนดคงที่ในโค้ดerror ต้องลดอย่างน้อยเท่านี้จึงแตกกิ่ง 0 = ไม่บังคับ (ค่าเริ่มต้น); กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
grow_policy"depthwise"กำหนดคงที่ในโค้ดโตทีละชั้นจนถึง max_depth (ค่าเริ่มต้น); กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
learning_rate0.1กำหนดคงที่ในโค้ดย่อขนาดการแก้ของแต่ละต้น (คงที่ ดูเซลล์ [03]); กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
max_bin256กำหนดคงที่ในโค้ดจำนวนช่วงต่อคอลัมน์ของ hist (ค่าเริ่มต้น); กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
max_delta_step0.0กำหนดคงที่ในโค้ดจำกัดขนาดค่าในใบ 0 = ไม่จำกัด (ค่าเริ่มต้น); กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
n_jobs3กำหนดคงที่ในโค้ดจำนวน thread ภายในโมเดล (คงที่ทั้งโน้ตบุ๊ค); กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
random_state99กำหนดคงที่ในโค้ดเลขสุ่มคงที่ ให้ผลซ้ำได้; กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
reg_alpha0.0กำหนดคงที่ในโค้ดบทลงโทษ L1 ของค่าในใบ 0 = ไม่ใช้ (ค่าเริ่มต้น); กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
subsample0.8กำหนดคงที่ในโค้ดแต่ละต้นสุ่มเห็นแถว 80% ของข้อมูลฝึก; กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
tree_method"hist"กำหนดคงที่ในโค้ดแบ่งค่าเป็นช่วง (histogram) ก่อนหาจุดตัด เร็วกว่าวิธี exact มาก; กำหนดคงที่ ไม่ได้ค้นใน grid ของไฟล์นี้।
SEED99กำหนดคงที่ในโค้ดเลขสุ่มกลาง ใช้ทุกที่ที่มีการสุ่ม เพื่อให้ผลซ้ำได้।
N_FOLDS5กำหนดคงที่ในโค้ดจำนวน fold ของ cross-validation।
NUM_COLS["engine", "mileage", "car_age"]กำหนดคงที่ในโค้ดfeature ตัวเลข।
CAT_COLS["brand", "model", "car_type", "fuel", "gear"]กำหนดคงที่ในโค้ดfeature ประเภทกลุ่ม।
DATA_SHA256"191adb789285fe531bf82521e7ac0892020cbf0bf4325d22f6a657fabaab8aa1"กำหนดคงที่ในโค้ดลายนิ้วมือไฟล์ข้อมูล।
MODEL_NAME"XGB"กำหนดคงที่ในโค้ดชื่อโมเดล ใช้ในผลลัพธ์ JSON।
VERSION"v5"กำหนดคงที่ในโค้ดเวอร์ชันของวิธีฝึก ใช้ในผลลัพธ์ JSON।
CURRENT_YEAR2026กำหนดคงที่ในโค้ดปีที่เก็บข้อมูล ใช้คำนวณ car_age = CURRENT_YEAR - year।
TRAIN_SIZE0.8กำหนดคงที่ในโค้ดสัดส่วนแบ่ง train / validation / test।
VAL_SIZE0.1กำหนดคงที่ในโค้ดสัดส่วนแบ่ง train / validation / test।
TEST_SIZE0.1กำหนดคงที่ในโค้ดสัดส่วนแบ่ง train / validation / test।
LEARNING_RATE0.1กำหนดคงที่ในโค้ดขนาดก้าวของ boosting (คงที่ ไม่อยู่ใน grid)।
LC_FRACTIONS[0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0]กำหนดคงที่ในโค้ดสัดส่วน train ที่ใช้วาด learning curve: 10% ถึง 100%।
LC_REPEATS5กำหนดคงที่ในโค้ดจำนวนรอบสุ่มซ้ำของ learning curve ต่อหนึ่งสัดส่วน।
SEARCH_JOBS6กำหนดคงที่ในโค้ดจำนวนงานที่รันพร้อมกันใน GridSearchCV (process คู่ขนาน)।
MODEL_THREADS3กำหนดคงที่ในโค้ดจำนวน thread ที่โมเดลแต่ละตัวใช้ภายใน।
MAE_AXIS[20000, 90000]กำหนดคงที่ในโค้ดแกน MAE (บาท) ของ learning curve และ validation curve ครอบทุกโมเดล।
R2_AXIS[0.8, 1.0]กำหนดคงที่ในโค้ดแกน R² ของ learning curve।
ROWS_AXIS[0, 40000]กำหนดคงที่ในโค้ดแกน x ของ learning curve: จำนวนแถวฝึก (ทุกโมเดลฝึกบนข้อมูลชุดเดียวกัน)।
FOLD_AXIS[-0.5, 4.5]กำหนดคงที่ในโค้ดแกน x ของกราฟแท่งราย fold: ตำแหน่ง 0..4 (ต้องสัมพันธ์กับ N_FOLDS = 5)।
MAE_BAR_AXIS[0, 70000]กำหนดคงที่ในโค้ดแกน y ของกราฟแท่ง MAE ต่อ fold: แท่งต้องเริ่มที่ 0 จึงแยกจาก MAE_AXIS।
MAE_CCP_AXIS[50000, 130000]กำหนดคงที่ในโค้ดแกน y ของกราฟ ccp_alpha (เฉพาะ DT): ฝั่ง alpha สูงเกิน MAE_AXIS จึงใช้ช่วงซูมแยก।
MAE_OOB_AXIS[52000, 54000]กำหนดคงที่ในโค้ดแกน y ของกราฟ OOB (เฉพาะ RF): เส้นแบนมาก ถ้าใช้ MAE_AXIS เส้นจะเป็นขีดตรง จึงใช้ช่วงซูมแยก।
MAE_ROUND_AXIS[30000, 70000]กำหนดคงที่ในโค้ดแกน y ของกราฟรายรอบ (เฉพาะ XGB): ตัดรอบแรกๆ ที่ MAE สูงมากทิ้งเหมือนเดิม จึงใช้ช่วงซูมแยก।
RUN_ID"XGB_merge50minC_adj"กำหนดคงที่ในโค้ดชื่อการทดลอง; กำหนดคงที่โดยไม่ได้ปรับจูน।
DATASET"merge_50min_clean.csv"กำหนดคงที่ในโค้ดชื่อชุดข้อมูล; กำหนดคงที่โดยไม่ได้ปรับจูน।
VARIANT"adj"กำหนดคงที่ในโค้ดรูปแบบ base หรือ adj; กำหนดคงที่โดยไม่ได้ปรับจูน।
PERM_AXIS[0, 150000]กำหนดคงที่ในโค้ดช่วงแกนกราฟ permutation importance; กำหนดคงที่โดยไม่ได้ปรับจูน।
SHARE_AXIS[0, 1.0]กำหนดคงที่ในโค้ดช่วงแกนสัดส่วนความสำคัญตัวแปร; กำหนดคงที่โดยไม่ได้ปรับจูน।
pipeline.target_transform"np.log / np.exp"กำหนดคงที่ในโค้ดแปลงราคา log แล้วคืนด้วย exp ก่อนวัดผลเป็นบาท; กำหนดคงที่ไม่ได้ปรับจูน।
FoldOneHot.scale_numerictrueกำหนดคงที่ในโค้ดกำหนดว่าจะปรับสเกลเฉพาะตัวเลขในแต่ละ fold หรือไม่ตาม pipeline; กำหนดคงที่ไม่ได้ปรับจูน।
scaler"(x - mean_train_fold) / std_train_fold; ddof=0; std=0 → 1"กำหนดคงที่ในโค้ดใช้ mean/std จากแถวฝึกของแต่ละ fold เท่านั้นและไม่ scale dummy ตามโค้ดเพื่อป้องกันข้อมูลรั่ว।
encoder"FoldOneHot; numeric=float; dummy=float; dense"กำหนดคงที่ในโค้ดแปลงหมวดหมู่เป็น 0/1 และต่อกับตัวเลขโดย fit ใหม่ในแต่ละ fold เพื่อป้องกันข้อมูลรั่ว।
FoldOneHot.reference"most frequent; ties: name ascending, stable"กำหนดคงที่ในโค้ดทิ้งระดับที่พบบ่อยที่สุดเพื่อลดคอลัมน์ซ้ำซ้อนและใช้ชื่อเรียงตัดสินเมื่อความถี่เสมอกันตามโค้ด।
FoldOneHot.unseen"all zeros"กำหนดคงที่ในโค้ดระดับที่ไม่เคยพบในแถวฝึกได้ศูนย์ทุกคอลัมน์ตามโค้ดเพื่อให้แปลงข้อมูลใหม่ได้।
split.strategy"stratify brand|model"กำหนดคงที่ในโค้ดใช้กติกาแบ่งชุดของไฟล์นี้ร่วมกับ TRAIN_SIZE/VAL_SIZE/TEST_SIZE และ SEED ตามโค้ดโดยไม่ได้ปรับจูน।
KFold.shuffletrueกำหนดคงที่ในโค้ดสลับลำดับแถวก่อนแบ่ง fold เพื่อให้กระจายข้อมูล; กำหนดคงที่ตามโค้ดโดยไม่ได้ปรับจูน।
KFold.random_state99กำหนดคงที่ในโค้ดเลขสุ่มของการแบ่ง fold เพื่อทำผลซ้ำ; กำหนดคงที่ตามโค้ดโดยไม่ได้ปรับจูน।
GridSearchCV.scoring"{'MAE': 'neg_mean_absolute_error', 'RMSE': 'neg_root_mean_squared_error', 'MAPE': 'neg_mean_absolute_percentage_error', 'R2': 'r2', 'leaves': count_leaves_scorer}"กำหนดคงที่ในโค้ดตัววัด CV โดยใช้ MAE หน่วยบาทเลือกผู้ชนะและใช้ใบวัดความซับซ้อน; กำหนดคงที่ตามโค้ดโดยไม่ได้ปรับจูน।
GridSearchCV.refit"select_1se"กำหนดคงที่ในโค้ดฟังก์ชันเลือกชุดค่าด้วยกฎ 1-SE แล้วฝึกผู้ชนะบน train ทั้งชุด; กำหนดคงที่ตามโค้ดโดยไม่ได้ปรับจูน।
GridSearchCV.return_train_scoretrueกำหนดคงที่ในโค้ดเก็บคะแนน train เพื่อเทียบกับ CV; กำหนดคงที่ตามโค้ดโดยไม่ได้ปรับจูน।
GridSearchCV.error_score"raise"กำหนดคงที่ในโค้ดให้หยุดเมื่อการฝึกเกิดข้อผิดพลาด; กำหนดคงที่ตามโค้ดโดยไม่ได้ปรับจูน।
GridSearchCV.n_jobs6กำหนดคงที่ในโค้ดจำนวนงานค้นหาที่ทำพร้อมกัน; กำหนดคงที่ตามโค้ดโดยไม่ได้ปรับจูน।
GridSearchCV.pre_dispatch6กำหนดคงที่ในโค้ดจำนวนงานที่ส่งล่วงหน้าเพื่อคุมหน่วยความจำ; กำหนดคงที่ตามโค้ดโดยไม่ได้ปรับจูน।
GridSearchCV.verbose0กำหนดคงที่ในโค้ดระดับข้อความความคืบหน้าของการค้นหา; กำหนดคงที่ตามโค้ดโดยไม่ได้ปรับจูน।
selection.1SE"min CV MAE + SD(ddof=0)/sqrt(N_FOLDS); min leaves → CV MAE → index"กำหนดคงที่ในโค้ดเลือกใบน้อยที่สุดในช่วงหนึ่ง SE จาก MAE ต่ำสุด; DT นับใบบน train ทั้งชุด ส่วน RF/XGB ใช้ค่าเฉลี่ยใบรวมจาก CV ตามโค้ด।
base_scorenullค่าเริ่มต้นของไลบรารี (xgboost 3.4.1)ค่าทำนายเริ่มต้น; คงค่าเริ่มต้นของไลบรารีโดยไม่ได้ปรับจูน (None คือไม่ได้ระบุใน Python wrapper ให้ backend ตัดสิน)।
callbacksnullค่าเริ่มต้นของไลบรารี (xgboost 3.4.1)ฟังก์ชันเสริมระหว่างฝึก; คงค่าเริ่มต้นของไลบรารีโดยไม่ได้ปรับจูน (None คือไม่ได้ระบุใน Python wrapper ให้ backend ตัดสิน)।
colsample_bylevelnullค่าเริ่มต้นของไลบรารี (xgboost 3.4.1)สัดส่วนคอลัมน์ที่สุ่มต่อระดับ; คงค่าเริ่มต้นของไลบรารีโดยไม่ได้ปรับจูน (None คือไม่ได้ระบุใน Python wrapper ให้ backend ตัดสิน)।
colsample_bynodenullค่าเริ่มต้นของไลบรารี (xgboost 3.4.1)สัดส่วนคอลัมน์ที่สุ่มต่อโหนด; คงค่าเริ่มต้นของไลบรารีโดยไม่ได้ปรับจูน (None คือไม่ได้ระบุใน Python wrapper ให้ backend ตัดสิน)।
devicenullค่าเริ่มต้นของไลบรารี (xgboost 3.4.1)อุปกรณ์ประมวลผล; คงค่าเริ่มต้นของไลบรารีโดยไม่ได้ปรับจูน (None คือไม่ได้ระบุใน Python wrapper ให้ backend ตัดสิน)।
enable_categoricaltrueค่าเริ่มต้นของไลบรารี (xgboost 3.4.1)การอนุญาตข้อมูลหมวดหมู่แบบ native; คงค่าเริ่มต้นของไลบรารีโดยไม่ได้ปรับจูน; pipeline ใช้ FoldOneHot จึงไม่ได้ส่งหมวดหมู่ native।
feature_typesnullค่าเริ่มต้นของไลบรารี (xgboost 3.4.1)ชนิดข้อมูลของตัวแปร; คงค่าเริ่มต้นของไลบรารีโดยไม่ได้ปรับจูน (None คือไม่ได้ระบุใน Python wrapper ให้ backend ตัดสิน)।
feature_weightsnullค่าเริ่มต้นของไลบรารี (xgboost 3.4.1)น้ำหนักในการสุ่มตัวแปร; คงค่าเริ่มต้นของไลบรารีโดยไม่ได้ปรับจูน (None คือไม่ได้ระบุใน Python wrapper ให้ backend ตัดสิน)।
importance_typenullค่าเริ่มต้นของไลบรารี (xgboost 3.4.1)วิธีสรุปความสำคัญตัวแปร; คงค่าเริ่มต้นของไลบรารีโดยไม่ได้ปรับจูน (None คือไม่ได้ระบุใน Python wrapper ให้ backend ตัดสิน)।
interaction_constraintsnullค่าเริ่มต้นของไลบรารี (xgboost 3.4.1)ข้อจำกัดปฏิสัมพันธ์ของตัวแปร; คงค่าเริ่มต้นของไลบรารีโดยไม่ได้ปรับจูน (None คือไม่ได้ระบุใน Python wrapper ให้ backend ตัดสิน)।
max_cat_thresholdnullค่าเริ่มต้นของไลบรารี (xgboost 3.4.1)จำนวนหมวดหมู่สูงสุดที่พิจารณาจุดแบ่ง; คงค่าเริ่มต้นของไลบรารีโดยไม่ได้ปรับจูน (None คือไม่ได้ระบุใน Python wrapper ให้ backend ตัดสิน); pipeline ใช้ FoldOneHot จึงไม่ได้ส่งหมวดหมู่ native।
max_cat_to_onehotnullค่าเริ่มต้นของไลบรารี (xgboost 3.4.1)เกณฑ์เลือก one-hot สำหรับข้อมูลหมวดหมู่ native; คงค่าเริ่มต้นของไลบรารีโดยไม่ได้ปรับจูน (None คือไม่ได้ระบุใน Python wrapper ให้ backend ตัดสิน); pipeline ใช้ FoldOneHot จึงไม่ได้ส่งหมวดหมู่ native।
max_leavesnullค่าเริ่มต้นของไลบรารี (xgboost 3.4.1)จำนวนใบสูงสุด; คงค่าเริ่มต้นของไลบรารีโดยไม่ได้ปรับจูน (None คือไม่ได้ระบุใน Python wrapper ให้ backend ตัดสิน)।
missing"NaN"ค่าเริ่มต้นของไลบรารี (xgboost 3.4.1)ค่าที่ใช้แทนข้อมูลสูญหาย; คงค่าเริ่มต้นของไลบรารีโดยไม่ได้ปรับจูน।
monotone_constraintsnullค่าเริ่มต้นของไลบรารี (xgboost 3.4.1)ข้อบังคับทิศทางความสัมพันธ์; คงค่าเริ่มต้นของไลบรารีโดยไม่ได้ปรับจูน (None คือไม่ได้ระบุใน Python wrapper ให้ backend ตัดสิน)।
multi_strategynullค่าเริ่มต้นของไลบรารี (xgboost 3.4.1)วิธีเรียนรู้หลายเป้าหมาย; คงค่าเริ่มต้นของไลบรารีโดยไม่ได้ปรับจูน (None คือไม่ได้ระบุใน Python wrapper ให้ backend ตัดสิน)।
num_parallel_treenullค่าเริ่มต้นของไลบรารี (xgboost 3.4.1)จำนวนต้นไม้ขนานต่อรอบ; คงค่าเริ่มต้นของไลบรารีโดยไม่ได้ปรับจูน (None คือไม่ได้ระบุใน Python wrapper ให้ backend ตัดสิน)।
sampling_methodnullค่าเริ่มต้นของไลบรารี (xgboost 3.4.1)วิธีสุ่มแถวฝึก; คงค่าเริ่มต้นของไลบรารีโดยไม่ได้ปรับจูน (None คือไม่ได้ระบุใน Python wrapper ให้ backend ตัดสิน)।
scale_pos_weightnullค่าเริ่มต้นของไลบรารี (xgboost 3.4.1)น้ำหนักสัมพัทธ์ของคลาสบวก; คงค่าเริ่มต้นของไลบรารีโดยไม่ได้ปรับจูน (None คือไม่ได้ระบุใน Python wrapper ให้ backend ตัดสิน)।
validate_parametersnullค่าเริ่มต้นของไลบรารี (xgboost 3.4.1)การตรวจชื่อพารามิเตอร์; คงค่าเริ่มต้นของไลบรารีโดยไม่ได้ปรับจูน (None คือไม่ได้ระบุใน Python wrapper ให้ backend ตัดสิน)।
verbositynullค่าเริ่มต้นของไลบรารี (xgboost 3.4.1)ระดับข้อความของ XGBoost; คงค่าเริ่มต้นของไลบรารีโดยไม่ได้ปรับจูน (None คือไม่ได้ระบุใน Python wrapper ให้ backend ตัดสิน)।
target.check_inversetrueค่าเริ่มต้นของไลบรารี (sklearn 1.9.1)ตรวจว่าฟังก์ชันแปลงและแปลงกลับสอดคล้องกัน; คงค่าเริ่มต้นโดยไม่ได้ปรับจูน।
target.transformernullค่าเริ่มต้นของไลบรารี (sklearn 1.9.1)ตัวแปลงเป้าหมายแบบ estimator ซึ่งไม่ได้ส่งเพราะใช้คู่ฟังก์ชัน log/exp; คงค่าเริ่มต้นโดยไม่ได้ปรับจูน।

4. ผลของการปรับข้อมูล

adj = scale ตัวแปรตัวเลข + log ราคา แล้วแปลงกลับเป็นบาทเมื่อวัดผล · Δ = adj − base; ค่าติดลบแปลว่าความคลาดเคลื่อนลดลง

โมเดลชุดข้อมูลBase MAEAdj MAEΔ บาทΔ %
DTnew_cardb75,92776,6086810.90%
RFnew_cardb65,86466,0131490.23%
XGBnew_cardb64,22862,883-1,345-2.09%
DTmerge50minC57,79457,187-607-1.05%
RFmerge50minC53,41653,457410.08%
XGBmerge50minC52,19552,229340.07%

Ablation ด้านล่างตรึงพารามิเตอร์ที่ปรับสำหรับ both ไม่ได้ค้นหาพารามิเตอร์ใหม่ให้แต่ละแบบ ดังนั้น none ใน ablation อาจไม่เท่ากับ base ด้านบน · scale only = scale ตัวเลข; log only = log ราคา

DT · new_cardb · adj · ablation 4 แบบ
variantCV MAE meanCV MAE SDtest MAEtest RMSEtest R2test MAPEchange test MAE (baht)change test MAE (%)change CV MAE mean (baht)change CV MAE mean (%)
none92,6815,13578,463168,6690.918013.56%00.00%00.00%
scale only92,2304,80778,486168,6480.918013.58%230.03%-451-0.49%
log only87,0111,94076,601198,9290.885912.25%-1,863-2.37%-5,670-6.12%
both87,0381,96876,608198,9300.885912.26%-1,855-2.36%-5,643-6.09%
RF · new_cardb · adj · ablation 4 แบบ
variantCV MAE meanCV MAE SDtest MAEtest RMSEtest R2test MAPEchange test MAE (baht)change test MAE (%)change CV MAE mean (baht)change CV MAE mean (%)
none74,8032,64665,504134,8590.947611.36%00.00%00.00%
scale only74,7562,56965,741135,5860.947011.36%2370.36%-47-0.06%
log only76,1062,21165,917150,4670.934711.20%4130.63%1,3031.74%
both76,1102,20166,013150,9420.934311.20%5090.78%1,3071.75%
XGB · new_cardb · adj · ablation 4 แบบ
variantCV MAE meanCV MAE SDtest MAEtest RMSEtest R2test MAPEchange test MAE (baht)change test MAE (%)change CV MAE mean (baht)change CV MAE mean (%)
none74,3642,44165,015143,5220.940611.24%00.00%00.00%
scale only74,3642,44165,015143,5220.940611.24%00.00%00.00%
log only72,8022,47862,883145,9650.938610.46%-2,132-3.28%-1,562-2.10%
both72,8022,47862,883145,9650.938610.46%-2,132-3.28%-1,562-2.10%
DT · merge50minC · adj · ablation 4 แบบ
variantCV MAE meanCV MAE SDtest MAEtest RMSEtest R2test MAPEchange test MAE (baht)change test MAE (%)change CV MAE mean (baht)change CV MAE mean (%)
none63,11342561,23096,3520.913311.69%00.00%00.00%
scale only63,09844861,17596,3180.913411.68%-54-0.09%-14-0.02%
log only57,41623557,20188,9040.926210.73%-4,028-6.58%-5,697-9.03%
both57,37924457,18788,8970.926210.72%-4,043-6.60%-5,734-9.09%
RF · merge50minC · adj · ablation 4 แบบ
variantCV MAE meanCV MAE SDtest MAEtest RMSEtest R2test MAPEchange test MAE (baht)change test MAE (%)change CV MAE mean (baht)change CV MAE mean (%)
none53,54131653,41680,5590.939410.25%00.00%00.00%
scale only53,52432453,34680,4940.939510.24%-70-0.13%-17-0.03%
log only53,35835453,48181,9340.937310.05%650.12%-183-0.34%
both53,35636753,45781,9250.937410.04%410.08%-185-0.35%
XGB · merge50minC · adj · ablation 4 แบบ
variantCV MAE meanCV MAE SDtest MAEtest RMSEtest R2test MAPEchange test MAE (baht)change test MAE (%)change CV MAE mean (baht)change CV MAE mean (%)
none52,92537052,39379,0190.941710.06%00.00%00.00%
scale only52,92537052,39379,0190.941710.06%00.00%00.00%
log only52,56739452,22978,7220.94229.87%-164-0.31%-358-0.68%
both52,56739452,22978,7220.94229.87%-164-0.31%-358-0.68%

5. ความสำคัญของตัวแปร

Permutation: MAE บน test ที่เพิ่มขึ้น (บาท), mean ± std จากการสลับ 10 รอบ; ค่าสูงแปลว่าโมเดลพึ่งตัวแปรนั้นมาก · Model-based: สัดส่วน impurity (DT/RF) หรือ gain (XGB) รวม dummy กลับเป็นตัวแปรเดิม แต่ละวิธีใช้คนละสเกลและอาจให้อันดับต่างกัน

DT · new_cardb · base
ตัวแปรPermutation MAE ± std (บาท)Model-based share
engine188,447 ± 5,11219.17%
car_age186,359 ± 4,52416.56%
brand117,552 ± 3,71935.02%
car_type79,519 ± 4,4136.92%
model39,858 ± 95311.56%
mileage23,406 ± 2,4359.38%
fuel13,338 ± 1,2371.14%
gear7,709 ± 1,1900.24%
Permutation importance — DT · new_cardb · base
Permutation importance — DT · new_cardb · base · แตะเพื่อดูเต็มขนาด
Model-based importance — DT · new_cardb · base
Model-based importance — DT · new_cardb · base · แตะเพื่อดูเต็มขนาด
RF · new_cardb · base
ตัวแปรPermutation MAE ± std (บาท)Model-based share
engine178,663 ± 4,57318.01%
car_age176,321 ± 4,44118.71%
brand105,340 ± 2,18931.21%
car_type63,312 ± 2,9236.52%
model34,879 ± 68312.26%
mileage27,663 ± 1,8039.50%
fuel13,526 ± 6273.52%
gear6,639 ± 3150.27%
Permutation importance — RF · new_cardb · base
Permutation importance — RF · new_cardb · base · แตะเพื่อดูเต็มขนาด
Model-based importance — RF · new_cardb · base
Model-based importance — RF · new_cardb · base · แตะเพื่อดูเต็มขนาด
XGB · new_cardb · base
ตัวแปรPermutation MAE ± std (บาท)Model-based share
car_age165,591 ± 3,3730.37%
engine163,707 ± 4,0650.95%
brand113,415 ± 2,14844.31%
car_type59,881 ± 2,3508.47%
model42,756 ± 81144.70%
mileage29,854 ± 1,7470.08%
fuel16,833 ± 1,2060.89%
gear7,017 ± 3750.24%
Permutation importance — XGB · new_cardb · base
Permutation importance — XGB · new_cardb · base · แตะเพื่อดูเต็มขนาด
Model-based importance — XGB · new_cardb · base
Model-based importance — XGB · new_cardb · base · แตะเพื่อดูเต็มขนาด
DT · new_cardb · adj
ตัวแปรPermutation MAE ± std (บาท)Model-based share
engine206,417 ± 9,37026.32%
car_age176,391 ± 4,88936.98%
car_type84,378 ± 4,6449.72%
brand72,906 ± 1,76811.49%
model51,756 ± 1,1808.17%
mileage27,696 ± 2,9275.41%
fuel14,742 ± 4621.40%
gear5,366 ± 5140.50%
Permutation importance — DT · new_cardb · adj
Permutation importance — DT · new_cardb · adj · แตะเพื่อดูเต็มขนาด
Model-based importance — DT · new_cardb · adj
Model-based importance — DT · new_cardb · adj · แตะเพื่อดูเต็มขนาด
RF · new_cardb · adj
ตัวแปรPermutation MAE ± std (บาท)Model-based share
engine192,405 ± 6,24422.71%
car_age165,184 ± 3,80934.55%
brand70,369 ± 1,69712.13%
car_type60,427 ± 2,9068.57%
mileage35,666 ± 2,1377.19%
model34,263 ± 5118.68%
fuel19,655 ± 1,5064.46%
gear8,778 ± 1,0041.71%
Permutation importance — RF · new_cardb · adj
Permutation importance — RF · new_cardb · adj · แตะเพื่อดูเต็มขนาด
Model-based importance — RF · new_cardb · adj
Model-based importance — RF · new_cardb · adj · แตะเพื่อดูเต็มขนาด
XGB · new_cardb · adj
ตัวแปรPermutation MAE ± std (บาท)Model-based share
car_age159,846 ± 3,4250.85%
engine155,352 ± 4,4431.43%
brand92,886 ± 2,53322.78%
car_type60,426 ± 2,41915.11%
model34,436 ± 76957.91%
mileage34,101 ± 2,2270.06%
fuel17,170 ± 1,6441.41%
gear8,331 ± 7070.44%
Permutation importance — XGB · new_cardb · adj
Permutation importance — XGB · new_cardb · adj · แตะเพื่อดูเต็มขนาด
Model-based importance — XGB · new_cardb · adj
Model-based importance — XGB · new_cardb · adj · แตะเพื่อดูเต็มขนาด
DT · merge50minC · base
ตัวแปรPermutation MAE ± std (บาท)Model-based share
engine132,055 ± 1,95021.46%
car_age129,232 ± 1,41426.64%
car_type61,544 ± 1,20916.18%
brand54,990 ± 1,16512.63%
model38,407 ± 99814.24%
mileage17,604 ± 9095.84%
fuel14,016 ± 5812.13%
gear6,016 ± 1950.88%
Permutation importance — DT · merge50minC · base
Permutation importance — DT · merge50minC · base · แตะเพื่อดูเต็มขนาด
Model-based importance — DT · merge50minC · base
Model-based importance — DT · merge50minC · base · แตะเพื่อดูเต็มขนาด
RF · merge50minC · base
ตัวแปรPermutation MAE ± std (บาท)Model-based share
car_age114,979 ± 1,55222.49%
engine104,729 ± 1,20417.01%
car_type46,979 ± 1,05312.16%
brand41,621 ± 88413.02%
model32,745 ± 50418.64%
mileage21,877 ± 8328.30%
fuel18,850 ± 6615.60%
gear7,448 ± 3202.77%
Permutation importance — RF · merge50minC · base
Permutation importance — RF · merge50minC · base · แตะเพื่อดูเต็มขนาด
Model-based importance — RF · merge50minC · base
Model-based importance — RF · merge50minC · base · แตะเพื่อดูเต็มขนาด
XGB · merge50minC · base
ตัวแปรPermutation MAE ± std (บาท)Model-based share
car_age121,913 ± 1,7100.59%
engine118,108 ± 1,4601.14%
car_type51,650 ± 1,23529.40%
brand47,700 ± 85621.17%
model32,929 ± 62745.62%
mileage21,781 ± 7910.05%
fuel13,096 ± 5511.46%
gear7,047 ± 2310.58%
Permutation importance — XGB · merge50minC · base
Permutation importance — XGB · merge50minC · base · แตะเพื่อดูเต็มขนาด
Model-based importance — XGB · merge50minC · base
Model-based importance — XGB · merge50minC · base · แตะเพื่อดูเต็มขนาด
DT · merge50minC · adj
ตัวแปรPermutation MAE ± std (บาท)Model-based share
engine144,512 ± 2,01525.88%
car_age128,689 ± 1,75237.71%
car_type74,014 ± 1,58512.75%
brand55,892 ± 97910.57%
model35,257 ± 6487.41%
fuel18,968 ± 9841.99%
mileage18,125 ± 1,1982.46%
gear5,685 ± 2121.24%
Permutation importance — DT · merge50minC · adj
Permutation importance — DT · merge50minC · adj · แตะเพื่อดูเต็มขนาด
Model-based importance — DT · merge50minC · adj
Model-based importance — DT · merge50minC · adj · แตะเพื่อดูเต็มขนาด
RF · merge50minC · adj
ตัวแปรPermutation MAE ± std (บาท)Model-based share
car_age114,531 ± 1,59829.99%
engine105,768 ± 1,27317.94%
car_type50,432 ± 76512.77%
brand37,832 ± 62910.15%
model30,048 ± 50512.57%
mileage22,405 ± 9247.58%
fuel17,462 ± 6815.98%
gear8,585 ± 4493.03%
Permutation importance — RF · merge50minC · adj
Permutation importance — RF · merge50minC · adj · แตะเพื่อดูเต็มขนาด
Model-based importance — RF · merge50minC · adj
Model-based importance — RF · merge50minC · adj · แตะเพื่อดูเต็มขนาด
XGB · merge50minC · adj
ตัวแปรPermutation MAE ± std (บาท)Model-based share
car_age122,339 ± 1,6300.91%
engine107,269 ± 1,5201.57%
brand48,189 ± 65421.61%
car_type46,534 ± 1,04426.64%
model31,010 ± 62346.07%
mileage22,084 ± 8980.04%
fuel11,332 ± 4092.24%
gear9,599 ± 4410.94%
Permutation importance — XGB · merge50minC · adj
Permutation importance — XGB · merge50minC · adj · แตะเพื่อดูเต็มขนาด
Model-based importance — XGB · merge50minC · adj
Model-based importance — XGB · merge50minC · adj · แตะเพื่อดูเต็มขนาด

6. ตรวจ Overfit

คัดเฉพาะ PASS/WARN จากเซลล์สรุป overfit เดิม เกณฑ์ต่างกันตามโมเดล; WARN อาจเกิดจาก test ง่ายกว่า CV จึงควรอ่านทิศของความต่าง ไม่ใช่ตัดสินว่า overfit เสมอไป

DT · new_cardb · base · 1 WARN
  • PASS validation เทียบ CV : ต่างกัน -4,458 บาท (-4.99%) เกณฑ์ ±9,218 บาท (2 SE)
  • WARN test เทียบ CV : ต่างกัน -13,372 บาท (-14.97%) เกณฑ์ ±7,033 บาท (2 SE)
  • PASS test เทียบ validation : ต่างกัน -8,914 บาท (-10.51%) เกณฑ์ ±9,504 บาท (2 SE)
  • PASS learning curve (2,365 -> 23,657 แถว): test MAE 116,018 -> 75,927 บาท, gap 85,985 -> 19,845 บาท (ต้องลดลงทั้งคู่)
RF · new_cardb · base · 2 WARN
  • PASS validation เทียบ CV : ต่างกัน -3,396 บาท (-4.51%) เกณฑ์ ±6,954 บาท (2 SE)
  • WARN test เทียบ CV : ต่างกัน -9,467 บาท (-12.57%) เกณฑ์ ±5,057 บาท (2 SE)
  • PASS validation เทียบ OOB : ต่างกัน -1,094 บาท (-1.50%) เกณฑ์ ±6,853 บาท (2 SE)
  • WARN test เทียบ OOB : ต่างกัน -7,165 บาท (-9.81%) เกณฑ์ ±4,916 บาท (2 SE)
  • PASS test เทียบ validation : ต่างกัน -6,071 บาท (-8.44%) เกณฑ์ ±7,870 บาท (2 SE)
  • PASS learning curve (2,365 -> 23,657 แถว): test MAE 90,412 -> 65,971 บาท, gap 52,527 -> 36,005 บาท (ต้องลดลงทั้งคู่)
XGB · new_cardb · base · 2 WARN
  • WARN : validation MAE ต่างจาก CV MAE ไม่เกิน 5% (generalisation)
  • WARN : test MAE ต่างจาก CV MAE ไม่เกิน 5% (generalisation)
  • PASS : จำนวนรอบอยู่ในช่วง 1 SE ของจุดที่ CV MAE ต่ำสุด (ไม่น้อยหรือมากเกินไป)
  • PASS : ช่องว่าง test - train แคบลงเมื่อเพิ่มข้อมูลฝึก (learning curve)
DT · new_cardb · adj · 1 WARN
  • PASS validation เทียบ CV : ต่างกัน -2,835 บาท (-3.26%) เกณฑ์ ±8,975 บาท (2 SE)
  • WARN test เทียบ CV : ต่างกัน -10,430 บาท (-11.98%) เกณฑ์ ±6,979 บาท (2 SE)
  • PASS test เทียบ validation : ต่างกัน -7,595 บาท (-9.02%) เกณฑ์ ±11,093 บาท (2 SE)
  • PASS learning curve (2,365 -> 23,657 แถว): test MAE 123,155 -> 76,586 บาท, gap 102,570 -> 18,198 บาท (ต้องลดลงทั้งคู่)
RF · new_cardb · adj · 2 WARN
  • PASS validation เทียบ CV : ต่างกัน -4,382 บาท (-5.76%) เกณฑ์ ±7,321 บาท (2 SE)
  • WARN test เทียบ CV : ต่างกัน -10,097 บาท (-13.27%) เกณฑ์ ±5,367 บาท (2 SE)
  • PASS validation เทียบ OOB : ต่างกัน -2,322 บาท (-3.14%) เกณฑ์ ±7,429 บาท (2 SE)
  • WARN test เทียบ OOB : ต่างกัน -8,037 บาท (-10.85%) เกณฑ์ ±5,514 บาท (2 SE)
  • PASS test เทียบ validation : ต่างกัน -5,715 บาท (-7.97%) เกณฑ์ ±8,640 บาท (2 SE)
  • PASS learning curve (2,365 -> 23,657 แถว): test MAE 91,156 -> 66,012 บาท, gap 48,765 -> 34,595 บาท (ต้องลดลงทั้งคู่)
XGB · new_cardb · adj · 2 WARN
  • WARN : validation MAE ต่างจาก CV MAE ไม่เกิน 5% (generalisation)
  • WARN : test MAE ต่างจาก CV MAE ไม่เกิน 5% (generalisation)
  • PASS : จำนวนรอบอยู่ในช่วง 1 SE ของจุดที่ CV MAE ต่ำสุด (ไม่น้อยหรือมากเกินไป)
  • PASS : ช่องว่าง test - train แคบลงเมื่อเพิ่มข้อมูลฝึก (learning curve)
DT · merge50minC · base · 0 WARN
  • PASS validation เทียบ CV : ต่างกัน -1,584 บาท (-2.72%) เกณฑ์ ±1,918 บาท (2 SE)
  • PASS test เทียบ CV : ต่างกัน -496 บาท (-0.85%) เกณฑ์ ±1,920 บาท (2 SE)
  • PASS test เทียบ validation : ต่างกัน +1,088 บาท (+1.92%) เกณฑ์ ±2,706 บาท (2 SE)
  • PASS learning curve (3,760 -> 37,600 แถว): test MAE 81,994 -> 57,794 บาท, gap 25,119 -> 8,801 บาท (ต้องลดลงทั้งคู่)
RF · merge50minC · base · 0 WARN
  • PASS validation เทียบ CV : ต่างกัน -1,331 บาท (-2.49%) เกณฑ์ ±1,725 บาท (2 SE)
  • PASS test เทียบ CV : ต่างกัน -125 บาท (-0.23%) เกณฑ์ ±1,782 บาท (2 SE)
  • PASS validation เทียบ OOB : ต่างกัน -546 บาท (-1.03%) เกณฑ์ ±1,814 บาท (2 SE)
  • PASS test เทียบ OOB : ต่างกัน +661 บาท (+1.25%) เกณฑ์ ±1,868 บาท (2 SE)
  • PASS test เทียบ validation : ต่างกัน +1,207 บาท (+2.31%) เกณฑ์ ±2,448 บาท (2 SE)
  • PASS learning curve (3,760 -> 37,600 แถว): test MAE 66,027 -> 53,422 บาท, gap 21,352 -> 14,502 บาท (ต้องลดลงทั้งคู่)
XGB · merge50minC · base · 0 WARN
  • PASS : validation MAE ต่างจาก CV MAE ไม่เกิน 5% (generalisation)
  • PASS : test MAE ต่างจาก CV MAE ไม่เกิน 5% (generalisation)
  • PASS : จำนวนรอบอยู่ในช่วง 1 SE ของจุดที่ CV MAE ต่ำสุด (ไม่น้อยหรือมากเกินไป)
  • PASS : ช่องว่าง test - train แคบลงเมื่อเพิ่มข้อมูลฝึก (learning curve)
DT · merge50minC · adj · 0 WARN
  • PASS validation เทียบ CV : ต่างกัน -1,096 บาท (-1.91%) เกณฑ์ ±2,023 บาท (2 SE)
  • PASS test เทียบ CV : ต่างกัน -192 บาท (-0.33%) เกณฑ์ ±1,997 บาท (2 SE)
  • PASS test เทียบ validation : ต่างกัน +904 บาท (+1.61%) เกณฑ์ ±2,826 บาท (2 SE)
  • PASS learning curve (3,760 -> 37,600 แถว): test MAE 82,302 -> 57,267 บาท, gap 64,827 -> 10,120 บาท (ต้องลดลงทั้งคู่)
RF · merge50minC · adj · 0 WARN
  • PASS validation เทียบ CV : ต่างกัน -1,416 บาท (-2.65%) เกณฑ์ ±1,773 บาท (2 SE)
  • PASS test เทียบ CV : ต่างกัน +101 บาท (+0.19%) เกณฑ์ ±1,841 บาท (2 SE)
  • PASS validation เทียบ OOB : ต่างกัน -631 บาท (-1.20%) เกณฑ์ ±1,857 บาท (2 SE)
  • PASS test เทียบ OOB : ต่างกัน +886 บาท (+1.69%) เกณฑ์ ±1,921 บาท (2 SE)
  • PASS test เทียบ validation : ต่างกัน +1,517 บาท (+2.92%) เกณฑ์ ±2,513 บาท (2 SE)
  • PASS learning curve (3,760 -> 37,600 แถว): test MAE 67,202 -> 53,399 บาท, gap 21,997 -> 14,557 บาท (ต้องลดลงทั้งคู่)
XGB · merge50minC · adj · 0 WARN
  • PASS : validation MAE ต่างจาก CV MAE ไม่เกิน 5% (generalisation)
  • PASS : test MAE ต่างจาก CV MAE ไม่เกิน 5% (generalisation)
  • PASS : จำนวนรอบอยู่ในช่วง 1 SE ของจุดที่ CV MAE ต่ำสุด (ไม่น้อยหรือมากเกินไป)
  • PASS : ช่องว่าง test - train แคบลงเมื่อเพิ่มข้อมูลฝึก (learning curve)

7. Learning curves

หนึ่งรูปต่อ notebook · แตะภาพเพื่อเปิดขนาดเต็ม · ใช้กราฟที่บันทึกไว้เดิม

DT

Learning curve — DT · new_cardb · base
Learning curve — DT · new_cardb · base · แตะเพื่อดูเต็มขนาด
Learning curve — DT · new_cardb · adj
Learning curve — DT · new_cardb · adj · แตะเพื่อดูเต็มขนาด
Learning curve — DT · merge50minC · base
Learning curve — DT · merge50minC · base · แตะเพื่อดูเต็มขนาด
Learning curve — DT · merge50minC · adj
Learning curve — DT · merge50minC · adj · แตะเพื่อดูเต็มขนาด

RF

Learning curve — RF · new_cardb · base
Learning curve — RF · new_cardb · base · แตะเพื่อดูเต็มขนาด
Learning curve — RF · new_cardb · adj
Learning curve — RF · new_cardb · adj · แตะเพื่อดูเต็มขนาด
Learning curve — RF · merge50minC · base
Learning curve — RF · merge50minC · base · แตะเพื่อดูเต็มขนาด
Learning curve — RF · merge50minC · adj
Learning curve — RF · merge50minC · adj · แตะเพื่อดูเต็มขนาด

XGB

Learning curve — XGB · new_cardb · base
Learning curve — XGB · new_cardb · base · แตะเพื่อดูเต็มขนาด
Learning curve — XGB · new_cardb · adj
Learning curve — XGB · new_cardb · adj · แตะเพื่อดูเต็มขนาด
Learning curve — XGB · merge50minC · base
Learning curve — XGB · merge50minC · base · แตะเพื่อดูเต็มขนาด
Learning curve — XGB · merge50minC · adj
Learning curve — XGB · merge50minC · adj · แตะเพื่อดูเต็มขนาด

8. เวลารัน

รวมเวลาตาม run_log.csv: 04:21:00 (15,660 วินาที)

เวลาเริ่ม/จบเป็นค่าตาม log ไม่ได้ระบุเขตเวลา; ผลรวมเป็นเวลาของแต่ละงาน ไม่รวมช่องว่างระหว่างงาน

งานเริ่มจบระยะเวลาสถานะ
DT_new_cardb2026-10-26 00:10:472026-10-26 00:16:5800:06:11ok
RF_new_cardb2026-10-26 00:16:582026-10-26 00:38:3900:21:40ok
XGB_new_cardb2026-10-26 00:38:392026-10-26 01:11:2400:32:45ok
DT_new_cardb_adj2026-10-26 01:11:242026-10-26 01:20:3800:09:13ok
RF_new_cardb_adj2026-10-26 01:20:382026-10-26 01:47:1600:26:38ok
XGB_new_cardb_adj2026-10-26 01:47:162026-10-26 02:38:1000:50:54ok
DT_merge50minC2026-10-26 02:38:112026-10-26 02:44:4400:06:33ok
RF_merge50minC2026-10-26 02:44:442026-10-26 03:03:0900:18:25ok
XGB_merge50minC2026-10-26 03:03:092026-10-26 03:36:2100:33:11ok
DT_merge50minC_adj2026-10-26 03:36:212026-10-26 03:44:5000:08:29ok
RF_merge50minC_adj2026-10-26 03:44:502026-10-26 04:02:2700:17:37ok
XGB_merge50minC_adj2026-10-26 04:02:272026-10-26 04:31:5100:29:24ok

รายการที่ขาด

ไม่มี · พบผลและรูปที่ต้องใช้ครบทั้ง 12 งาน