DA Study/TIL

[TIL] 특정 값으로 편향된 데이터 전처리하기 # python # 부트캠프

harrym8n 2025. 1. 14. 21:10

부트캠프 프로젝트 - 구독 서비스 플랫폼 데이터 분석 프로젝트

# A와 B 컬럼이 모두 0인 행 필터링
condition = (final_df['A'] == 0) & (final_df['B'] == 0)

# 해당 조건을 만족하는 행들의 인덱스 중 50%를 무작위로 선택
indices_to_remove = final_df[condition].sample(frac=0.5, random_state=42).index

# 선택된 행 제거
preprocessed_df = final_df.drop(index=indices_to_remove)
  • 위 코드의 컬럼명, 변수명은 본래 이름에서 마스킹 처리하여 기재하였습니다.

[ 문제 상황 ]

  • 로지스틱 회귀분석을 하기위한 데이터 테이블을 생성하는데 각 독립변수 별로 변수에 해당하는 이벤트 자체를 실행하지 않은 유저가 너무 많아서 수치형 변수 데이터가 0으로 몰려있는 분포를 형성하며 편향이 발생한다.

[ 해결 ]

  • 해당 편향 현상의 완화를 위해서 두 수치형 변수의 값이 0인 데이터의 50%를 랜덤으로 선택하여 제거 + 3IQR을 활용하는 방식으로 이상치 처리
  • 이를 통해 0값이 많아서 발생하는 편향을 완화시키고, 두 수치형 변수의 값이 0인 데이터 중에서 제거함으로써 수치가 존재하는 데이터를 지울 확률을 없앴다.

[ 회고 ]

  • 이 경험을 통해 데이터 병합 방식과 전처리가 분석 결과에 미치는 영향을 깊이 깨닫게 되었다. 회귀분석을 실시하기 위해 종속변수와 독립변수가 정리된 테이블을 생성할 때 데이터 병합 방식을 잘못 선택하면 데이터의 구조와 분포에 큰 변화를 초래할 수 있다는 점을 배웠다. 또한 편향 문제를 완화하기 위해 데이터의 특성과 분포를 면밀히 분석하는 것이 필요하다는 것을 깨달았다. 역시 데이터 분석은 단순히 결과를 도출하는 데 그치지 않고, 데이터의 구조와 전처리 과정까지 세심하게 관리해야 신뢰성 높은 결과를 얻을 수 있다는 점을 다시 한번 깨닫게 되었다.