日付・時間の周期表現
時系列データにおいて、曜日や時刻などの周期性のある特徴量を円周上に配置し、cos, sinに分解することで、それらの循環連続性を表現する
リンク先をみてみる。
minute = 2*np.pi*((df["time"]//5)%288)/288
day = 2*np.pi*((df['time']//1440)%365)/365
weekday = 2*np.pi*((df['time']//1440)%7)/7
df['year'] = (((df['time'])//525600))
して
np.sim(minute+1)などとしてる。
日付なら、1440,で割り、何日分あるかをみて、周期単位(365や7)で割った余りを得る。それに2 * pi をかけて、1周期とする。最後に、周期の大きさでわって、その周期における割合を取る。
これだと、単純な一定の大きさによる余剰分の割合に2*piをかけたしたもの?だけど、sine, cosineで数学的に利点にある形にする(説明できない...)
言葉で書いたけど、もうちょっと洗練させて理解したい。
kaggleなどでは、これを sine, cosineの両方をとって、特徴量としてアプローチしてるよう。