降水量ゼロの期間を特徴量にする

私のモデルで、効果のあった特徴量を紹介します。
降水量のカラムに対し以下の関数を使用し特徴量生成しました。

降水量ゼロカウンター

def zero_count(df,alpha=0.005):
  df_count = []
  n_count = 0
  for i in range(len(df)):
    if df[i] < 0.5:
      n_count += 1
    else:
      n_count = 0
    df_count.append(n_count)
  df_count = np.tanh(np.array(df_count)*alpha)
  return df_count

Aws4 request&x amz signedheaders=host&x amz signature=756fb3d741fa39b60169cba1478dbc53a789084dd86adf415f485bd1a8e23a2a
tanuking0

面白いシェアありがとうございます。とても勉強になりました。

お返しと言うには、あんまり寄与が安定しない&当たり前の変換ですが、こういう風力変換しています。45度ずらしても面白いかなぁとも思います。

def wind_vecs():
level = [0, #関係ない角度
math.cos(math.radians(67.5)), #北にとって東北東など
math.cos(math.radians(45)), #北にとって北東など
math.cos(math.radians(22.5)), #北にとって北北東など
1, #北にとって北
]
vecs = [
[0,level[0],level[0],level[0],level[0],],#0:静穏
[1,level[3],level[1],level[0],level[0]],#1:北北東
[2,level[2],level[2],level[0],level[0]],#2:北東
[3,level[1],level[3],level[0],level[0]],#3:東北東
[4,level[0],level[4],level[0],level[0]],#4:東
[5,level[0],level[3],level[1],level[0]],#5:東南東
[6,level[0],level[2],level[2],level[0]],#6:南東
[7,level[0],level[1],level[3],level[0]],#7:南南東
[8,level[0],level[0],level[4],level[0]],#8:南
[9,level[0],level[0],level[3],level[1]],#9:南南西
[10,level[0],level[0],level[2],level[2]],#10:南西
[11,level[0],level[0],level[1],level[3]],#11:西南西
[12,level[0],level[0],level[0],level[4]],#12:西
[13,level[1],level[0],level[0],level[3]],#13:西北西
[14,level[2],level[0],level[0],level[2]],#14:北西
[15,level[3],level[0],level[0],level[1]],#15:北北西
[16,level[4],level[0],level[0],level[0]],#16:北
]
vecs = pd.DataFrame(vecs)
vecs.columns = ["w_direc", "vec_n","vec_e","vec_s","vec_w",]
return vecs

X = pd.merge(X, wind_vecs(), on="w_direc", how="left")#onのカラムは適当に書き換える
for vecs in ["vec_n", "vec_e", "vec_s", "vec_w",]:
X[vecs] *= X["w_speed"]

Aws4 request&x amz signedheaders=host&x amz signature=6d0dfadb53fba468dce52e1c944d526222f69b49c1af4c119b66a95a34718f4d
saru_da_mon

ありがとうございます。試させていただきます。
風に関しては、普通に、風速と風向を使ってベクトル化していました。
ベクトル化しただけで良いようには思えず、どうするべきか悩んでたところです。

Favicon
new user
コメントするには 新規登録 もしくは ログイン が必要です。