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

### 回归问题预测

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

### 大家都在看

• #### 图像的三次B样条插值原理与C++实现

01 前言 前文我们讲过图像中最常用的三种插值算法： 最邻近插值、双线性插值、双三次插值。 常见图像插值算法的原理与C++实现https://mp.weixin.qq.com/s/…

人工智能 2023年5月26日
0154
• #### 【详解】BiLSTM+CRF模型

目录 * – + * 1 BiLSTM-CRF模型用途 * 2 BiLSTM-CRF模型介绍 * – 2.1 数据标签及模型架构 – + 2.1…

人工智能 2023年6月24日
0200
• #### 收到一封CTO来信，邀约面试机器学习工程师

大家好，我是北海很少登陆 Gmail，前天收验证码登了一下，发现居然收到一封某初创公司CTO的来信. 我在Github上看到了您的资料觉得很有意思，请问您是否考虑我们公司的全职工作…

人工智能 2023年6月4日
0149
• #### Pandas常用累计、同比、环比等统计方法实践案例

统计表中常常以本年累计、上年同期（累计）、当期（例如当月）完成、上月完成为统计数据，并进行同比、环比分析。如下月报统计表所示样例，本文将使用Python Pandas工具进行统计。…

人工智能 2023年6月11日
0189
• #### Python指定使用gpu

在大型机构分配的服务器集群中，需要使用GPU的程序默认都会在第一张卡上进行，如果第一张卡倍别人占用或者显存不够的情况下，程序就会报错说没有显存容量，所以能够合理地利用GPU资源能帮…

人工智能 2023年6月16日
0135
• #### MySQL-5-TCL,视图,变量,存储过程和函数,流程控制

TCL：Transaction Control Language事务控制语言 TCL 事务的特点 acid: 原子性(Atomicity)，一致性(Consistency)，隔离性…

人工智能 2023年6月4日
0137
• #### LeetCode — 1436. Destination City 解题报告

You are given the array paths, where paths[i] = [cityAi, cityBi] means there exists a dire…

人工智能 2023年6月28日
0131
• #### Faceswap文档之—使用手册

前言 本篇博客，记录了使用github上的明星项目faceswap的过程，和一些踩坑记录。这个项目可以很好的实现视频换脸，感兴趣同学可以试一下。说明：本篇文章我将项目部署在linu…

人工智能 2023年5月23日
0238
• #### 视觉机器学习20讲-MATLAB源码示例（1）-Kmeans聚类算法

视觉机器学习20讲-MATLAB源码示例（1）-Kmeans聚类算法 1. K-means聚类算法 2. Matlab仿真 3. 仿真结果 4. 小结 ; 1. K-means聚类…

人工智能 2023年6月2日
0143
• #### Python二手房价格预测（二）——数据处理及数据可视化

系列文章目录 数据获取部分：Python二手房价格预测（一）——数据获取 文章目录 系列文章目录 一、数据清洗 二、数据可视化 总结 一、数据清洗 1、先导入需要的库： impor…

人工智能 2023年6月19日
0198
• #### 前向传播与反向传播

前向传播和反向传播介绍 笔记备份：d2l-ai-self-notes/forward&backPropagation.jpg at master · KpiHang/d2l…

人工智能 2023年6月4日
0147
• #### 深度学习&故障诊断初学者 – 学习路线

针对该领域初学者，经常有人一头雾水，不知如何学习，因此本文提供了一个学习路线注：以下路线适合使用深度学习做故障诊断的初学者(建议使用Python、pytorch) 深度学习+故障诊…

人工智能 2023年7月29日
0166
• #### RCNN原文理解与代码分析

RCNN是比较老的行人检测算法，用到的各项技术也都是很古老的方法，对于算法急速更新的现状来看，它的作用不大，但是却可以帮助我们入门行人检测算法。充分理解它的每个过程可以帮助我们对行…

人工智能 2023年7月28日
0132
• #### Pycharm的安装与激活（超详细）

一、前言 Pycharm是Python的集成开发环境，本文将介绍如何安装Pycharm并使用学生邮箱免费激活。 二、实验环境 本实验是在Windows 10系统下进行Pycharm…

人工智能 2023年7月4日
0171
• #### pip安装YOLOv5

环境 ubuntu 18.04 64bit GTX 1070Ti anaconda with python 3.8 pytorch 1.7.1 cuda 10.1 yolov5 5…

人工智能 2023年5月26日
0144
• #### 机器学习中的数学——距离定义（十一）：汉明距离（Hamming Distance）

PCL 可以使用pcl::search::KdTree实现点云的匹配，然后利用 计算匹配点对。以下是一个示例代码： cpp #include</p> <p>…

人工智能 2023年7月26日
0119