# 搭建神经网络进行气温预测

### 回归问题预测

• Tensordlow2版本中将大量使用keras的简介建模方法
import numpy as np
import pandas as pd
import marplotlib.pyplot as plt
import tensorflow as tf
from tensorflow.keras import layers
import tensorflow.keras
import warnings
warnings.filterwarnings("ignore")
%matplotlib inline

features = pd.read_csv('temps.csv')



• year,month,day,week 分别表示具体的时间
• temp_2：前天的最高气温
• temp_1：昨天的最高气温
• average：在历史中，每年这一天的平均最高温度值
• actual：这就是我们的标签值了，当天的真实最高温度
• friend：这一列可能是凑热闹的，你的朋友猜测的可能值，咱们不管它就好
print('数据维度:', features.shape)



import datetime

years = features['year']
months = features['month']
days = features['day']

dates = [str(int(year)) + '-' + str(int(month)) + '-' + str(int(day)) for years, month, day in zip(years, months, days)]
dates = [datetime.datetime.strptime(date, '%Y-%m-%d') for date in dates]

dates[:5]


[datatime.datetime(2016, 1, 1, 0, 0),
datatime.datetime(2016, 1, 2, 0, 0),
datatime.datetime(2016, 1, 3, 0, 0),
datatime.datetime(2016, 1, 4, 0, 0),
datatime.datetime(2016, 1, 5, 0, 0)]


plt.style.use('fivethirtyeight')

