क्या मॉडल बनाने के लिए औसत प्रतिगमन गुणांक के साथ कोई सैद्धांतिक समस्या है?


13

मैं एक प्रतिगमन मॉडल बनाना चाहता हूं जो कई ओएलएस मॉडल का औसत है, प्रत्येक पूर्ण डेटा के सबसेट पर आधारित है। इसके पीछे का विचार इस कागज पर आधारित है । मैं कश्मीर सिलवटों का निर्माण करता हूं और कश्मीर ओएलएस मॉडल का निर्माण करता हूं, प्रत्येक में बिना किसी फोल्ड के डेटा। मैं फिर अंतिम मॉडल प्राप्त करने के लिए प्रतिगमन गुणांक औसत करता हूं।

यह मुझे कुछ बेतरतीब वन प्रतिगमन की तरह ही हमला करता है, जिसमें कई प्रतिगमन पेड़ बनाए जाते हैं और औसत होते हैं। हालाँकि, औसतन ओएलएस मॉडल का प्रदर्शन पूरे डेटा पर केवल एक ओएलएस मॉडल बनाने से भी बदतर लगता है। मेरा सवाल है: क्या एक सैद्धांतिक कारण है कि कई ओएलएस मॉडल का औसत गलत या अवांछनीय है? क्या हम ओवरफिटिंग को कम करने के लिए कई ओएलएस मॉडल की औसत उम्मीद कर सकते हैं? नीचे एक आर उदाहरण है।

#Load and prepare data
library(MASS)
data(Boston)
trn <- Boston[1:400,]
tst <- Boston[401:nrow(Boston),]

#Create function to build k averaging OLS model
lmave <- function(formula, data, k, ...){
  lmall <- lm(formula, data, ...)
  folds <- cut(seq(1, nrow(data)), breaks=k, labels=FALSE)
  for(i in 1:k){
    tstIdx <- which(folds==i, arr.ind = TRUE)
    tst <- data[tstIdx, ]
    trn <- data[-tstIdx, ]
    assign(paste0('lm', i), lm(formula, data = trn, ...))
  }

  coefs <- data.frame(lm1=numeric(length(lm1$coefficients)))
  for(i in 1:k){
    coefs[, paste0('lm', i)] <- get(paste0('lm', i))$coefficients
  }
  lmnames <- names(lmall$coefficients)
  lmall$coefficients <- rowMeans(coefs)
  names(lmall$coefficients) <- lmnames
  lmall$fitted.values <- predict(lmall, data)
  target <- trimws(gsub('~.*$', '', formula))
  lmall$residuals <- data[, target] - lmall$fitted.values

  return(lmall)
}

#Build OLS model on all trn data
olsfit <- lm(medv ~ ., data=trn)

#Build model averaging five OLS 
olsavefit <- lmave('medv ~ .', data=trn, k=5)

#Build random forest model
library(randomForest)
set.seed(10)
rffit <- randomForest(medv ~ ., data=trn)

#Get RMSE of predicted fits on tst
library(Metrics)
rmse(tst$medv, predict(olsfit, tst))
[1] 6.155792
rmse(tst$medv, predict(olsavefit, tst))
[1] 7.661 ##Performs worse than olsfit and rffit
rmse(tst$medv, predict(rffit, tst))
[1] 4.259403

2
आप आज़मा सकते हैं मंझला गुणांक मूल्यों के बजाय औसत गुणांक मूल्यों। मैंने देखा है कि यह तकनीक कभी-कभी बेहतर परिणाम दे सकती है।
जेम्स फिलिप्स

यह संभवतः आपको एक प्रदर्शन को बढ़ावा नहीं देगा या अधिक फिटिंग को कम नहीं करेगा, लेकिन इसमें अन्य उपयोगी अनुप्रयोग हैं। यह चैप अपने स्ट्रीम किए गए समय श्रृंखला डेटा youtube.com/watch?v=0zpg9ODE6Ww&index=64&list=WL
josh

जवाबों:


14

यह देखते हुए कि OLS (गॉस-मार्कोव प्रमेय) सभी निष्पक्ष रैखिक आकलनकर्ता के बीच बच के एमएसई को कम करता है, और निष्पक्ष रैखिक आकलनकर्ता की एक भारित औसत (जैसे, अपने में से प्रत्येक से कार्यों रैखिक का अनुमान है कि परतों) में ही एक निष्पक्ष है रैखिक अनुमानक, यह होना चाहिए कि ओएलएस पूरे डेटा सेट पर लागू होता है , जब तक कि संयोग से, रैखिक प्रतिगमनों के भारित औसत को बेहतर बना देगा , दोनों समान परिणाम देते हैं।कश्मीरkk

ओवरफिटिंग के रूप में - रैखिक मॉडल उसी तरह से ओवरफिट करने के लिए प्रवण नहीं होते हैं, उदाहरण के लिए, ग्रेडिएंट बूस्टिंग मशीनें हैं। रैखिकता का प्रवर्तन उसे देखता है। यदि आपके पास बहुत कम संख्या में आउटलेयर हैं जो आपकी ओएलएस रिग्रेशन लाइन को अच्छी तरह से दूर खींचते हैं जहां से यह होना चाहिए, तो आपका दृष्टिकोण थोड़ा हो सकता है - केवल थोड़ा - बहुत नुकसान की भरपाई करें, लेकिन उस समस्या के संदर्भ में उस समस्या से निपटने के लिए बहुत बेहतर दृष्टिकोण हैं आउटलेर की बहुत कम संख्या, उदाहरण के लिए, मजबूत रेखीय प्रतिगमन, या बस डेटा की साजिश रचने, पहचानने, और फिर आउटलेर्स को हटाते हुए (यह मानते हुए कि वे वास्तव में डेटा जनरेट करने की प्रक्रिया के प्रतिनिधि नहीं हैं जिनके पैरामीटर आप अनुमान लगाने में रुचि रखते हैं।)


"आउटपरफॉर्म" से क्या आपका मतलब है कि इसमें गुणांक के बेहतर अनुमान होंगे या यह बोर्ड भर में केफोल्ड दृष्टिकोण (आउटलेयर को छोड़कर, जैसा कि आपने उल्लेख किया है) से बेहतर होगा?
अरश हावैडा

यह k- गुना दृष्टिकोण की तुलना में अवशिष्टों का कम MSE होगा, जिसका अर्थ है कि मॉडल के कार्यात्मक रूप को सही मानते हुए, कि औसतन इसके गुणांकों का बेहतर अनुमान होगा और के-फोल्ड की तुलना में बेहतर होगा। बोर्ड - जब तक कि आपकी विशिष्ट समस्या इंगित नहीं करती है कि एक अलग मानदंड, उदाहरण के लिए, पूर्ण त्रुटि का मतलब है, एमएसई को प्राथमिकता दी जानी है।
जूलमैन

1

बूटस्ट्रैप चलाने के बारे में क्या? अप्रतिबंधित यादृच्छिक नमूना (प्रतिस्थापन के साथ नमूनाकरण) का उपयोग करके 100% नमूना दर के साथ 100-1000 प्रतिकृति नमूने बनाएं। मॉडल को दोहराकर चलाएँ और प्रत्येक प्रतिगमन गुणांक के लिए माध्यिका प्राप्त करें। या मतलब की कोशिश करो। यह भी देखें कि क्या लक्षण बदलते हैं और क्या संचयी वितरण मान हैं, यह देखने के लिए प्रत्येक गुणांक का वितरण करें।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.