인프런 커뮤니티 질문&답변

freedom07님의 프로필 이미지
freedom07

작성한 질문수

[개정판] 파이썬 머신러닝 완벽 가이드

라소(Lasso)와 엘라스틱넷(Elastic Net) 회귀의 이해

train_test_split 할 경우, 무조건 alpha값이 작은 값이 rmse가 작게 나오는 이유?

작성

·

387

0

https://www.inflearn.com/questions/66382

이 질문을 보고 저도 궁금증이 들어서 한번 해봤는데요..

(아래 코드는 
'릿지(Ridge) 회귀의 이해 강의' 에서  3:01초 쯤에 나오는 코드입니다.)

기존 강의에서는 alpha값이 클수록 rmse가 작게 나왔는데요.

이건 기존 코드에서 train_test_split 을 추가한 코드인데요~

test_size=0.3 일 경우에 rmse가 alpha값이 작을수록 작게 나왔고,

test_size를 아주 작게 0.01로 줄 때에도 alpha값이 작을수록 rmse 가 작게나오는 결과를 얻었습니다. 

저도 기존 질문자의 궁금증처럼 왜그러는지 이유가 궁금하네요.. ㅠ! 

답변 3

0

권 철민님의 프로필 이미지
권 철민
지식공유자

train_test_split()으로 동일한 random_state로 여러번 쪼개지 마시고, random_state를 바꿔가면서 해보십시요.

0

freedom07님의 프로필 이미지
freedom07
질문자

네 선생님 답변 감사합니다.

그런데, 제가 궁금했던 부분은..똑같은 botston 데이터 세트인데.. train_test_split을 하니깐 경향이 반대로 되서 궁금했던 부분입니다. 

기존 강의 코드에서는(train_test_split을 하지 않았을 때에는) alpha값이 '클수록' rmse가 작아졌는데..

 train_test_split을 하니깐  alpha값이 '작을수록'  rmse가 작아져서 궁금증이 생겼었습니다.

 train_test_split을 test_size=0.01 로 아주 작게 하고 (거의 train_test_split 안한 것과 비슷하게.. 기존 강의코드와 같이  전체 boston 데이터를 넣어준 것처럼) 전체데이터의 99%인 train 데이터를 넣어주었을 때에도 alpha값이 '작을수록'  rmse가 작아지는 결과가 나왔기에..

그래서 기존 질문자의 궁금증 처럼  train_test_split 여부가 영향이 미치는건지 궁금했던 부분입니다..!

0

권 철민님의 프로필 이미지
권 철민
지식공유자

안녕하십니까,

데이터 세트별로 특성이 있긴 한데, 보통은 Ridge의 경우 alpha가 0 ~ 1 사이 값이 1보다 큰 경우 보다 상대적으로 성능이 좋게 나옵니다. 그리고 Lasso의 경우는 alpha가 1보다 큰 경우가 성능이 상대적으로 좋게 나옵니다.

단 위 경우는 보통이 그렇다는 거고, 데이터의 특성에 따라서 얼마든지 달라질 수 있습니다.

해당 데이터 세트는 alpha가 작은 경우에 성능이 좋아지는 경우입니다. 때문에 테스트 세트로 여러번 (쪼개어) 테스트 해도,  alpha가 작은 경우가 성능이 좋게 된 결과로 추정됩니다.

freedom07님의 프로필 이미지
freedom07

작성한 질문수

질문하기