R ဖြင့် k-fold cross validation (တစ်ဆင့်ပြီးတစ်ဆင့်)


ဒေတာအတွဲတစ်ခုပေါ်ရှိ မော်ဒယ်တစ်ခု၏စွမ်းဆောင်ရည်ကို အကဲဖြတ်ရန်၊ ကျွန်ုပ်တို့သည် မော်ဒယ်မှပြုလုပ်သော ခန့်မှန်းချက်များသည် စောင့်ကြည့်လေ့လာထားသောဒေတာနှင့် မည်မျှကိုက်ညီကြောင်း တိုင်းတာရန် လိုအပ်ပါသည်။

၎င်းကိုလုပ်ဆောင်ရန်အတွက် အသုံးများသောနည်းလမ်းကို 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() လုပ်ဆောင်ချက်ကို အသုံးပြုခြင်းဖြစ်သည်။

ဤသင်ခန်းစာသည် R တွင်ပေးထားသောမော်ဒယ်အတွက် k-fold cross-validation လုပ်ဆောင်ရန် ဤလုပ်ဆောင်ချက်ကိုအသုံးပြုနည်း၏ အတိုကောက်ဥပမာကို ပေးပါသည်။

ဥပမာ- R တွင် K-Fold Cross-Validation

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

အောက်ဖော်ပြပါ ကုဒ်သည် R တွင် ဤဒေတာအတွဲအတွက် မျဉ်းဖြောင့်ဆုတ်ယုတ်မှုပုံစံကို မည်ကဲ့သို့ အံဝင်ခွင်ကျဖြစ်စေရန်နှင့် မော်ဒယ်၏စွမ်းဆောင်ရည်ကို အကဲဖြတ်ရန် k=5 ကြိမ်ဖြင့် k-fold cross-validation လုပ်ဆောင်သည်-

 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.018979 1 2.882348

Tuning parameter 'intercept' was held constant at a value of TRUE

ဤသည်မှာ ရလဒ်ကို မည်သို့အဓိပ္ပာယ်ဖွင့်ဆိုနိုင်သည်-

  • ကြိုတင်လုပ်ဆောင်ခြင်း မရှိပါ။ ဆိုလိုသည်မှာ၊ ကျွန်ုပ်တို့သည် မော်ဒယ်များနှင့် မကိုက်ညီမီ မည်သည့်နည်းဖြင့် မဆို ဒေတာကို အတိုင်းအတာ မထားပါ။
  • မော်ဒယ်ကို အကဲဖြတ်ရန် ကျွန်ုပ်တို့အသုံးပြုသည့် ပြန်လည်နမူနာယူနည်းမှာ 5 ကြိမ် အပြန်အလှန် အတည်ပြုခြင်း ဖြစ်သည်။
  • လေ့ကျင့်ခန်းတစ်ခုစီအတွက်နမူနာအရွယ်အစားမှာ 8 ဖြစ်သည်။
  • RMSE- root mean square အမှား။ ၎င်းသည် မော်ဒယ်မှပြုလုပ်သော ခန့်မှန်းချက်များနှင့် အမှန်တကယ်လေ့လာတွေ့ရှိချက်များကြား ပျမ်းမျှကွာခြားချက်ကို တိုင်းတာသည်။ RMSE နိမ့်လေ၊ မော်ဒယ်တစ်ခုသည် အမှန်တကယ် လေ့လာတွေ့ရှိချက်များကို ခန့်မှန်းနိုင်လေဖြစ်သည်။
  • Rsquared- ဤသည်မှာ မော်ဒယ်မှပြုလုပ်သော ခန့်မှန်းချက်များနှင့် အမှန်တကယ် လေ့လာတွေ့ရှိချက်များကြား ဆက်စပ်မှု အတိုင်းအတာတစ်ခုဖြစ်သည်။ R-squared ပိုမြင့်လေ၊ မော်ဒယ်တစ်ခုသည် အမှန်တကယ် လေ့လာတွေ့ရှိချက်များကို ခန့်မှန်းနိုင်လေဖြစ်သည်။
  • MAE: ပျမ်းမျှ ပကတိ အမှား။ ၎င်းသည် မော်ဒယ်မှပြုလုပ်သော ခန့်မှန်းချက်များနှင့် အမှန်တကယ် လေ့လာတွေ့ရှိချက်များအကြား ပျမ်းမျှအကြွင်းမဲ့ ခြားနားချက်ဖြစ်သည်။ MAE နိမ့်လေ၊ မော်ဒယ်တစ်ခုသည် အမှန်တကယ် လေ့လာတွေ့ရှိချက်များကို ခန့်မှန်းနိုင်လေဖြစ်သည်။

