728x90
The Aims:
다양한 피처 엔지니어링 확인, 좋은 피처인지 구분하는 능력 기르기
핵심 단어
- 누적합
SUMMARY:
1. Pandas Group by 누적합을 이용한 Feature Engineering
2. 주문, 상품 데이터를 활용한 Feature Engineering
3. Time Series 특성을 이용한 Feature Engineering
1. Pandas Group by 누적합을 이용한 Feature Engineering
- 누적합(cunsum)은 시간 또는 순서에 따라 증가하는 데이터의 총합계를 표시하는 데 사용하는 함수이다. 예를 들어[1,2,3,4]의 데이터가 주어졌을 때 누적합은 10이 된다.
- 하나의 쇼핑데이터를 예로 들면 Total(구매액), Quantity(상품개수),Price(상품 가격)열에 고객 ID,상품ID,주문ID를 기준으로 그룹핑 및 누적합하여 여러 개의 로우를 생성하고 집계 함수를 적용하여 누적합 피처를 생성한다.
- 다양한 누적합 피처들의 레이블 분포를 보면서 직접 어떤 피처가 좋은 피처인지 구분해보는게 좋다.
2. 주문, 상품 데이터를 활용한 Feature Engineering
- 이번에는 주문,상품 데이터를 활용해서 피처 엔지니어링을 진행한다. 만들려고 하는 피처는 고객의 주문ID,상품ID의 개수이다. 주문을 많이 하거나 상품을 많이 살수록 구매를 할 확률이 크기 때문에 좋은 피처가 될 수 있다.
- 왼쪽 그림은 고객의 주문개의 분포이고 오른쪽은 고객의 상품 개수의 분포이다.
- 두 피처 모두 레이블 0과 1일 때 어느 정도는 구분이 되고, 레이블이 1일 때 더 큰 값을 갖는걸로 보아 좋은 피처로 보인다.
3. Time Series 특성을 이용한 Feature Engineering
- 쇼핑데이터를 봤을때 우리가 다루고 있는 이 데이터는 시계열데이터이다. 하지만 지금까지 집계를 통해 만든 피처들은 시간 순서 정보가 사라진채로 진행했다.
- 이번에는 시계열 특성을 이용한 피처 엔지니어링을 진행해보겠다.
- 고객이 구매를 가장 많이 했던 월과 년-월을 나타내는 피처들이다, 왼쪽은 월/년-월의 개수를 오른쪽은 레이블별 개수를 나타낸다. 레이블의 비율이 차이가 많이나 모델에 사용할 수 있는 좋은 피처로 보인다.
- 시계열 데이터의 특징 중 하나인 고객의 데이터 간의 발생할 수 있는 시간별 차이(difference)에 대해서도 피처 엔지니어링을 진행해보겠다. 고객이 주문한 데이터들을 사용해서 아래의 피처들을 만들 수 있다.
- order_ts-first: 고객이 처음으로 주문한 구매 시각
- order_ts-last: 고객이 마지막으로 주문한 구매 시각
- order_ts_diff-max: 고객이 주문한 구매 시각간 차이의 최대값
- order_ts_diff-skew: 고객이 주문한 구매 시각간 차이의 비대칭도
- order_ts_diff-std: 고객이 주문한 구매 시각간 차이의 표준편차
- order_ts_diff-sum: 고객이 주문한 구매 시각간 차이의 합
728x90