머신러닝 부트스트랩핑, 베깅, 데이터 샘플링에 대한 쉬운 이해
안녕하세요.
로스윗의 코딩캠프입니다.
오늘은 머신러닝 부트스트랩핑(bootstraping), 배깅(begging)과 데이터 샘플링(data sampling)에 대해
쉽고 재밌고 똑똑하게~ 열심히 배워보는 시간을 가져보겠습니다.
-부트 스트랩핑(Bootstraping)이란?
-> 부트 스트랩핑(bootstraping)이란 복원 추출을 허용한 표본 재추출 방법을 뜻한다.
쉽게 말해서 뽑은 데이터를 다시 집어넣는다는 말입니다.
예를 들어 주머니에 10개의 공이 있는데 3개가 빨간공이면 빨간공이 뽑힐 확률은 3/10입니다.
그런데 처음에 빨간공을 뽑고 나서 주머니에 넣지 않으면 다음번에 빨간공이 뽑힐 확률은 2/9로 줄지만
다시 주머니에 넣으면 여전히 빨간공이 뽑힐 확률은 3/10이 되겠죠.
이렇게 데이터가 뽑힐 확률 분포를 유지하면서 샘플링하는 것을 bootstraping이라고 합니다.
- 부트스트랩핑(Bootstraping)의 장점
--> 원본 데이터와 비슷한 분포를 가진 데이터를 만들 수 있습니다.
bootstraping을 한 상태에서 데이터를 원본 데이터 개수만큼 뽑으면
데이터의 개수는 똑같은데 분포만 약간 바뀐 데이터 샘플링을 얻을 수 있습니다.
그래서 bootstraping을 해서 데이터 샘플링을 만들면 데이터가 다채롭게 나옵니다.
- 베깅(begging)이란?
그 상태에서 이 다채로운 데이터 샘플링들을 모두 Decision tree를 합니다.
그러면 당연히 데이터가 조금씩 다르니까 서로 다른 Decision Tree가 나올 겁니다.
그 결과를 모두 합치는 것을 어그리게이팅(aggregating)한다고 하고,
이 중에 다수결로 많이 나온 것을 최종적으로 뽑습니다.
예를 들어 5개의 트리가 있으면 각각의 classifier가 결론을 내리는데,
4개가 노란색 1개가 파란색이라고 결론을 냈다면
다수결에 의해 노란색이라고 결론을 내는 방법입니다.
이 전과정을 Bagging 이라고 합니다.
- 랜덤 서브스페이스 샘플링(Random Subspace Sampling)이란?
데이터 샘플링을 한 후에, Decision Tree를 학습시킬 때 feature를 랜덤으로 뽑습니다.
데이터를 들고와서 이 데이터에서 best candidate를 뽑을 때는 random으로 feature를 골라서 뽑는겁니다.
그 비율을 우리가 정할 수 있습니다.
보통 0.8이나 0.9정도 합니다.
0.8을 쓴다고 하면 80%정도의 feature만 뽑아서
best candidate를 보기 때문에 매번 feature가 조금씩 바뀝니다.
그러면 각 데이터마다 best split point를 뽑는데 약간의 randomness를 줄 수 있습니다.
이런식으로 original 전체의 공간에서 일부의 feature만 random으로 뽑아서 보는것,
그래서 feature space의 일부라고해서 랜덤 서브스페이스 샘플링(random subspace sampling)이라는 말을 쓰는 겁니다.
'머신러닝' 카테고리의 다른 글
머신러닝이란 도대체 무엇일까? (0) | 2022.09.01 |
---|---|
머신러닝 차원의 저주, 발생 원인과 해결 방안 (0) | 2022.08.20 |
머신러닝 랜덤 포레스트 알고리즘 간단 정리 (0) | 2022.08.18 |
Decision Tree(결정 트리)가 왜 머신러닝 대표 알고리즘일까? (0) | 2022.08.17 |
머신러닝 분류 모델 Linear Classifier(선형 분류)에 대한 핵쉬운 설명 (0) | 2022.08.16 |