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

### 回归问题预测

• 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)

### 大家都在看

• #### 基于pytorch用yolov5算法实现目标检测与分割

适合新手入门玩一下目标的检测和分割，大概了解yolov5算法的一些基本操作。 1.1 课题背景 目标检测的目的是判断在单张图片或者连续图片（视频）中，感兴趣的单个或者 多个物体是否…

人工智能 2023年7月6日
0168
• #### TensorFlow的自定义算子实现

在学习中涉及到了TensorFlow的自定义算子实现，现将整个工程中的一些思考写下来，有问题的部分也请大家指正！！！ OP和Kernel是TensorFlow框架最重要的两个概念，…

人工智能 2023年5月25日
0137
• #### 使用SVM对鸢尾花数据进行分类

numpy中含逗号的切片： 对于普通的切片： list名[首：尾：步长] numpy中的切片： 数组名[首：尾，首：尾：步长]（逗号用于区分维度，注意：逗号前面不能限定步长） 什么…

人工智能 2023年6月16日
0172
• #### OpenCV-Python实战（19）——OpenCV与深度学习的碰撞

[ _OpenCV_是一款非常强大的计算机视觉库，其中包含了很多功能强大的图像处理和计算机视觉算法。而在这个系列的第三篇文章中，我们将重点介绍如何在 _OpenCV_中绘制图形和文…

人工智能 2023年6月18日
090
• #### G

[\sum\limits_{x=1}^{n-2} \sum\limits_{y=1}^{m-2} \sum\limits_{i=1}^{n-x-1} \sum\limits_{j=…

人工智能 2023年6月4日
0218
• #### 一本通1072；鸡尾酒疗法

代码如下； #include using namespace std; int main() { int n,…

人工智能 2023年6月28日
0173
• #### Convolutional网络中的批标准化是什么？它对网络训练有什么帮助

Convolutional网络中的批标准化是什么？ 在深度学习中，Convolutional Neural Network (CNN) 是一种普遍应用于计算机视觉领域的神经网络架构…

人工智能 2024年1月3日
0131
• #### 【无标题】

高斯过程回归算法及其在控制中的应用 高斯过程简介和分析 * 高斯过程回归的直观解释 – 多元变量的联合高斯分布 近似估计未知区域的值 – 先验假设条件 2….

人工智能 2023年6月17日
0141
• #### OLAP多维分析

数据立方体(Data Cube)是一种多维模型的表现。当然，这并不是指这个数据只有三维，数据立方体可以被看成是具有多维度的数据。 我们以一个例子来理解数据立方体 cube。上图是数…

人工智能 2023年7月17日
0142
• #### 什么是工业元宇宙？

第一部分：工业元宇宙的概念 中国信通院池程提出精彩的观点：元宇宙不是一种技术，而是一组技术概念的集合，它基于互联网而生，是数字信息高度发展的产物。元宇宙是在两个背景下出现的，一个是…

人工智能 2023年7月17日
0137
• #### 机器学习与数据挖掘

写在前面，本文主要以李航老师的《统计学习方法》内容为主，穿插数据挖掘知识，持续更新ing！ 总结比较 1.1机器学习和数据挖掘的关系 机器学习是数据挖掘的重要工具。 数据挖掘不仅仅…

人工智能 2023年7月18日
0143
• #### 使用PyTorch搭建VGG模型进行图像风格迁移实战（附源码和数据集）

需要源码和图片集请点赞关注收藏后评论区留言或者私信~~~ 一、VGG模型 VGG模型是科学家们提出的图像分类模型，这一模型采用了简单粗暴的堆砌3×3卷积层的方式构建模型，并花费大量…

人工智能 2023年6月28日
0134
• #### Raki的读paper小记：ELECTRA: PRE-TRAINING TEXT ENCODERS AS DISCRIMINATORS RATHER THAN GENERATORS

Abstract & Introduction & Related Work 研究任务 预训练语言模型 已有方法和相关工作 面临挑战 虽然它们在转移到下游的NLP任…

人工智能 2023年5月28日
0149
• #### BERT模型—4.BERT模型在关系分类任务上的微调

文章目录 * – + 引言 + 一、项目环境配置 + 二、数据集介绍 + 三、代码介绍 + * 1.Focal loss损失函数 + 四、测试结果 + * 1.代码运行…

人工智能 2023年7月3日
0188
• #### 深度强化学习-DDPG算法原理与代码

深度强化学习-DDPG算法原理与代码 引言 1 DDPG算法简介 2 DDPG算法原理 2.1 经验回放 2.2 目标网络 2.2.1 算法更新过程 2.2.2 目标网络的更新 2…

人工智能 2023年6月26日
0175
• #### 开放式的目标检测

最近做了一个很有意思的工作，可以总结为使用自然语言描述的目标的目标检测。预期使用场景是视频理解，语义检索这一类的场景。 传统的目标检测技术，大概可以归纳为，采集数据、标注目标类别和…

人工智能 2023年7月9日
0143