R Language
आर में फ़ीचर चयन - एक्सट्रूज़न फीचर को हटाना
खोज…
शून्य या निकट-शून्य संस्करण के साथ सुविधाएँ निकालना
शून्य वैरिएंट के पास एक विशेषता हटाने के लिए एक अच्छा उम्मीदवार है।
आप मैन्युअल रूप से अपने स्वयं के सीमा के नीचे संख्यात्मक विचरण का पता लगा सकते हैं:
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
मैं देखना चाहता हूं कि एमपीजी का इतनी मजबूती से क्या संबंध है, और तय करना है कि क्या रखना है और क्या टॉस करना है। सिलेंडर और विवाद के लिए भी। वैकल्पिक रूप से, मुझे कुछ दृढ़ता से सहसंबद्ध सुविधाओं को संयोजित करने की आवश्यकता हो सकती है।