강의

멘토링

커뮤니티

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

gkgktmd님의 프로필 이미지
gkgktmd

작성한 질문수

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

confusion matrix? 질문이 있습니다.

작성

·

239

0

피쳐데이터와 타겟 데이터의 비율이 7:3정도 되는 데이터인데

온갖거를 다해봐도 컨퓨전 매트릭스상으로 대부분이 1로 예측을 하는 결과가 나옵니다.

사실 1이 0.7이 넘으면 그냥 1만으로 해도 어큐러시가 0.7이 넘는다는 얘기긴한데..

1. 이렇게 특정 피쳐값에만 몰릴때 쓰는 테크닉 같은게 있을까요?

smote도 해봤는데 유의미한 차이는 없는듯 하고..

아니면 피쳐데이터 자체를 아예 새로 잡아야 하는걸까요?

2. 컨퓨전 매트릭스 상 tp가 워낙 많다 보니 재현율이나 정확도도그냥 높게 나와버리더라구요 ㅠ 이럴때는 MCC를 보는 것이 더 정확도가 있을까요?

답변 1

0

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

안녕하십니까,

지난번에 질문하신 내용이 아직 해결이 안되신것 같군요.

지난번 답변과 유사한데, 이것은 테스트 데이터 자체에 어떤 이슈가 있는 것 같습니다.

보통 학습 데이터를 validation한 성능이 테스트 데이터에서 10% 이하로 떨어지면 오버 피팅되었다고 개인적으로 생각합니다. 예를 들어 검증 데이터 세트에서 재현율 0.75 인데 테스트 데이터 세트에서 0.65 정도라면 오버피팅 맞습니다.

그런데  이 테스트 데이터는  직접 gkgktmd  님께서 원본 데이터에서 분리한 것인데, 이렇게 학습/검증 데이터 세트와 테스트 데이터 세트가 많이 달라지게 의도적으로 만든게 아니라면 성능이 크게 떨어질 이유가 없습니다. 

지금 테스트 데이터는 배제하고 학습 데이터에서 train_test_split()으로 random하게 30%정도 분리하셔서 이걸 test 데이터로 만들어서 수행해 보십시요.  random_state를 바꿔가면서 여러번 분리하고 테스트 해보십시요. 가능하다면 cross validation으로도 테스트 해보십시요. 

결과 update 부탁드립니다.

gkgktmd님의 프로필 이미지
gkgktmd

작성한 질문수

질문하기