เทคนิค Feature Engineering ด้วย Scikit-Learn: โพยสรุปฉบับกระชับจาก KDnuggets

ความผิดพลาดในช่วงแรกที่ผมใช้งาน Scikit-Learn มักจะเกิดขึ้นจากองค์ประกอบรอบตัวโมเดลมากกว่าตัวโมเดลเอง โดยปัญหาที่พบบ่อยคือการทำ Scaling คอลัมน์แยกในเซลล์หนึ่งของ Notebook ตามด้วยการทำ Encoding หมวดหมู่ในอีกเซลล์ แล้วจึง Fit โมเดลในขั้นตอนสุดท้าย แม้คะแนน Cross-validation จะออกมาดูดี แต่ผลลัพธ์มักจะล้มเหลวเมื่อนำไปใช้จริงกับข้อมูลใหม่
สาเหตุของความผิดพลาดนี้ไม่ใช่ตัว Estimators แต่เกิดจากขั้นตอน Preprocessing ที่ทำให้โมเดลได้เห็นข้อมูลในส่วน Validation ก่อนที่ควรจะเป็น ซึ่งทางแก้ไม่ใช่การเรียนรู้เรื่อง Transformers เพิ่มเติม แต่เป็นการเข้าใจตำแหน่งที่เหมาะสมในการจัดวางพวกมัน เมื่อเรานำ Feature Engineering มาไว้ภายใน Pipeline แต่ละขั้นตอนจะถูก Fit เฉพาะกับข้อมูลชุดฝึกสอนเท่านั้น ทำให้การประเมินผลโมเดลสะท้อนประสิทธิภาพที่แท้จริง ซึ่งนี่คือแนวคิดหลักของ โพยสรุปฉบับใหม่นี้ ที่รวบรวมทุกอย่างที่คุณสามารถใส่ลงในห่วงโซ่การทำงานดังกล่าวได้
ส่วนประกอบที่ถูกใช้งานบ่อยที่สุดคือโครงสร้างพื้นฐานอย่าง ColumnTransformer ที่ช่วยจัดการคอลัมน์ตัวเลขและหมวดหมู่แยกกันได้โดยไม่ต้องแยก Dataframe ด้วยมือ เสริมด้วย make_column_selector ที่ช่วยเลือกคอลัมน์ตาม dtype ทำให้ไม่ต้องแก้ Pipeline ทุกครั้งที่มีข้อมูลใหม่เพิ่มเข้ามา นอกจากนี้การใช้ SimpleImputer พร้อมตั้งค่า add_indicator=True ยังเป็นนิสัยที่ดี เพราะรูปแบบข้อมูลที่สูญหายมักเป็นสัญญาณสำคัญอย่างหนึ่ง
สำหรับการจัดการข้อมูลหมวดหมู่ OneHotEncoder ที่ตั้งค่า handle_unknown="ignore" ช่วยป้องกันระบบล่มระหว่างการทำ Prediction ได้อย่างมีประสิทธิภาพ ในขณะที่ TargetEncoder เป็นทางเลือกเริ่มต้นที่ยอดเยี่ยมเมื่อค่า Cardinality สูงเกินกว่าที่ One-hot Encoding จะรับไหว
นอกจากนี้ยังมีเครื่องมือสำคัญอีกสองตัวคือ set_output(transform="pandas") และ get_feature_names_out() ซึ่งเป็นวิธีที่เร็วที่สุดในการตรวจสอบผลลัพธ์จาก Pipeline โดยเฉพาะเมื่อ ColumnTransformer หรือ PolynomialFeatures เปลี่ยนข้อมูลจากไม่กี่คอลัมน์ให้กลายเป็นหลักร้อย การใช้ GridSearchCV ยังช่วยให้กลยุทธ์การเติมค่าที่หายไป (Imputation Strategy) กลายเป็น Hyperparameter ที่ปรับจูนไปพร้อมกับค่า Regularization ได้ในการรันเพียงครั้งเดียว
โพยสรุปฉบับนี้ ได้รวบรวมขั้นตอนเหล่านั้นไว้ในที่เดียว พร้อมอาร์กิวเมนต์ที่สำคัญและสิ่งที่มักจะถูกลืมบ่อยๆ เพื่อให้คุณนำไปใช้งานได้อย่างสะดวก
ความคิดเห็น (0)
เข้าสู่ระบบเพื่อร่วมแสดงความเห็น
สมัครสมาชิกมาเป็นคนแรกที่แสดงความเห็นกันเลยโบร
