เมื่อคุณเข้าใจเครื่องมือพื้นฐานของแมชชีนเลิร์นนิงแล้ว เช่น Python, Pandas และไลบรารีที่เกี่ยวข้องที่ทำงานบน "Google Colab" แมชชีนเลิร์นนิงขั้นพื้นฐานจะเกิดขึ้นอย่างรวดเร็ว โมเดลการคาดการณ์สองสามตัวแรกของคุณน่าตื่นเต้นที่จะได้ร่วมงานด้วย แต่แม้ในระยะเริ่มต้นนี้ คุณอาจคิดว่ามีวิธีต่างๆ ที่จะปรับปรุงผลลัพธ์ของคุณได้ ตอนนี้ได้เวลาเริ่มปรับแต่งโมเดลของคุณแล้ว

การตรวจสอบข้าม

การตรวจสอบข้ามเป็นเทคนิคในการประเมินโมเดล ML โดยการฝึกโมเดลหลายตัวบนชุดย่อยของข้อมูลและประเมินโมเดลเหล่านั้นพร้อมกัน สามารถช่วยให้คุณหลีกเลี่ยงการออกกำลังกายมากเกินไปได้โดยใช้ชุดข้อมูลทั้งหมดในการฝึกซ้อมบางส่วน คุณสามารถใช้วิธีตรวจสอบข้าม k-fold เพื่อทำการตรวจสอบข้ามได้

เราจะสาธิตการใช้การตรวจสอบข้ามแบบ k-fold สิ่งนี้จะแยกข้อมูลอินพุตออกเป็นชุดย่อย k ชุด (หรือที่เรียกว่าพับ) คุณฝึกโมเดล ML กับเซ็ตย่อยทั้งหมดยกเว้นหนึ่งเซ็ตและประเมินผล กระบวนการนี้ซ้ำแล้วซ้ำอีก k ครั้ง

แผนภาพต่อไปนี้แสดงชุดย่อยการฝึกสำหรับแต่ละแบบจำลองทั้งสี่แบบที่สร้างขึ้นและฝึกระหว่างการตรวจสอบความถูกต้องข้าม 4 เท่า โมเดลที่ 1 ใช้ข้อมูล 25 เปอร์เซ็นต์แรกในการประเมิน และอีก 75 เปอร์เซ็นต์ที่เหลือสำหรับการฝึกอบรม โมเดลที่สองใช้ส่วนย่อยที่สอง 25 เปอร์เซ็นต์สำหรับการประเมิน และส่วนที่เหลือสำหรับการฝึกอบรม และอื่นๆ

ไฮเปอร์เปรามิเตอร์

ไฮเปอร์พารามิเตอร์คือพารามิเตอร์ที่มีการตั้งค่าก่อนที่กระบวนการเรียนรู้จะเริ่มต้น ในทางตรงกันข้าม ค่าของพารามิเตอร์อื่นๆ ได้มาจากการฝึก มาดูการใช้อัลกอริธึม Cross Validation กับไลบรารี sklearn ที่ช่วยยกของหนัก คุณจะสังเกตเห็น KFold(n_splits=3, random_state=42) ทั้ง n_splits=3 และ random_state=42 เป็นไฮเปอร์พารามิเตอร์ ไฮเปอร์พารามิเตอร์เหล่านี้เป็นตัวช่วยที่นักวิทยาศาสตร์ข้อมูลใช้สัปดาห์ละครั้งเพื่อให้ได้โซลูชันที่ดีขึ้นทีละน้อย ในกรณีนี้ เราใช้ n_splits=3ซึ่งเป็นการวัดจำนวนส่วนที่จะแยกข้อมูล ไฮเปอร์พารามิเตอร์random_state=42 จะทำให้ผลลัพธ์มีความสม่ำเสมอในการเรียกใช้อัลกอริทึมในอนาคต จำนวนจริง (ในกรณีนี้คือ 42) นั้นไม่สำคัญ อาจเป็นเลขอะไรก็ได้ แต่การใช้หมายเลขเดียวกันในการรันอัลกอริทึมในอนาคตจะทำให้ได้ผลลัพธ์ที่สม่ำเสมอ การเว้นว่างไว้จะไม่ส่งผลต่อการทำงานของอัลกอริทึม แต่แต่ละครั้งที่คุณเรียกใช้ random_state จะแตกต่างออกไป

AUC (พื้นที่ใต้เส้นโค้ง)

ผลลัพธ์ของการปรับโมเดลจนถึงจุดนี้คือการปรับปรุงคะแนน AUC คะแนน AUC นี้เป็นการทดสอบโมเดลที่ "พอดี" กับข้อมูลการทดสอบ การพูดเส้นโค้งที่เป็นปัญหาอย่างเคร่งครัดคือการปันส่วนของผลลัพธ์ "บวกจริง" และ "บวกเท็จ" การต้องการอัตราส่วนสูงสุดเป็นเรื่องง่ายที่จะมีโมเดลที่คุณเชื่อถือได้เพื่อส่งสัญญาณที่แม่นยำที่สุดเท่าที่จะเป็นไปได้ หากต้องการอ่านเพิ่มเติม นี่คือคำอธิบายวิดีโอที่ยอดเยี่ยมความยาว 14 นาทีของ AUC โดย Data School

การปรับแต่ง Hyper Perameters

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

บันทึกงานของคุณ!

หลังจากทำงานหนักมาหลายชั่วโมง สิ่งสุดท้ายที่คุณต้องการคือสูญเสียพารามิเตอร์ที่ได้รับการปรับแต่งอย่างละเอียด หากคุณย้ายโมเดลของคุณไปยังแพลตฟอร์มอื่นหรือจากสภาพแวดล้อมสาธิตเพื่อใช้งานจริง วิธีหนึ่งที่จะทำให้แน่ใจว่างานของคุณมีความสม่ำเสมอคือการใช้ sklearn.externals.joblib ซึ่งเป็นไลบรารีที่มีหน้าที่บันทึกงานของคุณไว้ในชุดเดียวเพื่อส่งต่อ มันใช้งานง่ายมาก เมื่อคุณ model ได้รับการติดตั้งและพร้อมใช้งาน คุณเพียงใช้รหัสนี้และบันทึกลงใน filename

และเมื่อคุณมีไฟล์ไปยังตำแหน่งใหม่พร้อมกับข้อมูลแล้ว การแกะและใช้งานก็ง่ายดายเพียงเท่านี้