오늘의 회고
사실(Fact) : 그레디언트 부스팅 트리 모델 (GBT), 엑스트라 트리 모델, XG Boost
느낌(Feeling) : 관련 용어가 낯설어서 다시 어렵게 느껴졌다. XG Boost 관련 수업 시간이 짧아서 아쉽다
교훈(Finding) : 복습 시간에 꼼꼼히 읽어봐야겠다
Hold-Out-Validation
- cross-validation 을 사용하지 않고 hold-out-validation 사용
- hold-out-validation이 속도가 더 빠르다는 장점이 있지만, 그 대신 신뢰도가 떨어짐
- train 과 valid 로 데이터 분리
- valid 를 만드는 이유는 제출 전 어느 정도의 스코어가 나올지 확인하기 위함
배깅vs부스팅
배깅은 훈련세트에서 중복을 허용해서 샘플링하여 여러개 모델을 훈련 하는 앙상블 방식이다.
같은 훈련 샘플을 여러 개의 모델에 걸쳐 사용해서 모든 모델이 훈련을 마치면 앙상블은 모든 예측기의 예측을 모아서 새로운 샘플에 대한 예측을 만든다
- 배깅 방식은 부트스트래핑을 해서 트리를 병렬적으로 여러 개 만들기 때문에 오버피팅 문제에 좀 더 적합하다.
- 개별 트리의 낮은 성능이 문제일 때는 이전 트리의 오차를 보완해 가면서 만들기 때문에 부스팅이 좀 더 적합하다.
트리계열 알고리즘 파라미터
- criterion: 가지의 분할의 품질을 측정하는 기능
- max_depth: 트리의 최대 깊이
- min_samples_split:내부 노드를 분할하는 데 필요한 최소 샘플 수
- min_samples_leaf: 리프 노드에 있어야 하는 최소 샘플 수
- max_leaf_nodes: 리프 노드 숫자의 제한치
- random_state: 추정기의 무작위성을 제어, 실행했을 때 같은 결과가 나오도록 함.
GBT 트리계열 모델
🔽 자세한 복습 포스팅
관련 용어
- 그라디언트: 경사, 기울기
- epoch 학습 횟수
- learning rate 보폭
learning_rate 는 학습률을 의미하는데 보폭이라고 번역하기도 합니다.
보폭이 너무 크면 시간은 줄어들지만 대충 찾기 때문에 최소점을 지나칠 수도 있습니다.
그래서 아래 그래프처럼 발산을 하기도 합니다.
- Residual 잔차
- error 오차
경사하강법
- 손실함수 그래프에서 값이 가장 낮은 지점으로 경사를 타고 하강하는 것.
- 머신러닝에서 예측값과 정답값간의 차이가 손실함수인데 이 크기를 최소화시키는 파라미터를 찾기 위해 사용되는 기법이다.
- 특히 신경망에서 유닛 수가 늘어나면 어마어마한 개수의 파라미터가 나온다.
- 따라서 그래프 상의 점을 조금씩 움직여 함수의 최솟값인 점을 찾는다
- 예측값과 정답값 사이에 손실이 최소화될수록 좋은 모델이다.
- 손실이 가장 작은 지점을 찾기 위해서 기울기가 0인 지점을 찾기 위해서 경사를 점점 내리는 것을 경사하강법이라고 한다.
absolute loss보다 squared loss를 더 많이 사용하는 이유
기울기가 +, - 방향에 따라 같은 기울기가 나오기 때문에 방향은 알 수 있지만 기울기가 같아서 미분을 했을 때 방향에 따라 같은 미분값이 나와서 기울기가 큰지, 작은지 비교할 수 없다. 그래서 squared loss 를 더 많이 사용한다.
-> 미분을 하면 기울기가 0이 되는 지점이 뾰족한 지점이다.