부트캠프 프로젝트
- 구독 서비스 플랫폼 데이터 분석 프로젝트
# 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인 데이터 중에서 제거함으로써 수치가 존재하는 데이터를 지울 확률을 없앴다.
[ 회고 ]
- 이 경험을 통해 데이터 병합 방식과 전처리가 분석 결과에 미치는 영향을 깊이 깨닫게 되었다. 회귀분석을 실시하기 위해 종속변수와 독립변수가 정리된 테이블을 생성할 때 데이터 병합 방식을 잘못 선택하면 데이터의 구조와 분포에 큰 변화를 초래할 수 있다는 점을 배웠다. 또한 편향 문제를 완화하기 위해 데이터의 특성과 분포를 면밀히 분석하는 것이 필요하다는 것을 깨달았다. 역시 데이터 분석은 단순히 결과를 도출하는 데 그치지 않고, 데이터의 구조와 전처리 과정까지 세심하게 관리해야 신뢰성 높은 결과를 얻을 수 있다는 점을 다시 한번 깨닫게 되었다.
'DA Study > TIL' 카테고리의 다른 글
[TIL] 로지스틱 회귀분석에서 오즈비 해석하기 # python # 부트캠프 (0) | 2025.01.17 |
---|---|
[TIL] 집단 간 비율 차이 통계적 유의미성 검증하기 - Z검정 # python # 부트캠프 (1) | 2025.01.15 |
[TIL] 로지스틱 회귀분석에서 오즈비 계산하기 # python # 부트캠프 (0) | 2025.01.13 |
[TIL] apply()와 lambda 함수의 활용 # python # 부트캠프 (0) | 2025.01.11 |
[TIL] Window함수로 Median 구하기 # MySQL # SQL (1) | 2025.01.06 |