You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
132 lines
26 KiB
132 lines
26 KiB
<!--
|
|
CO_OP_TRANSLATOR_METADATA:
|
|
{
|
|
"original_hash": "9d91f3af3758fdd4569fb410575995ef",
|
|
"translation_date": "2025-09-05T21:40:20+00:00",
|
|
"source_file": "1-Introduction/4-techniques-of-ML/README.md",
|
|
"language_code": "th"
|
|
}
|
|
-->
|
|
# เทคนิคการเรียนรู้ของเครื่อง
|
|
|
|
กระบวนการสร้าง ใช้งาน และดูแลรักษาโมเดลการเรียนรู้ของเครื่องและข้อมูลที่ใช้ เป็นกระบวนการที่แตกต่างจากเวิร์กโฟลว์การพัฒนาหลายประเภท ในบทเรียนนี้ เราจะทำให้กระบวนการนี้เข้าใจง่ายขึ้น และสรุปเทคนิคหลักที่คุณจำเป็นต้องรู้ คุณจะได้:
|
|
|
|
- เข้าใจกระบวนการพื้นฐานของการเรียนรู้ของเครื่องในระดับสูง
|
|
- สำรวจแนวคิดพื้นฐาน เช่น 'โมเดล', 'การทำนาย', และ 'ข้อมูลการฝึก'
|
|
|
|
## [แบบทดสอบก่อนเรียน](https://ff-quizzes.netlify.app/en/ml/)
|
|
|
|
[](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' ในการฝึกโมเดลขนาดใหญ่) คุณจะสามารถประเมินคุณภาพของโมเดลได้โดยใช้ข้อมูลทดสอบเพื่อวัดประสิทธิภาพของมัน ข้อมูลนี้เป็นชุดย่อยของข้อมูลเดิมที่โมเดลยังไม่เคยวิเคราะห์มาก่อน คุณสามารถพิมพ์ตารางเมตริกเกี่ยวกับคุณภาพของโมเดลได้
|
|
|
|
🎓 **การปรับโมเดล**
|
|
|
|
ในบริบทของการเรียนรู้ของเครื่อง การปรับโมเดลหมายถึงความแม่นยำของฟังก์ชันพื้นฐานของโมเดลเมื่อพยายามวิเคราะห์ข้อมูลที่ไม่คุ้นเคย
|
|
|
|
🎓 **การปรับไม่ดี** และ **การปรับมากเกินไป** เป็นปัญหาทั่วไปที่ลดคุณภาพของโมเดล เนื่องจากโมเดลปรับตัวไม่ดีพอหรือดีเกินไป สิ่งนี้ทำให้โมเดลทำการทำนายที่สอดคล้องกับข้อมูลการฝึกมากเกินไปหรือหลวมเกินไป โมเดลที่ปรับมากเกินไปจะทำนายข้อมูลการฝึกได้ดีเกินไปเพราะมันเรียนรู้รายละเอียดและเสียงรบกวนของข้อมูลมากเกินไป โมเดลที่ปรับไม่ดีจะไม่แม่นยำเพราะไม่สามารถวิเคราะห์ข้อมูลการฝึกหรือข้อมูลที่ยังไม่เคยเห็นได้อย่างถูกต้อง
|
|
|
|

|
|
> อินโฟกราฟิกโดย [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) แม้ว่าเราจะพยายามให้การแปลมีความถูกต้อง แต่โปรดทราบว่าการแปลอัตโนมัติอาจมีข้อผิดพลาดหรือความไม่แม่นยำ เอกสารต้นฉบับในภาษาต้นทางควรถือเป็นแหล่งข้อมูลที่เชื่อถือได้ สำหรับข้อมูลที่สำคัญ ขอแนะนำให้ใช้บริการแปลภาษามนุษย์มืออาชีพ เราจะไม่รับผิดชอบต่อความเข้าใจผิดหรือการตีความที่ผิดพลาดซึ่งเกิดจากการใช้การแปลนี้ |