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

yonghankim7님의 프로필 이미지
yonghankim7

작성한 질문수

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

GridSearchCV 부분과 K fold 관련 질문 드립니다.

작성

·

234

0

안녕하세요. 수업을 잘 듣고 있는 학생입니다.

질문이 있어서 질문을 남깁니다.

첫번째 질문은, stratified K fold 부분을 설명해주실 때, stratified k fold 를 안쓰고 k fold만 쓰게 된다면, train set에 label 이 0,1 데이터 50개씩만 들어가고 test set에는 label 이 2만 들어가있는 데이터 50개만 들어가서 predict 가 제대로 할 수 없다(예측 정확도가  0)고 하셨는데 이 부분은 이해가 됩니다. 근데 직전 강의에서 iris데이터 가지고 stratified가 아닌 그냥 K fold를 써서 예측 정확도 0.9333을 얻은 것 아닌가요? 

두 번째 질문은, GridSearchCV 설명 부분에서 제 사이킷 런 버전(2점대 버전)으로는 mean_test_score가 0.9666이 아닌 0.975가 나옵니다. 이것은 버전이 업그레이드 되어서 더 좋은 알고리즘(?)으로 능력치가 향상된것인지? 그런데 또 GridSearchCV 최고 정확도: 0.975, 테스트 데이터 세트 정확도: 0.9667 는 각각 이렇게 나오네요. 왜 두개가 서로 다른것인지도 궁금합니다.

답변 3

0

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

GridSearchCV를 통한 최고 정확도는 검증 데이터(학습데이터를 쪼개서 만들어진)를 기반으로 한것이고,

피팅한 결과가 어떤 걸로 예측 데이터를 사용했다는 의미 인지는 모르지만, 아마도 학습 데이터로 피팅하고 별도의 테스트 데이터로 예측을 한 것으로 추축해보면, 서로 다를 것으로 판단됩니다.

0

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

네 답변 감사합니다. 

혹시 2번 답변에 대해서는 버전에 따라서 강의 결과하고 약간씩 다른 정확도가 나올것이라고 생각은 했는데, 최근버전으로는 최고 정확도는 0.975가 나오는데 그것을 그대로 피팅한 값은 강사님 버전하고 값이 같더라구요!(0.96667) 이건 왜 그런거일까요~? 

성능이 제일 모델이 0.975로 나왔는데 이걸 피팅한 결과도 0.975가 나와야하는거가 아닌가 해서 여쭈어봅니다!

(버젼이 2점대 버전이어서 성능이 제일 좋은 모델 값이 0.975가 나왔는데, 저도 피팅한 결과값은 강사님 버젼으로 결과값을 도출한 값과 같은 0.96667이 도출되네요? 왜 그런지 궁금합니다.)

또한 버전이 다르게 되면서 뭐가 바뀌엇길래 결과값이 달라진건가요? 내부 알고리즘이 달라져서 성능값이 달라진건가요~?  

0

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

안녕하십니까,

1. stratified k fold와 k fold와의 차이를 설명하기 위해서 데이터셋을 그렇게 만들어서 입력한 것입니다.

일반적으로는 label 값이 서로 random한 수준으로 섞여있어서 그런 극단적인 차이가 나지 않습니다. 그래서 K fold를 써도 iris 데이터 가지고도 좋은 예측정확도가 나옵니다.  하지만 가능하다면 stratified K Fold를 쓰는게 좋습니다.

2. 사이킷런이 버전업이 되면서 강의 결과하고 약간씩 다른 정확도가 나옵니다. 양해 부탁드립니다.

감사합니다.

yonghankim7님의 프로필 이미지
yonghankim7

작성한 질문수

질문하기