# เทคนิคการเรียนรู้ของเครื่อง กระบวนการสร้าง ใช้งาน และดูแลรักษาโมเดลการเรียนรู้ของเครื่องและข้อมูลที่ใช้ เป็นกระบวนการที่แตกต่างจากเวิร์กโฟลว์การพัฒนาหลายประเภท ในบทเรียนนี้ เราจะทำให้กระบวนการนี้เข้าใจง่ายขึ้น และสรุปเทคนิคหลักที่คุณจำเป็นต้องรู้ คุณจะได้: - เข้าใจกระบวนการพื้นฐานของการเรียนรู้ของเครื่องในระดับสูง - สำรวจแนวคิดพื้นฐาน เช่น 'โมเดล', 'การทำนาย', และ 'ข้อมูลการฝึก' ## [แบบทดสอบก่อนเรียน](https://ff-quizzes.netlify.app/en/ml/) [![ML for beginners - Techniques of Machine Learning](https://img.youtube.com/vi/4NGM0U2ZSHU/0.jpg)](https://youtu.be/4NGM0U2ZSHU "ML for beginners - Techniques of Machine Learning") > 🎥 คลิกที่ภาพด้านบนเพื่อดูวิดีโอสั้น ๆ เกี่ยวกับบทเรียนนี้ ## บทนำ ในระดับสูง งานสร้างกระบวนการเรียนรู้ของเครื่อง (ML) ประกอบด้วยหลายขั้นตอน: 1. **กำหนดคำถาม**. กระบวนการ ML ส่วนใหญ่เริ่มต้นด้วยการตั้งคำถามที่ไม่สามารถตอบได้ด้วยโปรแกรมเงื่อนไขง่าย ๆ หรือเครื่องมือที่ใช้กฎ คำถามเหล่านี้มักเกี่ยวข้องกับการทำนายโดยอิงจากชุดข้อมูล 2. **รวบรวมและเตรียมข้อมูล**. เพื่อที่จะตอบคำถามของคุณ คุณต้องมีข้อมูล คุณภาพและบางครั้งปริมาณของข้อมูลจะกำหนดว่าคุณสามารถตอบคำถามเริ่มต้นได้ดีแค่ไหน การแสดงภาพข้อมูลเป็นส่วนสำคัญในขั้นตอนนี้ ขั้นตอนนี้ยังรวมถึงการแบ่งข้อมูลออกเป็นกลุ่มสำหรับการฝึกและการทดสอบเพื่อสร้างโมเดล 3. **เลือกวิธีการฝึก**. ขึ้นอยู่กับคำถามและลักษณะของข้อมูล คุณต้องเลือกวิธีการฝึกโมเดลเพื่อให้สะท้อนข้อมูลได้ดีที่สุดและทำการทำนายที่แม่นยำ 4. **ฝึกโมเดล**. โดยใช้ข้อมูลการฝึก คุณจะใช้อัลกอริทึมต่าง ๆ เพื่อฝึกโมเดลให้รู้จักรูปแบบในข้อมูล โมเดลอาจใช้น้ำหนักภายในที่สามารถปรับเปลี่ยนได้เพื่อให้ความสำคัญกับบางส่วนของข้อมูลมากกว่าส่วนอื่น ๆ เพื่อสร้างโมเดลที่ดีกว่า 5. **ประเมินโมเดล**. คุณใช้ข้อมูลที่ไม่เคยเห็นมาก่อน (ข้อมูลการทดสอบ) จากชุดข้อมูลที่รวบรวมมาเพื่อดูว่าโมเดลทำงานได้ดีแค่ไหน 6. **ปรับแต่งพารามิเตอร์**. จากประสิทธิภาพของโมเดล คุณสามารถทำกระบวนการใหม่โดยใช้พารามิเตอร์หรือตัวแปรที่แตกต่างกันซึ่งควบคุมพฤติกรรมของอัลกอริทึมที่ใช้ฝึกโมเดล 7. **ทำนาย**. ใช้ข้อมูลใหม่เพื่อทดสอบความแม่นยำของโมเดล ## คำถามที่ควรถาม คอมพิวเตอร์มีความสามารถพิเศษในการค้นหารูปแบบที่ซ่อนอยู่ในข้อมูล ความสามารถนี้มีประโยชน์มากสำหรับนักวิจัยที่มีคำถามเกี่ยวกับโดเมนที่ไม่สามารถตอบได้ง่าย ๆ ด้วยการสร้างเครื่องมือที่ใช้กฎเงื่อนไข ตัวอย่างเช่น ในงานด้านประกันภัย นักวิทยาศาสตร์ข้อมูลอาจสร้างกฎที่กำหนดเองเกี่ยวกับอัตราการเสียชีวิตของผู้สูบบุหรี่เทียบกับผู้ไม่สูบบุหรี่ เมื่อมีตัวแปรอื่น ๆ เข้ามาในสมการ โมเดล ML อาจมีประสิทธิภาพมากกว่าในการทำนายอัตราการเสียชีวิตในอนาคตโดยอิงจากประวัติสุขภาพที่ผ่านมา ตัวอย่างที่น่าสนใจมากขึ้นอาจเป็นการทำนายสภาพอากาศสำหรับเดือนเมษายนในสถานที่หนึ่งโดยอิงจากข้อมูลที่รวมถึงละติจูด ลองจิจูด การเปลี่ยนแปลงสภาพภูมิอากาศ ความใกล้ชิดกับมหาสมุทร รูปแบบของกระแสลม และอื่น ๆ ✅ [สไลด์นี้](https://www2.cisl.ucar.edu/sites/default/files/2021-10/0900%20June%2024%20Haupt_0.pdf) เกี่ยวกับโมเดลสภาพอากาศให้มุมมองทางประวัติศาสตร์เกี่ยวกับการใช้ ML ในการวิเคราะห์สภาพอากาศ ## งานก่อนการสร้างโมเดล ก่อนเริ่มสร้างโมเดลของคุณ มีหลายงานที่คุณต้องทำ เพื่อทดสอบคำถามของคุณและสร้างสมมติฐานโดยอิงจากการทำนายของโมเดล คุณต้องระบุและกำหนดองค์ประกอบหลายอย่าง ### ข้อมูล เพื่อที่จะตอบคำถามของคุณด้วยความมั่นใจ คุณต้องมีข้อมูลที่ดีในปริมาณที่เหมาะสม มีสองสิ่งที่คุณต้องทำในขั้นตอนนี้: - **รวบรวมข้อมูล**. โดยคำนึงถึงบทเรียนก่อนหน้านี้เกี่ยวกับความยุติธรรมในการวิเคราะห์ข้อมูล รวบรวมข้อมูลของคุณอย่างระมัดระวัง ระวังแหล่งที่มาของข้อมูลนี้ อคติที่อาจมี และบันทึกที่มาของข้อมูล - **เตรียมข้อมูล**. มีหลายขั้นตอนในกระบวนการเตรียมข้อมูล คุณอาจต้องรวบรวมข้อมูลและปรับให้เป็นมาตรฐานหากมาจากแหล่งที่หลากหลาย คุณสามารถปรับปรุงคุณภาพและปริมาณของข้อมูลผ่านวิธีการต่าง ๆ เช่น การแปลงข้อความเป็นตัวเลข (ดังที่เราทำใน [Clustering](../../5-Clustering/1-Visualize/README.md)) คุณอาจสร้างข้อมูลใหม่โดยอิงจากข้อมูลเดิม (ดังที่เราทำใน [Classification](../../4-Classification/1-Introduction/README.md)) คุณสามารถทำความสะอาดและแก้ไขข้อมูล (ดังที่เราจะทำก่อนบทเรียน [Web App](../../3-Web-App/README.md)) สุดท้าย คุณอาจต้องสุ่มและสับข้อมูล ขึ้นอยู่กับเทคนิคการฝึกของคุณ ✅ หลังจากรวบรวมและประมวลผลข้อมูลของคุณ ใช้เวลาสักครู่เพื่อดูว่ารูปร่างของข้อมูลจะช่วยให้คุณตอบคำถามที่ตั้งใจไว้ได้หรือไม่ อาจเป็นไปได้ว่าข้อมูลจะไม่ทำงานได้ดีในงานที่คุณตั้งใจไว้ ดังที่เราค้นพบในบทเรียน [Clustering](../../5-Clustering/1-Visualize/README.md)! ### คุณลักษณะและเป้าหมาย [คุณลักษณะ](https://www.datasciencecentral.com/profiles/blogs/an-introduction-to-variable-and-feature-selection) คือคุณสมบัติที่สามารถวัดได้ของข้อมูล ในชุดข้อมูลหลายชุดจะแสดงเป็นหัวข้อคอลัมน์ เช่น 'วันที่' 'ขนาด' หรือ 'สี' ตัวแปรคุณลักษณะของคุณ ซึ่งมักแสดงเป็น `X` ในโค้ด แสดงถึงตัวแปรอินพุตที่จะใช้ฝึกโมเดล เป้าหมายคือสิ่งที่คุณพยายามทำนาย เป้าหมายซึ่งมักแสดงเป็น `y` ในโค้ด แสดงถึงคำตอบของคำถามที่คุณพยายามถามจากข้อมูล: ในเดือนธันวาคม ฟักทอง **สีอะไร** จะมีราคาถูกที่สุด? ในซานฟรานซิสโก ย่านไหนจะมี **ราคาที่ดิน** ดีที่สุด? บางครั้งเป้าหมายยังถูกเรียกว่าแอตทริบิวต์ป้ายกำกับ ### การเลือกตัวแปรคุณลักษณะ 🎓 **การเลือกคุณลักษณะและการสกัดคุณลักษณะ** คุณจะรู้ได้อย่างไรว่าควรเลือกตัวแปรใดเมื่อสร้างโมเดล? คุณอาจต้องผ่านกระบวนการเลือกคุณลักษณะหรือการสกัดคุณลักษณะเพื่อเลือกตัวแปรที่เหมาะสมที่สุดสำหรับโมเดลที่มีประสิทธิภาพสูงสุด อย่างไรก็ตาม ทั้งสองกระบวนการไม่เหมือนกัน: "การสกัดคุณลักษณะสร้างคุณลักษณะใหม่จากฟังก์ชันของคุณลักษณะเดิม ในขณะที่การเลือกคุณลักษณะจะคืนชุดย่อยของคุณลักษณะ" ([แหล่งข้อมูล](https://wikipedia.org/wiki/Feature_selection)) ### การแสดงภาพข้อมูล ส่วนสำคัญของเครื่องมือของนักวิทยาศาสตร์ข้อมูลคือพลังในการแสดงภาพข้อมูลโดยใช้ไลบรารีที่ยอดเยี่ยมหลายตัว เช่น Seaborn หรือ MatPlotLib การแสดงข้อมูลของคุณในรูปแบบภาพอาจช่วยให้คุณค้นพบความสัมพันธ์ที่ซ่อนอยู่ซึ่งคุณสามารถใช้ประโยชน์ได้ การแสดงภาพของคุณอาจช่วยให้คุณค้นพบอคติหรือข้อมูลที่ไม่สมดุล (ดังที่เราค้นพบใน [Classification](../../4-Classification/2-Classifiers-1/README.md)) ### การแบ่งชุดข้อมูล ก่อนการฝึก คุณต้องแบ่งชุดข้อมูลของคุณออกเป็นสองส่วนหรือมากกว่าที่มีขนาดไม่เท่ากันแต่ยังคงแสดงข้อมูลได้ดี - **การฝึก**. ส่วนนี้ของชุดข้อมูลจะถูกใช้เพื่อฝึกโมเดลของคุณ ชุดนี้ประกอบด้วยส่วนใหญ่ของชุดข้อมูลเดิม - **การทดสอบ**. ชุดข้อมูลทดสอบเป็นกลุ่มข้อมูลอิสระที่มักรวบรวมจากข้อมูลเดิม ซึ่งคุณใช้เพื่อยืนยันประสิทธิภาพของโมเดลที่สร้างขึ้น - **การตรวจสอบ**. ชุดตรวจสอบเป็นกลุ่มตัวอย่างอิสระขนาดเล็กที่คุณใช้ปรับแต่งพารามิเตอร์ไฮเปอร์ หรือโครงสร้างของโมเดลเพื่อปรับปรุงโมเดล ขึ้นอยู่กับขนาดของข้อมูลและคำถามที่คุณถาม คุณอาจไม่จำเป็นต้องสร้างชุดที่สามนี้ (ดังที่เราสังเกตใน [Time Series Forecasting](../../7-TimeSeries/1-Introduction/README.md)) ## การสร้างโมเดล โดยใช้ข้อมูลการฝึก เป้าหมายของคุณคือการสร้างโมเดล หรือการแสดงทางสถิติของข้อมูลของคุณ โดยใช้อัลกอริทึมต่าง ๆ เพื่อ **ฝึก** โมเดล การฝึกโมเดลจะเปิดโอกาสให้โมเดลได้สัมผัสกับข้อมูลและทำการสันนิษฐานเกี่ยวกับรูปแบบที่ค้นพบ ตรวจสอบ และยอมรับหรือปฏิเสธ ### การตัดสินใจเลือกวิธีการฝึก ขึ้นอยู่กับคำถามและลักษณะของข้อมูล คุณจะเลือกวิธีการฝึก โดยการสำรวจ [เอกสารของ Scikit-learn](https://scikit-learn.org/stable/user_guide.html) - ซึ่งเราใช้ในหลักสูตรนี้ - คุณสามารถสำรวจวิธีการฝึกโมเดลได้หลายวิธี ขึ้นอยู่กับประสบการณ์ของคุณ คุณอาจต้องลองหลายวิธีเพื่อสร้างโมเดลที่ดีที่สุด คุณอาจต้องผ่านกระบวนการที่นักวิทยาศาสตร์ข้อมูลประเมินประสิทธิภาพของโมเดลโดยป้อนข้อมูลที่ไม่เคยเห็นมาก่อน ตรวจสอบความแม่นยำ อคติ และปัญหาที่ลดคุณภาพ และเลือกวิธีการฝึกที่เหมาะสมที่สุดสำหรับงานที่ทำอยู่ ### การฝึกโมเดล เมื่อมีข้อมูลการฝึก คุณพร้อมที่จะ 'fit' เพื่อสร้างโมเดล คุณจะสังเกตเห็นว่าในไลบรารี ML หลายตัว คุณจะพบโค้ด 'model.fit' - ในเวลานี้คุณจะส่งตัวแปรคุณลักษณะของคุณเป็นอาร์เรย์ของค่า (มักเป็น 'X') และตัวแปรเป้าหมาย (มักเป็น 'y') ### การประเมินโมเดล เมื่อกระบวนการฝึกเสร็จสิ้น (อาจใช้หลายรอบ หรือ 'epochs' ในการฝึกโมเดลขนาดใหญ่) คุณจะสามารถประเมินคุณภาพของโมเดลได้โดยใช้ข้อมูลทดสอบเพื่อวัดประสิทธิภาพของมัน ข้อมูลนี้เป็นชุดย่อยของข้อมูลเดิมที่โมเดลยังไม่เคยวิเคราะห์มาก่อน คุณสามารถพิมพ์ตารางเมตริกเกี่ยวกับคุณภาพของโมเดลได้ 🎓 **การปรับโมเดล** ในบริบทของการเรียนรู้ของเครื่อง การปรับโมเดลหมายถึงความแม่นยำของฟังก์ชันพื้นฐานของโมเดลเมื่อพยายามวิเคราะห์ข้อมูลที่ไม่คุ้นเคย 🎓 **การปรับไม่ดี** และ **การปรับมากเกินไป** เป็นปัญหาทั่วไปที่ลดคุณภาพของโมเดล เนื่องจากโมเดลปรับตัวไม่ดีพอหรือดีเกินไป สิ่งนี้ทำให้โมเดลทำการทำนายที่สอดคล้องกับข้อมูลการฝึกมากเกินไปหรือหลวมเกินไป โมเดลที่ปรับมากเกินไปจะทำนายข้อมูลการฝึกได้ดีเกินไปเพราะมันเรียนรู้รายละเอียดและเสียงรบกวนของข้อมูลมากเกินไป โมเดลที่ปรับไม่ดีจะไม่แม่นยำเพราะไม่สามารถวิเคราะห์ข้อมูลการฝึกหรือข้อมูลที่ยังไม่เคยเห็นได้อย่างถูกต้อง ![overfitting model](../../../../1-Introduction/4-techniques-of-ML/images/overfitting.png) > อินโฟกราฟิกโดย [Jen Looper](https://twitter.com/jenlooper) ## การปรับแต่งพารามิเตอร์ เมื่อการฝึกครั้งแรกเสร็จสิ้น สังเกตคุณภาพของโมเดลและพิจารณาปรับปรุงโดยการปรับ 'พารามิเตอร์ไฮเปอร์' อ่านเพิ่มเติมเกี่ยวกับกระบวนการนี้ [ในเอกสาร](https://docs.microsoft.com/en-us/azure/machine-learning/how-to-tune-hyperparameters?WT.mc_id=academic-77952-leestott) ## การทำนาย นี่คือช่วงเวลาที่คุณสามารถใช้ข้อมูลใหม่ทั้งหมดเพื่อทดสอบความแม่นยำของโมเดล ในการตั้งค่า ML ที่ 'นำไปใช้' ซึ่งคุณกำลังสร้างสินทรัพย์เว็บเพื่อใช้โมเดลในระบบผลิต การทำนายอาจเกี่ยวข้องกับการรวบรวมข้อมูลจากผู้ใช้ (เช่น การกดปุ่ม) เพื่อกำหนดตัวแปรและส่งไปยังโมเดลเพื่อการอนุมานหรือการประเมินผล ในบทเรียนเหล่านี้ คุณจะค้นพบวิธีใช้ขั้นตอนเหล่านี้เพื่อเตรียม สร้าง ทดสอบ ประเมิน และทำนาย - ทุกขั้นตอนของนักวิทยาศาสตร์ข้อมูลและอื่น ๆ ในขณะที่คุณก้าวหน้าในเส้นทางสู่การเป็นวิศวกร ML 'เต็มรูปแบบ' --- ## 🚀ความท้าทาย วาดแผนภาพแสดงขั้นตอนของนักปฏิบัติ ML ตอนนี้คุณอยู่ในขั้นตอนใดในกระบวนการ? คุณคาดว่าจะพบความยากลำบากที่ไหน? อะไรที่ดูเหมือนง่ายสำหรับคุณ? ## [แบบทดสอบหลังเรียน](https://ff-quizzes.netlify.app/en/ml/) ## ทบทวนและศึกษาด้วยตนเอง ค้นหาสัมภาษณ์ออนไลน์กับนักวิทยาศาสตร์ข้อมูลที่พูดคุยเกี่ยวกับงานประจำวันของพวกเขา นี่คือ [หนึ่งตัวอย่าง](https://www.youtube.com/watch?v=Z3IjgbbCEfs) ## งานที่ได้รับมอบหมาย [สัมภาษณ์นักวิทยาศาสตร์ข้อมูล](assignment.md) --- **ข้อจำกัดความรับผิดชอบ**: เอกสารนี้ได้รับการแปลโดยใช้บริการแปลภาษา AI [Co-op Translator](https://github.com/Azure/co-op-translator) แม้ว่าเราจะพยายามให้การแปลมีความถูกต้อง แต่โปรดทราบว่าการแปลอัตโนมัติอาจมีข้อผิดพลาดหรือความไม่แม่นยำ เอกสารต้นฉบับในภาษาต้นทางควรถือเป็นแหล่งข้อมูลที่เชื่อถือได้ สำหรับข้อมูลที่สำคัญ ขอแนะนำให้ใช้บริการแปลภาษามนุษย์มืออาชีพ เราจะไม่รับผิดชอบต่อความเข้าใจผิดหรือการตีความที่ผิดพลาดซึ่งเกิดจากการใช้การแปลนี้