🤔 파생변수란?

파생변수란 기존의 데이터로부터 새로운 변수를 생성하는 것이다. 기존 데이터의 정보를 보다 유용하거나 분석하기 쉬운 형태로 변환하기 위하여 파생변수를 생성한다.

파생변수를 사용하는 이유는 다음과 같다.

  1. 성능 향상: 파생변수는 종종 기계학습 모델의 성능을 향상시키는 데 도움이 됩니다. 이는 모델이 원래 데이터에서는 명확하지 않았던 패턴이나 관계를 더 잘 이해하고 학습할 수 있게 해주기 때문입니다.
  2. 보다 깊은 인사이트 제공: 특정 비즈니스 문제나 분석 목표에 맞추어 새로운 관점에서 데이터를 바라볼 수 있게 해줍니다. 예를 들어, 날짜 데이터에서 주말 여부, 공휴일 여부와 같은 정보를 추출하여 사용할 수 있습니다.
  3. 데이터의 차원 축소: 여러 변수를 결합하여 새로운 변수를 만들면, 불필요하거나 중복되는 정보를 줄이고 데이터의 차원을 축소할 수 있습니다. 이는 모델의 복잡성을 줄이고, 과적합(overfitting) 위험을 감소시키는 데 도움이 됩니다.
  4. 결측치 대체 또는 보정: 원본 데이터에 결측치가 있을 경우, 파생변수를 통해 이를 대체하거나 보정하는 데 사용할 수 있습니다.
  5. 모델의 해석력 강화: 파생변수는 때때로 모델의 결과를 이해하고 해석하는 데 도움이 됩니다. 특히 비즈니스 의사결정에 중요한 요소를 반영한 파생변수는 결과의 의미를 명확하게 전달하는 데 유용할 수 있습니다.

예를 들어 키와 몸무게가 수집된 데이터셋에서 몸무게(kg)를 키(m)의 제곱으로 나누어 bmi 지수라는 새로운 파생변수를 생성할 수 있다. 이를 통해 비만 정도를 나타낼 수 있는 새로운 정보를 얻은 것이다.

✍️ 파생변수 생성하기

데이터 프레임을 다루면서 파생변수는 loc, iloc 를 통해 접근하여 applly(),assign() 함수등을 활용하여 생성할 수 있다.

다음과 같은 판매일, 구매고객의 나이, 구매량을 수집한 데이터셋을 통해 파생변수를 만들어보자.

# 예시 데이터셋
data = {
    'sales_date': ['2021-01-01', '2021-01-02', '2021-01-03', '2021-01-04'],
    'customer_age': [25, 45, 35, 50],
    'purchase_amount': [75, 150, 100, 200]
}
df = pd.DataFrame(data)
# sales_date를 날짜 형식으로 변환
df['sales_date'] = pd.to_datetime(df['sales_date'])

sales_date 를 통해 요일을 생성할 수 있고, customer_age 를 통해 고객의 나이를 구간화하거나 purchase_amount 를 활용하여 많은 양의 물품을 구매한 고객을 나눠볼 수 있을 것이다.