def create_features(user_id,is_exp,
feature_cloumn_func = lambda day:get_feature_cloumn(None,day,has_user_type=False),
load_exp_func = load_user_exp_model,
load_func = load_user_model,
is_exp_power = False
):
print user_id
dataset = get_month_by_id(user_id)
result = []
for day in range(1,32):
feature_column = feature_cloumn_func(day)
x_ = dataset[feature_column]
trainer = xgb.XGBRegressor()
if is_exp:
if is_exp_power:
x_ = exp_power(x_)
load_exp_func(trainer,day,user_id)
else:
load_func(trainer,day,user_id)
y_p = trainer.predict(x_)
y_p = pd.Series(y_p,name='y_p#%d'%(day-1))
if not is_exp:
y_p = np.exp(y_p)
result.append(y_p)
result = pd.DataFrame(result).T
result.index = dataset.index
for day in range(31):
result['real#%d'%day] = dataset['y#%d'%day].apply(np.exp)
sys.stdout.flush()
return result
评论列表
文章目录