2013-07-21 13 views
5

Usiłuję zbudować kilka modeli uczenia maszynowego,wygenerować zestaw losowych unikalnych liczb całkowitych z przedziału

więc muszę danych treningowych oraz dane potwierdzające

więc Załóżmy, że mam liczbę N przykładach Chcę wybrać losowe x przykłady w ramce danych.

Załóżmy na przykład, że mam 100 przykładów i potrzebuję 10 liczb losowych, czy istnieje sposób (aby efektywnie) wygenerować 10 losowych numerów INTEGER dla mnie, aby wyodrębnić dane treningowe z moich próbek danych?

Próbowałem używać pętli while i powoli zmieniać powtarzające się numery, ale czas działania nie jest idealny, więc szukam bardziej wydajnego sposobu na zrobienie tego.

Czy ktoś może pomóc?

Odpowiedz

13

sample robi to:

$ sample.int(100, 10) 
[1] 58 83 54 68 53 4 71 11 75 90 

wygeneruje dziesięć liczb losowych z przedziału 1-100. Prawdopodobnie chcesz replace = TRUE, których próbki z wymianą:

> sample.int(20, 10, replace = TRUE) 
[1] 10 2 11 13 9 9 3 13 3 17 

Bardziej ogólnie, sample próbki n Obserwacje z wektorem arbitralnych wartości.

+0

dzięki! pozwól mi wypróbować Twoje rozwiązanie - nie, potrzebuję danych treningowych, aby były wyjątkowe, ale dzięki za dodatkowe informacje! –

+2

Również, @LowYiXiang, może być użyteczne wyrażenie 'head' i' tail': idx <- sample.int (100); train.idx <- head (idx, 10); test.idx <- tail (idx, -10); ' – flodel

0

Jeśli dobrze rozumiem, próbujesz utworzyć próbkę z podtrzymaniem. Zwykle odbywa się to za pomocą prawdopodobieństw. Więc jeśli masz n.rows próbek i chcemy ułamek training.fraction być wykorzystywane do szkolenia, można zrobić coś takiego:

select.training <- runif(n=n.rows) < training.fraction 
data.training <- my.data[select.training, ] 
data.testing <- my.data[!select.training, ] 

Jeśli chcesz określić dokładny spraw szkoleniowych, można zrobić coś takiego:

indices.training <- sample(x=seq(n.rows), size=training.size, replace=FALSE) #replace=FALSE makes sure the indices are unique 
data.training <- my.data[indices.training, ] 
data.testing <- my.data[-indices.training, ] #note that index negation means "take everything except for those" 
Powiązane problemy