ရလဒ်တွင် ပေးထားသော တိုင်းတာမှု သုံးခုမှ တစ်ခုစီ (RMSE၊ R-squared နှင့် MAE) သည် ထုတ်ဝေမထားသော ဒေတာပေါ်တွင် မော်ဒယ်၏ စွမ်းဆောင်ရည်ကို အကြံဥာဏ်ပေးပါသည်။

လက်တွေ့တွင်၊ ကျွန်ုပ်တို့သည် ပုံမှန်အားဖြင့် မတူညီသော မော်ဒယ်များစွာကို အံဝင်ခွင်ကျဖြစ်ပြီး ဤနေရာတွင် ဖော်ပြထားသော ရလဒ်များမှ ပေးထားသော မက်ထရစ်သုံးခုကို နှိုင်းယှဉ်ကာ မည်သည့်မော်ဒယ်သည် အနိမ့်ဆုံး စမ်းသပ်မှု အမှားအယွင်းနှုန်းများကို ထုတ်လုပ်ပေးသည်ကို ဆုံးဖြတ်ကာ ထို့ကြောင့် အသုံးပြုရန် အကောင်းဆုံး မော်ဒယ်ဖြစ်သည်။

နောက်ဆုံးပုံစံ အံဝင်ခွင်ကျ စစ်ဆေးရန် အောက်ပါကုဒ်ကို ကျွန်ုပ်တို့ အသုံးပြုနိုင်ပါသည်။

 #view final model
model$finalModel

Call:
lm(formula = .outcome ~ ., data = dat)

Coefficients:
(Intercept) x1 x2  
    21.2672 0.7803 -1.1253  

နောက်ဆုံးပုံစံသည်-

y = 21.2672 + 0.7803*(x 1 ) – 1.12538(x 2 )

အခေါက်တစ်ခုစီအတွက် ပြုလုပ်ထားသော မော်ဒယ်ခန့်မှန်းချက်များကို ပြသရန် အောက်ပါကုဒ်ကို အသုံးပြုနိုင်ပါသည်။

 #view predictions for each fold
model$resample

      RMSE Rsquared MAE Resample
1 4.808773 1 3.544494 Fold1
2 3.464675 1 3.366812 Fold2
3 6.281255 1 6.280702 Fold3
4 3.759222 1 3.573883 Fold4
5 1.741127 1 1.679767 Fold5

ဤဥပမာတွင် ကျွန်ုပ်တို့သည် k=5 folds ကိုအသုံးပြုရန်ရွေးချယ်သည်၊ သို့သော် သင်အလိုရှိသော ခေါက်အရေအတွက်ကို ရွေးချယ်နိုင်သည်။ လက်တွေ့တွင်၊ ကျွန်ုပ်တို့သည် ပုံမှန်အားဖြင့် 5 နှင့် 10 အလွှာကြားတွင် ရွေးချယ်လေ့ရှိသည်၊ ၎င်းသည် ယုံကြည်စိတ်ချရသော စမ်းသပ်မှုအမှားအယွင်းနှုန်းများကို ထုတ်လုပ်ပေးသည့် အကောင်းဆုံး အလွှာအရေအတွက်ဖြစ်ကြောင်း သက်သေပြသောကြောင့်၊

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

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