खोज…


शून्य या निकट-शून्य संस्करण के साथ सुविधाएँ निकालना

शून्य वैरिएंट के पास एक विशेषता हटाने के लिए एक अच्छा उम्मीदवार है।

आप मैन्युअल रूप से अपने स्वयं के सीमा के नीचे संख्यात्मक विचरण का पता लगा सकते हैं:

data("GermanCredit")
variances<-apply(GermanCredit, 2, var)
variances[which(variances<=0.0025)]

या, आप शून्य संस्करण के पास खोजने के लिए कैरेट पैकेज का उपयोग कर सकते हैं। यहाँ एक फायदा यह है कि शून्य भिन्नता के पास परिभाषित होता है, जो भिन्नता की संख्यात्मक गणना में नहीं, बल्कि दुर्लभता के कार्य के रूप में होता है:

"नियरजेरोवर भविष्यवक्ताओं का निदान करता है जिनका एक अद्वितीय मूल्य होता है (अर्थात शून्य भिन्नता वाले भविष्यवक्ता होते हैं) या भविष्यवाणियाँ जो दोनों निम्नलिखित विशेषताएं हैं: उनके पास नमूनों की संख्या और सबसे सामान्य मूल्य की आवृत्ति के अनुपात के सापेक्ष बहुत कम अद्वितीय मूल्य हैं। दूसरे सबसे आम मूल्य की आवृत्ति बड़ी है ... "

library(caret)
names(GermanCredit)[nearZeroVar(GermanCredit)]

एनए की उच्च संख्या के साथ सुविधाओं को हटाना

यदि किसी सुविधा में बड़े पैमाने पर डेटा की कमी है, तो यह हटाने के लिए एक अच्छा उम्मीदवार है:

library(VIM)
data(sleep)
colMeans(is.na(sleep))

   BodyWgt   BrainWgt       NonD      Dream      Sleep       Span       Gest 
0.00000000 0.00000000 0.22580645 0.19354839 0.06451613 0.06451613 0.06451613 
      Pred        Exp     Danger 
0.00000000 0.00000000 0.00000000 

इस मामले में, हम NonD और Dream को हटाना चाहते हैं, जिनमें से प्रत्येक में लगभग 20% लापता मान हैं (आपका कटऑफ भिन्न हो सकता है)

बारीकी से सहसंबद्ध सुविधाओं को हटाना

बारीकी से सहसंबद्ध विशेषताएं आपके मॉडल में विचरण को जोड़ सकती हैं, और एक सहसंबद्ध जोड़ी में से एक को हटाने से इसे कम करने में मदद मिल सकती है। सहसंबंध का पता लगाने के बहुत सारे तरीके हैं। यहां एक है:

library(purrr) # in order to use keep()

# select correlatable vars
toCorrelate<-mtcars %>% keep(is.numeric)

# calculate correlation matrix
correlationMatrix <- cor(toCorrelate)

# pick only one out of each highly correlated pair's mirror image
correlationMatrix[upper.tri(correlationMatrix)]<-0  

# and I don't remove the highly-correlated-with-itself group
diag(correlationMatrix)<-0 

# find features that are highly correlated with another feature at the +- 0.85 level
apply(correlationMatrix,2, function(x) any(abs(x)>=0.85))

  mpg   cyl  disp    hp  drat    wt  qsec    vs    am  gear  carb 
 TRUE  TRUE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE 

मैं देखना चाहता हूं कि एमपीजी का इतनी मजबूती से क्या संबंध है, और तय करना है कि क्या रखना है और क्या टॉस करना है। सिलेंडर और विवाद के लिए भी। वैकल्पिक रूप से, मुझे कुछ दृढ़ता से सहसंबद्ध सुविधाओं को संयोजित करने की आवश्यकता हो सकती है।



Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow