피처 엔지니어링

Python으로 Machine Learning을 활용한 CTR 예측

Kevin Huo

Instructor

날짜 처리하기

print(df.hour.head(1))
14102101
df['hour'] = pd.to_datetime(
  df['hour'], format = '%y%m%d%H')
df['hour_of_day'] = df['hour'].dt.hour
print(df.hour.head(1))
2014-10-21 01:00:0
print(df.groupby('hour_of_day')
      ['click'].sum())
             click
hour_of_day       
1             1092
2             6546
Python으로 Machine Learning을 활용한 CTR 예측

해싱으로 범주형 변수 변환

  • 범주형 피처는 숫자 형식으로 변환해야 합니다

  • 해시 함수: 임의 입력을 정수로 매핑하며, 같은 입력에는 항상 같은 출력 반환

  • 람다 함수: lambda x: f(x)

  • f(x) = hash(x)로 해시 함수 적용:

df['site_id'] = df['site_id'].apply(lambda x: hash(x))
83a0ad1a -> -9161053084583616050
85f751fd-> 818242008494177460
Python으로 Machine Learning을 활용한 CTR 예측

피처 자세히 보기

  • count()nunique() 예:
df['ad_type'].count()
50000
df['ad_type'].nunique()
31

범주형 열 분포 예시

Python으로 Machine Learning을 활용한 CTR 예측

피처 생성하기

  • 대부분의 변수는 범주형입니다
  • 더 많은 피처는 예측력을 높입니다

  • 새 피처 예: device_id(사용자)와 search_engine_type별 노출 수

df['device_id_count'] = df.groupby('device_id')['click'].transform("count")
df['search_engine_type_count'] = df.groupby('search_engine_type')['click'].transform("count")
print(df.head(1))
...  device_id_count  search_engine_type_count
...            40862                     47710
Python으로 Machine Learning을 활용한 CTR 예측

연습해 봅시다!

Python으로 Machine Learning을 활용한 CTR 예측

Preparing Video For Download...