【深度学习——天气预测】

🍨 本文为🔗365天深度学习训练营 中的学习记录博客
🍦 参考文章:第R3周:天气预测(训练营内部可读)
🍖 作者:K同学啊

🍺我的环境:

  • 语言环境:Python3.7
  • 编译器:Spyder
  • 深度学习框架:TensorFlow 2.1.0
  • 数据地址:🔗百度网盘

一、导入数据

1、数据导入

import numpy as np
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
import warnings
warnings.filterwarnings('ignore')

from sklearn.model_selection import train_test_split
from sklearn.preprocessing import MinMaxScaler
import tensorflow as tf
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense, Activation, Dropout
from tensorflow.keras.callbacks import EarlyStopping


data = pd.read_csv(r"D:\桌面\深度学习数据\天气识别\weatherAUS.csv")
df = data.copy()
print(data.head())

实验结果图:
在这里插入图片描述

2、查看数据描述信息

print(data.describe())

数据描述信息

3、查看数据类型

print(data.dtypes)

数据类型

4、数据类型转换

data['Date'] = pd.to_datetime(data['Date'])
print(data['Date'])

数据类型转换

5、数据分组聚合

data['year'] = data['Date'].dt.year
data['Month'] = data['Date'].dt.month
data['day'] = data['Date'].dt.day
print(data.head())

数据分组聚合

6、删除列

data.drop('Date', axis = 1, inplace = True)
print(data.columns)

删除后的列

二、探索式数据分析

1、数据相关性探索

plt.figure(figsize = (15, 13))
#data.corr()表示了data中的两个变量之间的相关性
ax = sns.heatmap(data.corr(), square = True, annot = True, fmt = '.2f')
ax.set_xticklabels(ax.get_xticklabels(), rotation 
### 使用深度学习模型进行天气预报的方法 #### 方法概述 深度学习模型在天气预报中的应用主要集中在以下几个方面: - **数据预处理**:将原始气象数据转换成适合输入给深度学习算法的形式。这一步骤通常涉及特征提取和降维操作,目的是减少冗余信息并突出有用的信息[^3]。 - **模式识别**:利用大量历史气象记录作为训练样本,使模型学会识别不同类型的天气现象及其演变规律。这一过程中,卷积神经网络(CNNs)常被用来捕捉空间上的关联性;循环神经网络(RNNs),尤其是长短时记忆(LSTM)单元,则擅长于时间序列数据分析,有助于提高短期至中期天气预报精度[^2]。 - **结果可视化**:为了让专业人士更容易理解和接受预测成果,有必要开发相应的工具来呈现这些复杂的数据。比如绘制温度分布图、降雨量变化趋势线等直观形式可以帮助用户快速获取所需情报[^1]。 #### 实际案例分析 一个典型的例子是在极端天气事件预警系统的构建上采用了上述提到的技术组合。具体来说,研究人员先是对多年累积下来的地面观测站资料进行了清洗整理,并从中挑选出最具代表性的变量组合作为输入特征向量。接着引入了基于LSTM架构的时间序列预测模块负责对未来几天内的气温波动做出估计。与此同时,还特别设计了一套针对强降水过程监测机制——它不仅依赖于常规的大气物理参数,还会综合考虑地形地貌因素的影响程度。最终得到的结果会被自动转化为易于解读的地图样式界面供决策者参考使用。 ```python import numpy as np from keras.models import Sequential from keras.layers import LSTM, Dense def create_lstm_model(input_shape): model = Sequential() model.add(LSTM(50, activation='relu', input_shape=input_shape)) model.add(Dense(1)) model.compile(optimizer='adam', loss='mse') return model # 假设X_train是形状为(n_samples, n_timesteps, n_features)的三维数组, # y_train是一维目标值列表。 model = create_lstm_model((n_timesteps, n_features)) history = model.fit(X_train, y_train, epochs=200, batch_size=72, validation_split=0.2) predictions = model.predict(X_test) ```
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值