R3 天气预测

news2024/9/22 2:19:02

天气预测

  • 🍨 本文为🔗365天深度学习训练营 中的学习记录博客
  • 🍖 原作者:K同学啊

这周学习对天气预测的数据分析与模型训练,创建一个用于预测未来是否下雨的机器学习模型。

数据导入与预处理

首先,我们从CSV文件中导入数据,并进行了初步检查。为了便于时间序列分析,我们将日期列转换为日期格式,并提取了年、月、日的信息。接着,删除了原始的日期列。

data = pd.read_csv("./data/weatherAUS.csv")
data['Date'] = pd.to_datetime(data['Date'])
data['year'] = data['Date'].dt.year
data['Month'] = data['Date'].dt.month
data['day'] = data['Date'].dt.day
data.drop('Date', axis=1, inplace=True)

数据可视化

通过热力图和计数图分析数据的相关性和分布情况。

plt.figure(figsize=(15,13))
ax = sns.heatmap(numeric_data.corr(), square=True, annot=True, fmt='.2f')
plt.figure(figsize = (4, 3))
sns.countplot(x = "RainTomorrow", data = data)
sns.scatterplot(data=data,x='Pressure9am',y='Pressure3pm',hue='RainTomorrow')

在这里插入图片描述

缺失值处理

对数据集中的缺失值进行处理。数值型数据用中位数填充,分类数据用众数填充。

for col in lst:
    data[col] = data[col].fillna(pd.Series(np.random.choice(fill_list, size=len(data.index))))
for i in object_cols:
    data[i].fillna(data[i].mode()[0], inplace=True)
for i in num_cols:
    data[i].fillna(data[i].median(), inplace=True)

特征工程与数据集划分

对分类特征进行标签编码,并对数据集进行归一化处理,随后划分训练集和测试集。

label_encoder = LabelEncoder()
for i in object_cols:
    data[i] = label_encoder.fit_transform(data[i])
X_train, X_test, y_train, y_test = train_test_split(X,y,test_size=0.25,random_state=101)
scaler = MinMaxScaler()
scaler.fit(X_train)
X_train = scaler.transform(X_train)
X_test  = scaler.transform(X_test)

模型构建与训练

使用Keras构建一个深度神经网络模型,并通过早停机制来防止过拟合。

model = Sequential()
model.add(Dense(units=32, activation='tanh'))
model.add(Dense(units=24, activation='tanh'))
model.add(Dense(units=20, activation='tanh'))
model.add(Dropout(0.5))
model.add(Dense(units=12, activation='tanh'))
model.add(Dropout(0.2))
model.add(Dense(units=1, activation='sigmoid'))

optimizer = tf.keras.optimizers.Adam(learning_rate=1e-4)
model.compile(loss='binary_crossentropy', optimizer=optimizer, metrics=["accuracy"])

early_stop = EarlyStopping(monitor='val_loss', mode='min', min_delta=0.001, verbose=1, patience=25, restore_best_weights=True)

model.fit(x=X_train, y=y_train, validation_data=(X_test, y_test), verbose=1, callbacks=[early_stop], epochs=10, batch_size=32)

模型评估

训练完模型后,使用准确率和损失曲线图评估模型性能。

acc = model.history.history['accuracy']
val_acc = model.history.history['val_accuracy']
loss = model.history.history['loss']
val_loss = model.history.history['val_loss']

plt.figure(figsize=(14, 4))
plt.subplot(1, 2, 1)
plt.plot(epochs_range, acc, label='Training Accuracy')
plt.plot(epochs_range, val_acc, label='Validation Accuracy')
plt.legend(loc='lower right')
plt.title('Training and Validation Accuracy')

plt.subplot(1, 2, 2)
plt.plot(epochs_range, loss, label='Training Loss')
plt.plot(epochs_range, val_loss, label='Validation Loss')
plt.legend(loc='upper right')
plt.title('Training and Validation Loss')
plt.show()

训练结果

