दिलचस्प पोस्ट
स्मृति से dlopen? सी # का उपयोग कर एक स्ट्रिंग में एक संपूर्ण फाइल कैसे पढ़ी जा सकती है? एक चर का प्रयोग करके शेल स्क्रिप्ट में एक स्ट्रिंग बदलें URL को मान्य करने के लिए जावास्क्रिप्ट नियमित अभिव्यक्ति गिट को व्यक्तिगत लाइनों को नज़रअंदाज़ करने के लिए, अर्थात कोड के विशिष्ट लाइनों के लिए जीटग्नर एकाधिक स्तंभों में एक स्तंभ को विभाजित करें java.util.Date प्रारूप SSSSSS: यदि नहीं माइक्रोसेकंड पिछले 3 अंक क्या हैं? कोणीय जेएस resizable div निर्देश AJAX, उपडोमेन, और SSL पायथन में टाइम स्ट्रिंग पार्स करना पायथन सूची घटाव ऑपरेशन सरणी नाम के बिना JSONArray प्राप्त करें? Django डिफ़ॉल्ट प्रपत्र मान सेट करता है एफएसआईएनसी () के बिना नाम बदलना () सुरक्षित है? जावा में सीमांकित वस्तुओं की एक स्ट्रिंग बनाने का सबसे अच्छा तरीका क्या है?

नमूना फ़ंक्शन का उपयोग करके प्रशिक्षण / परीक्षण सेट में डेटा को कैसे विभाजित करें I

मैंने अभी आर का उपयोग करना शुरू कर दिया है और मुझे यकीन नहीं है कि मेरे डेटासेट को निम्न नमूना कोड से कैसे शामिल किया जाए:

sample(x, size, replace = FALSE, prob = NULL) 

मेरे पास एक डाटासेट है जिसे मुझे प्रशिक्षण (75%) और परीक्षण (25%) सेट करने की आवश्यकता है। मुझे यकीन नहीं है कि मुझे किस जानकारी को एक्स और आकार में रखना चाहिए था? क्या एक्स डेटासेट फ़ाइल है, और मेरे पास कितने नमूनों का आकार है?

वेब के समाधान से एकत्रित समाधान "नमूना फ़ंक्शन का उपयोग करके प्रशिक्षण / परीक्षण सेट में डेटा को कैसे विभाजित करें I"

डेटा विभाजन हासिल करने के लिए कई तरीके हैं। अधिक पूर्ण दृष्टिकोण के लिए caret पैकेज में createDataPartition फ़ंक्शन पर नज़र डालें।

यहाँ एक सरल एक है:

 data(mtcars) ## 75% of the sample size smp_size <- floor(0.75 * nrow(mtcars)) ## set the seed to make your partition reproductible set.seed(123) train_ind <- sample(seq_len(nrow(mtcars)), size = smp_size) train <- mtcars[train_ind, ] test <- mtcars[-train_ind, ] 

इसे आसानी से किया जा सकता है:

 set.seed(101) # Set Seed so that same sample can be reproduced in future also # Now Selecting 75% of data as sample from total 'n' rows of the data sample <- sample.int(n = nrow(data), size = floor(.75*nrow(data)), replace = F) train <- data[sample, ] test <- data[-sample, ] 

कैटूल पैकेज का उपयोग करके:

 require(caTools) set.seed(101) sample = sample.split(data$anycolumn, SplitRatio = .75) train = subset(data, sample == TRUE) test = subset(data, sample == FALSE) 

यह लगभग समान कोड है, लेकिन अधिक अच्छी लग रही है

 bound <- floor((nrow(df)/4)*3) #define % of training and test set df <- df[sample(nrow(df)), ] #sample rows df.train <- df[1:bound, ] #get training set df.test <- df[(bound+1):nrow(df), ] #get test set 

मैं 'ए' को ट्रेन (70%) और परीक्षण (30%) में विभाजित कर दूँगा

  a # original data frame library(dplyr) train<-sample_frac(a, 0.7) sid<-as.numeric(rownames(train)) # because rownames() returns character test<-a[-sid,] 

