아티클 관련 제품: SparklingSoDA4.0
들어가며
- 스파클링소다에서 Model 에서 사용되는 Hyper Parameter, 환경 변수 등 개발에 사용되는 여러가지 변수를 관리하는 yaml 파일을 생성할 수 있습니다.
- 모델마다 공통의 소스가 있지만, 다른 파라미터가 적용될 수 있습니다.
- 이때, 노트북에서 모델 개발에 사용되는 yaml을 다르게 적용하는 방법을 알아보겠습니다.
모델별로 변수 관리 파일 생성하기
본 가이드에서는 ridge와 lasso 모델을 개발합니다.
- ridge
ridge 모델 개발 시 train input 값으로 ridge_max_iter 와 ridge_alpha 를 받아옵니다.
# 그리드서치(with 릿지) 객체 생성 search_space = {"max_iter": cfg.train_inputs.ridge_max_iter, "alpha": cfg.train_inputs.ridge_alpha} gridsearch_ridge_model = GridSearchCV(estimator=ridge_model, param_grid=search_space, scoring=rmsle_scorer, cv=cfg.cross_valid)
두 파라미터는 cgf에서 받아오게 되는데, cfs는 모델 개발에 사용되는 변수를 관리하는 yaml 파일 입니다.
rigde 모델 개발을 위한 변수 관리 파일을 train_config_ridge.yaml로 정의합니다.
train_inputs: ridge_max_iter: [3000] ridge_alpha: [0.1, 1, 2, 3, 4, 10, 30, 100, 200, 300, 400, 800, 900, 1000] cross_valid: 5
이후, ridge모델을 local trial로 실행하여 결과를 확인합니다.
이때 주의할 점은, ridge모델 개발을 위한 train_config_ridge.yaml을 적용하기 위해 아래와 같이 실행합니다.
python /notebooks/<project-name>/ridge_regression.py --config-name train_config_ridge {'sodaflow': {'dataset_path': ['/datasets/bike-sharing-demand/'], 'start_model_path': None, 'eval_model_path': None}, 'train_inputs': {'ridge_max_iter': [3000], 'ridge_alpha': [0.1, 1, 2, 3, 4, 10, 30, 100, 200, 300, 400, 800, 900, 1000], 'eval_inputs': None}, 'model_save_dir': 'trained', 'train_valid_split': {'test_size': 0.1, 'random_state': 24}}
적용된 cfg의 내용을 출력해본 결과, 위와 같이 출력됩니다.
- lasso
lasso 모델 개발 시, train input 값은 lasso_max_iter 와 lasso_alpha 를 받아옵니다.
# 그리드서치(with 라쏘) 객체 생성 search_space = {"max_iter": cfg.train_inputs.lasso_max_iter, "alpha": 1/np.array(cfg.train_inputs.lasso_alpha)} gridsearch_lasso_model = GridSearchCV(estimator=lasso_model, param_grid=search_space, scoring=rmsle_scorer, cv=cfg.cross_valid)
마찬가지로 lasso 모델 개발 개발을 위한 변수 관리 파일인 train_config_lasso.yaml을 정의합니다.
train_inputs: lasso_max_iter: [3000] lasso_alpha: [1000, 900, 800, 400, 300, 200, 100, 30, 10, 4, 3, 2, 1, 0.1] cross_valid: 5
이후, lasso 모델을 local trial로 실행하여 결과를 확인합니다.
python /notebooks/<project-name>/lasso_regression.py --config-name train_config_lasso {'sodaflow': {'dataset_path': ['/datasets/bike-sharing-demand/'], 'start_model_path': None, 'eval_model_path': None}, 'train_inputs': {'lasso_max_iter': [3000], 'lasso_alpha': [1000, 900, 800, 400, 300, 200, 100, 30, 10, 4, 3, 2, 1, 0.1], 'cross_valid': 5}, 'eval_inputs': None, 'model_save_dir': 'trained', 'train_valid_split': {'test_size': 0.1, 'random_state': 24}}
적용된 cfg의 내용을 출력해본 결과, 위와 같이 출력됩니다.
마무리
- 모델마다 필요한 파라미터가 다를 수 있습니다.
- 이때, 모델 별 파라미터 정의한 파일을 각각 적용하여 테스트 하는 방법을 알아보았습니다.
아티클이 유용했나요?
훌륭합니다!
피드백을 제공해 주셔서 감사합니다.
도움이 되지 못해 죄송합니다!
피드백을 제공해 주셔서 감사합니다.
피드백 전송
소중한 의견을 수렴하여 아티클을 개선하도록 노력하겠습니다.