Python에서의 하이퍼파라미터 튜닝
Alex Scriven
Data Scientist
현실 세계의 유전 진화는 다음과 같습니다:
같은 아이디어를 하이퍼파라미터 튜닝에 적용할 수 있습니다:
이는 장점이 많은 정보 기반 탐색입니다:
유전 알고리즘 기반 하이퍼파라미터 튜닝에 유용한 라이브러리는 TPOT입니다:
TPOT을 데이터 사이언스 어시스턴트로 생각하세요. TPOT은 유전 프로그래밍으로 머신러닝 파이프라인을 최적화하는 파이썬 AutoML 도구입니다.
파이프라인은 모델(여러 개일 수도 있음)뿐 아니라 특성 처리 등 과정 전반을 포함합니다. 또한 파이프라인의 파이썬 코드를 반환합니다!
TPOT 분류기의 핵심 인자는 다음과 같습니다:
generations: 학습 반복 횟수.population_size: 각 반복 후 유지할 모델 수.offspring_size: 각 반복에서 생성할 모델 수.mutation_rate: 무작위성을 적용할 파이프라인 비율.crossover_rate: 각 반복에서 교배할 파이프라인 비율.scoring: 최적 모델을 정할 함수.cv: 사용할 교차 검증 전략.간단한 예:
from tpot import TPOTClassifier tpot = TPOTClassifier(generations=3, population_size=5, verbosity=2, offspring_size=10, scoring='accuracy', cv=5)tpot.fit(X_train, y_train) print(tpot.score(X_test, y_test))
mutation_rate와 crossover_rate는 기본값을 사용합니다. 유전 프로그래밍에 대한 깊은 지식 없이는 기본값이 가장 좋습니다.
주의: 알고리즘별 하이퍼파라미터가 없나요?
Python에서의 하이퍼파라미터 튜닝