Skip to content

BJTU, Big Data Introduction course project, Weather prediction

License

Notifications You must be signed in to change notification settings

Routhleck/Weather-Predict

Repository files navigation

Weather-Predict

大数据概论 天气预测预测

1.基本构架(整体设计思路):

数据的获取

训练数据来源于http://www.meteomanz.com/

数据的获得与处理

http://www.meteomanz.com/sy2?l=1&cou=2250&ind=59287&d1=02&m1=02&y1=2019&d2=13&m2=12&y2=2020指从2019/2/2到2020/12/13的北京的每日天气数据,是我们要取到的数据的地址。 按F12打开开发者工具,我们可以发现rbody里面的第二个tr标签里面的每个td里是数据。

数据的预处理

使用ProcessData()进行数据的预处理,返回训练数据集以及训练数据集的验证集,和预测数据集。

模型建立与训练:数据的读取与模型训练

构建随机树森林模型训练模型 预测模型,用上个星期的数据 用MAE评估 保存模型到本地 返回MAE

2.随机森林模型

1.原理

建立多个决策树并将他们融合起来得到一个更加准确和稳定的模型是bagging思想和随机选择特征的结合。随机森林构造了多个决策树,当需要对某个样本进行预测时.统计森林中的每棵树对该样本的预测结果,然后通过投票法从这些预测结果中选出最后的结果。[2] 随机体现在两个方面,一个是随机取特征,另一个是随机取样本,让森林中的每棵树既有相似性又有差异性。森林中每棵树按照奶下方式生长: 1.如果过训练样本中有N个样本.那么从这N个样本中有放回的抽样N次,将得到的样本用于建树。 2.设M为输入样本的特征数,对于每个节点分裂时,我们先从这M个特征中选择m(m<<M)个特征,然后再在这m个特征中选择最佳的分裂点进行分裂。 3.每棵树都尽可能的生长,没有剪枝m的值越大,上述1中的相关性越高,2中的分类能力也越强,所以m在随机森林中是个非常重要的参数。

2.特点

1、优点 随机森林善于处理高维数据,特征遗失数据,和不平衡数据 (1)训练可以并行化,速度快 (2)对高维数据集的处理能力强,它可以处理成千上万的输入变量,并确定最重要的变量,因此被认为是一个不错的降维方法。 (3)在训练集缺失数据时依旧能保持较好的精度(原因:随机森林随机选取样本和特征;随机森林可以继承决策树对缺失数据的处理方式) (4)泛化能力强,因为随机 2、缺点 (1)在解决回归问题时效果不是很好 RF不能给出一个连续的输出,而且随机森林不能做出超越训练集数据范围的预测,这可能会导致在训练含有某些特定噪声的数据时出现过拟合 (2)对特征数比较少的数据,它的随机性不好发挥,效果不太好

3.总体流程(代码架构):

使用GetData.py编写相关的爬虫程序爬取数据。 通过Write.py进行爬取数据的分析、清洗;之后写到创建好的csv文件中进行下一步的数据预处理。 之后通过ProcessData.py调用Write中的方法write进行数据的读取与csv文件的写入,并通过这些文件进行数据集的处理与划分。 最后模型构建在GetModel.py中,使用随机森林模型,填入处理好的数据集,进行模型的训练与保存。 之后通过main.py进行已经训练好的模型的调用与预测。

4.结果与可视化

Figure_1

Figure_2

Figure_3

Figure_4

About

BJTU, Big Data Introduction course project, Weather prediction

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages