[TIL] day40

Hyebin·2022년 3월 16일
0

TIL

목록 보기
41/47

#TIL

Spark MLlib 모델 튜닝

최적의 하이퍼 파라미터를 선택한다.

  1. 어떤 머신러닝 알고리즘과 feature를 사용할 것인가?
  2. 머신러닝 모델의 performance를 어떻게 측정할 것인가?
  3. 어떤 형태의 하이퍼 파라미터를 선택할 것인가?

이런 흐름으로 흘러간다고 생각하면 될 것 같다.

Spark MLlib 모델 테스트

모델 선택의 중요한 점 중 하나는 테스트 방법!
크게 2가지가 중요하다.

  • 교차검증(Cross Validation)
  • 홀드아웃 (Train-Validation Split)

홀드아웃의 경우, 한번 잘못 나뉘어지면 bias가 생길 수 있다!
그 대안으로 나온것이 교차 검증.

이런 테스트 방법을 선택했다면,
다음의 3가지 입력을 기반으로 가장 좋은 파라미터를 찾아준다.

  • Estimator: 머신러닝 모델 혹은 ML Pipeline
  • Evaluator: 머신러닝 모델의 성능을 나타내는 지표
  • Parameter: 훈련 반복 회수 등의 하이퍼 파라미터

그리고 최종적으로 결과가 가장 좋은 모델을 리턴!

Evaluator

evaluate 함수가 제공된다.

RegressionEvaluator
BinaryClassificationEvaluator (AUC가 성능지표가 됨!)
MulticlassClassificationEvaluator
MultilableClassificationEvaluator
RankingEvaluator

즉, 머신러닝 모델 성능 측정에 사용되는 지표.

Parameter

파라미터 그리드(ParamGrid)라고 불리기도 하는데 모델 테스트시 고려해야하는 가능한 learning 관련 파라미터들이다. (주로 트리 관련 알고리즘에서 중요하다.)

테스트 되는 파라미터의 예로는, 트리의 최대 깊이, 훈련 횟수 등이 있다.

간단하게,

ML Tuning 사용 절차를 요약하자면,

  1. CrossValidatior / TrainValidationSplit 생성
  2. 테스트하고 싶은 머신러닝 알고리즘 개체 생성 (혹은 ML Pipeline)
  3. 어느 지표를 가지고 성능을 확인할 것인지 선택 (Evaluator)
  4. Param Grid를 만들어서 테스트하고싶은 하이퍼 파라미터 지정

라고 보면 될것 같다..!

pipeline 말고는 써본적이 없어서 한번 사용해봐야할것같다 🤔

profile
공부중입니다 :D

0개의 댓글

관련 채용 정보