特徴量エンジニアリング

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を予測する

Passons à la pratique !

PythonでMachine Learningを使ってCTRを予測する

Preparing Video For Download...