History
home
BDA 연혁
home

- 성능 향상을 위한 파생변수

파생변수란?

파생변수란 기존의 데이터로부터 새로운 변수를 생성하는 것이다. 기존 데이터의 정보를 보다 유용하거나 분석하기 쉬운 형태로 변환하기 위하여 파생변수를 생성한다.
파생변수를 사용하는 이유는 다음과 같다.
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'])
Python
복사
sales_date 를 통해 요일을 생성할 수 있고, customer_age 를 통해 고객의 나이를 구간화하거나 purchase_amount 를 활용하여 많은 양의 물품을 구매한 고객을 나눠볼 수 있을 것이다.
# 파생 변수 1: 요일 df['day_of_week'] = df['sales_date'].dt.day_name() # 파생 변수 2: 연령 그룹 df['age_group'] = pd.cut(df['customer_age'], bins=[0, 30, 40, 50, 60], labels=['20s', '30s', '40s', '50s']) # 파생 변수 3: 고액 지출자 df['high_spender'] = df['purchase_amount'].apply(lambda x: 'Yes' if x > 100 else 'No') print(df)
Python
복사