मॉडल को सही तरीके से ट्रेन करना

R में Supervised Learning: Regression

Nina Zumel and John Mount

Win-Vector, LLC

मॉडल ट्रेनिंग पर बहुत अच्छा कर सकते हैं, पर भविष्य के डेटा पर नहीं।

  • Training $R^2$: 0.9; Test $R^2$: 0.15 -- Overfit
R में Supervised Learning: Regression

Test/Train Split

जब डेटा पर्याप्त हो, यह सुझाई गई विधि है

R में Supervised Learning: Regression

उदाहरण: Female Unemployment का मॉडल

  • 66 पंक्तियों पर ट्रेन, 30 पंक्तियों पर टेस्ट
R में Supervised Learning: Regression

मॉडल प्रदर्शन: Train बनाम Test

  • Training: RMSE 0.71, $R^2$ 0.8
  • Test: RMSE 0.93, $R^2$ 0.75
R में Supervised Learning: Regression

Cross-Validation

जब डेटा टेस्ट सेट में बाँटने लायक बड़ा न हो, तब इसे प्राथमिकता दें

R में Supervised Learning: Regression

Cross-Validation

R में Supervised Learning: Regression

Cross-Validation

R में Supervised Learning: Regression

Cross-Validation

R में Supervised Learning: Regression

Cross-validation प्लान बनाएँ

library(vtreat)
splitPlan <- kWayCrossValidation(nRows, nSplits, NULL, NULL)
  • nRows: प्रशिक्षण डेटा में पंक्तियों की संख्या
  • nSplits: cross-validation में folds (partitions) की संख्या
    • जैसे, 3-way cross-validation के लिए nfolds = 3
  • बाकी 2 आर्ग्युमेंट यहाँ ज़रूरी नहीं
R में Supervised Learning: Regression

Cross-validation प्लान बनाएँ

library(vtreat)
splitPlan <- kWayCrossValidation(10, 3, NULL, NULL)

पहला fold (A और B पर train, C पर test)

splitPlan[[1]]
$train
1  2  4  5  7  9 10
$app
3 6 8

A और B पर train करें, C पर test करें, आदि...

split <- splitPlan[[1]]
model <- lm(fmla, data = df[split$train,])
df$pred.cv[split$app] <- predict(model, newdata = df[split$app,])
R में Supervised Learning: Regression

Final Model

R में Supervised Learning: Regression

उदाहरण: Unemployment मॉडल

माप प्रकार RMSE $R^2$
train 0.7082675 0.8029275
test 0.9349416 0.7451896
cross-validation 0.8175714 0.7635331
R में Supervised Learning: Regression

अभ्यास करते हैं!

R में Supervised Learning: Regression

Preparing Video For Download...