R in multivariate adaptive regression splines
Multivariate adaptive regression splines (MARS) ကို ကြိုတင်ခန့်မှန်းကိန်းရှင် အစုံအလင်နှင့် တုံ့ပြန်မှု ကိန်းရှင် တစ်ခုကြား လိုင်းမဟုတ်သော ဆက်ဆံရေးများကို နမူနာယူရန် အသုံးပြုနိုင်သည်။
ဤနည်းလမ်းသည် အောက်ပါအတိုင်း လုပ်ဆောင်သည်။
1. ဒေတာအတွဲတစ်ခုကို k အပိုင်းများအဖြစ် ပိုင်းပါ။
2. အစိတ်အပိုင်းတစ်ခုစီအတွက် ဆုတ်ယုတ်မှုပုံစံကို ကွက်တိပါ။
3. k အတွက် တန်ဖိုးတစ်ခုကို ရွေးချယ်ရန် k-fold အပြန်အလှန် validation ကို သုံးပါ။
ဤသင်ခန်းစာတွင် MARS မော်ဒယ်ကို R တွင်ဒေတာအတွဲတစ်ခုနှင့် အံဝင်ခွင်ကျလုပ်နည်း အဆင့်ဆင့် ဥပမာကို ပေးပါသည်။
အဆင့် 1- လိုအပ်သော ပက်ကေ့ခ်ျများကို တင်ပါ။
ဤဥပမာအတွက်၊ ကျွန်ုပ်တို့သည် ISLR Wage dataset ကို အသုံးပြုပါမည် ။ အသက်၊ ပညာရေး၊ လူမျိုး၊ နှင့် အခြားအရာများကဲ့သို့ ကြိုတင်ခန့်မှန်းနိုင်သော ပြောင်းလဲနိုင်သော အမျိုးမျိုးနှင့်အတူ လူ 3,000 ၏ နှစ်စဉ်လစာများပါရှိသော ပက်ကေ့ခ်ျ။
ဒေတာနှင့် MARS မော်ဒယ်ကို တပ်ဆင်ခြင်းမပြုမီ၊ ကျွန်ုပ်တို့သည် လိုအပ်သော ပက်ကေ့ဂျ်များကို တင်ပါမည်-
library (ISLR) #contains Wage dataset library (dplyr) #data wrangling library (ggplot2) #plotting library (earth) #fitting MARS models library (caret) #tuning model parameters
အဆင့် 2: ဒေတာကိုကြည့်ရှုပါ။
ထို့နောက်၊ ကျွန်ုပ်တို့နှင့် ကျွန်ုပ်တို့လုပ်ဆောင်နေသော ဒေတာအတွဲ၏ ပထမခြောက်တန်းကို ပြသပါမည်။
#view first six rows of data
head (Wage)
year age maritl race education region
231655 2006 18 1. Never Married 1. White 1. < HS Grad 2. Middle Atlantic
86582 2004 24 1. Never Married 1. White 4. College Grad 2. Middle Atlantic
161300 2003 45 2. Married 1. White 3. Some College 2. Middle Atlantic
155159 2003 43 2. Married 3. Asian 4. College Grad 2. Middle Atlantic
11443 2005 50 4. Divorced 1. White 2. HS Grad 2. Middle Atlantic
376662 2008 54 2. Married 1. White 4. College Grad 2. Middle Atlantic
jobclass health health_ins logwage wage
231655 1. Industrial 1. <=Good 2. No 4.318063 75.04315
86582 2. Information 2. >=Very Good 2. No 4.255273 70.47602
161300 1. Industrial 1. <=Good 1. Yes 4.875061 130.98218
155159 2. Information 2. >=Very Good 1. Yes 5.041393 154.68529
11443 2. Information 1. <=Good 1. Yes 4.318063 75.04315
376662 2. Information 2. >=Very Good 1. Yes 4.845098 127.11574
အဆင့် 3- MARS မော်ဒယ်ကို ဖန်တီးပြီး အကောင်းဆုံးဖြစ်အောင် လုပ်ပါ။
ထို့နောက်၊ ကျွန်ုပ်တို့သည် ဤဒေတာအတွဲအတွက် MARS မော်ဒယ်ကို ဖန်တီးပြီး မည်သည့်မော်ဒယ်က အနိမ့်ဆုံးစမ်းသပ်မှု RMSE (ပျမ်းမျှစတုရန်းအမှား) ကိုထုတ်ပေးသည်ကို ဆုံးဖြတ်ရန် k-fold ဖြတ်ကျော်စစ်ဆေးခြင်းကို လုပ်ဆောင်ပါမည်။
#create a tuning grid
hyper_grid <- expand. grid (degree = 1:3,
nprune = seq (2, 50, length.out = 10) %>%
floor ())
#make this example reproducible
set.seed(1)
#fit MARS model using k-fold cross-validation
cv_mars <- train(
x = subset(Wage, select = -c(wage, logwage)),
y = Wage$wage,
method = " earth ",
metric = " RMSE ",
trControl = trainControl(method = " cv ", number = 10),
tuneGrid = hyper_grid)
#display model with lowest test RMSE
cv_mars$results %>%
filter (nprune==cv_mars$bestTune$nprune, degree =cv_mars$bestTune$degree)
degree nprune RMSE Rsquared MAE RMSESD RsquaredSD MAESD
1 12 33.8164 0.3431804 22.97108 2.240394 0.03064269 1.4554
ရလဒ်များမှ၊ အနိမ့်ဆုံးစမ်းသပ်မှု MSE ကိုထုတ်လုပ်သည့်မော်ဒယ်သည် ပထမမှာယူမှုအကျိုးသက်ရောက်မှုများ (ဆိုလိုသည်မှာ အပြန်အလှန်အသုံးအနှုန်းများမရှိ) နှင့် စည်းကမ်းချက်များ 12 ခုသာရှိသော မော်ဒယ်ဖြစ်ကြောင်း ကျွန်ုပ်တို့တွေ့မြင်နိုင်ပါသည်။ ဤမော်ဒယ်သည် 33.8164 ၏ root mean square error (RMSE) ကို ထုတ်လုပ်ခဲ့သည်။
မှတ်ချက်- MARS မော်ဒယ်ကို သတ်မှတ်ရန်အတွက် ကျွန်ုပ်တို့သည် method=”earth” ကို အသုံးပြုခဲ့သည်။ ဤနည်းလမ်းအတွက် စာရွက်စာတမ်းများကို ဤနေရာတွင် ရှာဖွေနိုင်ပါသည်။
ဒီဂရီနှင့် စည်းကမ်းချက်များအပေါ်အခြေခံ၍ RMSE စာမေးပွဲကို မြင်သာစေရန် ဇယားတစ်ခုကိုလည်း ဖန်တီးနိုင်သည်-
#display test RMSE by terms and degree
ggplot(cv_mars)
လက်တွေ့တွင်၊ ကျွန်ုပ်တို့သည် MARS မော်ဒယ်ကို အခြားသော မော်ဒယ်လ်အမျိုးအစားများစွာနှင့် ပေါင်းစပ်ထားသည်-
- မျဉ်းကြောင်း ဆုတ်ယုတ်မှု အများအပြား
- Polynomial ဆုတ်ယုတ်မှု
- ဆုတ်ယုတ်မှု အထွတ်အထိပ်
- Lasso ဆုတ်ယုတ်မှု
- အဓိက အစိတ်အပိုင်းများ ဆုတ်ယုတ်ခြင်း။
- တစ်စိတ်တစ်ပိုင်း အနည်းဆုံး လေးထောင့်များ
ထို့နောက် ကျွန်ုပ်တို့သည် အနိမ့်ဆုံးစမ်းသပ်မှုအမှားသို့ ဦးတည်သွားကြောင်း ဆုံးဖြတ်ရန် မော်ဒယ်တစ်ခုစီကို နှိုင်းယှဉ်ပြီး ထိုမော်ဒယ်ကို အသုံးပြုရန် အကောင်းဆုံးမော်ဒယ်အဖြစ် ရွေးချယ်မည်ဖြစ်သည်။
ဤဥပမာတွင်အသုံးပြုသော R ကုဒ်အပြည့်အစုံကို ဤနေရာတွင် တွေ့နိုင်ပါသည်။