미해결
[개정판] 파이썬 머신러닝 완벽 가이드
HyperoptEstimator 관련 질문
안녕하세요.
HyperoptEstimator 관련해서 질문이 있습니다.
베이지안 최적화에 기반한 HyperoptEstimator으로 알고 있습니다.
우선, 제가 HyperoptEstimator에 대해서 관심을 가지게 된 것은 기존엔 그리드 탐색을 통해서 공부했지만, HyperoptEstimator이 좀 더
효율적이라는 얘기를 듣게 되면서 좀 알아보고 싶다는 마음이 생기게되었습니다.
우선, 첫번째 질문입니다.
아래와 같은 코드로 만약 모델을 학습하고, 수행한다면 사이킷런에 있는 모든 분류, 회귀 모델들을 통해서 일일이 다 모델 성능을 평가하며,
가장 최적화 모델 및 하이퍼 파라미터를 찾는다고 보면 될까요?
from hpsklearn import HyperoptEstimator
# Load Data
from sklearn.datasets import load_iris, load_linnerud, load_diabetes
from sklearn.model_selection import train_test_split
iris = load_iris()
X_train, X_test, y_train, y_test = train_test_split(iris.data, iris.target)
# Crate the estimator object
estim = HyperoptEstimator()
estim.fit(X_train, y_train)
prediction = estim.predict(X_test)
score = estim.score(y_test, prediction)
model = estim.best_model
두번째 질문입니다.
만약, 제가 첫번째 질문을 통해서 드린 질문이 맞다면?
결국 HyperoptEstimator도 어느 특정 범위에 하이퍼 파라미터 범위 및 모델을 명시적으로 지정해줄 경우, 그 틀안에서 최적의 하이퍼 파라미터를 찾는다는 점에서 그리드 탐색과 별다른 차이점이 없는 건 아닌지,
그리드 탐색에 비해서 좀 더 좋은 장점은 어떤 것인지? 너무 궁금해서 늦은 시간 글을 남기게 되었습니다.
관련해서 아직 인터넷에 자료도 부족하고 해서, 이렇게 글을 남겼는데 꼭 답변부탁드리겠습니다..ㅎ
감사합니다