शुरू करेंमुफ़्त में शुरू करें

एक इंटरैक्शन का मॉडलिंग (2)

इस अभ्यास में, आप पिछले अभ्यास में फिट किए गए इंटरैक्शन मॉडल के प्रदर्शन की तुलना केवल main-effects वाले मॉडल से करेंगे। क्योंकि यह डेटासेट छोटा है, हम out-of-sample डेटा पर प्रेडिक्शन को simulate करने के लिए cross-validation का उपयोग करेंगे.

आप गणनाएँ करने के लिए dplyr पैकेज का उपयोग करना शुरू करेंगे.

  • mutate() (docs) एक tbl (data frame का एक प्रकार) में नए कॉलम जोड़ता है
  • group_by() (docs) तय करता है कि किसी tbl में पंक्तियाँ कैसे ग्रुप की जाएँगी
  • summarize() (docs) किसी कॉलम के summary statistics निकालता है

आप tidyr का pivot_longer() (docs) भी उपयोग करेंगे, जो कई कॉलम्स को key-value जोड़ों में समेट देता है। alcohol डेटा फ्रेम और फार्मूले fmla_add और fmla_interaction पहले से लोड किए गए हैं.

यह अभ्यास पाठ्यक्रम का हिस्सा है

R में Supervised Learning: Regression

पाठ्यक्रम देखें

अभ्यास निर्देश

  • kWayCrossValidation() (docs) का उपयोग करके 3-fold cross validation के लिए एक splitting प्लान बनाएँ.
    • पहला आर्ग्युमेंट स्प्लिट की जाने वाली पंक्तियों की संख्या है.
    • दूसरा आर्ग्युमेंट cross-validation के folds की संख्या है.
    • आप फ़ंक्शन के 3रे और 4थे आर्ग्युमेंट को NULL सेट कर सकते हैं.
  • सैंपल कोड देखें और चलाएँ ताकि बिना इंटरैक्शन वाले मॉडल के 3-fold cross-validation प्रेडिक्शन मिलें और उन्हें कॉलम pred_add में असाइन करें.
  • इंटरैक्शन वाले मॉडल के 3-fold cross-validation प्रेडिक्शन प्राप्त करें। प्रेडिक्शन को कॉलम pred_interaction में असाइन करें.
    • प्रक्रिया सैंपल कोड में दिखाई गई है.
    • वही splitPlan उपयोग करें जो आपने पहले बनाया था.
  • खाली स्थान भरें ताकि
    • pivot_longer करके प्रेडिक्शनों को एक ही कॉलम pred में लाया जा सके.
    • residuals (वास्तविक आउटपुट - प्रेडिक्टेड आउटपुट) का एक कॉलम जोड़ा जा सके.
    • प्रत्येक मॉडल प्रकार के लिए cross-validation प्रेडिक्शनों का RMSE निकाला जा सके.
  • RMSEs की तुलना करें। इन नतीजों के आधार पर, आपको कौन सा मॉडल उपयोग करना चाहिए?

इंटरैक्टिव व्यावहारिक अभ्यास

इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।

# alcohol is available
summary(alcohol)

# Both the formulae are available
fmla_add
fmla_interaction

# Create the splitting plan for 3-fold cross validation
set.seed(34245)  # set the seed for reproducibility
splitPlan <- ___(___(___), ___, ___, ___)

# Sample code: Get cross-val predictions for main-effects only model
alcohol$pred_add <- 0  # initialize the prediction vector
for(i in 1:3) {
  split <- splitPlan[[i]]
  model_add <- lm(fmla_add, data = alcohol[split$train, ])
  alcohol$pred_add[split$app] <- predict(model_add, newdata = alcohol[split$app, ])
}

# Get the cross-val predictions for the model with interactions
alcohol$pred_interaction <- 0 # initialize the prediction vector
for(i ___ ___) {
  split <- ___
  model_interaction <- lm(___, data = alcohol[split$train, ])
  alcohol$___[split$app] <- predict(___, newdata = alcohol[split$app, ])
}

# Get RMSE
alcohol %>% 
  pivot_longer(cols=c('pred_add', 'pred_interaction'), names_to='modeltype', values_to='pred') %>%
  mutate(residuals = ____) %>%      
  group_by(modeltype) %>%
  summarize(rmse = ___(___(___)))
कोड संपादित करें और चलाएँ