Search

2016년 1월 24일 일요일

[Analysis] [R] 훈련데이터 및 테스트데이터 샘플링하기

* sampleBy()를 활용해 훈련데이터 및 테스트데이터 샘플링하기

 
-모델의 정확성을 잘 평가하려면 훈련데이터와 테스트데이터로 분리하여 학습해야 한다.
-데이터에서 샘플링 할 때, 훈련 데이터와 테스트 데이터에 데이터의 종류가 균일하게 분리되어야 한다.
-예를 들어 iris데이터를 분리할 때, 훈련 데이터에는 setosa만 들어 있고, 테스트 데이터에는 vericolorvirginica만 들어 있다면 제대로 된 모델의 평가가 이루어 질 수 없다.
-base::sample() 함수는 무작위 샘플링이기 때문에, 특정 종류별로 데이터의 수를 균일하게 분리하려면 doBy패키지의 sampleBy()함수를 활용하는 것이 좋다.
 
* iris데이터의 Species별로 10% 데이터를 추출하려면,

1. base::sample()을 사용했을 때,
iris[sample(NROW(iris),NROW(iris)*0.1),]














- 샘플링 된 15행의 데이터 중, setosa 종류만 8개가 샘플링 된 것을 볼 수 있음(불균일)

2. doBy::sampleBy()를 사용했을 때,
sampleBy(~Species, frac=0.1, data=iris)











-각 종류별로 5개씩 균일하게 샘플링 된 것을 볼 수 있음


[참고- R을 이용한 데이터 처리&분석 실무]

댓글 없음:

댓글 쓰기