当前位置: 首页 > news >正文

安装 nnet-ts 报错 no module named TimeSeriesNnet

修改 _init_.py
在这里插入图片描述

from TimeSeriesNnet import TimeSeriesNnet

改成

from .TimeSeriesNnet import TimeSeriesNnet

在这里插入图片描述

实际上这个这个包只有短短几行,可以不必安装

import numpy as np
from keras.models import Sequential
from keras.layers.core import Dense, Activation
from keras.optimizers import SGD
from sklearn.preprocessing import StandardScaler
import logging

logging.basicConfig(format='%(levelname)s:%(message)s', level=logging.DEBUG)


class TimeSeriesNnet(object):
	def __init__(self, hidden_layers = [20, 15, 5], activation_functions = ['relu', 'relu', 'relu'], 
              optimizer = SGD(), loss = 'mean_absolute_error'):
		self.hidden_layers = hidden_layers
		self.activation_functions = activation_functions
		self.optimizer = optimizer
		self.loss = loss

		if len(self.hidden_layers) != len(self.activation_functions):
			raise Exception("hidden_layers size must match activation_functions size")

	def fit(self, timeseries, lag = 7, epochs = 10000, verbose = 0):
		self.timeseries = np.array(timeseries, dtype = "float64") # Apply log transformation por variance stationarity
		self.lag = lag
		self.n = len(timeseries)
		if self.lag >= self.n:
			raise ValueError("Lag is higher than length of the timeseries")
		self.X = np.zeros((self.n - self.lag, self.lag), dtype = "float64")
		self.y = np.log(self.timeseries[self.lag:])
		self.epochs = epochs
		self.scaler = StandardScaler()
		self.verbose = verbose

		logging.info("Building regressor matrix")
		# Building X matrix
		for i in range(0, self.n - lag):
			self.X[i, :] = self.timeseries[range(i, i + lag)]

		logging.info("Scaling data")
		self.scaler.fit(self.X)
		self.X = self.scaler.transform(self.X)

		logging.info("Checking network consistency")
		# Neural net architecture
		self.nn = Sequential()
		self.nn.add(Dense(self.hidden_layers[0], input_shape = (self.X.shape[1],)))
		self.nn.add(Activation(self.activation_functions[0]))

		for layer_size, activation_function in zip(self.hidden_layers[1:],self.activation_functions[1:]):
			self.nn.add(Dense(layer_size))
			self.nn.add(Activation(activation_function))

		# Add final node
		self.nn.add(Dense(1))
		self.nn.add(Activation('linear'))
		self.nn.compile(loss = self.loss, optimizer = self.optimizer)

		logging.info("Training neural net")
		# Train neural net
		self.nn.fit(self.X, self.y, epochs = self.epochs, verbose = self.verbose)

	def predict_ahead(self, n_ahead = 1):
		# Store predictions and predict iteratively
		self.predictions = np.zeros(n_ahead)

		for i in range(n_ahead):
			self.current_x = self.timeseries[-self.lag:]
			self.current_x = self.current_x.reshape((1, self.lag))
			self.current_x = self.scaler.transform(self.current_x)
			self.next_pred = self.nn.predict(self.current_x)
			self.predictions[i] = np.exp(self.next_pred[0, 0])
			self.timeseries = np.concatenate((self.timeseries, np.exp(self.next_pred[0,:])), axis = 0)

		return self.predictions

相关文章:

  • DOS下删除文件和文件夹
  • python 时间序列预测——简单神经网络
  • Java反编译工具――Jode
  • python 时间序列预测——SimpleRNN
  • ADSL拨号断线
  • python 时间序列预测——Jordan循环神经网络
  • 强大的数据报表中心
  • python 时间序列预测——Elman循环神经网络
  • IFormatProvider 接口
  • python 时间序列预测——NARX循环神经网络
  • 好可爱啊
  • python 时间序列预测——LSTM, GRU
  • python 时间序列预测——多序列预测
  • 为什么美女喜欢软件开发的gg做老公
  • LINQ体验系列文章导航
  • 【个人向】《HTTP图解》阅后小结
  • Angular 响应式表单之下拉框
  • Apache Pulsar 2.1 重磅发布
  • Codepen 每日精选(2018-3-25)
  • eclipse的离线汉化
  • es6--symbol
  • FastReport在线报表设计器工作原理
  • IIS 10 PHP CGI 设置 PHP_INI_SCAN_DIR
  • iOS编译提示和导航提示
  • JS基础篇--通过JS生成由字母与数字组合的随机字符串
  • oschina
  • PHP的类修饰符与访问修饰符
  • SpiderData 2019年2月16日 DApp数据排行榜
  • Traffic-Sign Detection and Classification in the Wild 论文笔记
  • yii2中session跨域名的问题
  • 诡异!React stopPropagation失灵
  • 排序算法之--选择排序
  • 学习使用ExpressJS 4.0中的新Router
  • puppet连载22:define用法
  • 测评:对于写作的人来说,Markdown是你最好的朋友 ...
  • 组复制官方翻译九、Group Replication Technical Details
  • ​油烟净化器电源安全,保障健康餐饮生活
  • #define MODIFY_REG(REG, CLEARMASK, SETMASK)
  • #QT(TCP网络编程-服务端)
  • #我与Java虚拟机的故事#连载09:面试大厂逃不过的JVM
  • (10)ATF MMU转换表
  • (libusb) usb口自动刷新
  • (超详细)2-YOLOV5改进-添加SimAM注意力机制
  • (二)【Jmeter】专栏实战项目靶场drupal部署
  • (附源码)springboot宠物医疗服务网站 毕业设计688413
  • (论文阅读11/100)Fast R-CNN
  • (篇九)MySQL常用内置函数
  • (企业 / 公司项目)前端使用pingyin-pro将汉字转成拼音
  • (一)80c52学习之旅-起始篇
  • (一)Thymeleaf用法——Thymeleaf简介
  • (一)为什么要选择C++
  • (转)使用VMware vSphere标准交换机设置网络连接
  • ***php进行支付宝开发中return_url和notify_url的区别分析
  • .dwp和.webpart的区别
  • .L0CK3D来袭:如何保护您的数据免受致命攻击