[혼공머신] p163 라쏘(LASSO)모델과 p.242 검증세트에 대해서 질문드립니다.

42 views
Skip to first unread message

Edward

unread,
Jul 28, 2022, 7:25:39 AM7/28/22
to 머신러닝/딥러닝 도서 Q&A
혼공책으로 열심히 공부를 하고 있는 공대생입니다. 다른 책보다 쉽게 접근하게 적어놓으셔서 너무 즐겁게 공부하고있습니다. 책에서 현재 라쏘모델을 공부하는데 관련 질문사항이 있어서 다음과 같이 드립니다. 

1) LASSO에서 검증세트 적용 여부 
검증세트를 보니, Training sets, validation sets, test sets으로 나누는데, p 242 이전에 보여준 머신러닝 모델들은 왜 Training sets와 test sets로만 하였나요? 
Linear model 기반 머신러닝은 굳이 Validation sets을 적용할 필요는 없나요?

혼공머신의 p163 라쏘를 공부하고 있는데, 우연히 p242를 보고나서 왜 라쏘 모델이전에 검증세트를 설명하지 않고, 그 이후에 하였는지 궁금합니다. 라쏘모델의 경우는 Linear model 기반이기 때문에 Training과 Test sets으로만 적용이 가능한것인지 궁금합니다. 

2) LASSO에 Cross validation 적용 여부
만약에 데이터가 충분치 않은 경우, LASSO 모델에서도 Cross validation을 사용하나요? Linear model의 경우는 Timeseries data가 많은데,  Timeseries data를 cross validation을 적용할 수 있나요? 시간의 계념이 있어서 뒤죽바죽 썩이게 되는게 아닌가 싶어서요.  

Haesun Park

unread,
Jul 28, 2022, 9:54:15 AM7/28/22
to Edward, 머신러닝/딥러닝 도서 Q&A
안녕하세요. 박해선입니다.
문의하신 내용에 답변 드립니다.

1) 모든 머신러닝 작업은 훈련 세트, 검증 세트, 테스트 세트가 필요합니다. 책은 단계적으로 소개해야 하기 때문에 복잡성에 따라 일정 순서대로 개념을 나열할 수 밖에 없는점 이해해 주세요.
2) 라쏘에서도 교차 검증을 사용합니다. 시계열 데이터의 경우 교차 검증 대신 하나의 검증 세트를 사용하는 것이 나을 것 같습니다.

감사합니다!

2022년 7월 28일 (목) 오후 8:25, Edward <edward...@gmail.com>님이 작성:
--
이 메일은 Google 그룹스 '머신러닝/딥러닝 도서 Q&A' 그룹에 가입한 분들에게 전송되는 메시지입니다.
이 그룹에서 탈퇴하고 더 이상 이메일을 받지 않으려면 ml-dl-book-qn...@googlegroups.com에 이메일을 보내세요.
웹에서 이 토론을 보려면 https://groups.google.com/d/msgid/ml-dl-book-qna/d1b6eaa1-e140-492c-b9b0-3685107a05dan%40googlegroups.com을(를) 방문하세요.

Edward

unread,
Aug 16, 2022, 4:46:33 AM8/16/22
to 머신러닝/딥러닝 도서 Q&A
안녕하세요 작가님,

친절한 답변 감사드립니다. 전에 말씀 주신 것 처럼 모든 머신러닝에는 훈련세트, 검증 세트, 테스트 세트가 필요하다고 하셨습니다. 관련내용을 적용하여서 라쏘모델을 공부하고 있는 대학원생입니다. 
 P 243 중간을 보면, "훈련세트에서 모델을 훈련하고 검증세트로 모델을 평가합니다.... 그 다음 이 매개변수를 사용해 훈련세트와 검증 세트를 합쳐 전체 훈련 데이터에서 모델을 다시 훈련합니다. 그리고 마지막에 테스트 세트에서 최종 점수를 평가합니다" 라고 나와있습니다. 
위에 내용을 고려해서 아래와 같이 훈련세트, 검증세트, 테스트 세트를 라쏘 모델에 적용한다면, 절차가 맞는지 알고 싶습니다.  

