강의

멘토링

로드맵

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

son_6631님의 프로필 이미지
son_6631

작성한 질문수

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

분류 실습 2: 신용카드 사기 예측 실습 - 03

273쪽 df[df['Class']==1][column]부분

작성

·

236

0

273쪽 df[df['Class']==1][column]부분을 fraud에 대해서만 아니라 'v14' 속성의 모든 데이터에 대한 이상치를 구하기 위해 

df[:][column]으로 수정하여 학습을 진행하였습니다. 그랬더니다음과 같은 성능이 나왔는데 재현율이 이렇게 급격하게 떨어지는 이유가 뭘가요? 애초에 amount가 매우 큰 값이 사기 트랜젝션에 검사에 중요한 요소인데 이상치로 이러한 값들을 모두 제거해버려서 그런가요? 

다른 질문에서 답변해주셨듯이 'v14'의 모든 데이터에 대해 이상치를 제거하려면 코드를 어떻게 수정해야하나요?

퀴즈

결정 트리(Decision Tree) 모델이 데이터를 분할(Split)할 때 사용하는 주요 기준 지표로 가장 적절한 것은 무엇일까요?

평균 제곱 오차 (Mean Squared Error)

정보 이득 (Information Gain) 또는 지니 계수 (Gini Coefficient)

회귀 계수 (Regression Coefficient)

주성분 (Principal Component)

답변 1

2

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

안녕하십니까, 

현재 creditcard 데이타의 특성은 전체 데이터를 기반으로 IQR 을 설정하면 삭제되는 범위가 너무 커지게 됩니다.

outlier_index = get_outlier(df=card_df, column='V14', weight=1.5)로 출력해보시면 너무 많은 데이터가 이상치로 설정됩니다.  outlier 제거는 가능한 최소치로 해주셔야 합니다. 전체 데이터를 IQR로 하면 실제 사기 데이터에 잘 동작하는 데이터도 삭제 시켜버리고 있습니다. 

그리고 해당 모델은 실제값 0을 0으로 예측하는 것은 기본적으로 잘됩니다. 하지만 카드 사기 검출 모델에서 중요한 것은 실제 사기 즉 1을 1로 예측하는 것이 중요하므로 타겟값이 1인 데이터에 대해서 적절한 outlier들을 제거하는 것이 필요합니다.  때문에 현재 데이터에서는 1의 데이터만 일정 수준에서 outlier를 제거해 주시는게 좋습니다. 

감사합니다. 

 

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

답변 너무너무 감사합니다 ㅎㅎ 강의를 통해 너무 많은걸 배우고 있어요 ㅎㅎ 

son_6631님의 프로필 이미지
son_6631

작성한 질문수

질문하기