降雨预测-C++编程
降雨径流预测-最小二乘回归模型
选题要求:
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.优化改进(必做):认真观察误差,结合你对数据的理解,进行模型改进,使得预测更为接近真实值。有理即可!



线性排布不可随机




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

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