Tensorflow学习笔记之利用DNNRegressor进行时序预测
Tensorflow高级库的DNNRegressor很方便使用,如同sklearn库一样的简单,只要定义好数据格式,然后fit然后predict就可以了,时序预测中最出名的恐怕lstm了,但是最近在使用它时,对于数据缺失和数据量少的情况感觉预测不是很好,受到同事的启发,利用DNN来进行预测,效果还行,记录下方便以后查看。
实现的语言采用python(“人生苦短,我用python”)。
加载所需要的模块
import os import pandas as pd #读取csv文件 import numpy as np import pytz # 时区处理 import tensorflow as tf from sklearn import preprocessing # 数据标准化 from sklearn.model_selection import train_test_split
加载数据,为了重复使用,我定义成一个函数
在加载数据的同时将年份细分为year,month,day,工作日等。def process_data(file_path): file_name = os.path.split(file_path)[1] time_name = 'time' data = pd.read_csv(file_path, header=None, names=[time_name, 'value']) data[time_name] = pd.to_datetime(data[time_name], unit='ms', utc=True) end_time = data.iloc[-1][0] tz = pytz.timezone("Asia/Shanghai") data2 = data.set_index([time_name]) data2 = data2.resample(rule='5min' ).mean() data2 = data2.tz_convert(tz) data2 = data2.interpolate(method='time') data2[