R တွင် loess regression ကို မည်သို့လုပ်ဆောင်ရမည်နည်း (ဥပမာဖြင့်)


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

အောက်ဖော်ပြပါ အဆင့်ဆင့် ဥပမာသည် R တွင် LOESS ဆုတ်ယုတ်မှုကို မည်သို့လုပ်ဆောင်ရမည်ကို ပြသထားသည်။

အဆင့် 1: ဒေတာကိုဖန်တီးပါ။

အရင်ဆုံး R မှာ အောက်ပါ data frame ကို ဖန်တီးကြည့်ရအောင်။

 #view DataFrame
df <- data. frame (x=c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14),
                 y=c(1, 4, 7, 13, 19, 24, 20, 15, 13, 11, 15, 18, 22, 27))

#view first six rows of data frame
head(df)

  xy
1 1 1
2 2 4
3 3 7
4 4 13
5 5 19
6 6 24

အဆင့် 2- များစွာသော LOESS ဆုတ်ယုတ်မှုပုံစံများကို အံကိုက်လုပ်ပါ။

span parameter အတွက် မတူညီသောတန်ဖိုးများကို အသုံးပြု၍ ဤဒေတာအတွဲအတွက် LOESS ဆုတ်ယုတ်မှုပုံစံများစွာကို အံဝင်ခွင်ကျဖြစ်စေရန်အတွက် loess() လုပ်ဆောင်ချက်ကို ကျွန်ုပ်တို့အသုံးပြုနိုင်သည်-

 #fit several LOESS regression models to dataset
loess50 <- loess(y ~ x, data=df, span= .5 )
smooth50 <- predict(loess50) 

loess75 <- loess(y ~ x, data=df, span= .75 )
smooth75 <- predict(loess75) 

loess90 <- loess(y ~ x, data=df, span= .9 )
smooth90 <- predict(loess90) 

#create scatterplot with each regression line overlaid
plot(df$x, df$y, pch= 19 , main=' Loess Regression Models ')
lines(smooth50, x=df$x, col=' red ')
lines(smooth75, x=df$x, col=' purple ')
lines(smooth90, x=df$x, col=' blue ')
legend(' bottomright ', legend=c(' .5 ', ' .75 ', ' .9 '),
        col=c(' red ', ' purple ', ' blue '), pch= 19 , title=' Smoothing Span ')

R တွင် ဆုတ်ယုတ်မှုလျော့

span အတွက် ကျွန်ုပ်တို့အသုံးပြုသည့် တန်ဖိုးနိမ့်လေ၊ ဆုတ်ယုတ်မှုပုံစံသည် နည်းလေလေ “ ချောမွေ့လေ” ဖြစ်ကာ မော်ဒယ်သည် ဒေတာအချက်များနှင့် ကိုက်ညီလေလေ ဖြစ်သည်။

အဆင့် 3- အကောင်းဆုံးမော်ဒယ်ကိုရှာရန် K-Fold Cross-Validation ကိုသုံးပါ။

အသုံးပြုရန် အကောင်းဆုံး အတိုင်းအတာ တန်ဖိုးကို ရှာဖွေရန်၊ caret ပက်ကေ့ဂျ်ရှိ လုပ်ဆောင်ချက်များကို အသုံးပြု၍ k-fold cross-validation လုပ်ဆောင်နိုင်သည်-

 library (caret)

#define k-fold cross validation method
ctrl <- trainControl(method = " cv ", number = 5 )
grid <- expand. grid (span = seq( 0.5 , 0.9 , len = 5 ), degree = 1 )

#perform cross-validation using smoothing spans ranging from 0.5 to 0.9
model <- train(y ~ x, data = df, method = " gamLoess ", tuneGrid=grid, trControl = ctrl)

#print results of k-fold cross-validation
print (model)

14 samples
 1 predictor

No pre-processing
Resampling: Cross-Validated (5 fold) 
Summary of sample sizes: 12, 11, 11, 11, 11 
Resampling results across tuning parameters:

  span RMSE Rsquared MAE      
  0.5 10.148315 0.9570137 6.467066
  0.6 7.854113 0.9350278 5.343473
  0.7 6.113610 0.8150066 4.769545
  0.8 17.814105 0.8202561 11.875943
  0.9 26.705626 0.7384931 17.304833

Tuning parameter 'degree' was held constant at a value of 1
RMSE was used to select the optimal model using the smallest value.
The final values used for the model were span = 0.7 and degree = 1.

root mean square error (RMSE) အတွက် အနိမ့်ဆုံးတန်ဖိုးကို ထုတ်ပေးသည့် span value သည် 0.7 ဖြစ်ကြောင်း ကျွန်ုပ်တို့ တွေ့နိုင်ပါသည်။

ထို့ကြောင့် ကျွန်ုပ်တို့၏နောက်ဆုံး LOESS ဆုတ်ယုတ်မှုပုံစံအတွက်၊ ကျွန်ုပ်တို့သည် loess() လုပ်ဆောင်ချက်ရှိ span argument အတွက် 0.7 တန်ဖိုးကို အသုံးပြုရန် ရွေးချယ်မည်ဖြစ်သည်။

ထပ်လောင်းအရင်းအမြစ်များ

အောက်ဖော်ပြပါ သင်ခန်းစာများသည် R တွင် ဆုတ်ယုတ်မှုပုံစံများအကြောင်း နောက်ထပ်အချက်အလက်များကို ပေးဆောင်သည်-

R တွင် ရိုးရှင်းသော linear regression လုပ်နည်း
R တွင် linear regression အများအပြားလုပ်ဆောင်နည်း
R တွင် logistic regression ကို မည်သို့လုပ်ဆောင်ရမည်နည်း
R တွင် Quantile Regression ကို မည်သို့လုပ်ဆောင်ရမည်နည်း
R တွင် အလေးချိန် ဆုတ်ယုတ်မှုကို မည်သို့လုပ်ဆောင်ရမည်နည်း

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

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