क्या मुझे मॉडल में एक नया अंतर (z = X1-x2) फ़ीचर जोड़ना चाहिए?

Aug 17 2020

हाल ही में, मैं इस प्रश्न के बारे में सोच रहा हूं: क्या मुझे कच्चे फीचर्स के अंतर के आधार पर नई सुविधाओं को जोड़ना चाहिए?

स्थापना

मान लीजिए कि मेरे पास 50k डेटा और 20 सुविधाएँ हैं और यह एक प्रतिगमन कार्य है। डेटा साइंस प्रैक्टिस में, हम आम तौर पर कच्चे फीचर्स के आधार पर नई सुविधाएँ जोड़ते हैं। हालाँकि, मुझे नहीं पता कि हमें अपने मॉडल में एक नया फीचर z (z = X1 - x2) कब जोड़ना चाहिए ।

माई थ्री

यहां मेरी समझ है: चूंकि फीचर को मॉडल में डंप किया जा रहा है, इसलिए यह सुविधा ठीक काम करती है या नहीं यह फीचर और मॉडल दोनों पर निर्भर करता है।

एक उदाहरण के रूप में रैखिक प्रतिगमन लेते हैं:

head(mtcars)
fit1 = lm(mpg~ cyl+disp +hp +vs, data = mtcars)
summary(fit1)$adj.r.squared

data_add = cbind(mtcars,'c1' = mtcars$disp - mtcars$hp)
fit2 = lm(mpg~ cyl+disp + hp +vs + c1, data = data_add)
summary(fit2)$adj.r.squared
summary(fit2)

add_noise <- function(n){
  res = NULL
  for(i in 1:n){
    data_add_noise = cbind(mtcars,'c1' = mtcars$disp - mtcars$hp + rnorm(nrow(mtcars),0,1))
    fit3 = lm(mpg~ cyl+disp + hp +vs + c1, data = data_add_noise)
    res = c(res,summary(fit3)$adj.r.squared)
  }  
  return(mean(res))
}
add_noise(10000)

आउटपुट:

> summary(fit1)$adj.r.squared
[1] 0.7359967
> summary(fit2)$adj.r.squared
[1] 0.7359967
> add_noise(10000)
[1] 0.7359121

रैखिक प्रतिगमन में, यदि हम अपने मॉडल में z = X1-x2 डालते हैं, तो हमें एक विलक्षण डिजाइन मैट्रिक्स मिलेगा, जिसका अर्थ है कि आर गुणांक फिट करने के लिए z का उपयोग नहीं करेगा। दूसरे शब्दों में, नया फीचर z हमारे मॉडल के प्रदर्शन को कोई बढ़ावा नहीं देगा।

अगर हम अपने मॉडल में z = X1- x2 + rnorm (n = 1, माध्य = 0, sd = 1) का उपयोग करते हैं, तो हम अपने मॉडल के प्रदर्शन को कम कर देंगे क्योंकि हम अपने मॉडल में अतिरिक्त शोर का परिचय देंगे।

हालाँकि, अगर हम lgbm / xgboost / rf मॉडल का उपयोग करते हैं, क्योंकि पेड़ मॉडल विभाजन नोड्स के आधार पर जानकारी प्राप्त / सूचना लाभ अनुपात / gini अशुद्धता, हमारी नई सुविधा z = X1 - x2 हमारे मॉडल प्रदर्शन के साथ मदद कर सकता है।

सारांश

क्या हमें अपने मॉडल में अपने नए अंतर फ़ीचर (z = X1- x2) को जोड़ना चाहिए जो हमारे द्वारा उपयोग किए जाने वाले मॉडल पर निर्भर करता है। मैं किसी भी अन्य विचारों को देखने के लिए बहुत आभारी रहूंगा!

जवाब

5 Sycorax Aug 17 2020 at 20:26

एक रैखिक मॉडल की परिभाषित विशेषता यह है कि यह रैखिक है। इसका मतलब है कि परिणाम$y$नीरव विशेषताओं के रैखिक कार्य के रूप में प्रतिरूपित किया जाता है$x_1, x_2$

$$ y = \beta_0 + \beta_1 x_1 + \beta_2 x_2+ \epsilon $$

