'pickle' module ကို အသုံးပြု၍ Python ရှိ လေ့ကျင့်သင်ကြားထားသော အမျိုးအစားခွဲတစ်ခုကို ကောက်ရန်အတွက်၊ ကျွန်ုပ်တို့သည် ရိုးရှင်းသော အဆင့်အနည်းငယ်ကို လိုက်နာနိုင်ပါသည်။ Pickling သည် အရာဝတ္တုတစ်ခုကို အမှတ်အသားပြုပြီး ၎င်းကို ဖိုင်တစ်ခုတွင် သိမ်းဆည်းနိုင်စေပြီး၊ ထို့နောက်တွင် တင်ပြီး နောက်ပိုင်းတွင် အသုံးပြုနိုင်သည်။ အချိန်တိုင်းပြန်လေ့ကျင့်စရာမလိုဘဲ နောင်အသုံးပြုရန်အတွက် regression classifier ကဲ့သို့သော လေ့ကျင့်ထားသော စက်သင်ယူမှုပုံစံကို သိမ်းဆည်းလိုသည့်အခါ ၎င်းသည် အထူးအသုံးဝင်ပါသည်။
ပထမဦးစွာ ကျွန်ုပ်တို့သည် ကျွန်ုပ်တို့၏ Python script တွင် 'pickle' module ကို တင်သွင်းရန်လိုအပ်သည်-
python import pickle
ထို့နောက် ကျွန်ုပ်တို့သည် ကျွန်ုပ်တို့၏ အမျိုးအစားခွဲခြားမှုကို လေ့ကျင့်ရန်နှင့် လေ့ကျင့်ထားသော ပုံစံကို ရယူရန် လိုအပ်ပါသည်။ ကျွန်ုပ်တို့သည် regression အမျိုးအစားခွဲခြားမှုကို လေ့ကျင့်ထားပြီး 'regression_model' ဟုခေါ်သော ကိန်းရှင်တစ်ခုတွင် သိမ်းဆည်းထားသည်ဟု ယူဆကြပါစို့။
လေ့ကျင့်ထားသော မော်ဒယ်ကို ဖောက်ရန်အတွက် 'pickle.dump()' လုပ်ဆောင်ချက်ကို အသုံးပြုနိုင်ပါသည်။ ဤလုပ်ဆောင်ချက်သည် ကျွန်ုပ်တို့ ကောက်လိုသော အရာ (ဤကိစ္စတွင်၊ လေ့ကျင့်သင်ကြားထားသော အမျိုးအစားခွဲ) နှင့် ချဉ်သောအရာကို သိမ်းဆည်းလိုသည့် ဖိုင်အရာဝတ္တုတို့ဖြစ်သည်။ 'open()' လုပ်ဆောင်ချက်ကို အသုံးပြု၍ write binary mode တွင် ဖိုင်တစ်ခုဖွင့်နိုင်သည်။
python with open('regression_model.pkl', 'wb') as file: pickle.dump(regression_model, file)
အထက်ဖော်ပြပါ ကုဒ်တွင်၊ ကျွန်ုပ်တို့သည် 'regression_model.pkl' ဟု အမည်ပေးထားသော ဖိုင်ကို binary မုဒ် ('wb') တွင် ဖွင့်ပြီး 'pickle.dump()' သို့ ဒုတိယ ကန့်သတ်ဘောင်အဖြစ် ဖြတ်သန်းပါသည်။ 'regression_model' variable တွင် သိမ်းဆည်းထားသော လေ့ကျင့်ထားသော အမျိုးအစားခွဲခြားမှုကို ချဉ်စွတ်ပြီး ဖိုင်တွင် သိမ်းဆည်းထားသည်။
ယခု ကျွန်ုပ်တို့သည် ကျွန်ုပ်တို့၏ လေ့ကျင့်သင်ကြားထားသော အမျိုးအစားခွဲခြားမှုကို အောင်မြင်စွာ နှပ်ထားနိုင်ပါပြီ။ 'pickle.load()' လုပ်ဆောင်ချက်ကို အသုံးပြု၍ ၎င်းကို လိုအပ်သည့်အခါတိုင်း ၎င်းကို မှတ်ဉာဏ်ထဲသို့ ပြန်လည်ထည့်သွင်းနိုင်သည်။
python with open('regression_model.pkl', 'rb') as file: loaded_model = pickle.load(file)
အထက်ဖော်ပြပါ ကုဒ်တွင်၊ ကျွန်ုပ်တို့သည် read binary mode ('rb') တွင် ချဉ်သောဖိုင်ကို ဖွင့်ပြီး ၎င်းကို 'pickle.load()' သို့ ကန့်သတ်ချက်အဖြစ် ဖြတ်သန်းပါသည်။ ခန့်မှန်းချက် သို့မဟုတ် အခြားလုပ်ဆောင်မှုများအတွက် အသုံးပြုနိုင်သည့် 'loaded_model' variable တွင် ချဉ်သောအရာဝတ္ထုကို တင်ထားသည်။
ဤသည်မှာ လေ့ကျင့်သင်ကြားထားသော ဆုတ်ယုတ်မှုအမျိုးအစားခွဲစက်၏ အချဉ်ဖောက်ခြင်းနှင့် တင်ခြင်းတို့ကို သရုပ်ပြသည့် ပြီးပြည့်စုံသော ဥပမာတစ်ခုဖြစ်သည်။
python import pickle from sklearn.linear_model import LinearRegression # Training the regression model X_train = [[1], [2], [3], [4], [5]] y_train = [2, 4, 6, 8, 10] regression_model = LinearRegression() regression_model.fit(X_train, y_train) # Pickling the trained model with open('regression_model.pkl', 'wb') as file: pickle.dump(regression_model, file) # Loading the pickled model with open('regression_model.pkl', 'rb') as file: loaded_model = pickle.load(file) # Using the loaded model for prediction X_test = [[6]] predicted_value = loaded_model.predict(X_test) print(predicted_value)
အထက်ဖော်ပြပါ ဥပမာတွင်၊ ကျွန်ုပ်တို့သည် 'sklearn.linear_model' module မှ 'LinearRegression' အတန်းကို အသုံးပြု၍ ရိုးရှင်းသော linear regression မော်ဒယ်ကို ဦးစွာ လေ့ကျင့်ပေးပါသည်။ ထို့နောက် ကျွန်ုပ်တို့သည် လေ့ကျင့်ထားသော မော်ဒယ်ကို 'regression_model.pkl' ဟု အမည်ပေးထားသော ဖိုင်တစ်ခုသို့ ချဉ်းသည်။ နောက်ပိုင်းတွင်၊ ကျွန်ုပ်တို့သည် ဖိုင်ထဲမှ အချဉ်ဖောက်ထားသော မော်ဒယ်ကို တင်ပြီး စမ်းသပ်ထည့်သွင်းမှု 'X_test' အတွက် တန်ဖိုးကို ခန့်မှန်းရန် ၎င်းကို အသုံးပြုပါသည်။
လေ့ကျင့်ထားသော အမျိုးအစားခွဲစက်ကို ကောက်ယူပြီး တင်ခြင်းဖြင့်၊ အချိန်နှင့် တွက်ချက်မှုဆိုင်ရာ အရင်းအမြစ်များစွာကို သက်သာစေနိုင်သည့် ၎င်းကို ပြန်လည်လေ့ကျင့်ရန် မလိုအပ်ဘဲ မော်ဒယ်ကို ပြန်လည်အသုံးပြုနိုင်ပါသည်။
အခြား လတ်တလောမေးခွန်းများနှင့် အဖြေများ Python ကို အသုံးပြု၍ EITC/AI/MLP Machine Learning:
- Support Vector Machine (SVM) ဆိုတာဘာလဲ။
- K အနီးဆုံးအိမ်နီးချင်း အယ်လဂိုရီသမ်သည် လေ့ကျင့်နိုင်သော စက်သင်ယူမှုပုံစံများကို တည်ဆောက်ရန်အတွက် သင့်လျော်ပါသလား။
- SVM လေ့ကျင့်ရေး algorithm ကို binary linear အမျိုးအစားခွဲအဖြစ် အသုံးများပါသလား။
- regression algorithms သည် စဉ်ဆက်မပြတ် ဒေတာဖြင့် အလုပ်လုပ်နိုင်ပါသလား။
- linear regression သည် စကေးချဲ့ရန်အတွက် အထူးသင့်လျော်ပါသလား။
- ဒေတာအချက်များ၏ သိပ်သည်းဆအပေါ် အခြေခံ၍ လှိုင်းနှုန်းကို လိုက်လျောညီထွေဖြစ်အောင် ပြောင်းလဲနေသော လှိုင်းနှုန်းကို မည်ကဲ့သို့ ချိန်ညှိသနည်း။
- ဆိုလိုရင်းမှာ ပြောင်းလဲနေသော လှိုင်းနှုန်းကို အကောင်အထည်ဖော်ခြင်းတွင် အင်္ဂါရပ်အစုံအတွက် အလေးများကို သတ်မှတ်ရခြင်း၏ ရည်ရွယ်ချက်မှာ အဘယ်နည်း။
- mean shift dynamic bandwidth ချဉ်းကပ်မှုတွင် အချင်းဝက်တန်ဖိုးအသစ်ကို မည်သို့သတ်မှတ်သနည်း။
- အချင်းဝက်ကို hard coding မလုပ်ဘဲ centroids များကို မှန်ကန်စွာရှာဖွေခြင်းကို ဆိုလိုသည်မှာ ရွေ့လျားနိုင်သော bandwidth ချဉ်းကပ်နည်းသည် မည်သို့ကိုင်တွယ်ဖြေရှင်းမည်နည်း။
- mean shift algorithm တွင် ပုံသေအချင်းဝက်ကို အသုံးပြုခြင်း၏ ကန့်သတ်ချက်ကား အဘယ်နည်း။
Python ဖြင့် EITC/AI/MLP Machine Learning တွင် နောက်ထပ်မေးခွန်းများနှင့် အဖြေများကို ကြည့်ပါ။