原始数据:
> print(data)
申购总额 顶格资金 网上发行 申购价格
1 7357 1424.15 1805.00 15.78
2 5645 506.14 1404.00 7.21
3 7409 1336.34 2914.60 9.17
4 7315 1776.34 2040.66 17.41
5 6146 1276.51 1064.29 23.99
6 6289 1060.20 1900.00 11.16
7 5527 950.00 1900.00 10.00
使用的特征变量:
> print(feature_cols)
[1] "顶格资金" "网上发行" "申购价格"
>
> # 训练改进的梯度提升模型
> set.seed(42)
> cat("\n训练梯度提升模型...\n")
训练梯度提升模型...
> model <- improved_gradient_boosting(X, y, n_trees = 100, learning_rate = 0.03, max_depth = 2)
在第 68 棵树提前停止,MAE: 99.33
预测结果对比:
> print(results)
实际值 预测值 绝对误差 相对误差百分比
1 7357 7252.3 104.7 1.42
2 5645 5704.6 59.6 1.06
3 7409 7277.9 131.1 1.77
4 7315 7235.7 79.3 1.08
5 6146 6256.5 110.5 1.80
6 6289 6256.5 32.5 0.52
7 5527 5704.6 177.6 3.21
新数据特征:
> print(new_data)
顶格资金 网上发行 申购价格
1 754.965 1710 8.83
无完全匹配的历史参考数据,使用相近范围...
相近范围(1500-2000万股)的历史数据:
申购总额 顶格资金 网上发行 申购价格
1 7357 1424.15 1805 15.78
6 6289 1060.20 1900 11.16
7 5527 950.00 1900 10.00
历史申购总额范围: 5527 - 7357 万元
最终预测结果汇总:
> print(final_summary)
预测方法 预测值 说明
1 梯度提升回归 5704.6 基于树集成方法
2 线性回归 5838.7 基于统计回归
3 多元回归 5838.7 基于所有变量回归
4 顶格资金估算 4588.6 按这个预测约6万户,如果顶格2+1,申购迟的,可能分不到碎股。
5 网上发行最终冻结资金估算 6404.4