欢迎光临散文网 会员登陆 & 注册

降雨预测-C++编程

2021-06-21 01:23 作者:人仙隔  | 我要投稿

降雨径流预测-最小二乘回归模型

选题要求:

1.利用提供的数据集rainstream05_06.csv实现径流预测。输入降雨量,根据线性回归模型计算径流量,输出径流值。径流量是指在某一时段内通过河流某一过水断面的水量。现假定降雨量与径流量之间存在线性关系。


表中数据第一列为日期,具体编程实现中,同学们可以删除;”P”列为降雨量(单位:mm),“Q”列为径流量(单位:m3)。线性模型定义如下:


 

w为权重,可理解为当日降水转换为径流的比例,b为偏移量,可以理解为其他相关因素对径流量的影响(如土壤水分、植被等)。线性回归的目的就是找到最合理的w和b。

参考类定义如下:

Class rainStream{

double P;

double Q;

double w;

double b;

……

Public:

……  //方法定义

};

2 实现方法要求,核心算法不允许使用第三方库,自行编程实现算法并测试。

3.编写函数dataLoad()实现数据的预处理,将给定的数据集按7:3的比例读入训练数据集trainSet和测试数据集testData。

4.利用trainSet数据确定w和b的最优值。



使用计算的w和b的值推算测试数据testData中Q的预测值。

计算:,可以截取不同的训练集,讨论比较误差,是否能找到w和b最优解。

5. 要求用文件处理功能完成数据的读入以及测试结果的存储。

6.设计界面,可以是图形界面也可以是终端界面(command)。

7.误差分析(测试集),计算RMSE(Root Mean Squard Error)、R(相关系数)

 


 


其中为预测值,为真实值,为预测平均值,为真实平均值。

8.合理引入运算符重载、继承关系的设计。

9.优化改进(必做):认真观察误差,结合你对数据的理解,进行模型改进,使得预测更为接近真实值。有理即可!

 

头文件的函数封装
构造函数与析构函数
以7:3分配数据,以10组为一单位数据组

线性排布不可随机

训练函数
提供访问函数
智障级输出

如果觉得自己很勇可以使用initgraph();cleardevice();outtextxy(,,),本人学渣,懒得写。

在主函数中循环,将每次的运行结果输出到txt文档中保存

尝试过将循环和读入输出也写到函数里但是确实是不会啊

降雨预测-C++编程的评论 (共 条)

分享到微博请遵守国家法律