广州建设网站的公司app开发制作公司排行榜
2026/5/21 16:17:45 网站建设 项目流程
广州建设网站的公司,app开发制作公司排行榜,临沂网站建设公司 杨超,wordpress内容登陆后可见资金流入流出预测比赛完整流程记录 目录 比赛任务描述数据预处理与分析ARIMA模型实现与结果周期因子模型实现与结果Prophet综合优化方案模型融合策略最终结果与提交经验总结与改进方向 比赛任务描述 报名地址 https://tianchi.aliyun.com/competition/entrance/231573/inf…资金流入流出预测比赛完整流程记录目录比赛任务描述数据预处理与分析ARIMA模型实现与结果周期因子模型实现与结果Prophet综合优化方案模型融合策略最终结果与提交经验总结与改进方向比赛任务描述报名地址https://tianchi.aliyun.com/competition/entrance/231573/infor任务目标本比赛任务是预测某金融产品在2014年9月1日至9月30日期间的每日申购金额total_purchase_amt和赎回金额total_redeem_amt。数据来源训练数据2014年3月1日至2014年8月31日的用户余额表数据user_balance_table.csv数据格式包含用户ID、报告日期、申购金额、赎回金额等字段评价指标使用均方根误差RMSE评估模型性能分数越高表示预测越准确。数据预处理与分析数据加载importpandasaspdimportnumpyasnp# 读取用户余额表数据user_balancepd.read_csv(user_balance_table.csv)数据转换与筛选# 将report_date转换为datetime格式user_balance[report_date]pd.to_datetime(user_balance[report_date],format%Y%m%d)# 筛选2014-03-01至2014-08-31的数据user_balanceuser_balance[(user_balance[report_date]2014-03-01)(user_balance[report_date]2014-08-31)]数据聚合按日期汇总每日的申购和赎回总金额# 按日期汇总total_purchase_amt和total_redeem_amtdaily_datauser_balance.groupby(report_date)[[total_purchase_amt,total_redeem_amt]].sum().reset_index()数据可视化绘制资金流入流出趋势图观察数据的周期性和趋势特征importmatplotlib.pyplotasplt plt.figure(figsize(15,6))plt.plot(daily_data[report_date],daily_data[total_purchase_amt],label申购金额,colorblue)plt.plot(daily_data[report_date],daily_data[total_redeem_amt],label赎回金额,colorred)plt.title(资金流入流出趋势图)plt.xlabel(日期)plt.ylabel(金额)plt.legend()plt.grid(True)plt.show()通过可视化分析我们观察到数据具有明显的周期性特征周周期和月周期以及一定的趋势性。ARIMA模型实现与结果ARIMA模型介绍ARIMA自回归积分移动平均是一种常用的时间序列预测模型由三个参数组成p自回归项数d差分阶数q移动平均项数根据数据特点我们选择ARIMA(7,1,7)模型其中7阶自回归项捕捉一周的周期性1阶差分使序列平稳7阶移动平均项捕捉短期波动ARIMA模型实现fromstatsmodels.tsa.arima.modelimportARIMA# 对申购金额建立ARIMA模型purchase_modelARIMA(daily_data[total_purchase_amt],order(7,1,7))purchase_model_fitpurchase_model.fit()# 对赎回金额建立ARIMA模型redeem_modelARIMA(daily_data[total_redeem_amt],order(7,1,7))redeem_model_fitredeem_model.fit()# 预测未来30天purchase_predpurchase_model_fit.forecast(steps30)redeem_predredeem_model_fit.forecast(steps30)ARIMA模型结果ARIMA模型的预测结果保存为result.csv提交后获得了初步的预测分数。周期因子模型实现与结果周期因子模型思路基于数据的周期性特征我们考虑两种周期因子星期因子周一至周日的周期性影响日期因子1号至31号的周期性影响这两种因子采用乘法关系共同影响最终预测结果。周期因子计算# 添加星期和日期特征daily_data[weekday]daily_data[report_date].dt.weekday# 0周一, 6周日daily_data[day_of_month]daily_data[report_date].dt.day# 计算星期因子weekday_statsdaily_data.groupby(weekday)[[total_purchase_amt,total_redeem_amt]].mean()weekday_avg_purchaseweekday_stats[total_purchase_amt].mean()weekday_avg_redeemweekday_stats[total_redeem_amt].mean()weekday_purchase_factorweekday_stats[total_purchase_amt]/weekday_avg_purchase weekday_redeem_factorweekday_stats[total_redeem_amt]/weekday_avg_redeem# 计算日期因子day_statsdaily_data.groupby(day_of_month)[[total_purchase_amt,total_redeem_amt]].mean()day_avg_purchaseday_stats[total_purchase_amt].mean()day_avg_redeemday_stats[total_redeem_amt].mean()day_purchase_factorday_stats[total_purchase_amt]/day_avg_purchase day_redeem_factorday_stats[total_redeem_amt]/day_avg_redeem周期因子模型预测# 生成未来30天的日期future_datespd.date_range(start2014-09-01,end2014-09-30)future_dfpd.DataFrame({report_date:future_dates})future_df[weekday]future_df[report_date].dt.weekday future_df[day_of_month]future_df[report_date].dt.day# 应用周期因子乘法关系future_df[purchase_periodic_factor]future_df[weekday].map(weekday_purchase_factor)*future_df[day_of_month].map(day_purchase_factor)future_df[redeem_periodic_factor]future_df[weekday].map(weekday_redeem_factor)*future_df[day_of_month].map(day_redeem_factor)# 基于历史均值和周期因子进行预测historical_avg_purchasedaily_data[total_purchase_amt].mean()historical_avg_redeemdaily_data[total_redeem_amt].mean()future_df[total_purchase_amt]historical_avg_purchase*future_df[purchase_periodic_factor]future_df[total_redeem_amt]historical_avg_redeem*future_df[redeem_periodic_factor]周期因子模型结果周期因子模型的预测结果保存为result2.csv提交后获得了115分的成绩。Prophet综合优化方案为了进一步提高预测精度我们采用了Facebook Prophet模型进行综合优化该模型能够更好地处理时间序列的趋势、季节性和节假日效应。Prophet模型介绍Prophet是Facebook开发的时间序列预测工具具有以下特点自动处理趋势变化点内置周/月/年季节性模型支持添加节假日效应提供直观的模型参数调整Prophet模型实现1. 数据准备# Prophet模型需要的数据集格式ds日期和y目标值df_purchasedaily_data[[report_date,total_purchase_amt]].rename(columns{report_date:ds,total_purchase_amt:y})df_redeemdaily_data[[report_date,total_redeem_amt]].rename(columns{report_date:ds,total_redeem_amt:y})2. 节假日处理考虑到2014年9月6日至8日为中秋节假期我们添加了节假日效应# 定义2014年节假日包含中秋节及前后影响holidayspd.DataFrame({holiday:mid_autumn,ds:pd.to_datetime([2014-09-06,2014-09-07,2014-09-08]),# 中秋节及前后lower_window:0,upper_window:0,})3. Prophet模型拟合fromprophetimportProphet# 创建并拟合Prophet模型申购prophet_purchaseProphet(growthlinear,seasonality_modemultiplicative,holidaysholidays,holidays_prior_scale5,yearly_seasonalityFalse,weekly_seasonalityTrue,daily_seasonalityFalse,interval_width0.95)prophet_purchase.add_seasonality(namemonthly,period30.5,fourier_order3)prophet_purchase.fit(df_purchase)# 创建并拟合Prophet模型赎回prophet_redeemProphet(growthlinear,seasonality_modemultiplicative,holidaysholidays,holidays_prior_scale5,yearly_seasonalityFalse,weekly_seasonalityTrue,daily_seasonalityFalse,interval_width0.95)prophet_redeem.add_seasonality(namemonthly,period30.5,fourier_order3)prophet_redeem.fit(df_redeem)4. 特征工程增强为了进一步提高模型性能我们添加了滞后特征和移动平均特征# 添加滞后特征前7天、14天、21天daily_featuresdaily_data.copy()forlagin[7,14,21]:daily_features[fpurchase_lag_{lag}]daily_features[total_purchase_amt].shift(lag)daily_features[fredeem_lag_{lag}]daily_features[total_redeem_amt].shift(lag)# 添加移动平均特征7天、14天forwindowin[7,14]:daily_features[fpurchase_ma_{window}]daily_features[total_purchase_amt].rolling(windowwindow).mean()daily_features[fredeem_ma_{window}]daily_features[total_redeem_amt].rolling(windowwindow).mean()# 去除缺失值daily_featuresdaily_features.dropna()5. 增强模型训练使用线性回归模型结合Prophet预测和特征工程结果fromsklearn.linear_modelimportLinearRegression# 建立增强模型defbuild_enhanced_model(daily_features,target_col,prophet_predictions,target_prophet_col):# 合并特征和Prophet预测Xdaily_features.drop([report_date,total_purchase_amt,total_redeem_amt],axis1)X[prophet_prediction]daily_features[report_date].map(prophet_predictions.set_index(report_date)[target_prophet_col])ydaily_features[target_col]# 训练模型modelLinearRegression()model.fit(X,y)returnmodel# 建立申购和赎回的增强模型purchase_enhanced_modelbuild_enhanced_model(daily_features,total_purchase_amt,prophet_predictions,purchase_prophet)redeem_enhanced_modelbuild_enhanced_model(daily_features,total_redeem_amt,prophet_predictions,redeem_prophet)模型融合策略为了综合各模型的优势我们采用了加权平均的模型融合策略Prophet模型权重40%提供基线预测增强模型权重30%结合了额外特征周期因子模型权重30%捕捉周期性特征融合实现# 模型融合加权平均# 1. Prophet模型预测prophet_predsprophet_predictions.tail(30).set_index(report_date)# 2. 增强模型预测enhanced_purchase_predspurchase_enhanced_model.predict(X_future_purchase)enhanced_redeem_predsredeem_enhanced_model.predict(X_future_redeem)# 3. 周期因子调整的基线预测periodic_purchase_predshistorical_avg_purchase*periodic_preds[purchase_periodic_factor]periodic_redeem_predshistorical_avg_redeem*periodic_preds[redeem_periodic_factor]# 权重分配Prophet(40%), 增强模型(30%), 改进周期因子(30%)final_purchase_preds0.4*prophet_preds[purchase_prophet].values0.3*enhanced_purchase_preds0.3*periodic_purchase_preds.values final_redeem_preds0.4*prophet_preds[redeem_prophet].values0.3*enhanced_redeem_preds0.3*periodic_redeem_preds.values最终结果与提交生成预测结果# 生成最终预测结果final_forecastpd.DataFrame({report_date:future_dates.strftime(%Y%m%d).astype(int),total_purchase_amt:final_purchase_preds,total_redeem_amt:final_redeem_preds})# 保存结果无表头final_forecast.to_csv(result_optimized.csv,indexFalse,headerFalse)结果提交将生成的result_optimized.csv文件提交至比赛平台https://tianchi.aliyun.com/competition/entrance/231573/submission/88最终获得了145分的成绩成功通过比赛。预测结果展示预测结果的前10天数据如下日期申购金额元赎回金额元20140901330885275322102155201409023125919382914009532014090332063675231318040820140904322619932276590303201409052668077502520409672014090621201199817184027520140907207486402192871410201409083203125543182071972014090932258023529654052020140910328245020301124852经验总结与改进方向成功经验数据可视化分析通过可视化准确识别数据的周期性和趋势性特征多种模型尝试从简单的ARIMA模型到复杂的Prophet模型逐步提升预测精度特征工程增强添加滞后特征和移动平均特征捕捉更多数据信息模型融合策略综合不同模型的优势提高预测稳定性节假日效应处理考虑到特殊日期对资金流动的影响改进方向模型参数调优进一步优化Prophet模型的参数设置更多特征引入可以考虑引入外部经济数据如利率、股市行情等深度学习模型尝试使用LSTM等深度学习模型处理时间序列数据模型融合优化尝试更复杂的融合策略如Stacking或Blending异常值处理更精细地处理数据中的异常值通过本次比赛我们全面掌握了时间序列预测的常用方法和技巧从数据预处理到模型选择再到最终的结果优化形成了一套完整的解决方案。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询