วิศวกรรมคุณลักษณะ คือกระบวนการในการพิจารณาว่าฟีเจอร์ใดที่อาจมีประโยชน์ในการฝึกโมเดล แล้วสร้างฟีเจอร์เหล่านั้นโดยเปลี่ยนรูปแบบข้อมูลดิบที่พบในไฟล์บันทึกและแหล่งที่มาอื่นๆ ในส่วนนี้ เราจะเน้นที่เวลาและวิธีการเปลี่ยนรูปแบบตัวเลขและข้อมูลเชิงหมวดหมู่ รวมถึงข้อดีข้อเสียของวิธีการต่างๆ
เหตุผลในการเปลี่ยนรูปแบบข้อมูล
เราเปลี่ยนรูปแบบฟีเจอร์เป็นหลักเนื่องจากเหตุผลต่อไปนี้
การเปลี่ยนรูปแบบที่จําเป็นสําหรับความเข้ากันได้ของข้อมูล ตัวอย่างเช่น
- การแปลงฟีเจอร์ที่ไม่ใช่ตัวเลขเป็นตัวเลข คุณไม่สามารถคูณเมทริกซ์ในสตริงได้ เราจึงต้องแปลงสตริงให้แทนค่าตัวเลขแทน
- การปรับขนาดอินพุตเป็นขนาดคงที่ รูปแบบเชิงเส้นและโครงข่ายระบบประสาทแบบส่งต่อฟีดจะมีโหนดอินพุตในจํานวนที่คงที่ ดังนั้นข้อมูลอินพุตต้องมีขนาดเท่ากันเสมอ เช่น โมเดลรูปภาพจะต้องปรับแต่งรูปภาพในชุดข้อมูลให้เป็นขนาดคงที่
การเปลี่ยนรูปแบบที่ไม่บังคับซึ่งอาจช่วยให้โมเดลมีประสิทธิภาพดีขึ้น ตัวอย่างเช่น
- การทําให้เป็นโทเค็นหรือใช้ตัวพิมพ์เล็ก/ใหญ่ของฟีเจอร์ข้อความได้
- ฟีเจอร์ตัวเลขมาตรฐาน (โมเดลส่วนใหญ่จะทํางานได้ดีขึ้นหลังจากนั้น)
- การอนุญาตโมเดลเชิงเส้นให้แทรกเนื้อหาเชิงเส้นเข้าไปในพื้นที่ของฟีเจอร์
พูดง่ายๆ ก็คือ การแปลงรูปแบบนั้นไม่จําเป็น โมเดลของคุณจะยังคงทํางานต่อไปได้ถ้าไม่มี แต่การใช้เทคนิคเหล่านี้อาจทําให้โมเดลมีผลลัพธ์ที่ดีขึ้น
เปลี่ยนรูปแบบที่ไหน
คุณสามารถใช้การเปลี่ยนรูปแบบได้ขณะสร้างข้อมูลในดิสก์หรือภายในโมเดล
การเปลี่ยนแปลงก่อนการฝึกอบรม
สําหรับวิธีการนี้ เราจะปฏิรูปการสอนก่อนการฝึกอบรม โค้ดนี้จะแยกออกจากโมเดลแมชชีนเลิร์นนิง
ข้อดี
- การคํานวณจะเกิดขึ้นเพียงครั้งเดียวเท่านั้น
- การคํานวณสามารถดูชุดข้อมูลทั้งหมดเพื่อพิจารณาการเปลี่ยนรูปแบบ
ข้อเสีย
- ระบบจะทําซ้ําการเปลี่ยนรูปแบบในช่วงการคาดการณ์ ระวังการเบ้
- การเปลี่ยนแปลงใดๆ ที่ต้องเปลี่ยนแปลงทําให้เกิดการสร้างข้อมูลอีกครั้ง ซึ่งทําให้การทําซ้ําช้าลง
ความเบ้อาจเป็นอันตรายสําหรับกรณีที่เกี่ยวข้องกับการให้บริการออนไลน์ ในการนําเสนอแบบออฟไลน์ คุณอาจนําโค้ดที่สร้างข้อมูลการฝึกมาใช้ซ้ําได้ ในการแสดงผลออนไลน์ โค้ดที่สร้างชุดข้อมูลและโค้ดที่ใช้จัดการการเข้าชมแบบสดจะค่อนข้างแตกต่างออกไป ซึ่งทําให้สามารถทําให้การบิดเบือนได้อย่างง่ายดาย
การเปลี่ยนรูปแบบภายในโมเดล
ในวิธีการนี้ การเปลี่ยนรูปแบบจะเป็นส่วนหนึ่งของโค้ดโมเดล โมเดลนี้จะใช้ข้อมูลที่ไม่ได้แปลงเป็นอินพุตและจะแปลงภายในโมเดล
ข้อดี
- การทําซ้ําที่ง่ายดาย หากเปลี่ยนแปลงรูปแบบ คุณจะยังใช้ไฟล์ข้อมูลเดิมได้
- คุณจะได้รับการเปลี่ยนรูปแบบในการฝึกอบรมและการคาดการณ์ตามเวลาเดิม
ข้อเสีย
- การเปลี่ยนรูปแบบแพงอาจทําให้เวลาในการตอบสนองเพิ่มขึ้น
- การแปลงเป็นกลุ่มต่อกลุ่ม
มีหลายสิ่งที่ต้องพิจารณาในการเปลี่ยนแปลงต่อกลุ่ม สมมติว่าคุณต้องการปรับค่ามาตรฐานตามค่าเฉลี่ยของฟีเจอร์ ซึ่งก็คือคุณต้องการเปลี่ยนค่าของฟีเจอร์ให้มีค่าเป็น 0
และค่าเบี่ยงเบนมาตรฐาน 1
เมื่อเปลี่ยนรูปแบบภายในโมเดล การปรับให้สอดคล้องตามมาตรฐานนี้จะเข้าถึงข้อมูลได้เพียงกลุ่มเดียวเท่านั้น ไม่ใช่ชุดข้อมูลแบบเต็ม คุณสามารถทําให้ค่าเป็นค่าเฉลี่ยตามมาตรฐานภายในกลุ่ม (อันตรายหากแบตช์มีความหลากหลายมาก) หรือคํานวณค่าเฉลี่ยและแก้ไขเป็นค่าคงที่ในโมเดล
เราจะสํารวจการทําให้เป็นมาตรฐานในส่วนถัดไป
สํารวจ ทําความสะอาด และแสดงภาพข้อมูลของคุณ
สํารวจและล้างข้อมูลก่อนที่จะเปลี่ยนรูปแบบ คุณอาจทํางานต่อไปนี้บางส่วนในขณะที่รวบรวมและสร้างชุดข้อมูล
- ตรวจสอบข้อมูลหลายๆ แถว
- ตรวจสอบสถิติเบื้องต้น
- แก้ไขรายการตัวเลขที่หายไป
แสดงภาพข้อมูลบ่อยๆ กราฟสามารถช่วยหาความผิดปกติหรือรูปแบบที่ชัดเจนจากสถิติตัวเลข เพราะฉะนั้น ก่อนจะวิเคราะห์หลายครั้งเกินไป ให้ดูข้อมูลในกราฟิก ไม่ว่าจะแสดงผ่านแผนภูมิกระจายหรือฮิสโตแกรม ดูกราฟไม่เพียงแต่ที่จุดเริ่มต้นของไปป์ไลน์ แต่ยังดูตลอดทั้งการเปลี่ยนรูปแบบด้วย การแสดงภาพจะช่วยคุณตรวจสอบสมมติฐานของคุณอย่างต่อเนื่องและดูผลของการเปลี่ยนแปลงที่สําคัญ