inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

random_state 지정 문의

2924

김상화

작성한 질문수 6

1

train_test_split, DecisionTreeClassifier 등 다양한 코드에서

random_state를 지정해서 사용합니다.

책에서는 실습용으로 같은 결과를 보기 위해 사용하는걸로 이해했는데

실제로 데이터 분석을 진행할때는 설정 없이 하는게 성능에 더 좋을까요? 큰 차이 없을까요? 

python 머신러닝 배워볼래요? 통계

답변 4

3

권 철민

안녕하십니까,

train_test_split와 DecisionTreeClassifier에 들어가는 random_state는 의미상으로 서로 살짝 차이가 있습니다만 수행할 때마다 동일한 결과를 도출하게 한다는 측면에서는 적용하는 게 좋습니다. 이는 성능과 무관하게 일반적으로 성능 결과를 Debugging할 때 유리한 점이 있기 때문입니다. 

1. train_test_split 의 경우에 데이터 세트가 적을 경우 random_state를 어떻게 정하느냐에 따라 데이터 세트가 변경될 수 있기 때문에 종종 test 성능 수치가 달라질 수 있습니다. 때때로 성능 평가를 위한 정확한 test 데이터를 뽑아내는 것은 쉬운 일일이 아닙니다. 때문에 교차 검증 수치로 보완하거나 여러개의 테스트 세트를 만드는데 이때마다 다른 random_state를 주어서 평가하는 방법을 적용하곤 합니다.  train_test_split의 경우에는 random_state를 줄거냐 말거냐 보다는 어떻게 테스트 데이타를 정확하게 만들것인가를 좀더 고민이 필요합니다.

하지만 random_state를 적용하지 않는 것 보다는 random_state를 적용하는 것을 권장 드립니다. 특정 random_state로 분리할 경우 테스트 성능이 좋거나 또는 나빠질 수 있지만,  이는 random state의 문제라기 보다는 전체를 대변하는 테스트 데이터 세트를 뽑기 어렵거나/전체 데이터가 너무 작거나 인 경우가 대부분입니다.  특정 random_state에서 성능 수치가 너무 변한다면 여러개의 random_state를 적용하면서 보편적인 테스트 데이터를 선택하는 방법을 권장 드립니다.

2. DecisionTreeClassifier과 같은 estimator에 생성자로 들어가는 random_state는 동일한 학습 결과를 도출한다는 것 외에도 알고리즘의 초기 weight나 최적 파라미터를 선택하는 기법에 이를 적용하게 됩니다. 일반적으로 random_state를 설정하는 것이 좋습니다. 단지 random_state를 이용하여 최적화를 할 경우 overfitting 할 수 있으므로 너무 의존적이 되지 않도록 해야 합니다.

결과적으로 두가지 경우 모두 실전 분석에 random_state를 설정하는 것이 좋다고 생각합니다.

감사합니다.

1

권 철민

안녕하십니까,

random_state를 지정하기만 하면 됩니다. train_test_split와 DecisionTreeClassifier가 동일한 random_state를 가질 필요는 없습니다.

감사합니다.

0

헬로월드

안녕하세요

검색해보다가 추가 질문을 드리려고 합니다.

"두가지 경우 모두 실전 분석에 random_state를 설정하는 것이 좋다"라고 하셨는데

train_test_split의 random_state와 DecisionTreeClassifier과 같은 estimator에서의 random_state를 동일하게 설정해야 유의미한 것인가요?

예를들어 train_test_split에서 random_state=7로 지정했으면 DecisionTreeClassifier와 같은 estimator에서도random_state=7로 지정해야 결과가 유의미한 것인지 아니면 전혀 상관 없는지 궁금합니다.

항상 감사합니다.

0

김상화

감사합니다. 

random_state 적용해서 좋은 결과 보도록 하겠습니다:)

모델 서빙과 관련된 강좌가 출시되는지 질문드립니다.

0

6

1

안녕하세요 열심히 수강중인 학생입니다

0

63

2

정수 인덱싱

0

68

2

넘파이 오류

0

85

2

11강 numpy의 axis 축 질문 드립니다.

0

85

2

Kaggle 에서 Santander customer satisfaction data 를 다운로드 되지가 않습니다.

0

79

2

Feature importances 를 보여주는 barplot 이 그래프로 안보여져요.

0

70

2

타이타닉 csv 파일이 주피터 화면에 보이지 않습니다.

0

75

2

타이타닉 csv 파일이 주피터 화면에 보이지 않습니다.

0

64

2

5강 강의 오류가 있어요.

0

84

1

실무에서 LTV 관련 모델 선택 질문입니다!

0

72

2

14강 강의 듣는중에 궁금한게 있어서 질문합니다~

0

69

3

파이썬 다운그레이 후 사이킷런 재설치

0

117

2

좋은 강의 감사합니다.

0

74

2

scoring 함수 음수값

0

67

2

6번 강의에 사이킷런, 파이썬, 아나콘다 각각 버전 일치 안 시키고 진행해도 강의 따라가 지나요?

0

100

2

분류 평가 정확도 예측

0

79

2

안녕하세요. 강의 들으면서 업무에 적용하고 싶은 수강생입니다.

0

99

1

카카오톡 채널 있나요

0

108

1

혹시 강의에서 사용하시는 ppt 받을 수 있는건가요

0

190

2

pca 스케일링 관련하여 질문드립니다.

0

100

2

주피터 대신 구글 코랩

0

172

2

강의에서 사용하는 pdf or ppt자료는 따로 없는 건가요?

0

148

2

실루엣 스코어..

0

86

2