A: လေ့ကျင့်ရေးဘောင်များကို ထိန်းချုပ်ရန် traincontrol ကို မည်သို့အသုံးပြုရမည်နည်း။
မော်ဒယ်တစ်ခုသည် ဒေတာအတွဲတစ်ခုနှင့် အံဝင်ခွင်ကျ မည်မျှ ကောင်းမွန်ကြောင်း အကဲဖြတ်ရန်၊ ယခင်က မမြင်ဖူးသော လေ့လာမှုများအပေါ် ၎င်း၏ စွမ်းဆောင်ရည်ကို ပိုင်းခြားစိတ်ဖြာရန် လိုအပ်ပါသည်။
၎င်းကိုအောင်မြင်ရန်အသုံးအများဆုံးနည်းလမ်းတစ်ခုမှာ k-fold cross-validation ကို အသုံးပြုခြင်းဖြစ်ပြီး၊ အောက်ပါနည်းလမ်းကိုအသုံးပြုသည်-
1. ခန့်မှန်းခြေ တူညီသော အရွယ်အစားရှိသော k အုပ်စုများ သို့မဟုတ် “ folds” အဖြစ် သတ်မှတ်ဒေတာကို ကျပန်းခွဲပါ။
2. အထိန်းအချုပ်အဖြစ် ခြံများထဲမှ တစ်ခုကို ရွေးပါ။ နမူနာကို ကျန် k-1 ခေါက်သို့ ချိန်ညှိပါ။ တင်းမာနေသော အထပ်တွင် လေ့လာတွေ့ရှိချက်များကို MSE စာမေးပွဲကို တွက်ချက်ပါ။
3. ဤလုပ်ငန်းစဉ် k အကြိမ်များကို ဖယ်ထုတ်ခြင်းအဖြစ် မတူညီသောအစုံကို အသုံးပြုပြီးတိုင်း၊ အကြိမ်တိုင်း ပြန်လုပ်ပါ။
4. အလုံးစုံစမ်းသပ်မှု MSE ကို k စမ်းသပ် MSE များ၏ ပျမ်းမျှအဖြစ် တွက်ချက်ပါ။
R တွင် k-fold cross-validation လုပ်ဆောင်ရန် အလွယ်ကူဆုံးနည်းလမ်းမှာ R ရှိ caret စာကြည့်တိုက်မှ trainControl() နှင့် train() လုပ်ဆောင်ချက်များကို အသုံးပြုရန်ဖြစ်သည်။
trainControl() လုပ်ဆောင်ချက်ကို လေ့ကျင့်ရေးဆိုင်ရာ ကန့်သတ်ချက်များ (ဥပမာ- အသုံးပြုရန် ဖြတ်ကျော်စစ်ဆေးခြင်း အမျိုးအစား၊ အသုံးပြုရန် ခေါက်အရေအတွက် စသည်ဖြင့်) နှင့် train() လုပ်ဆောင်ချက်ကို ဒေတာမော်ဒယ်နှင့် အမှန်တကယ် ကိုက်ညီစေရန် အသုံးပြုပါသည်။ .
အောက်ဖော်ပြပါ ဥပမာသည် trainControl() နှင့် train() လုပ်ဆောင်ချက်များကို လက်တွေ့တွင် မည်သို့အသုံးပြုရမည်ကို ပြသထားသည်။
ဥပမာ- R တွင် trainControl() ကိုအသုံးပြုနည်း
R တွင် အောက်ပါ dataset ရှိသည်ဆိုပါစို့။
#create data frame df <- data.frame(y=c(6, 8, 12, 14, 14, 15, 17, 22, 24, 23), x1=c(2, 5, 4, 3, 4, 6, 7, 5, 8, 9), x2=c(14, 12, 12, 13, 7, 8, 7, 4, 6, 5)) #view data frame df y x1 x2 6 2 14 8 5 12 12 4 12 14 3 13 14 4 7 15 6 8 17 7 7 22 5 4 24 8 6 23 9 5
ယခု ကျွန်ုပ်တို့သည် x1 နှင့် x2 ကို ကြိုတင်ခန့်မှန်းကိန်းရှင်များအဖြစ်နှင့် တုံ့ပြန်မှုကိန်းရှင်အဖြစ် x1 နှင့် x2 ကို အသုံးပြုကာ များပြားသောမျဉ်းကြောင်းဆုတ်ယုတ်မှုပုံစံ တစ်ခုနှင့်ကိုက်ညီရန် lm() လုပ်ဆောင်ချက်ကို အသုံးပြုသည်ဆိုပါစို့။
#fit multiple linear regression model to data fit <- lm(y ~ x1 + x2, data=df) #view model summary summary(fit) Call: lm(formula = y ~ x1 + x2, data = df) Residuals: Min 1Q Median 3Q Max -3.6650 -1.9228 -0.3684 1.2783 5.0208 Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) 21.2672 6.9927 3.041 0.0188 * x1 0.7803 0.6942 1.124 0.2981 x2 -1.1253 0.4251 -2.647 0.0331 * --- Significant. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 Residual standard error: 3.093 on 7 degrees of freedom Multiple R-squared: 0.801, Adjusted R-squared: 0.7441 F-statistic: 14.09 on 2 and 7 DF, p-value: 0.003516
မော်ဒယ်အထွက်ရှိ ကိန်းများကို အသုံးပြု၍ တပ်ဆင်ထားသော ဆုတ်ယုတ်မှုပုံစံကို ကျွန်ုပ်တို့ ရေးသားနိုင်သည်-
y = 21.2672 + 0.7803*(x 1 ) – 1.1253(x 2 )
မမြင်ရသော စောင့်ကြည့်မှုများ တွင် ဤပုံစံသည် မည်မျှ ကောင်းမွန်ကြောင်း စိတ်ကူးရရန်၊ ကျွန်ုပ်တို့သည် k-fold cross-validation ကို အသုံးပြုနိုင်သည်။
5 ခေါက် ( number=5 ) ကိုအသုံးပြုသည့် k-fold cross-validation ( method=” cv” ) ကို သတ်မှတ်ရန် caret package ၏ trainControl() လုပ်ဆောင်ချက်ကို အောက်ပါကုဒ်တွင် ဖော်ပြသည်။
ထို့နောက် k-fold cross-validation ကို အမှန်တကယ်လုပ်ဆောင်ရန် ဤ trainControl() လုပ်ဆောင်ချက်ကို ရထား() လုပ်ဆောင်ချက်သို့ ပေးပို့သည်-
library (caret) #specify the cross-validation method ctrl <- trainControl(method = " cv ", number = 5 ) #fit a regression model and use k-fold CV to evaluate performance model <- train(y ~ x1 + x2, data = df, method = " lm ", trControl = ctrl) #view summary of k-fold CV print (model) Linear Regression 10 samples 2 predictors No pre-processing Resampling: Cross-Validated (5 fold) Summary of sample sizes: 8, 8, 8, 8, 8 Resampling results: RMSE Rsquared MAE 3.612302 1 3.232153 Tuning parameter 'intercept' was held constant at a value of TRUE
ရလဒ်အနေဖြင့် တစ်ကြိမ်လျှင် နမူနာအရွယ်အစား ၈ ခုကို အသုံးပြု၍ မော်ဒယ်ကို ၅ ကြိမ် တပ်ဆင်ထားသည်ကို တွေ့နိုင်သည်။
အကြိမ်တိုင်း၊ ထိန်းသိမ်းထားသော စူးစမ်းလေ့လာမှု 2 ခု၏ တန်ဖိုးများကို ခန့်မှန်းရန် မော်ဒယ်ကို အသုံးပြုပြီး တစ်ကြိမ်စီတွင် အောက်ပါ မက်ထရစ်များကို တွက်ချက်သည်-
- RMSE- root mean square အမှား။ ၎င်းသည် မော်ဒယ်မှပြုလုပ်သော ခန့်မှန်းချက်များနှင့် အမှန်တကယ်လေ့လာတွေ့ရှိချက်များကြား ပျမ်းမျှကွာခြားချက်ကို တိုင်းတာသည်။ RMSE နိမ့်လေ၊ မော်ဒယ်တစ်ခုသည် အမှန်တကယ် လေ့လာတွေ့ရှိချက်များကို ခန့်မှန်းနိုင်လေဖြစ်သည်။
- MAE: ပျမ်းမျှ ပကတိ အမှား။ ၎င်းသည် မော်ဒယ်မှပြုလုပ်သော ခန့်မှန်းချက်များနှင့် အမှန်တကယ် လေ့လာတွေ့ရှိချက်များအကြား ပျမ်းမျှအကြွင်းမဲ့ ခြားနားချက်ဖြစ်သည်။ MAE နိမ့်လေ၊ မော်ဒယ်သည် အမှန်တကယ် လေ့လာတွေ့ရှိချက်များကို ခန့်မှန်းနိုင်လေ ဖြစ်သည်။
အစိတ်အပိုင်းငါးခုအတွက် RMSE နှင့် MAE တန်ဖိုးများ၏ ပျမ်းမျှတန်ဖိုးများကို ရလဒ်တွင် ဖော်ပြသည်-
- RMSE: 3.612302
- MAE: 3.232153
ဤမက်ထရစ်များသည် ဒေတာအသစ်တွင် မော်ဒယ်၏စွမ်းဆောင်ရည်ကို အကြံဉာဏ်ပေးသည်။
လက်တွေ့တွင်၊ ကျွန်ုပ်တို့သည် ပုံမှန်အားဖြင့် မတူညီသော မော်ဒယ်များစွာကို အံဝင်ခွင်ကျဖြစ်ပြီး မည်သည့်မော်ဒယ်သည် မမြင်ရသောဒေတာတွင် အကောင်းဆုံးလုပ်ဆောင်နိုင်သည်ကို ဆုံးဖြတ်ရန် ဤမက်ထရစ်များကို နှိုင်းယှဉ်ပါသည်။
ဥပမာအားဖြင့်၊ ကျွန်ုပ်တို့သည် polynomial ဆုတ်ယုတ်မှုပုံစံကို အံဝင်ခွင်ကျဖြစ်စေနိုင်ပြီး RMSE နှင့် MAE မက်ထရစ်များသည် မျဉ်းကြောင်းပြန်ဆုတ်မှုပုံစံနှင့် နှိုင်းယှဉ်ကြည့်ရန် K-fold ဖြတ်ကျော်စစ်ဆေးခြင်းကို လုပ်ဆောင်နိုင်သည်။
မှတ်ချက် #1- ဤဥပမာတွင်၊ ကျွန်ုပ်တို့သည် k=5 folds ကိုအသုံးပြုရန် ရွေးချယ်သော်လည်း၊ သင်အလိုရှိသော ခေါက်အရေအတွက်ကို ရွေးချယ်နိုင်ပါသည်။ လက်တွေ့တွင်၊ ကျွန်ုပ်တို့သည် ပုံမှန်အားဖြင့် 5 နှင့် 10 လွှာကြားတွင် ရွေးချယ်လေ့ရှိသည်၊ ၎င်းသည် ယုံကြည်စိတ်ချရသော စမ်းသပ်မှုအမှားအယွင်းနှုန်းများကို ထုတ်လုပ်ပေးသည့် အကောင်းဆုံး အထပ်အရေအတွက်ဖြစ်ကြောင်း သက်သေပြသောကြောင့်၊
မှတ်ချက် #2 : trainControl() လုပ်ဆောင်ချက်သည် ဖြစ်နိုင်ချေရှိသော အကြောင်းပြချက်များစွာကို လက်ခံပါသည်။ ဤလုပ်ဆောင်ချက်အတွက် စာရွက်စာတမ်းအပြည့်အစုံကို ဤနေရာတွင် ရှာဖွေနိုင်ပါသည်။
ထပ်လောင်းအရင်းအမြစ်များ
အောက်ဖော်ပြပါ သင်ခန်းစာများသည် လေ့ကျင့်ရေးပုံစံများအကြောင်း နောက်ထပ်အချက်အလက်များကို ပေးဆောင်သည်-
K-Fold Cross-Validation နိဒါန်း
Leave-One-Out Cross-Validation နိဒါန်း
machine learning တွင် မည်သည် အံဝင်ခွင်ကျဖြစ်သနည်း။