Metadata คืออะไร บอกอะไรเกี่ยวกับชุดข้อมูลนั้น ๆ บ้าง
Metadata คือข้อมูลที่อธิบายชุดข้อมูล เพื่อให้เข้าใจได้เบื้องต้นว่าเป็นชุดข้อมูลเกี่ยวกับอะไร ประเภทไฟล์ วันที่สร้างและปรับปรุง
Mutual Information คือหนึ่งใน Feature Utility Metric เป็นฟังก์ชันสำหรับวัดความสัมพันธ์ระหว่างฟีเจอร์กับค่าทำนายที่เราสนใจ เพื่อให้เราสามารถเลือกได้ง่ายขึ้นว่าจะใช้ฟีเจอร์ใดบ้างในการทำ Feature Engineering และการนำไปทำนายค่าในขั้นตอนถัด ๆ ไป ซึ่ง Mutual Information นี้ทำงานคล้ายกับ Correlation มากตรงที่มันทำหน้าที่วัดความสัมพันธ์ระหว่างข้อมูล แต่วิธี Mutual นั้นได้เปรียบในเรื่องของการใช้งานได้กับความสัมพันธ์หลากหลายรูปแบบไม่จำกัดว่าจะต้องเป็นความสัมพันธ์เชิงเส้นเพียงอย่างเดียว ดังนั้นวิธีการนี้จึงเหมาะมากกับการเริ่มต้นทำ Feature Development โดยมีข้อดีหลัก ๆ คือ
และสิ่งที่ Mutual Information วัดคือการอธิบายความสัมพันธ์ภายใต้ความไม่แน่นอน โดยที่ค่า MI ระหว่างข้อมูลนั้นเป็นการวัดว่าถ้ารู้ค่าหนึ่งมากขึ้นจะลดความไม่แน่นอนของอีกค่าหนึ่งได้อย่างไร สำหรับการตีความค่า MI Score ค่าที่น้อยที่สุดของ MI คือ 0.0 เมื่อ MI มีค่าเป็น 0 หมายความว่าข้อมูลเป็นอิสระต่อกัน (ไม่มีความสัมพันธ์) ในทางทฤษฎี MI นั้นไม่มีค่าสูงสุดกำหนดไว้ แต่ในทางปฏิบัติถ้าค่า MI เป็น 2 หรือมากกว่านั้นถือว่าไม่ปกติ (เพราะ MI นั้นเป็นค่า Logarithm ดังนั้นจึงเพิ่มขึ้นช้ามากๆ) สำหรับรายละเอียดเพิ่มเติมอ่านได้ที่นี่
ในที่นี้จะเรียกใช้งานผ่าน Scikit-learn โดยจะอยู่ใน sklearn.feature_selection โดย mutual_info_regression ใช้สำหรับงานที่เป็นการทำนายค่า และ mutual_info_classif ใช้สำหรับงานจำแนกประเภท ในที่นี้เราจะใช้กับงาน Binary Classification บนชุดข้อมูล วัตถุที่โคจรใกล้โลก
ฟีเจอร์มีดังนี้
ค่าที่ต้องการจะจำแนกประเภท (Target)
นำเข้า Library ที่ใช้ และอ่านข้อมูลเก็บไว้ใน DataFrame
เตรียม Features และ Target และตรวจสอบ Data Type ของแต่ละคอลัมน์
แปลงข้อมูลที่เป็น Categorical และกำหนดให้ค่าที่แปลงข้างต้นเป็น Discrete Features (ค่าที่ไม่ต่อเนื่อง)
เรียกใช้งาน mutual_info_classif โดยพารามิเตอร์ที่ต้องการคือ feature, target และกำหนด discrete_features (ถ้ามี)
แสดงผลค่า MI Score โดยเรียงจากมากไปน้อย เพื่อดูว่าฟีเจอร์ไหนบ้างที่ส่งผลกับการจำแนกประเภทวัตถุใกล้โลกที่อาจเป็นอันตราย จะเห็นว่า sentry_object และ orbiting_body นั้นไม่มีความสัมพันธ์ใด ๆ กับค่าที่ต้องการจำแนกเลย (เนื่องจากในชุดข้อมูล 2 คอลัมน์นี้มีค่าเหมือนกันหมด)
และ est_diameter_min กับ est_diameter_max จะสัมพันธ์ใกล้เคียงกัน โดยถ้าดูจาก Correlation ปกติจะเห็นว่ามันสัมพันธ์กันเอง ดังนั้นเลือกมาใช้แค่ค่าใดค่าหนึ่งก็ได้
เมื่อทราบถึงความสัมพันธ์เบื้องต้นของฟีเจอร์และเป้าหมายแล้ว จึงเริ่มต้นทำ Feature Engineering และ สร้างโมเดลต่อไป
Metadata คือข้อมูลที่อธิบายชุดข้อมูล เพื่อให้เข้าใจได้เบื้องต้นว่าเป็นชุดข้อมูลเกี่ยวกับอะไร ประเภทไฟล์ วันที่สร้างและปรับปรุง
การทำงานด้าน Machine Learning นั้นจะต้องเจอข้อมูลและมีคำถามเสมอว่าควรเริ่มจากอะไรดี โดย Mutual Information เป็นหนึ่งในขั้นตอนที่แนะนำให้ทำ
วิธีการแปลงข้อมูลประเภทหมวดหมู่/ประเภท (ที่เป็นตัวอักษร) ให้เป็นชุดตัวเลขด้วยวิธีการ One Hot Encoding เพื่อให้โมเดลสามารถเรียนรู้ได้
การเรียนรู้เชิงลึก (Deep Learning) นั้นเป็นเทคนิคที่มัประสิทธิภาพมากในงาน Machine Learning ปัจจุบันซึ่งเบื้องหลังของมันก็คือการใช้ ANN
ในหลาย ๆ ชุดข้อมูลมักจะมีการเก็บวันที่ไว้ด้วยเสมอ ซึ่งการ Parsing Dates จะช่วยให้ใช้งานวันที่เหล่านั้นได้ง่ายยิ่งขึ้น
การจะเริ่มทำโปรเจคอะไรสักอย่างสิ่งที่ขาดไม่ได้เลยคือข้อมูล แล้วยิ่งเป็นงานที่เกี่ยวข้องกับ Data แล้วนั้น Data source จึงเป็นสิ่งจำเป็นมาก