# စက်ရုပ်သင်ယူမှုနည်းလမ်းများ စက်ရုပ်သင်ယူမှု (Machine Learning) မော်ဒယ်များကို တည်ဆောက်ခြင်း၊ အသုံးပြုခြင်းနှင့် ထိန်းသိမ်းခြင်းလုပ်ငန်းစဉ်သည် အခြားသော ဖွံ့ဖြိုးတိုးတက်မှုလုပ်ငန်းစဉ်များနှင့် အတော်လေး ကွဲပြားနေသည်။ ဒီသင်ခန်းစာမှာ အဲဒီလုပ်ငန်းစဉ်ကို ရှင်းလင်းဖော်ပြပြီး သင်သိထားရမယ့် အဓိကနည်းလမ်းများကို ဖော်ပြပေးပါမယ်။ သင်သည်: - စက်ရုပ်သင်ယူမှုကို အထွေထွေ အဆင့်မြင့်မှာ နားလည်နိုင်ပါမယ်။ - 'မော်ဒယ်များ', 'ခန့်မှန်းချက်များ', 'သင်ကြားမှုဒေတာ' စတဲ့ အခြေခံအယူအဆများကို လေ့လာနိုင်ပါမယ်။ ## [Pre-lecture quiz](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 လုပ်ငန်းစဉ်များစွာသည် ရိုးရှင်းသော အခြေအနေ-based ပရိုဂရမ်များ သို့မဟုတ် စည်းကမ်း-based engine များဖြင့် ဖြေရှင်းလို့မရတဲ့ မေးခွန်းတစ်ခုကို မေးခြင်းဖြင့် စတင်သည်။ ဒီမေးခွန်းများသည် ဒေတာအစုအဝေးအပေါ် အခြေခံပြီး ခန့်မှန်းချက်များကို လုပ်ဆောင်ခြင်းနှင့် ဆက်စပ်နေတတ်သည်။ 2. **ဒေတာကို စုဆောင်းပြီး ပြင်ဆင်ပါ**။ မေးခွန်းကို ဖြေရှင်းနိုင်ဖို့ သင့်မှာ ဒေတာလိုအပ်ပါတယ်။ ဒေတာရဲ့ အရည်အသွေးနှင့် အချို့အခါမှာ အရေအတွက်က သင့်မေးခွန်းကို ဘယ်လောက်ကောင်းကောင်း ဖြေရှင်းနိုင်မလဲဆိုတာကို သတ်မှတ်ပေးပါမယ်။ ဒေတာကို မြင်သာအောင် ဖော်ပြခြင်းက ဒီအဆင့်မှာ အရေးကြီးပါတယ်။ ဒီအဆင့်မှာ ဒေတာကို သင်ကြားမှုအုပ်စုနဲ့ စမ်းသပ်မှုအုပ်စုအဖြစ် ခွဲခြားဖွဲ့စည်းခြင်းလည်း ပါဝင်ပါတယ်။ 3. **သင်ကြားမှုနည်းလမ်းကို ရွေးချယ်ပါ**။ မေးခွန်းနှင့် ဒေတာရဲ့ သဘာဝအပေါ် မူတည်ပြီး မော်ဒယ်ကို သင်ကြားဖို့ အကောင်းဆုံးနည်းလမ်းကို ရွေးချယ်ရပါမယ်။ ဒီအပိုင်းမှာ အထူးကျွမ်းကျင်မှုလိုအပ်ပြီး အတော်လေး စမ်းသပ်မှုများ လိုအပ်တတ်ပါတယ်။ 4. **မော်ဒယ်ကို သင်ကြားပါ**။ သင်ကြားမှုဒေတာကို အသုံးပြုပြီး မော်ဒယ်ကို ဒေတာထဲက ပုံစံများကို မှတ်မိနိုင်အောင် သင်ကြားပါမယ်။ မော်ဒယ်သည် အတွင်းပိုင်းအလေးချိန်များကို အသုံးပြုပြီး ဒေတာရဲ့ အချို့အပိုင်းများကို ပိုမိုအရေးထားနိုင်အောင် ပြင်ဆင်နိုင်ပါတယ်။ 5. **မော်ဒယ်ကို အကဲဖြတ်ပါ**။ သင်စုဆောင်းထားတဲ့ ဒေတာထဲက မော်ဒယ်မမြင်ဖူးတဲ့ ဒေတာ (စမ်းသပ်မှုဒေတာ) ကို အသုံးပြုပြီး မော်ဒယ်ရဲ့ လုပ်ဆောင်မှုကို စမ်းသပ်ပါမယ်။ 6. **Parameter tuning**။ မော်ဒယ်ရဲ့ လုပ်ဆောင်မှုအပေါ် မူတည်ပြီး သင်ကြားမှုအတွက် အသုံးပြုတဲ့ algorithm များရဲ့ အပြုအမူကို ထိန်းချုပ်တဲ့ parameter များကို ပြန်လည်ပြင်ဆင်နိုင်ပါတယ်။ 7. **ခန့်မှန်းချက်လုပ်ဆောင်ပါ**။ မော်ဒယ်ရဲ့ တိကျမှုကို စမ်းသပ်ဖို့ အခြားသော input များကို အသုံးပြုပါ။ ## မေးခွန်းကို ဘာလို့ မေးရမလဲ ကွန်ပျူတာများသည် ဒေတာထဲက ဖုံးကွယ်နေတဲ့ ပုံစံများကို ရှာဖွေဖော်ထုတ်နိုင်စွမ်းရှိသည်။ ဒီစွမ်းရည်သည် သတ်မှတ်ထားတဲ့ နယ်ပယ်အတွင်း မေးခွန်းများကို ဖြေရှင်းဖို့ အလွန်အသုံးဝင်ပါတယ်။ ဥပမာအားဖြင့် သေဆုံးမှုနှုန်းကို ခန့်မှန်းဖို့ actuarial task တစ်ခုမှာ ဒေတာသိပ္ပံပညာရှင်တစ်ဦးသည် ဆေးလိပ်သောက်သူများနှင့် မသောက်သူများအကြား သေဆုံးမှုနှုန်းအပေါ် စည်းကမ်းများကို လက်ဖြင့်ဖန်တီးနိုင်ပါတယ်။ ဒါပေမယ့် အခြားသော variable များစွာ ပါဝင်လာတဲ့အခါမှာတော့ ML မော်ဒယ်တစ်ခုသည် အတိတ်ကျန်းမာရေးမှတ်တမ်းများအပေါ် အခြေခံပြီး အနာဂတ်သေဆုံးမှုနှုန်းကို ခန့်မှန်းဖို့ ပိုမိုထိရောက်နိုင်ပါတယ်။ ✅ ဒီ [slide deck](https://www2.cisl.ucar.edu/sites/default/files/2021-10/0900%20June%2024%20Haupt_0.pdf) သည် မိုးလေဝသကို ML အသုံးပြု၍ ခန့်မှန်းခြင်းအပေါ် သမိုင်းအမြင်ကို ဖော်ပြထားသည်။ ## မော်ဒယ်တည်ဆောက်မှုမတိုင်မီလုပ်ငန်းစဉ်များ မော်ဒယ်တစ်ခုကို တည်ဆောက်မတိုင်မီ သင်လုပ်ဆောင်ရမယ့် အလုပ်များစွာ ရှိပါတယ်။ မော်ဒယ်ရဲ့ ခန့်မှန်းချက်များအပေါ် အခြေခံပြီး သင့်မေးခွန်းကို စမ်းသပ်ဖို့ သင့်အနေနဲ့ အချို့သော အစိတ်အပိုင်းများကို သတ်မှတ်ပြီး ဖော်ပြရပါမယ်။ ### ဒေတာ သင့်မေးခွန်းကို တိကျမှုရှိရှိ ဖြေရှင်းနိုင်ဖို့ သင့်မှာ အရည်အသွေးကောင်းမွန်ပြီး သင့်တော်တဲ့ ဒေတာအရေအတွက်လိုအပ်ပါတယ်။ ဒီအချိန်မှာ သင်လုပ်ဆောင်ရမယ့် အရာနှစ်ခုရှိပါတယ်။ - **ဒေတာကို စုဆောင်းပါ**။ ဒေတာကို စုဆောင်းတဲ့အခါမှာ အရင်းအမြစ်များ၊ bias ရှိနိုင်မှုများကို သတိထားပြီး documentation လုပ်ပါ။ - **ဒေတာကို ပြင်ဆင်ပါ**။ ဒေတာကို collate လုပ်ခြင်း၊ normalize လုပ်ခြင်း၊ string ကို number ပြောင်းခြင်း၊ ဒေတာအသစ်ဖန်တီးခြင်း၊ ဒေတာကို ရှင်းလင်းခြင်း၊ randomize လုပ်ခြင်း စတဲ့ အဆင့်များ ပါဝင်ပါတယ်။ ✅ ဒေတာကို စုဆောင်းပြီး ပြင်ဆင်ပြီးနောက် သင့်မေးခွန်းကို ဖြေရှင်းနိုင်ဖို့ ဒေတာရဲ့ ပုံစံကို စစ်ဆေးပါ။ ### Features နှင့် Target [Feature](https://www.datasciencecentral.com/profiles/blogs/an-introduction-to-variable-and-feature-selection) ဆိုတာ ဒေတာရဲ့ တိုင်းတာနိုင်တဲ့ အကျဉ်းချုပ်ပါ။ Feature variable ကို `X` အဖြစ် code မှာ ကိုယ်စားပြုပါတယ်။ Target ဆိုတာ သင့်မေးခွန်းရဲ့ အဖြေကို ကိုယ်စားပြုပါတယ်။ Target variable ကို `y` အဖြစ် code မှာ ကိုယ်စားပြုပါတယ်။ ### Feature variable ရွေးချယ်ခြင်း 🎓 **Feature Selection နှင့် Feature Extraction** Feature variable ကို ရွေးချယ်တဲ့အခါ Feature Selection သို့မဟုတ် Feature Extraction လုပ်ဆောင်ရတတ်ပါတယ်။ Feature Extraction သည် အစပိုင်း feature များကို အသုံးပြု၍ feature အသစ်များ ဖန်တီးသည်။ Feature Selection သည် feature များ၏ အစိတ်အပိုင်းတစ်ခုကို ပြန်လည်ပေးသည်။ ### ဒေတာကို မြင်သာအောင် ဖော်ပြပါ Seaborn သို့မဟုတ် MatPlotLib စတဲ့ libraries များကို အသုံးပြုပြီး ဒေတာကို မြင်သာအောင် ဖော်ပြပါ။ ဒေတာကို visualized လုပ်ခြင်းက hidden correlation များကို ရှာဖွေဖော်ထုတ်နိုင်စွမ်းရှိပါတယ်။ ### ဒေတာကို ခွဲခြားပါ သင်ကြားမှုမတိုင်မီ ဒေတာကို training, testing, validating အဖြစ် ခွဲခြားပါ။ ## မော်ဒယ်တည်ဆောက်ခြင်း သင့် training data ကို အသုံးပြုပြီး မော်ဒယ်တစ်ခုကို statistical representation အဖြစ် တည်ဆောက်ပါ။ ### သင်ကြားမှုနည်းလမ်းကို ဆုံးဖြတ်ပါ Scikit-learn documentation ကို လေ့လာပြီး သင့်မော်ဒယ်အတွက် သင့်တော်တဲ့ training method ကို ရွေးချယ်ပါ။ ### မော်ဒယ်ကို သင်ကြားပါ Training data ကို အသုံးပြုပြီး 'model.fit' ကို အသုံးပြုပါ။ ### မော်ဒယ်ကို အကဲဖြတ်ပါ Test data ကို အသုံးပြုပြီး မော်ဒယ်ရဲ့ quality ကို စစ်ဆေးပါ။ 🎓 **Model fitting** Model fitting သည် မော်ဒယ်ရဲ့ function တစ်ခုသည် မသိတဲ့ ဒေတာကို စမ်းသပ်တဲ့အခါမှာ ရရှိတဲ့ တိကျမှုကို ကိုယ်စားပြုသည်။ 🎓 **Underfitting** နှင့် **Overfitting** မော်ဒယ်ရဲ့ quality ကို ထိခိုက်စေတတ်သော ပြဿနာများဖြစ်သည်။ ![overfitting model](../../../../1-Introduction/4-techniques-of-ML/images/overfitting.png) > Infographic by [Jen Looper](https://twitter.com/jenlooper) ## Parameter tuning Hyperparameters ကို ပြင်ဆင်ခြင်းဖြင့် မော်ဒယ်ရဲ့ quality ကို တိုးတက်စေပါ။ ## ခန့်မှန်းချက်လုပ်ဆောင်ခြင်း အသစ်သော input များကို အသုံးပြုပြီး မော်ဒယ်ရဲ့ တိကျမှုကို စမ်းသပ်ပါ။ ဒီသင်ခန်းစာများတွင် သင်သည် ML engineer အဖြစ် တိုးတက်ဖွံ့ဖြိုးရန် လိုအပ်သော အဆင့်များကို လေ့လာနိုင်ပါမယ်။ --- ## 🚀Challenge ML practitioner တစ်ဦးရဲ့ လုပ်ငန်းစဉ်ကို ဖော်ပြတဲ့ flow chart တစ်ခု ရေးဆွဲပါ။ သင့်အနေဖြင့် လက်ရှိမှာ ဘယ်အဆင့်မှာ ရှိနေလဲ? ဘယ်အပိုင်းမှာ အခက်အခဲရှိမလဲ? ဘာတွေကို လွယ်ကူလို့ ထင်ပါသလဲ? ## [Post-lecture quiz](https://ff-quizzes.netlify.app/en/ml/) ## Review & Self Study Data scientist များရဲ့ နေ့စဉ်လုပ်ငန်းအကြောင်းကို ဆွေးနွေးထားတဲ့ အင်တာဗျူးများကို အွန်လိုင်းမှာ ရှာဖွေပါ။ ဒီမှာ [တစ်ခု](https://www.youtube.com/watch?v=Z3IjgbbCEfs) ရှိပါတယ်။ ## Assignment [Data scientist တစ်ဦးကို အင်တာဗျူးလုပ်ပါ](assignment.md) --- **ဝက်ဘ်ဆိုက်မှတ်ချက်**: ဤစာရွက်စာတမ်းကို AI ဘာသာပြန်ဝန်ဆောင်မှု [Co-op Translator](https://github.com/Azure/co-op-translator) ကို အသုံးပြု၍ ဘာသာပြန်ထားပါသည်။ ကျွန်ုပ်တို့သည် တိကျမှန်ကန်မှုအတွက် ကြိုးစားနေသော်လည်း၊ အလိုအလျောက်ဘာသာပြန်ဆိုမှုများတွင် အမှားများ သို့မဟုတ် မတိကျမှုများ ပါဝင်နိုင်သည်ကို ကျေးဇူးပြု၍ သတိပြုပါ။ မူရင်းစာရွက်စာတမ်းကို ၎င်း၏ မူလဘာသာစကားဖြင့် အာဏာတည်သောရင်းမြစ်အဖြစ် သတ်မှတ်သင့်ပါသည်။ အရေးကြီးသော အချက်အလက်များအတွက် လူပညာရှင်များမှ လက်တွေ့ဘာသာပြန်ဆိုမှုကို အကြံပြုပါသည်။ ဤဘာသာပြန်ဆိုမှုကို အသုံးပြုခြင်းမှ ဖြစ်ပေါ်လာသော နားလည်မှုမှားများ သို့မဟုတ် အဓိပ္ပာယ်မှားများအတွက် ကျွန်ုပ်တို့သည် တာဝန်မယူပါ။