아파치 스파크 ParamGridBuilder
IT 위키
빅데이터분석기사 (토론 | 기여)님의 2025년 4월 9일 (수) 09:57 판 (새 문서: ParamGridBuilder는 Apache Spark MLlib에서 하이퍼파라미터 튜닝을 위한 도구로, 여러 파라미터 조합을 생성해 CrossValidator나 TrainValidationSplit과 함께 사용된다. 이를 통해 모델의 하이퍼파라미터를 체계적으로 탐색하고 최적의 조합을 찾을 수 있다. ==개요== ParamGridBuilder는 ML 파이프라인 내 Estimator 객체의 파라미터를 대상으로 여러 후보 값을 설정하고, 가능한 모든 조합을 만...)
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.