概要
kaggleをやり始めて特徴量をいかに付与するかが重要だと学んだので、
それらをつける方法のメモ
TalkingData AdTracking Fraud Detection Challenge
のデータを使って勉強中
曜日(平日は1、休日は0)
yobi
# クリック曜日の付与
def add_clickweekday(df):
yobi = [1, 1, 1, 1, 1, 0, 0]
df["click_weekday"] = pd.to_datetime(df["click_time"]).apply(lambda x: yobi[x.weekday()])
df["click_weekday"] = df["click_weekday"].astype(np.int8)
return df
セッション
session
# セッションnumの付与
def add_session(df):
df = df.sort_values(["ip", "click_time"])
temp = df[["ip", "click_time"]].groupby('ip')
df['session_number'] = temp['click_time'].apply(
lambda s: ((s - s.shift(1)).astype('timedelta64[m]') > 30).fillna(0).cumsum(skipna=False))
df["session_number"] = df["session_number"].astype(np.int8)
del temp
return df