[1 단계] 60% 훈련세트, 20% 검증세트, 20% 테스트 세트로 만든다. 
[2 단계]  60% 훈련세트로 라쏘 모델을 훈련하고, 20% 검증세트로 평가한다. 이 단계에서 훈련세트로 만든 train score와 검증 세트로 만든 test score로 P 165에 나와있는 R^2 그래프를 그려서 alpha 값을 찾는다.
[3 단계] 2단계에서 찾은 최적의 alpha 값을 가지고, 80% New 훈련세트 (1단계에서 나눈 60% 훈련세트 + 20% 검증세트)를 가지고 라쏘 모델을 훈련하고, 20% 테스트 세트로 마지막으로 최종점수를 평가합니다.

혼자 공부하는 중이어서 작가님 책을 여러번 보면서 공부하고 있는데...제가 진행한 것이 책에서 의도하신게 맞는지 확인받고 싶어서요.

감사합니다.

2022년 7월 28일 목요일 오후 11시 54분 15초 UTC+10에 haesu...@gmail.com님이 작성:

Haesun Park

unread,
Aug 16, 2022, 5:50:11 AM8/16/22
to Edward, 머신러닝/딥러닝 도서 Q&A
네 맞습니다.
감사합니다!

2022년 8월 16일 (화) 오후 5:46, Edward <edward...@gmail.com>님이 작성:

Edward

unread,
Aug 16, 2022, 7:24:42 AM8/16/22
to 머신러닝/딥러닝 도서 Q&A
작가님 답변 감사드립니다. 하나만 더 질문이 있어서 드립니다 (귀찮게 해드려서 죄송합니다). 

위에서 말씀 드린 것처럼 20% 테스트 세트와  80% 훈련 세트(Old)를 만들고 나서, 
80% 훈련세트(Old)에서  60% 훈련세트(New), 20% 검증세트를 만들 경우, StandardScaler 클래스를 통해서 60% 훈련세트(New)와 20% 검증세트를 스케일 처리를 할때 아래 옵션 중에 어느 것이 맞나요?

옵션 1
- 80% 훈련세트(Old)로  StandardScaler 클래스를 훈련시킨 후,  학습한 변환기로 80% 훈련세트(Old), 60% 훈련세트(New), 20% 검증세트, 20% 테스트세트를 모두 표준점수로 변환한다. 

옵션 2 
- 80% 훈련세트(Old)로  StandardScaler 클래스로 만든 객체_1 훈련시킨 후, 학습한 변환기(객체_1)로 80% 훈련세트(Old), 20% 테스트세트를 표준점수로 변환한다.
- 60% 훈련세트(New)로  StandardScaler 클래스로 만든 다른 객체_2를 훈련시킨 후, 학습한 변환기(객체_2)로 80% 훈련세트(Old), 20% 테스트세트를 표준점수로 변환한다.

직접 두 옵션들로 만들어본 결과 차이도 크게 없고, 직관적으로 생각하면 옵션1로 하면 모든 훈련 데이터로 학습하니 괜찮을 것 같긴한데...더 자세히 알아보고 싶어서 문의 드립니다. 
또한 옵션 2는 data leaking이 있는게 아닌가 싶기도 하고요. 혹시 어느 옵션이 적절한지 알려주신다면 정말 감사드립니다. 

2022년 8월 16일 화요일 오후 7시 50분 11초 UTC+10에 haesu...@gmail.com님이 작성:

Haesun Park

unread,
Aug 16, 2022, 10:00:39 AM8/16/22
to Edward, 머신러닝/딥러닝 도서 Q&A
안녕하세요. 박해선입니다.

훈련 세트에서 변환기를 훈련하고 검증 세트에 적용하여 하이퍼파라미터를 조정합니다.
하이퍼파라미터를 찾은 후에는 훈련 세트와 검증 세트를 합친 데이터에서 변환기를 다시 훈련하고 테스트 세트에 적용하면 됩니다.

감사합니다.

2022년 8월 16일 (화) 오후 8:24, Edward <edward...@gmail.com>님이 작성:
Reply all
Reply to author
Forward
0 new messages