<aside> <img src="https://prod-files-secure.s3.us-west-2.amazonaws.com/83c75a39-3aba-4ba4-a792-7aefe4b07895/94dbaed9-349c-449d-bc43-25de3ae5a780/SpartaIconScale9.png" alt="https://prod-files-secure.s3.us-west-2.amazonaws.com/83c75a39-3aba-4ba4-a792-7aefe4b07895/94dbaed9-349c-449d-bc43-25de3ae5a780/SpartaIconScale9.png" width="40px" /> 수업 목표

<aside> <img src="https://prod-files-secure.s3.us-west-2.amazonaws.com/83c75a39-3aba-4ba4-a792-7aefe4b07895/393cd135-1603-4797-8fa6-42abcfedd782/SpartaIconS24.png" alt="https://prod-files-secure.s3.us-west-2.amazonaws.com/83c75a39-3aba-4ba4-a792-7aefe4b07895/393cd135-1603-4797-8fa6-42abcfedd782/SpartaIconS24.png" width="40px" />

목차

</aside>

<aside> <img src="https://prod-files-secure.s3.us-west-2.amazonaws.com/83c75a39-3aba-4ba4-a792-7aefe4b07895/11965e36-5cde-4d10-b470-06dfbe247327/scc캐릭터_아하_280x280.png" alt="https://prod-files-secure.s3.us-west-2.amazonaws.com/83c75a39-3aba-4ba4-a792-7aefe4b07895/11965e36-5cde-4d10-b470-06dfbe247327/scc캐릭터_아하_280x280.png" width="40px" /> 필수 프로그램 설치

✅ Google Chrome

</aside>


이번에 배울 것

<aside> ❗

결측치, 이상치, 불균형 데이터를 제대로 처리하고, 의미 있는 파생 변수를 생성하여 모델의 성능을 높일 수 있는지 알아보겠습니다!

</aside>


1. 데이터 전처리 개요

데이터 전처리란?

<aside> 📚

원시(raw) 데이터에서 불필요하거나 손실(노이즈)이 있는 부분을 처리하고, 분석 목적에 맞는 형태로 만드는 과정

</aside>

필요성

<aside> 1️⃣

모델 정확도 및 신뢰도 향상

</aside>

<aside> 2️⃣

이상치나 결측치가 많은 상태로 학습하면 예측 성능이 크게 떨어짐

</aside>

<aside> 3️⃣

효율적인 데이터 분석과 모델 훈련을 위해 필수적인 단계

</aside>

제조업 사례

<aside>

금융 사례

<aside>

마케팅 사례

<aside>


2. 결측치 처리

결측치 발생 원인

<aside>

결측치 처리 기법

<aside> 1️⃣

삭제(Removal)

: 결측치가 있는 행(row) 또는 열(column)을 제거

→ 간단하지만 데이터 손실이 발생

→ 결측치가 전체 데이터에서 매우 소수일 때 적합

</aside>

<aside> 2️⃣

대체(Imputation)

: 평균 또는 중앙값으로 대체

→ 수치형 데이터에서 많이 사용, 데이터 분포 왜곡이 비교적 적음

: 최빈값으로 대체

→ 범주형 데이터에서 사용

: 예측 모델로 대체

→ 회귀/분류 모델을 이용해 결측값을 예측

</aside>

제조업 예시

<aside>

→ 중앙값으로 간단히 대체하거나

→ 인접 시간대 센서 값의 추세(ex: 이동평균)를 바탕으로 결측치 채움

금융 예시

<aside>

→ 일정 기간(예: 이전 5일, 이후 5일 등) 주가의 평균 또는 가중평균을 통해 결측값을 보정

→ 직전, 직후에 기록된 유효한 데이터로 빈 값을 채우는 방식 (Forward/Backward Fill)

→ 중앙값을 사용하여 대체, 극단값의 영향을 받지 않아 평균 대체보다 안정적 → 그룹(클러스터)의 대표값으로 대체 (결측값이 속한 클러스터의 평균, 중앙값 등을 사용)

비교적 중요도가 낮은 지표라면, 간단히 제거

</aside>

마케팅 예시

<aside>

</aside>

결측치 처리 코드

import numpy as np
import pandas as pd

# 1) 가상 데이터 생성
#   - 일부 값들을 np.nan으로 지정해 결측값을 만듭니다.
data = {
    'A': [1, 2, np.nan, 4, 5, np.nan, 7],
    'B': [5, 4, 2, np.nan, np.nan, 3, 1],
    'C': [2, np.nan, np.nan, 6, 7, 8, 9]
}
df = pd.DataFrame(data)
df

image.png