2013-06-20 12 views
6

के साथ गुमशुदा मूल्यों का प्रभाव मैं कैग्ल टाइटैनिक प्रतियोगिता पर काम कर रहा हूं और मेरे पास गुम मूल्यों को लागू करने के बारे में एक प्रश्न है। मैं कैरेट पैकेज का उपयोग करने की कोशिश कर रहा हूं और मेरे प्रशिक्षण सेट में कारकों के साथ-साथ संख्याएं भी शामिल हैं।कैरेट

मैं कैरट में preProcess समारोह का उपयोग करने के लापता मूल्यों आरोपित चाहते हैं, लेकिन preprocess उपयोग करने से पहले, मैं dummyVars समारोह के साथ डमी चर में मेरी सभी कारकों बदलना होगा।

dummies = dummyVars(survived ~ . -1, data = train, na.action = na.pass) 
xtrain = predict(dummies, train) 

हालांकि, dummyVars का उपयोग कर कारकों में परिवर्तित करने की प्रक्रिया में, सभी NAS किसी अज्ञात एल्गोरिथ्म ने भविष्यवाणी कर रहे हैं और लापता age कॉलम सब बन 1 के भले ही मैं na.action = na.pass निर्दिष्ट किया है। मैं अपने कारकों को डैम्स वैरिएबल में परिवर्तित करना चाहता हूं बिना एनएएस को छुआ है, इसलिए मैं इसका उपयोग कर preProcess फ़ंक्शन को लागू करने के लिए उपयोग कर सकता हूं। मैं यह कैसे कर सकता हूँ?

धन्यवाद।

यहाँ dput:

structure(list(survived = structure(c(1L, 2L, 2L, 2L, 1L, 1L, 
1L, 1L, 2L, 2L, 2L, 2L, 1L, 1L, 1L, 2L, 1L, 2L, 1L, 2L), .Label = c("0", 
"1"), class = "factor"), pclass = structure(c(3L, 1L, 3L, 1L, 
3L, 3L, 1L, 3L, 3L, 2L, 3L, 1L, 3L, 3L, 3L, 2L, 3L, 2L, 3L, 3L 
), .Label = c("1", "2", "3"), class = "factor"), sex = structure(c(2L, 
1L, 1L, 1L, 2L, 2L, 2L, 2L, 1L, 1L, 1L, 1L, 2L, 2L, 1L, 1L, 2L, 
2L, 1L, 1L), .Label = c("female", "male"), class = "factor"), 
    age = c(22, 38, 26, 35, 35, NA, 54, 2, 27, 14, 4, 58, 20, 
    39, 14, 55, 2, NA, 31, NA), sibsp = c(1, 1, 0, 1, 0, 0, 0, 
    3, 0, 1, 1, 0, 0, 1, 0, 0, 4, 0, 1, 0), parch = c(0, 0, 0, 
    0, 0, 0, 0, 1, 2, 0, 1, 0, 0, 5, 0, 0, 1, 0, 0, 0), fare = c(7.25, 
    71.2833, 7.925, 53.1, 8.05, 8.4583, 51.8625, 21.075, 11.1333, 
    30.0708, 16.7, 26.55, 8.05, 31.275, 7.8542, 16, 29.125, 13, 
    18, 7.225), embarked = structure(c(4L, 2L, 4L, 4L, 4L, 3L, 
    4L, 4L, 4L, 2L, 4L, 4L, 4L, 4L, 4L, 4L, 3L, 4L, 4L, 2L), .Label = c("", 
    "C", "Q", "S"), class = "factor")), .Names = c("survived", 
"pclass", "sex", "age", "sibsp", "parch", "fare", "embarked"), row.names = c(NA, 
20L), class = "data.frame") 

उत्तर

4

यह पहला हिस्सा एक बग है; एनए मान 1 (स्पष्ट रूप से) नहीं होना चाहिए। इस बीच, आप डमी चर उत्पन्न करने के लिए model.matrix का उपयोग कर सकते हैं, लेकिन आपको इसे सभी डेटा के लिए एक बार में करना पड़ सकता है। इसके अलावा, यदि आप train का उपयोग कर रहे हैं, तो आप सूत्र विधि का उपयोग कर सकते हैं। कुल मिलाकर, यह एक बेहतर दृष्टिकोण है।

मैं इसे अगले कुछ हफ्तों में ठीक कर दूंगा। मैं कैरेट का एक संस्करण जारी करने जा रहा हूं और यह, प्लस यूईआरआर, मुझे थोड़ा देरी करेगा।

संपादित करें: एक नया संस्करण अगले हफ्ते कि बग ठीक करता है

मैक्स

+1

उत्तर के लिए धन्यवाद में जारी किया जाएगा। 'model.matrix' चाल को ऐसा प्रतीत नहीं होता है क्योंकि यह एनए के साथ किसी भी पंक्ति को छोड़ देता है। अगर काम करने के लिए कोई रास्ता है तो कृपया मुझे बताएं। धन्यवाद। – mchangun

संबंधित मुद्दे