目录
引言
在 Python 中使用 LSTM 预测新型冠状病毒每日确诊病例。参考原文
一、探索数据集
确诊人数数据网址下载该文件 time_series_covid19_confirmed_global.csv
1、导入相关库文件
import torch # 导入PyTorch库,用于构建和训练深度学习模型
import os # 导入os库,用于与操作系统交互
import numpy as np # 导入NumPy库,用于数值计算
import pandas as pd # 导入Pandas库,用于数据处理和分析
from tqdm import tqdm # 导入tqdm库,用于显示进度条
import seaborn as sns # 导入Seaborn库,用于数据可视化
from pylab import rcParams # 导入rcParams对象,用于设置图形参数
import matplotlib.pyplot as plt # 导入Matplotlib库,用于绘图
from matplotlib import rc # 导入rc对象,用于自定义Matplotlib的默认配置
from sklearn.preprocessing import MinMaxScaler # 导入MinMaxScaler,用于数据标准化
from pandas.plotting import register_matplotlib_converters # 导入register_matplotlib_converters,用于处理时间序列数据
from torch import nn, optim # 导入神经网络和优化器模块
# 设置Matplotlib使用的后端为TkAgg
import matplotlib
matplotlib.use('TkAgg')
# 设置Seaborn的样式和调色板
sns.set(style='whitegrid', palette='muted', font_scale=1.2)
# 自定义颜色调色板
HAPPY_COLORS_PALETTE = ["#01BEFE", "#FFDD00", "#FF7D00", "#FF006D", "#93D30C", "#8F00FF"]
# 设置Seaborn的调色板
sns.set_palette(sns.color_palette(HAPPY_COLORS_PALETTE))
# 设置Matplotlib图形的大小
rcParams['figure.figsize'] = 14, 10
# 注册Matplotlib转换器
register_matplotlib_converters()
# 设置随机种子,以确保结果可复现
RANDOM_SEED = 42
np.random.seed(RANDOM_SEED)
torch.manual_seed(RANDOM_SEED)
2、导入每日确诊人数数据集
读取COVID-19全球累计确诊病例数据集
# 数据集包含省、国家/地区、纬度和经度以及病例数是累积的。
df = pd.read_csv('./data/time_series_covid19_confirmed_global.csv')
print(df.head())
3、清洗每日确诊人数数据集
去除前四列无用数据,保留每日累计确诊病例数据
# 去掉前四列我们不需要的数据,通过切片直接获取第五列之后的数据
df = df.iloc[:, 4:]
print(df.head())
4、每日累计确诊的人数及其数据集可视化
对每日累计确诊病例进行求和,转换索引为日期时间格式
# 我们对所有行求和,这样就得到了每日累计案例
daily_cases = df.sum(axis=0)
daily_cases.index = pd.to_datetime(daily_cases.index)
print(daily_cases.head())
plt.plot(daily_cases)
plt.title("Cumulative daily cases")
plt.show()