R 기초 랜덤 샘플링, 롤렛 및 확률형 아이템 조작

   항상 모든 언어가 그렇지만,  기초가 어렵다.  그렇지만,  기초가 있어야 실무에서 적용할 카드들이 많다.  이번에 R 기초에서  랜덤 샘플링과 롤렛및 확률형 아이템 조작에 대하여 이야기 할 것이다. 

랜덤 샘플링

 

🚚 랜덤 샘플링

       어떠한 값을 랜덤으로 추출 하려면, Sample  함수를 사용한다.   아래와 같이  설명하기 쉬운  sample 함수가 있다.  sample 함수는  표본 집단으로 부터,  데이터를 추출 하는데 사용이 된다.   우리가 주로 사용 하는 것은  회계 감사 시,  랜덤 샘플로 조사를 하고,  대통령 선거 여론 조사시 샘플링을 하여, 조사 한다. 

  아래는 비복원 추출 방식이다.   이건은 경품을 추첨 하는 것과 같다.  경품의 담청자가 나오면 그 담첨자는  이미 끝난 것이다.   그 경품 추첨에서는 끝난 것이다. 

# random sample 

# 주사위를 1번 던진다. 
  sample(1:6, 1)
## [1] 1
# 샘플의 정렬
  sample(1:6)
## [1] 2 4 3 6 1 5
# # 비복원 추출인 것은 모집단의 갯수를 넘길수 없다.
 sample(1:6, 10) 
Error in sample.int(length(x), size, replace, prob) : 
  'replace = FALSE' 일때는 모집단보다 큰 샘플을 가질 수 없습니다


   그런데 우리는 복원 추출을 해야 할 때가 있다.   딥러닝에서는 Cross validation  폴드를 나누어서 여러번 샘플링 하거나, R에서 고급 기법인  bootstrap 할 때  샘플의 표본 공간에 있는 데이터를   계속 리샘플링 하여,   표준 정규 분포에 정규화 된 값을 만든다. 

아래는 복원 추출의 예이다. 

#  비복원 추출 하는 방법
   sample(1:6, 10, replace = TRUE)
##  [1] 4 6 1 4 1 6 2 4 1 2


 추출 조건을 지정 한다.   평소에는 잘 모르던 것이였다.    예를 들자면  아래와 같은 롤렛을 돌린 다고 가정 하자.  그럼 일단 이것은 꽝이 나올확률은 거의 제로이다.  하지만 네이버 페이 50,000원 나올 확률이 높지 않다.  이것을 비 복원 샘플 추출로 제어 할 수 있다. 


롤렛

위의 다섯 가지 조건에서  prob 인수로 조정 할수 있는데,  prob 1:6 은 숫자가 높을 수록 나올 확률이 높게 나오게 하는 방법이다. 

아래의 예제는 숫자가 크면 클수록 많이 나오게 하는 확률이다. 

# 롤렛 나올 확률 조정
   sample(1:5, 10, replace = TRUE,  prob = 1:5)


그리고,  아래는   4라는 숫자가 적게 나오고,  5라는 숫자를 많이 나오게 하는 확률이다.  

# 4가 적게 나오고 5가 많이 나오게 할 확률이다.  
   sample(1:5, 30, replace = TRUE, prob = rep(c(1/10, 5/10), c(4, 1)))
##  [1] 1 2 5 5 1 5 1 2 5 5 4 3 5 5 4 4 5 5 5 5 5 5 5 5 3 4 4 5 4 2



댓글 없음:

댓글 쓰기

공무 스케줄 AI Agem에 대한 생각

     지금 상황이 아비 규환이다.  어느 부서든 회사가 인수 합병되고 나서  투자를 기획하는 경영기획이 특히 않이 정신이 없고, 우리부서도 전부 미국 필리 조선소로 인원이 나가 있어,  사실상 10년 이상 고기량자는 거의 없다.   우리부서에 남아...