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 တွင် မည်သည် အံဝင်ခွင်ကျဖြစ်သနည်း။

မှတ်ချက်တစ်ခုထည့်ပါ။

သင့် email လိပ်စာကို ဖော်ပြမည် မဟုတ်ပါ။ လိုအပ်သော ကွက်လပ်များကို * ဖြင့်မှတ်သားထားသည်