inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

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

이상치 제거 및 오버샘플링 후 강의와 다르게 성능이 더 안좋게 나타납니다ㅠㅠ

307

김남욱

작성한 질문수 63

0

이상치 제거 파트에서

def get_preprocessed_df(df=None):
  df_copy = df.copy()
  Amount_log = np.log1p(df_copy["Amount"].values.reshape(-1,1))
  df_copy["Amount"] = Amount_log
  df_copy.drop("Time", axis=1, inplace=True)
  outlier = get_outlier(df_copy, "V14"1.5)
  df_copy.drop(outlier, axis=0, inplace=True)
  return df_copy
 
위와 같이 전처리 진행해주고 Logistic Regression하고 LightGBM 돌렸는데, 강사님의 결과와 다르게 오히려 로그변환만 했을 때보다 성능이 전체적으로 떨어지게 나오네요ㅠㅠ 왜그런지 이유를 알 수 있을까요??
 
로그변환만 했을 경우
정확도: 0.9996 정밀도: 0.9444 재현율: 0.8041 F1: 0.8686 ROC: 0.9746
 
이상치 제거까지 함께 했을 경우
정확도: 0.9995 정밀도: 0.9280 재현율: 0.7945 F1: 0.8561 ROC: 0.9749
 
 
SMOTE 적용 후 LightGBM 적용도 결과가
 
정확도: 0.9323 정밀도: 0.0217 재현율: 0.8767 F1: 0.0424 ROC: 0.9045
 
로 강사님께서 하신 결과랑 많이 다르게 나오네요...
앞선 3장에서 만든 성능평가 함수가 문제가 있는건가, 아니면 패키지나 라이브러 버전 문제 때문인가 왜그런지 모르겠네요ㅠㅠ
 
그리고 추가적으로 SMOTE를 하면 레이블값이 불균형하지 않으니 LightGBM 파라미터 중 "boost_from_average"를 True로 설정해도 되는 것이 아닌가 궁금합니다

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

답변 1

0

권 철민

안녕하십니까, 

해당 영상은 사이킷런 0.19.2 로 수행한 결과이므로 새로운 버전에서는 달라질 수 있습니다. 

그렇지만 제가 최신 버전의 사이킷런(1.0.2)과 LightGBM(3.3.2) 버전으로 테스트 해본 결과와 지금 질문 올려 주신 결과는  다르군요.  아래는 제가 테스트한 결과 입니다.  Light GBM만 해당 되며 AUC 보다는 재현율에 집중해 주시면 될 것 같습니다.  로그변환->이상치제거->SMOTE 할 때마다 재현율이 좋아집니다. 

원본 데이터 LGBM: 정확도: 정확도: 0.9995, 정밀도: 0.9573, 재현율: 0.7568,    F1: 0.8453, AUC:0.9790
정규 분포 변환후 LGBM: 정확도: 0.9995, 정밀도: 0.9569, 재현율: 0.7500, F1: 0.8409, AUC:0.9779

로그 변환: 정확도: 0.9995, 정밀도: 0.9576, 재현율: 0.7635, F1: 0.8496, AUC:0.9796

이상치 제거: 정확도: 0.9996, 정밀도: 0.9603, 재현율: 0.8288, F1: 0.8897, AUC:0.9780

SMOTE 적용후: 정확도: 0.9996, 정밀도: 0.9118, 재현율: 0.8493, F1: 0.8794, AUC:0.9814

주피터 노트북을 재 기동하시거나 creditcard.csv를 다시 다운로드 받으 신후 수행해 보시거나 사용하시는 사이킷런 버전과 LightGBM 버전을 다시 확인해 보시면 어떨까 싶습니다. 

그리고 smote시에  boost_from_average=True로 변경하고 함 적용해 보시지요.

감사합니다. 

0

김남욱

코랩환경에서 sklearn(1.0.2), lightGBM(2.2.3) 사용 중이며 다시 확인하여도 이상치 제거 후에 재현율이 약간 떨어지고 SMOTE 적용 후에는 재현율이 약간 올라도 정밀도가 0.0217, F1 스코어가  0.0424로 처참하게 나오네요ㅠㅠ

Imbalanced-learn 패키지 버전이 0.8.1 인데 해당 버전이 문제인건지 이유를 잘 모르겠습니다ㅠㅠ

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

0

50

2

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

0

86

2

정수 인덱싱

0

86

2

넘파이 오류

0

108

2

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

0

106

2

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

0

93

2

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

0

76

2

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

0

83

2

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

0

73

2

5강 강의 오류가 있어요.

0

90

1

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

0

81

2

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

0

75

3

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

0

128

2

좋은 강의 감사합니다.

0

79

2

scoring 함수 음수값

0

72

2

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

0

108

2

분류 평가 정확도 예측

0

87

2

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

0

114

1

카카오톡 채널 있나요

0

118

1

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

0

193

2

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

0

109

2

주피터 대신 구글 코랩

0

184

2

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

0

155

2

실루엣 스코어..

0

91

2