किया हुआ

मेरा समाधान मूल रूप से डिको के समान है, लेकिन व्याख्या करने में थोड़ा आसान है:

 data(mtcars) n = nrow(mtcars) trainIndex = sample(1:n, size = round(0.7*n), replace=FALSE) train = mtcars[trainIndex ,] test = mtcars[-trainIndex ,] 
 library(caret) intrain<-createDataPartition(y=sub_train$classe,p=0.7,list=FALSE) training<-m_train[intrain,] testing<-m_train[-intrain,] 

मैं इसके लिए dplyr उपयोग करेगा, यह सुपर सरल बनाता है आपके डेटा सेट में यह एक आईडी वैरिएबल की आवश्यकता होती है, जो कि एक अच्छा विचार है वैसे ही, न केवल सेट बनाने के लिए बल्कि आपके प्रोजेक्ट के दौरान ट्रेसबिलिटी के लिए भी। पहले से ही शामिल नहीं है अगर इसे जोड़ें

 mtcars$id <- 1:nrow(mtcars) train <- mtcars %>% dplyr::sample_frac(.75) test <- dplyr::anti_join(mtcars, train, by = 'id') 

यदि आप टाइप करते हैं:

 ?sample 

अगर नमूना फ़ंक्शन के मापदंडों का अर्थ समझने के लिए सहायता मेनू लॉन्च किया जाता है।

मैं एक विशेषज्ञ नहीं हूं, लेकिन मेरे पास कुछ कोड है:

 data <- data.frame(matrix(rnorm(400), nrow=100))<br> splitdata <- split(data[1:nrow(data),],sample(rep(1:4,as.integer(nrow(data)/4))))<br> test <- splitdata[[1]]<br> train <- rbind(splitdata[[1]],splitdata[[2]],splitdata[[3]])<br> 

यह आपको 75% ट्रेन और 25% परीक्षा देगा।

फ़ंक्शन के नीचे जो समान आकार के उप-नमूनों की एक list बनाते हैं, जो कि वास्तव में आप नहीं चाहते थे, लेकिन दूसरों के लिए उपयोगी साबित हो सकता है मेरे मामले में छोटे नमूनों पर अधिक वृक्षारोपण के पेड़ बनाने के लिए ओवरफीटिंग का परीक्षण करने के लिए:

 df_split <- function (df, number){ sizedf <- length(df[,1]) bound <- sizedf/number list <- list() for (i in 1:number){ list[i] <- list(df[((i*bound+1)-bound):(i*bound),]) } return(list) } 

उदाहरण :

 x <- matrix(c(1:10), ncol=1) x # [,1] # [1,] 1 # [2,] 2 # [3,] 3 # [4,] 4 # [5,] 5 # [6,] 6 # [7,] 7 # [8,] 8 # [9,] 9 #[10,] 10 x.split <- df_split(x,5) x.split # [[1]] # [1] 1 2 # [[2]] # [1] 3 4 # [[3]] # [1] 5 6 # [[4]] # [1] 7 8 # [[5]] # [1] 9 10 

आर नमूना कोड में caTools पैकेज का प्रयोग निम्नानुसार होगा: –

 data split = sample.split(data$DependentcoloumnName, SplitRatio = 0.6) training_set = subset(data, split == TRUE) test_set = subset(data, split == FALSE) 

बेस आर फ़ंक्शन runif प्रयोग 0 से 1 तक समान रूप से वितरित मूल्यों को बनाते हैं। कटआउट मूल्य में भिन्न (नीचे उदाहरण के लिए train.size), आप हमेशा कटऑफ वैल्यू के नीचे यादृच्छिक रिकॉर्ड का लगभग एक प्रतिशत रहेंगे।

 data(mtcars) set.seed(123) train.size<-.7 train.ind<-runif(nrow(mtcars))>train.size