基于Python的天气预测和天气可视化
Python
Python, HTML
共24个文件
jpg: 12
py: 4
csv: 4
gitignore: 1
md: 1
pkl: 1
html: 1
Python课程设计项目:基于python机器学习(ml)的天气预测和天气可视化
一、项目介绍
项目名称:天气预测和天气可视化
天气预测和天气可视化是一个基于python机器学习(ml)的长春地区的天气预报项目,它实现了天气数据的爬取,预测和可视化。
项目结构如下:
天气数据的来源
GetData文件使用python爬虫技术,爬取长春和全国的天气信息数据
爬取网站:http://tianqi.2345.com/wea_history/54161.htm
ProcessDate文件对爬取的天气数据进行了预处理
几个CSV文件保存的是爬取后并经过处理的数据
天气数据的预测
GetModel文件通过训练预测模型来预测长春近一周的天气,该文件利用Joblib将模型保存到本地
Main文件是项目主文件,通过运行该文件即可运行整个项目,该文件前部分获取保存到本地的预测模型来进行预测,并将预测结果打印到控制台
天气数据的可视化
Main文件后部分实现了天气数据的可视化
二、详细介绍
本项目分为三个部分,即爬取和处理数据,数据预测(包含评价方法)和数据可视化
1. 爬取和处理数据
数据爬取代码:
resq = requests.get(url, headers=headers, params=params)
data = resq.json()["data"]
# data frame
df = pd.read_html(data)[0]
即使用python爬取网站的json数据
数据预处理:
获取到的天气信息包括最高温,最低温都不是int格式的数字,通过对数据截取,将部分指标的数据变换为int类型
并对缺失值进行了处理
my_imputer = SimpleImputer()
imputed_X_train = pd.DataFrame(my_imputer.fit_transform(X_train))
imputed_X_valid = pd.DataFrame(my_imputer.transform(X_valid))
通过SimpleImputer ,可以将现实数据中缺失的值通过同一列的均值、中值、或者众数补充起来,本项目使用了SimpleImputer的fit_transform对缺失值进行填充
2. 数据预测和模型评价方法
预测数据采用了机器学习算法——线性回归
模型使用过程:
A. 提取数据
获取测试集、训练集、验证集
[X_train, X_valid, y_train, y_valid, X_test] = ProcessData.ProcessData()
其中ProcessData()函数里使用了如下语句:
X_train, X_valid, y_train, y_valid = train_test_split(X, y, train_size=0.8, test_size=0.2, random_state=0)
train_test_split()是sklearn包的model_selection模块中提供的随机划分训练集和验证集的函数;使用train_test_split函数将完整的数据集和验证集以同等的比例分成2组不同的数据集和验证集
B. 训练模型
选择了随机树森林模型(randomforest),然后用fit来训练模型
# 随机树森林模型
model = RandomForestRegressor(random_state=0, n_estimators=1001)
# 训练模型
model.fit(X_train, y_train)
C. 根据数据预测
# 最终预测结果
preds = model.predict(r[1])
D. 模型评价方法
# 用MAE评估
score = mean_absolute_error(y_valid, preds)
对于评估模型准确率的评价方法,本处使用的是MAE,也就是mean_absolute_error 平均绝对误差,就每个预测的数值离正确数值错误数值的平均数
假设:
平均绝对误差(Mean Absolute Error)等于:
范围[0,+∞),当预测值与真实值完全吻合时等于0,即完美模型;误差越大,该值越大。在本项目中:
MAE: 3.8629148629148626
3. 数据可视化
项目利用了pyecharts框架来实现绘图功能,实现天气的可视化
pyecharts是基于Echart图表的一个类库,而Echart是百度开源的一个可视化JavaScript库。
pyecharts主要基于web浏览器进行显示,绘制的图形比较多,包括折线图、柱状图、饼图、漏斗图、地图、极坐标图等,代码量很少,而且很灵活,绘制出来的图形很美观。
导入相关的包如下:
from pyecharts.charts import Bar, Grid, Line, Tab
from pyecharts.components import Table
from pyecharts.options import ComponentTitleOpts
from pyecharts.charts import Map
from pyecharts import options as opts
三、项目展示
运行main.py,运行结果如下:
同时会生成一个html网页,名为天气网
网页内容如下:
1. 今日长春
首页今日长春以表格形式展现了长春当日的天气信息,包括日期,最高温,最低温,天气,风力风向,空气质量指数。
2. 未来长春
以柱形图和折线图显示未来一星期长春天气的预测内容,包括最高温,最低温,空气质量指数。
3. 近一周长春
以柱形图和折线图显示最近一星期长春的气温(最高温,最低温)和空气质量指数。
4. 今日中国天气
以表格形式展现中国今日各个省的天气情况,实际显示的数据是该省的省会城市的天气信息。
5. 今日全国空气质量
以地图形式展现中国今日各个省的的空气质量指数
当鼠标移动到某个省上,会显示该省的空气质量:
四、存在的问题及未来改进的方向
存在的问题:
天气信息内容少,爬取数据只包含5个指标
天气预测内容少,只对最高温,最低温,空气质量指标这三个数值指标进行预测,对如天气这类文字类型没有进行处理和预测
预测模型准确率不够高,评估指标MEA为3.8629148629148626,还有提升空间,尽量减少预测值和实际值的误差
网页不能进行交互,如切换城市
对应改进方向
更换爬虫目标网站,获取更多天气信息指标,如降雨量
增进预测内容,提高数据多元化
可以改预测模型为RGBoost或用tensorflow来提高模型的准确率,从而降低MAE
可以结合html、js等前端技术来实现一个页面可以交互的网页
https://gitee.com/elegant_Code/weather
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
项目概述:本项目是一项基于Python语言的机器学习天气预测和数据可视化课程设计。项目主要运用Python编程语言,结合HTML进行前端展示,共包含24个文件,其中包含了12张jpg格式的图像文件,4个Python源代码文件,4个csv格式的数据文件,以及用于版本控制的.gitignore文件、项目说明的md文件、数据序列化的pkl文件和1个HTML文件。 项目目的:通过机器学习算法对天气数据进行处理和分析,实现天气的预测功能,并通过数据可视化技术将复杂的气象数据以直观的方式展现给用户。 技术构成: - Python:核心编程语言,用于实现机器学习算法及数据处理。 - HTML:用于构建前端展示页面,提供用户友好的交互界面。 文件结构概览: - 图片文件:12个jpg文件,用于展示数据可视化结果。 - 源代码文件:4个py文件,包含机器学习模型构建、数据预处理等核心逻辑。 - 数据文件:4个csv文件,存储原始天气数据和预测结果。 - 配置文件:.gitignore文件,用于定义哪些文件和目录应该被Git忽略。 - 项目文档:1个md文件,包含项目详细说明和操作指南。 - 数据序列化文件:1个pkl文件,用于保存模型和数据的序列化格式。 - 前端页面:1个html文件,用于展示天气预测结果和交互界面。 本项目不仅提供了一种高效的天气预测解决方案,同时也展示了Python在数据处理、机器学习以及数据可视化方面的强大能力。
资源推荐
资源详情
资源评论
收起资源包目录
upload.zip (24个子文件)
image
wps23.jpg 196KB
wps19.jpg 200KB
wps22.jpg 144KB
wps20.jpg 99KB
wps25.jpg 132KB
wps26.jpg 156KB
wps21.jpg 132KB
wps28.jpg 15KB
wps17.jpg 31KB
wps18.jpg 161KB
wps27.jpg 26KB
wps24.jpg 146KB
基于Python的天气预测和可视化
date_valid.csv 464B
date_train.csv 456B
main.py 10KB
ProcessData.py 6KB
date_test.csv 427B
天气网.html 42KB
GetData.py 4KB
china_today.csv 2KB
Model.pkl 1.37MB
GetModel.py 833B
.gitignore 350B
readme.txt 6KB
共 24 条
- 1
资源评论
- 体重有点陈2024-04-13资源很赞,希望多一些这类资源。
- weixin_553734182024-04-19感谢大佬,让我及时解决了当下的问题,解燃眉之急,必须支持!
- 零.7752024-05-30资源不错,对我启发很大,获得了新的灵感,受益匪浅。
- qw_69189660112024-09-29这个资源总结的也太全面了吧,内容详实,对我帮助很大。
- 2301_762229722024-04-03感谢资源主的分享,这个资源对我来说很有用,内容描述详尽,值得借鉴。
沐知全栈开发
- 粉丝: 5705
- 资源: 5215
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功