인프런 커뮤니티 질문&답변

아쿠아라이드님의 프로필 이미지
아쿠아라이드

작성한 질문수

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

스태킹 모델 소개 - 기본 스태킹

[Stacking Model] 메타모델에 input 되는 데이터의 다중공선성 문제 질문

해결된 질문

작성

·

410

0

강사님 안녕하세요? 

정말 좋은 강의 감사드립니다. 매 단원마다 도움을 많이 받고 있습니다.

본 단원에서 두 가지 질문이 있는데요

1.  메타모델의 input 이 되는 데이터들이 맨 아래 캡쳐 그림과 같은 형태가 된다면, 결국 어떤 기반모델들을 사용하던지 input 변수간 아주 강한 다중공선성 문제가 항상 생기게 될 텐데요, PCA 등으로 다중공선성 문제를 해결한 상태로 메타모델에 데이터를 input 할 필요는 없을지 문의드립니다.

사례에서 사용된 Logistic Regression 도 activation function term 을 제외하면 linear regression 과 유사한 개념으로 생각되는데요, 다중공선성이 강한 독립변수로 사용했을 때 모델의 신뢰도가 떨어지는 문제가 동일하게 생기지 않을까 생각도 되어서... 입니다.

2. 만약 전체 데이터셋을 Training / Validation / Test 데이터셋으로 삼중 분할 했다면

stacking 모델을 만들때 기반모델은 training set 으로 fitting 하고, Meta 모델을 fitting 할 때는 기반 모델에 validation set data 를 넣어서 예측된 output 들을 독립변수로 사용해야 하는 것인지요?

만약 training dataset 에 의해 예측된 output 들을 Meta 모델의 독립변수로 사용하게 되면 기반모델들의 온전한 성능을 표현하지 못하는 데이터로 메타모델을 fitting 하게 되기 때문에 (실제보다 마치 더 잘 맞는 것처럼 보이는 - overfitting) 메타모델의 실제 성능이 더 떨어질 가능성이 있고, 그래서 기반 모델에 validation data set 을 넣어서 얻은 output 들을 가지고 메타모델을 학습시켜야 하는 것으로 이해하면 될지요?

동일한 질문이지만 그냥 training dataset 만으로 기반모델과 메타모델을 모두 학습시키면 예측성능이 떨어진다고 간단히 이해하면 될지요?

감사합니다.

답변 2

1

권 철민님의 프로필 이미지
권 철민
지식공유자

안녕하십니까, 

강의를 잘 듣고 계시다니 저도 기분이 좋습니다. 

1.  시도해 보진 않았지만, 미리 PCA로 다중 공선성을 한번 걸러주는것도 좋은 아이디어 입니다.

하지만 개인적 생각은 큰 차이는 없을 것 같습니다. 이론과 다르게 수행해보면(경험적으로) PCA로 다중 공선성을 걸르는 것이 크게 성능향상에 이바지 하는 것 같지 않습니다. 

2. 

만약 training dataset 에 의해 예측된 output 들을 Meta 모델의 독립변수로 사용하게 되면 기반모델들의 온전한 성능을 표현하지 못하는 데이터로 메타모델을 fitting 하게 되기 때문에 (실제보다 마치 더 잘 맞는 것처럼 보이는 - overfitting) 메타모델의 실제 성능이 더 떨어질 가능성이 있고, 그래서 기반 모델에 validation data set 을 넣어서 얻은 output 들을 가지고 메타모델을 학습시켜야 하는 것으로 이해하면 될지요?

=>네 그렇게 이해하셔도 될 것 같습니다. 실제로도 학습데이터로 예측된 결과 Output을 Meta 모델의 학습 데이터로 사용하면 오버피팅으로 성능향상이 안되거나 오히려 저하됩니다. 

동일한 질문이지만 그냥 training dataset 만으로 기반모델과 메타모델을 모두 학습시키면 예측성능이 떨어진다고 간단히 이해하면 될지요?

=> 네, 그렇게 이해하시면 될 것 같습니다. 

감사합니다. 

0

clear 한 답변 감사드립니다.

많은 도움 되었습니다 ^^

아쿠아라이드님의 프로필 이미지
아쿠아라이드

작성한 질문수

질문하기