![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/c9eb9d73be54432584a0989059019d26.pn
在这里插入图片描述

总结

这周学习了如何从头开始进行数据清洗、特征工程和深度学习模型训练的全过程。对数据处理有了更深了了解,至此循环神经网路学习结束。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2102786.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

springboot中会话技术方案cookie/session/jwt

会话跟踪 - 传统方案 cookie http协议支持的技术缺点 移动端app中不支持不安全,用户可以自己禁用cookiecookie不能跨域 session 存储在服务端,安全缺点 服务端集群的场景下,无法使用sessioncookie的缺点 会话跟踪 - 现代方案 jwt令牌 优…

华为云征文|华为云Flexus X实例部署k3s与kuboard图形化管理工具

华为云征文|华为云Flexus X实例部署k3s与kuboard图形化管理工具 什么是华为云Flexus X实例 华为云Flexus X实例云服务是新一代开箱即用、体验跃级、面向中小企业和开发者打造的高品价比云服务产品。Flexus云服务器X实例是新一代面向中小企业和开发者打造的柔性算力…

Linux服务器CPU和IO的监控利器-iostat简介

目录 一.下载方式 1.1Debian和Ubuntu系统的的下载方式 1.2Centos,RHEL和Fedoar系统的下载方式 二.基本用法说明 三.范例 3.1显示所有设备的负载情况 3.2每隔4秒显示所有设备的负载情况 3.2.1定时不定次显示所有信息 3.2.2定时定次显示所有信息 3.3显示磁盘…

使用AI写WebSocket知识是一种怎么样的体验?

一、WebSocket基础知识 1. WebSocket概念 1.1 为什么会出现WebSocket 一般的Http请求我们只有主动去请求接口,才能获取到服务器的数据。例如前后端分离的开发场景,自嘲为切图仔的前端大佬找你要一个配置信息的接口,我们后端开发三下两下开…

Edge PDF 关闭 提供支持的应用Adobe Acrobat

Edge 在浏览PDF时启用 Adobe Acrobat支持后,对一些长PDF会出现上下滚动会出现无法正常显示PDF内容的情况。在关闭了Adobe Acrobat计算支持后,问题得到解决。关闭Adobe Acrobat的方式如下: 1. Edge地址栏输入 edge://flags ,进入如…

Java 入门指南:Java 并发编程 —— 并发容器 ConcurrentSkipListSet

SkipList SkipList(跳表)是一种有序链表加多级索引数据结构,基于有序的单链表,类似于平衡二叉树,但其查找、插入和删除操作的时间复杂度都是 O(logN),并且不需要进行旋转平衡等复杂操作。 跳表利用二分查…

【滑动窗口】将 x 减到 0 的最小操作数

将 x 减到 0 的最小操作数 将 x 减到 0 的最小操作数题目思路讲解代码书写 将 x 减到 0 的最小操作数 题目 题目链接: 将 x 减到 0 的最小操作数 思路讲解 按照题目的思路去做这一题是非常恶心的, 因此我们采用正难则反思路. 将问题转换为: 求中间某一个最长的数组长度, 使…

mybatis搭建,参数传递,增删改查事务管理

1.mybatis概述 原是Apache的一个开源项目iBatis, 2010年6月这个项目由Apache Software Foundation 迁移到了 Google Code,随着开发团队转投Google Code 旗下, iBatis3.x正式更名为MyBatis。 MyBatis 是一款优秀的持久层框架。 框架就是对技术的封装&am…

Spring源码之reader、scanner

目录 1.Spring的整体启动流程 2.reader 3.Scanner ApplicationContext的三种加载应用上下文的方式(创建Spring容器): AnnotationConfigApplicationContextClassPathXmlApplicationContextFileSystemXmlApplicationContext 1.Spring的整体…

SprinBoot+Vue阅读交流微信小程序的设计与实现

目录 1 项目介绍2 项目截图3 核心代码3.1 Controller3.2 Service3.3 Dao3.4 application.yml3.5 SpringbootApplication3.5 Vue3.6 uniapp代码 4 数据库表设计5 文档参考6 计算机毕设选题推荐7 源码获取 1 项目介绍 博主个人介绍:CSDN认证博客专家,CSDN平…

观测云核心技术解密:eBPF Tracing 实现原理

前言 eBPF 是一种强大的内核技术,允许在内核中安全地执行自定义代码。通过 eBPF,开发者可以在不修改内核源码的情况下,对内核功能进行扩展和监控。eBPF Tracing 利用这一技术,对系统调用、内核函数等进行跟踪,从而实现…

X86架构(六)——移位指令与无条件转移指令

移位指令 shr 逻辑右移 逻辑右移指令会将操作数连续地向右移动指定的次数,移出的比特被移到标志寄存器的CF位,左边空出来的位置用0填充 ;目的操作数可以是8位或16位的通用寄存器或者内存单元 ;源操作数可以是数字1、8位立即数或者寄存器CL shr r/m8, …

7、Django Admin删除默认应用程序

admin文件 from django.contrib.auth.models import User, Groupadmin.site.unregister(User) admin.site.unregister(Group) 显示效果: 前 后

使用vscode debug cpp/python混合编程的程序(从python调用的C++编译的dll)

使用vscode debug cpp/python混合编程的程序(从python调用的C编译的dll) 1. 安装插件 Python C Debugger https://marketplace.visualstudio.com/items?itemNamebenjamin-simmonds.pythoncpp-debug 2. 在.vscode/launch.json中增加配置 拷贝自 https:…

K8S日志收集

本章主要讲解在 Kubernetes 集群中如何通过不同的技术栈收集容器的日志,包括程序直接输出到控制台日志、自定义文件日志等。 一、有哪些日志需要收集 为了更加方便的处理异常,日志的收集与分析极为重要,在学习日志收集之前,需要知…

矮草坪渲染尝试

本来说写unity里的,由于three测试方便,先试试three 这个图片是目标效果 可以看见草很矮,很密集,如果用instance来绘制的话,遭不住的 忽然发现这个效果很像绒毛效果 于是找了博客康康 https://zhuanlan.zhihu.com/p/256…

第二证券:涨停潮!传手机将使用钛金属外壳?

今天早盘,银行股再度重挫,导致上证指数、上证50纷乱创出阶段性新低,上证指数跌破2800点,小盘成长股则大面积反弹,创业板指、科创50等股指飘红。 盘面上,新式烟草、钛金属、锂矿、玻璃基板等板块涨幅居前&a…

glsl着色器学习(七)

先了解一个矩阵库twgl/m4 是一个4x4 矩阵数学转换函数的库 normalize(a, dst) 将一个向量除以它的欧几里得长度,归一化后返回参数"a"是一个vec3(三维向量)参数"dst"是用来接收结果的,如果不传,则…

【嵌入式体系结构复习资料】

选择: 1. 以下哪个不是嵌入式系统设计的主要目标?( D ) A.低成本 B.低功耗 C.实时要求高 D.超高性能 2. 嵌入式系统有别于其他系统的最大特点是(A )。 A.嵌入专用 B.高可靠 C.…

集成电路学习:什么是LCD液晶显示器

一、LCD:液晶显示器 LCD,全称Liquid Crystal Display,即液晶显示器,是一种平面超薄的显示设备。它由一定数量的彩色或黑白像素组成,放置于光源或者反射面前方。LCD的主要原理是以电流刺激液晶分子产生点、线、面配合背…