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

n-fold cross-validation से किसी मॉडलिंग प्रक्रिया का मूल्यांकन करें

इस अभ्यास में, आप पिछले अभ्यास के 3-fold cross validation प्लान splitPlan का उपयोग करके एक ऐसा मॉडल बनाएँगे जो mpg$hwy से mpg$cty की भविष्यवाणी करता है, और उससे predictions लेंगे।

यदि dframe प्रशिक्षण डेटा है, तो cross-validation predictions का एक कॉलम फ्रेम में जोड़ने का एक तरीका इस प्रकार है:

# उपयुक्त लंबाई का एक कॉलम इनिशियलाइज़ करें
dframe$pred.cv <- 0 

# k folds की संख्या है
# splitPlan cross validation प्लान है

for(i in 1:k) {
  # iवाँ split लें
  split <- splitPlan[[i]]

  # इस split के training data पर 
  # एक मॉडल बनाएँ 
  # (इस केस में lm)
  model <- lm(fmla, data = dframe[split$train,])

  # इस split के application data पर 
  # predictions बनाएँ
  dframe$pred.cv[split$app] <- predict(model, newdata = dframe[split$app,])
}

Cross-validation यह अनुमान लगाता है कि सभी डेटा पर बना हुआ मॉडल नए डेटा पर कितना अच्छा perform करेगा। जैसे test/train split में होता है, एक अच्छे modeling procedure के लिए cross-validation performance और training performance एक-दूसरे के क़रीब होने चाहिए।

डेटा फ्रेम mpg, cross validation प्लान splitPlan, और rmse() फंक्शन पहले से लोड हैं।

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

R में Supervised Learning: Regression

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

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

  • splitPlan से 3-fold cross validation प्लान चलाएँ और predictions को कॉलम mpg$pred.cv में रखें.
    • lm() और formula cty ~ hwy का उपयोग करें.
  • पूरे mpg डेटा पर (formula cty ~ hwy) एक linear regression मॉडल बनाएँ और उसकी predictions mpg$pred में असाइन करें.
  • rmse() का उपयोग करके full मॉडल की predictions (mpg$pred) का root mean squared error निकालें. याद रखें कि rmse() दो argument लेता है: predicted values और actual outcome.
  • cross-validation predictions का root mean squared error निकालें. क्या दोनों मान लगभग समान हैं?

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

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

# mpg is available
summary(mpg)

# splitPlan is available
str(splitPlan)

# Run the 3-fold cross validation plan from splitPlan
k <- ___ # Number of folds
mpg$pred.cv <- 0 
for(i in ___) {
  split <- ___
  model <- lm(___, data = ___)
  mpg$pred.cv[___] <- predict(___, newdata = ___)
}

# Predict from a full model
mpg$pred <- ___(___(cty ~ hwy, data = mpg))

# Get the rmse of the full model's predictions
___(___, ___)

# Get the rmse of the cross-validation predictions
___(___, ___)
कोड संपादित करें और चलाएँ