fig, ((ax1, ax2), (ax3, ax4)) = plt.subplots(nrows=2, cols=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['tenp_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')




features = pd.get_dumies(features)


labels = np.array(features['actual'])

features = features.drop('actual', axis=1)

feature_list = list(features.columns)

features = np.array(features)

features,shape


(348, 14)

from sklearn import preprocessing
input_features = preprocessing.StandardScaler().fit_transform(features)


### 基于Keras构建网络模型

[En]

Some common parameters have been listed, as follows:

• activation：激活函数的选择，一般常用relu
• kernel_initializer, bias_initializer：权重与偏置参数的初始化方法，有时候不收敛换种初始化突然好使了…玄学
• kernel_regularizer, bias_regularizer：要不要加入正则化
• inputs：输入，可以自己制定，也可以让网络自动选
• units：神经元个数

model = tf.keras.Sequential()


compile 相当于对网络进行配置，指定好优化器和损失函数等


model.compile(optimizer=tf.keras.optimizers.SGD(0.001),
loss='mean_squared_error')

model.fit(input_features, labels, validation_split=0.25, epochs=10, batch_size=64)



[En]

It seems that there are some problems. The model is not completely convergent. Can you adjust some parameters?

model.summary()


### 更改初始化方法后

model = tf.keras.Sequential()

model.compile(optimizer=tf.keras.optimizers.SGD(0.001),
loss='mean_squared_error')
model.fit(input_features, labels, validation_split=0.25, epochs=100, batch_size=64)


### 加入正则化惩罚项

model = tf.keras.Sequential()

model.compile(optimizer=tf.keras.optimizers.SGD(0.001),
loss='mean_squared_error')
model.fit(input_features, labels, validation_split=0.25, epochs=100, batch_size=64)


### 预测模型结果

predict = model.predict(input_features)

predict.shape


(348, 1)

### 测试结果并进行展示


dates = [str(int(year)) + '-' + str(int(month)) + '-' + str(int(day)) for years, month, day in zip(years, months, days)]
dates = [datetime.datetime.strptime(date, '%Y-%m-%d') for date in dates]

true_data = pd.DataFrame(data = {'date':dates, 'actual':labels})

months = features[:, feature_list.index('month')]
days = features[:, feature_list.index('day')]
year = features[:, feature_list.index('year')]

test_dates = [str(int(year)) + '-' + str(int(month)) + '-' + str(int(day)) for years, month, day in zip(years, months, days)]

tset_dates = [datetime.datetime.strptime(date, '%Y-%m-%d') for date in dates]

predications_data = pd.DataFrame(data = {'date':dates, 'actual':labels})


plt.plot(ture_data['date'], true_data['actual'], 'b-', label='actual')

plt.plot(predictions_data['data'], predictions_data['prediction'], 'ro', label ='prediction')
plt.xticks(rotation = '60')
plt.legend()

plt.xlabel('Date);plt.ylabel('Maximum Temperature (F)');plt.title('Actual and Predicted Values');


Original: https://blog.csdn.net/qq_51491920/article/details/124830049
Author: -素心向暖
Title: 搭建神经网络进行气温预测

(0)

### 大家都在看

• #### Redis数据库 —- 五种数据类型常用命令汇总

❤️ 作者简介：大家好我是小鱼干儿♛是一个热爱编程、热爱算法的大三学生，蓝桥杯国赛二等奖获得者 🐟 个人主页 ：https://blog.csdn.net/qq_52007481 …

人工智能 2023年7月29日
0147
• #### pointconv pytorch modelnet40 点云分类结果可视化

文章目录 前言 环境 * 服务器环境 本地环境 准备工作 * 下载项目文件 下载数据集 训练 预测 * 下载训练权重 预测 – 部分代码解析 可视化输出 运行预测 查看…

人工智能 2023年7月3日
0216
• #### 使用 Python 实现一个简单的智能聊天机器人

使用 Python 实现一个简单的智能聊天机器人 文章目录 * – + 使用 Python 实现一个简单的智能聊天机器人 + * 简要说明 * 总体的思路 * 需要准备…

人工智能 2023年6月16日
0148
• #### 数据科学必备用Python进行描述性统计数据分析详解

在大数据和人工智能时代，数据科学和机器学习在许多科技领域都变得必不可少。处理数据的一个必要方面是能够直观地描述、总结和表示数据。Python 统计库是全面、流行且广泛使用的工具，可…

人工智能 2023年6月11日
0194
• #### 工程化实践：如何基于自定义数据进行P-tuning实验？如何部署预测？

关注微信公众号：NLP分享汇。【喜欢的扫波关注，每天都在更新自己之前的积累】 · 背景说明 谁说GPT只擅长生成，GPT也能自然语言理解。利用 P-tuning 方法，GPT 的自…

人工智能 2023年5月28日
0176
• #### 使用Anaconda安装tensorflow,keras(Windows)

主要记载一下在windows上安装tensorflow遇到的问题及安装步骤。不要在原来的环境上安装，因为会重新安装一套库如numpy等，会导致下载多个版本。 1. Anaconda…

人工智能 2023年5月26日
0184
• #### 代码随想录算法训练营day52||674. 最长连续递增序列||718. 最长重复子数组||1143.最长公共子序列

思路： 动规五部曲： 1.确定dp数组及其下标的含义： dp[i]: 以下标i为结尾的数组的连续递增的子序列长度为dp[i]。 注意这里定义，一定是以下标i为结尾，并不是一定以下标…

人工智能 2023年6月30日
0165
• #### 机器学习——SVM（支持向量机）与人脸识别

忆如完整项目/代码详见github： https://github.com/yiru1225（转载标明出处 勿白嫖 star for projects thanks） 目录 系列文…

人工智能 2023年7月29日
0132
• #### 梯度消失，梯度爆炸的一些问题/Batch Normalization

1.梯度消失 梯度消失:梯度太小，无法进行参数的更新，梯度小到数据类型无法表示出现NAN 梯度爆炸：梯度太大，大到数据类型无法表示，出现NAN 假设我们有四层极简神经网络：每层只有…

人工智能 2023年5月31日
0222
• #### 基于Pytorch和Vgg16实现图片分类

最近在基于Pytorch框架补一些CNN的基础知识，学会自己写简单的卷积神经网络，从加载数据集到训练模型、测试模型、保存模型和输出测试结果，现在来总结一下。 首先基于Pytorch…

人工智能 2023年7月21日
0173
• #### Android组件化架构搭建

早期单一分层模式 问题一：无论怎么分包，随着项目增大，项目失去层次感。 问题二：包名约束太弱，稍有不注意，就会不同业务包直接互相调用，代码高耦合。 问题三：多人开发在版本管理中，容…

人工智能 2023年6月28日
0171
• #### 《基于Tensorflow的知识图谱实战》 — 使用ResNet作为特征提取层建立模型

⚽开发平台：jupyter lab 🎈运行环境：python3、tensorflow2.x 第2章 tensorflow和keras快速入门 | 使用ResNet作为特征提取层建立…

人工智能 2023年6月4日
0146
• #### 全网唯一，不忽悠的ChatGPT

Datawhale干货 作者：Ben，中山大学，Datawhale成员 最近ChatGPT火出圈了，它和前阵子的Stable Diffusion（AIGC）一样成为社交媒体上人们津…

人工智能 2023年7月31日
0133
• #### 使用Mongoose populate实现多表关联存储与查询，内附完整代码

文章目录 使用Mongoose populate实现多表关联与查询 * 一、 数据模型创建 – 1. 创建一个PersonSchema 2. 创建一个StorySche…

人工智能 2023年7月29日
0114
• #### keras和tensorflow的版本对应关系

keras和tensorflow的版本对应关系，可参考： keras和tensorflow的版本对应关系，可参考： FrameworkEnv name (–env pa…

人工智能 2023年5月26日
0185
• #### 【参赛作品93】openGauss-An Autonomous Database【PVLDB论文阅读分享】

作者：YAN左使 本文基于openGauss在VLDB2021上最新发表的论文《openGauss: An Autonomous Database System》，从学术的角度来探…

人工智能 2023年6月16日
0227