人工智能人工智能气温数据构建模型
Nuyoah 气温预测
通过前天,昨天,和历史上这一天的最高温度,和今天实际的最高温低来进行回归模型的建立
先导包
1 2 3 4 5 6 7 8
| import numpy as np import pandas as pd import matplotlib.pyplot as plt import torch import torch.optim as optim import warnings warnings.filterwarnings("ignore") %matplotlib inline
|
读取一下数据
1 2 3 4
| features = pd.read_csv("data/temps.csv")
features.head()
|
|
year |
month |
day |
week |
temp_2 |
temp_1 |
average |
actual |
friend |
0 |
2016 |
1 |
1 |
Fri |
45 |
45 |
45.6 |
45 |
29 |
1 |
2016 |
1 |
2 |
Sat |
44 |
45 |
45.7 |
44 |
61 |
2 |
2016 |
1 |
3 |
Sun |
45 |
44 |
45.8 |
41 |
56 |
3 |
2016 |
1 |
4 |
Mon |
44 |
41 |
45.9 |
40 |
53 |
4 |
2016 |
1 |
5 |
Tues |
41 |
40 |
46.0 |
44 |
41 |
数据表中
- year,moth,day,week分别表示的具体的时间
- temp_2:前天的最高温度值
- temp_1:昨天的最高温度值
- average:在历史中,每年这一天的平均最高温度值
- actual:这就是我们的标签值了,当天的真实最高温度
- friend:这一列可能是凑热闹的,你的朋友猜测的可能值,咱们不管它就好了
处理时间数据
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| import datetime
years = features["year"] months = features["month"] days = features["day"]
dates = [str(int(year)) + "-" + str(int(month)) + "-" + str(int(day)) for year, month, day in zip(years, months, days)] dates = [datetime.datetime.strptime(date, "%Y-%m-%d") for date in dates]
print(dates[:5])
|
展示数据
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
|
plt.style.use("fivethirtyeight")
fig, ((ax1, ax2), (ax3, ax4)) = plt.subplots(nrows = 2, ncols=2, figsize=(10, 10)) fig.autofmt_xdate(rotation = 45)
ax1.plot(dates,features["actual"]) ax1.set_xlabel(""); ax1.set_ylabel("Temperature"); ax1.set_title("Max Temp")
ax2.plot(dates,features["temp_1"]) ax2.set_xlabel(""); ax2.set_ylabel("Temperature"); ax2.set_title("Previous Max Temp")
ax3.plot(dates,features["temp_2"]) ax3.set_xlabel("Date"); ax3.set_ylabel("Temperature"); ax3.set_title("Two Days Prior Max Temp")
ax4.plot(dates, features["friend"]) ax4.set_xlabel("Date"); ax4.set_ylabel("Temperature"); ax4.set_title("Friend Estimate")
plt.tight_layout(pad=2)
|
使用get_dummies(features) 函数来进行星期转换
1 2 3 4
|
features = pd.get_dummies(features) features.head(5)
|