강의

멘토링

커뮤니티

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

헤이나우님의 프로필 이미지
헤이나우

작성한 질문수

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

4장 ensemble 질문있습니다.

작성

·

282

0

4장을 공부하다 몇가지 질문이 있는데 답변주시면 감사하겠습니다.

1. ensemble은 분류뿐만아니라 회귀에서도 적용이 가능한가요?

2. 지도 합습뿐만 아니라 비지도 학습에서도 사용할수 있나요?

3. ensemble + GridSearchCV 를 결합할수 있나요 ( 각 개별 학습기의 하이퍼파라미터 튜닝과 함께)

4. ensemble 의 VotingClassifier에서 soft, hard 상관없이 어떤 estimator에의해서 값이 나왔는지 알수 있을까요?

- hard :총 10개의 학습기가 있고 6개 이상이 1을 선택 => 값1 선택 => 1을 선택한 6개의 학습기 종류

- soft : 1의 값을 선택하는데 있어 더큰 공헌을한 estimator들

5. 혹시 ensemble기법중에서 분류와 회귀를 혼합해서 사용할수 있는 기법이 존재하나요?

답변 1

0

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

안녕하십니까

1. 네, 회귀에서도 적용가능합니다.

일반적으로 ensemble은 흔히 알려진 ensemble learning이라 불리는 voting, bagging, boosting기반의 알고리즘외에도 단순하게 두개 이상의 알고리즘 예측값을 결합한 방식, Stacking등의 방식도 Ensemble로 통칭합니다. ensemble은 주로 tree 기반의 단일 알고리즘이 결합되므로 회귀의 경우 회귀 트리로 사용될 수 있습니다. 또한 선형 회귀의 경우에도 여러개의 단일 선형 회귀 들의 결과값을 특정 비율로 결합하는 경우도 ensemble로 취급하기도 합니다.

2. 비지도 학습에 사용되지 못할 이유가 없습니다. 다만 실전에서 잘 사용되는 경우를 보지 못했습니다.

https://archive.siam.org/meetings/sdm10/tutorial4.pdf 에 자료 참조 부탁드립니다.

3. ensemble의 hyperparameter tuning 은 대부분 개별 알고리즘에 대한 parameter + ensemble에 parameter 튜닝으로 되어 있습니다. 가령 예를 들어 GBM의 max_depth는 개별 알고리즘인  decision tree의 최대 깊이를 얘기하며, num_iterators는 ensemble 되어야할 decision tree의 개수를 얘기합니다.

하지만 질문의 내용은 이러한 RandomForest나 GBM의 의미 보다는 개별 Voting 에 대한 hyper parameter 튜닝을 의미하시는것 같습니다만 Voting역시 개별 알고리즘에 대한 파라미터 튜닝을 GridSearchCV로 가능합니다.

4. 이건 저도 잘 몰라서 Scikit learn을 뒤져봤습니다. 정확히 원하는 결과는 아니지만 VotingClassifier.transform()을 이용하여 해당 값을 찾을 수 있을 거 같습니다.

https://scikit-learn.org/stable/modules/generated/sklearn.ensemble.VotingClassifier.html

에 접속하셔서 맨 아래로 내려가시면 transform()에 대한 설명이 있습니다. return값을 잘 살펴보시면 classifier들의 유형(n_classifier)과 데이터 건수(n_sample) 별 class들의 확률값이 나올 것입니다. 이것을 잘 조합하면 원하는 결과를 찾을 수 있을 것 같습니다.

5. 나중에 회귀에서도 말씀드리겠지만 Decision Tree기반으로 회귀 트리를 구성하여 회귀가 가능합니다(사실 분류 알고리즘을 조금만 변환하면 회귀 알고리즘으로 적용할 수 있는 것들이 대부분입니다.)

ensemble도 decision tree기반이므로 회귀가 가능합니다.

감사합니다.

헤이나우님의 프로필 이미지
헤이나우

작성한 질문수

질문하기