아파치 스파크 ParamGridBuilder
IT 위키
ParamGridBuilder는 Apache Spark MLlib에서 하이퍼파라미터 튜닝을 위한 도구로, 여러 파라미터 조합을 생성해 CrossValidator나 TrainValidationSplit과 함께 사용된다. 이를 통해 모델의 하이퍼파라미터를 체계적으로 탐색하고 최적의 조합을 찾을 수 있다.
1 개요[편집 | 원본 편집]
ParamGridBuilder는 ML 파이프라인 내 Estimator 객체의 파라미터를 대상으로 여러 후보 값을 설정하고, 가능한 모든 조합을 만들어 파라미터 그리드를 생성한다. 생성된 파라미터 그리드는 교차 검증과 함께 사용되어 모델 성능을 평가하고 최적 파라미터를 결정한다.
2 사용 목적[편집 | 원본 편집]
- 머신 러닝 모델의 성능을 높이기 위한 하이퍼파라미터 최적화
- 다수의 하이퍼파라미터 조합을 테스트하여 최적 모델 탐색
- 분산 환경에서 효율적인 튜닝 수행
3 주요 메서드[편집 | 원본 편집]
- addGrid(param, values)
- 특정 파라미터에 대해 여러 후보값을 지정한다.
- build()
- 지정된 모든 조합을 기반으로 파라미터 그리드를 반환한다.
4 예시[편집 | 원본 편집]
from pyspark.ml.classification import LogisticRegression
from pyspark.ml.tuning import ParamGridBuilder, CrossValidator
from pyspark.ml.evaluation import BinaryClassificationEvaluator
from pyspark.sql import SparkSession
spark = SparkSession.builder.appName("ParamGridExample").getOrCreate()
# 데이터 준비
data = spark.read.format("libsvm").load("data/sample_libsvm_data.txt")
# 모델 정의
lr = LogisticRegression()
# 파라미터 그리드 정의
paramGrid = ParamGridBuilder() \
.addGrid(lr.regParam, [0.01, 0.1, 1.0]) \
.addGrid(lr.elasticNetParam, [0.0, 0.5, 1.0]) \
.build()
# 평가자 및 교차 검증기 정의
evaluator = BinaryClassificationEvaluator()
cv = CrossValidator(estimator=lr,
estimatorParamMaps=paramGrid,
evaluator=evaluator,
numFolds=3)
# 모델 학습 및 평가
cvModel = cv.fit(data)
print("Best model params:", cvModel.bestModel.extractParamMap())
4.1 출력 예시[편집 | 원본 편집]
파라미터 조합별 성능이 평가되며, 최적 조합은 다음과 같이 확인할 수 있다.
Best model params: {
Param(parent='LogisticRegression_...', name='elasticNetParam', ...): 0.0,
Param(parent='LogisticRegression_...', name='regParam', ...): 0.1
}
5 장점[편집 | 원본 편집]
- 복수 파라미터를 동시에 튜닝 가능
- CrossValidator 및 TrainValidationSplit과 통합되어 쉽게 성능 비교 가능
- Spark의 분산 처리 기반으로 대규모 데이터에도 적합
6 단점[편집 | 원본 편집]
- 조합 수가 많아질 경우 실행 시간이 크게 증가
- 각 조합에 대해 별도 모델 학습이 필요하므로 자원 소모가 큼
7 같이 보기[편집 | 원본 편집]
8 참고 문헌[편집 | 원본 편집]
- Apache Spark MLlib 공식 문서: https://spark.apache.org/docs/latest/ml-tuning.html#model-selection-hyperparameter-tuning
- Karau, H., & Warren, R. (2017). High Performance Spark. O'Reilly Media.