मान लीजिए कि हम एक नीरव विशेषता जोड़ते हैं $x_3=x_1 - x_2$। यदि हम देखें कि यह मॉडल कैसे व्यक्त किया गया है, तो यह स्पष्ट होना चाहिए कि यह हमारे मूल मॉडल से अलग नहीं है। $$\begin{align} y &= \beta_0 + \tilde{\beta}_1 x_1 + \tilde{\beta}_2 x_2 + {\beta}_3 (x_1 - x_2)+ \epsilon \\ y &= \beta_0 + (\tilde{\beta}_1 + {\beta}_3) x_1 + (\tilde{\beta}_2 - {\beta}_3) x_2+ \epsilon \\ y &= \beta_0 + \beta_1 x_1 + \beta_2 x_2+ \epsilon \\ \end{align}$$ दूसरे शब्दों में, गुणांक पर $x_3$ इस मॉडल में पहचाना नहीं गया है क्योंकि यह बिल्कुल एक रेखीय संयोजन है $x_1$ तथा $x_2$

आपका उदाहरण शोर का उपयोग करता है $x_3 = x_1 - x_2 + \eta$गैर-पहचान से बचने के लिए। हालांकि, यह शोर के लिए एक गुणांक जोड़ने के लिए है$\eta$: $$\begin{align} y &= \beta_0 + \tilde{\beta}_1 x_1 + \tilde{\beta}_2 x_2 + {\beta}_3 (x_1 - x_2 + \eta) + \epsilon\\ y &= \beta_0 + (\tilde{\beta}_1 + {\beta}_3) x_1 + (\tilde{\beta}_2 - {\beta}_3) x_2 + {\beta}_3\eta + \epsilon \\ y &= \beta_0 + \beta_1 x_1 + \beta_2 x_2 + \beta_3 \eta + \epsilon \\ \end{align}$$

दूसरे शब्दों में, शोर $\eta$मॉडल को प्रदान की गई एक तीसरी विशेषता है। शोर को असंबंधित माना जाता है$y$, इसलिए हम जानते हैं कि इसका वास्तविक प्रभाव क्या है $\eta$ पर $y$शून्य है; समेत$\eta$ जब भी भविष्यवाणियों की संभावना होगी चोट $\hat{\beta}_3 \neq 0$

निष्कर्ष : जोड़ नहीं है$x_1-x_2+\eta$ एक रेखीय प्रतिगमन मॉडल के लिए क्योंकि इसके बारे में कोई नई जानकारी नहीं है $y$


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

मनमाने ढंग से कई बाइनरी, अक्ष-संरेखित विभाजन सरल आकार का उपयोग करके एक जटिल सीमा को अनुमानित कर सकते हैं। क्लासिक उदाहरण लाइन पर एक परिपूर्ण रैखिक निर्णय सीमा के साथ एक द्विआधारी वर्गीकरण कार्य पर विचार करना है$x_1 - x_2 > c$। यह एक विकर्ण विभाजन के रूप में प्रकट होता है । जाहिर है एक एकल अक्ष गठबंधन विभाजन बहुत अच्छी तरह से एक विकर्ण अनुमानित नहीं कर सकता है, लेकिन कई अक्ष गठबंधन विभाजन, आप एक "सीढ़ी कदम" आकार कि विकर्ण अनुमान लगा सकता है कर सकते हैं मनमाने ढंग से अच्छी तरह से । इसी तरह, लघुगणक, चतुष्कोण, साइनसोइड्स, आदि जैसे संबंधों को सन्निकट करने के लिए भी यही सच है।

दूसरी ओर, एक सुविधा को जोड़ना $x_1 - x_2$ फीचर सेट मॉडल में सुधार कर सकता है क्योंकि एक द्विआधारी विभाजन ठीक से पुनर्प्राप्त करने में सक्षम होगा $x_1 - x_2 > c$। इस तरह की सुविधा इंजीनियरिंग मॉडल में सुधार कर सकती है जब आप पहले से जानते हैं कि यह सुविधा उपयोगी है। दूसरी ओर, यादृच्छिक वन या बूस्टेड पेड़ों जैसे उन्नत मॉडल का उपयोग करने का पूरा बिंदु उपयोगी कार्यों को पुनर्प्राप्त करना है जब हम ठीक से नहीं जानते हैं कि सभी विशेषताएं परिणाम से संबंधित कैसे हैं।

निष्कर्ष : जोड़ना$x_1 - x_2$ अगर मॉडल में सुधार कर सकते हैं $x_1 - x_2 > c$ के लिए महत्वपूर्ण है $y$

अधिक जानकारी: यादृच्छिक जंगलों और लासो के लिए रूपांतरित स्तंभों को जोड़ने के परिणाम?