inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[개정판] 파이썬 머신러닝 완벽 가이드

HyperOpt를 이용한 XGBoost 하이퍼 파라미터 튜닝

개별 약한 학습기 가중치와 가지치기 관련하여 이해가 안됩니다.

해결된 질문

284

choi_e_b

작성한 질문수 1

1

안녕하세요~ 선생님!

선생님 강의 들으며 항상 감탄하고 또 많은 것을 배우고 있습니다~^_^

 

선생님 강의 토대로 책으로 복습하고 있는데, 이해가 안되는 부분이 있어서요.

  1. 222p에서 첫 번째 학습기의 가중치는 0.3, 두 번째 학습기의 가중치는 0.5, 세 번째 학습기의 가중치는 0.8 이렇게 늘어나는 것 같은데 학습기 자체에 가중치가 늘어나는 것인지, 오류 데이터에 대해서만 가중치가 크게 늘어나는 것인지 궁금합니다.

  2. 그리고 만약 오류 데이터에서 가중치가 늘어나는 것이라면 그림을 보면 분류 기준1로 자르고 나면 오류데이터가 가중치를 부여해서 커지고, 다시 분류 기준2로 자르고 나면 오류 데이터가 가중치를 부여해서 커져서 오류 가중치 자체가 0.3, 0.5, 0.8로 커질 필요없이 동일해도 될 것 같은데 커지는 것이 이론상으로 이유가 있는지 궁금합니다.

  3. 226p에서 표의 나무 가지치기 관련하여 GBM은 분할 시 부정 손실이 발생하면 분할을 더 이상 수행하지 않는다고 했는데, 부정 손실이 무슨 의미인지 궁금합니다.

 

강의로 항상 큰 도움 받고 있습니다. 감사드려요~

python 머신러닝 통계

답변 1

0

권 철민

안녕하십니까,

강의에서 설명드리는 것은 Adaboost입니다. GBM은 경사 하강법에 대해서 설명해야 되서, 직관적인 이해는 Adaboost로 이해 시키는게 더 편해서 그랬습니다. 나중에 회귀에서 경사 하강법에 대해서 설명드립니다.

Adaboost를 간단하게 말씀드리면, 약한 학습기에서 학습 시에 오류가 발생한 데이터에만 별도의 가중치를 부여해서 다음 약한 학습기에서는 해당 데이터를 좀 더 잘 학습하기 위한 방법입니다. 여기서 가중치를 준다는 것은 가중치가 상대적으로 작은 데이터 보다 가중치가 더 큰 데이터가 학습 데이터로 사용될 확률이 높다는 것을 의미합니다.

첫번째 약한 학습기에서 만들어진 오류를 줄이기 위해서 해당 데이터에 가중치(Adaboost 전용의 가중치 공식)가 부여되고, 이렇게 다시 만들어진 학습 데이터에 약한 학습기로 학습을 시킨 뒤 오류가 발생하면 다시 가중치를 계산해서 해당 데이터의 부여하는 방식으로 지속적으로 학습을 해나가는 방식입니다.

아래는 질문에 대한 답변입니다.

  1. 네, 오류 데이터에만 가중치를 부여합니다.

     

     

  2. 음, 이건 제가 질문을 잘 이해하지 못했습니다. 위의 내용을 참조하셔서 다시 한번 질문을 정리해 주셨으면 합니다.

     

  3. 원래 트리의 노드가 분할 되면 될 수록 손실값이 줄어야 하는데, 그렇게 되지 못하는 경우가 발생하는 것을 부정 손실이라고 합니다. 이 경우 GBM은 더 이상 노드를 분할하지 않습니다.

강의가 도움이 되었다니, 저도 기쁘군요. 감사합니다.

0

choi_e_b

상세한 설명 너무 감사드립니다~ 1,3번 이해가 잘 되었어요!!^^

 

2번은 제가 이해한 바로는 step1에서 오분류된 3개의 +데이터에서 가중치가 0.3이 주어져서 두번째 학습기의 분류기준2가 만들어진 것이고 이 때 오분류된 3개의 -데이터에 다시 0.5 가중치를 주어야 세번째 학습기의 분류기준3가 만들어진 것이라고 이해했습니다. step4의 그림을 보면 오분류된 3개의 -데이터에만 가중치를 주고, 분류기준1로 인해 오분류된 3개의 +데이터에는 가중치를 안 주는데 그렇다면 굳이 0.5로 늘릴필요 없이 동일하게 0.3으로 해도 되는 건 아닌지 생각이 들어서요.

하지만 책에서는 0.3, 0.5, 0.8 이렇게 커져서 학습기는 오류 데이터에 가중치를 줄 때 이전 학습기 보다 더 큰 가중치로 해주어야 한다는 룰이 있는 것인지 궁금하여 질문드렸습니다. 제가 설명을 어렵게 했다면 양해부탁드려요..^^;;

1

권 철민

가중치는 이어지는 약한 분류기에서 오류가 나는 경우에만 오류 데이터에 부여 합니다. 그리고 가중치값을 계산하는 로직은 별도로 있습니다. 이게 수식이 좀 있어서 설명을 생략했을 뿐입니다. 일률적으로 가중치 값을 높이거나 하는 로직은 아닙니다.

모델 서빙과 관련된 강좌가 출시되는지 질문드립니다.

0

24

2

안녕하세요 열심히 수강중인 학생입니다

0

68

2

정수 인덱싱

0

71

2

넘파이 오류

0

88

2

11강 numpy의 axis 축 질문 드립니다.

0

89

2

Kaggle 에서 Santander customer satisfaction data 를 다운로드 되지가 않습니다.

0

80

2

Feature importances 를 보여주는 barplot 이 그래프로 안보여져요.

0

71

2

타이타닉 csv 파일이 주피터 화면에 보이지 않습니다.

0

76

2

타이타닉 csv 파일이 주피터 화면에 보이지 않습니다.

0

65

2

5강 강의 오류가 있어요.

0

86

1

실무에서 LTV 관련 모델 선택 질문입니다!

0

74

2

14강 강의 듣는중에 궁금한게 있어서 질문합니다~

0

70

3

파이썬 다운그레이 후 사이킷런 재설치

0

122

2

좋은 강의 감사합니다.

0

75

2

scoring 함수 음수값

0

68

2

6번 강의에 사이킷런, 파이썬, 아나콘다 각각 버전 일치 안 시키고 진행해도 강의 따라가 지나요?

0

104

2

분류 평가 정확도 예측

0

80

2

안녕하세요. 강의 들으면서 업무에 적용하고 싶은 수강생입니다.

0

100

1

카카오톡 채널 있나요

0

110

1

혹시 강의에서 사용하시는 ppt 받을 수 있는건가요

0

191

2

pca 스케일링 관련하여 질문드립니다.

0

102

2

주피터 대신 구글 코랩

0

174

2

강의에서 사용하는 pdf or ppt자료는 따로 없는 건가요?

0

149

2

실루엣 스코어..

0

87

2