วิธีการจัดการกับ Outliers ด้วย AzureML
เมื่อเราต้องการวิเคราะห์หรือสร้างโมเดลเพื่อใช้ในการทำนายนั้น เรามักจะมีปัญหาที่พบบ่อย ๆ และต้องจัดการกับมัน คือ Outliers
Outliers คือข้อมูลที่มีระยะห่างจากข้อมูลตัวอื่น ๆ มากและส่งผลต่อผลการทำนายของเรา ซึ่งทำให้ผลการทำนายของเรามีความคาดเคลื่อนมาก โดยวิธีการแก้ปัญหานี้ คือ การ visualize เพื่อดูข้อมูลจากกราฟ การกำหนดไม่ให้มีค่าเกิน Percentile ที่เราต้องการ ซึ่งวิธีการเหล่านี้สามารถทำได้โดยใช้ module ที่ชื่อว่า Clip Values
โดยตัวอย่างที่เราจะแสดงให้เห็นการจัดการกับ outliers คือ Employee Dataset เมื่อเรา visualize ดู ข้อมูลคอลัมน์ Years of Experience กับ Monthly Income เราจะได้กราฟดังนี้
จากกราฟข้างต้นเราจะพบว่ามี outliers จำนวน 4 ข้อมูลในวงกลมสีแดง ซึ่งเป็นข้อมูลที่เราต้องการจะจัดการโดยในข้อมูลนี้วิธีการดังนี้
1. นำข้อมูล Employee Dataset มาวางบน workspace
2. นำ module ที่ชื่อว่า Clip values วางเชื่อมกับ dataset ของเรา
3. ในตัวอย่างนี้เราต้องการจะจัดการกับรายได้ต่อเดือน หรือ Monthly Income ที่มากกว่า 6000 ออกไปโดยเราจะตั้งค่า parameter ดังนี้
Set of thresholds : ClipPeak
Upper threshold : Constant
Constant value for upper threshold : 6000
Upper substitute value : Threshold
เลือกคอลัมน์เป็น Monthly Income จากนั้นคลิก RUN เราจะได้ผลคือ outliers ของเราที่เดิมมีค่าเกิน 6000 ไปมากนั้น จะกลายเป็นค่า 6000 ดังรูป
ต่อมาเราจะมาดูตัวอย่าง Adult Census Income ซึ่งเป็น sample dataset ของ AzureML เมื่อเรา visualize ดูข้อมูลซึ่งเราจะใช้วิธีการอีกรูปแบบหนึ่ง ซึ่งคอลัมน์ที่เราต้องการจะจัดการกับข้อมูลคือ fnlwgt ซึ่งมีลักษณะข้อมูลตามรูป
โดยเราต้องการจะใช้ Percentile ในการ clip ให้อยู่ในค่า Percentile ที่ 1-99 โดยทำได้ดังนี้
1. นำข้อมูล Employee Dataset มาวางบน workspace
2. นำ module ที่ชื่อว่า Adult Census Income วางเชื่อมกับ dataset ของเรา
3. ในตัวอย่างนี้เราต้องการจะจัดการกับ outliers ของคอลัมน์ fnlwgt โดยการทำให้มี Percentile อยู่ระหว่าง
Percentile ที่ 1 ถึง Percentile ที่ 99 โดยกำหนด parameter ดังรูป จากนั้นกด RUN
หลังจากที่เรา RUN ข้อมูลแล้ว visualize ดูที่คอลัมน์ fnlwgt จะพบว่าค่าสูงสุดและต่ำสุดของข้อมูลมีการเปลี่ยนแปลงไปแล้วอยู่ใน