# TSC-CNN
基于一维卷积神经网络(1D-CNN)的多元时间序列分类
## 项目背景
该项目为基于一维卷积神经网络的多元时间序列分类方法,实际问题被抽象为时间序列的分类问题,实际输入为4个传感器信号,分别对应16个类别,搭建1D-CNN然后训练网络对多元时间序列进行分类。
## 1D-CNN
无论是一维、二维还是三维,卷积神经网络(CNNs)都具有相同的特点和相同的处理方法。关键区别在于输入数据的维数以及特征检测器(或滤波器)如何在数据之间滑动,一维和二维CNN处理过程对比。
![image](https://github.com/vvanggeng/TSC-CNN/blob/master/pic/cnn.png)
## 网络搭建
首先分析网络的输入输出,输入为包含4个时间序列的信号,长度为1050,即输入为(1050,4),而输出对应16种类别,输出为(,16)。实质上输入时先将单个训练数据的4个时间序列展平为(4200,1),传入网络后再reshape为(1050,4)。网络构建代码如下:
```python
model = Sequential()
model.add(Reshape((TIME_PERIODS, num_sensors), input_shape=(TIME_PERIODS*num_sensors,)))
model.add(Conv1D(16, 8,strides=2, activation='relu',input_shape=(TIME_PERIODS,num_sensors)))
model.add(Conv1D(16, 8,strides=2, activation='relu',padding="same"))
model.add(MaxPooling1D(2))
model.add(Conv1D(64, 4,strides=2, activation='relu',padding="same"))
model.add(Conv1D(64, 4,strides=2, activation='relu',padding="same"))
model.add(MaxPooling1D(2))
model.add(Conv1D(256, 4,strides=2, activation='relu',padding="same"))
model.add(Conv1D(256, 4,strides=2, activation='relu',padding="same"))
model.add(MaxPooling1D(2))
model.add(Conv1D(512, 2,strides=1, activation='relu',padding="same"))
model.add(Conv1D(512, 2,strides=1, activation='relu',padding="same"))
model.add(MaxPooling1D(2))
model.add(GlobalAveragePooling1D())
model.add(Dropout(0.3))
model.add(Dense(num_classes, activation='softmax'))
```
运行得到网络结构如下:
```
Model: "sequential_1"
_________________________________________________________________
Layer (type) Output Shape Param #
=================================================================
reshape_1 (Reshape) (None, 1050, 4) 0
_________________________________________________________________
conv1d_1 (Conv1D) (None, 522, 16) 528
_________________________________________________________________
conv1d_2 (Conv1D) (None, 261, 16) 2064
_________________________________________________________________
max_pooling1d_1 (MaxPooling1 (None, 130, 16) 0
_________________________________________________________________
conv1d_3 (Conv1D) (None, 65, 64) 4160
_________________________________________________________________
conv1d_4 (Conv1D) (None, 33, 64) 16448
_________________________________________________________________
max_pooling1d_2 (MaxPooling1 (None, 16, 64) 0
_________________________________________________________________
conv1d_5 (Conv1D) (None, 8, 256) 65792
_________________________________________________________________
conv1d_6 (Conv1D) (None, 4, 256) 262400
_________________________________________________________________
max_pooling1d_3 (MaxPooling1 (None, 2, 256) 0
_________________________________________________________________
conv1d_7 (Conv1D) (None, 2, 512) 262656
_________________________________________________________________
conv1d_8 (Conv1D) (None, 2, 512) 524800
_________________________________________________________________
max_pooling1d_4 (MaxPooling1 (None, 1, 512) 0
_________________________________________________________________
global_average_pooling1d_1 ( (None, 512) 0
_________________________________________________________________
dropout_1 (Dropout) (None, 512) 0
_________________________________________________________________
dense_1 (Dense) (None, 16) 8208
=================================================================
Total params: 1,147,056
Trainable params: 1,147,056
Non-trainable params: 0
_________________________________________________________________
None
```
## 训练数据
所提供数据格式为二进制编码的bat文件,其内部数据格式为(1050,4),其中前两行为数据采集信息。包含1和2两个文件夹,每组都包含训练和验证数据。
数据下载见
[data](https://github.com/vvanggeng/TSC-KNN/tree/master/data)
## 其他问题
其他问题见代码,包含了详细的注释
程序员张小妍
- 粉丝: 1w+
- 资源: 3691
最新资源
- PLC按时间启停设备运转,设备到期停止设备运转 1,设备启停时间可以自行设定 2,可多次调用子程序,只需修改对应参数即可设定多段启停时间段 3,到时间后输入动态密码继续继续运行 4,配合上位机组态
- 关键词:需求响应 主从博弈 热电联产 综合能源系统 编程语言:matlab 主题:基于主从博弈的综合能源微网需求响应优化调度模型
- Average Curve:基于MATLAB Simulink的通过线性插值返回多条曲线的平均曲线 返回的平均曲线也具有唯一的和排序的横坐标
- 前端分析-2023071100789
- WindRose:基于MATLAB Simulink的方向强度直方图(风玫瑰图),还可以将图形中所表示的数据返回数据表中
- VIENNA-Rectifier:基于MATLAB Simulink的VIENNA(维也纳)整流器仿真模型 控制算法采用电压电流双环控制,电压外环采用PI控制器,电流内环采用bang bang滞环控
- ATV61 71变频器驱动板图纸,30-45Kw可参考通用,图清晰
- 手机组态软件 APP监控西门子200smart PLC C#全套源代码 1,C#开发上位机手机APP,自己写的程序可提供部分 2,通过VS2019开发安卓手机app 3,全套源代码,admin
- 滚动轴承故障诊断MATLAB程序:快速谱峭度、谱峭度+包络谱分析 可以很好的提取出滚动轴承故障特征
- c#工业自动化通信开发库,工业自动软件必备的基本程序 包括串口通信,TCP客户端,tcp服务器端,高并发物联网接收服务器端,udp通信,can总线通信,profinet,modbus tcp rtu
- opc ua客户端实例源码,带ef6+sqlite 代码有完整的注解,及包括所有的链接库和程序结构思维图 纯学习资料
- C# 高并发高性能socket源代码 包括tcp客户端和服务器端,udp客户端和服务器端 所有都包括socket流控制 此代码属于上层代码,主要应用于大批量物联网项目,mes系统及游戏服务器
- pmsm电阻电感磁链常数辨识源码 电阻,电感,磁链常数辨识 程序在ti dsp实现 在ti开源foc框架基础上开发 能够辨识电机电阻,电感,磁链常数 精度较高,能够满足foc控制需要
- BP神经网络电力负荷预测MATLAB程序 MATLAB完整程序代大量注释,只提供程序和数据,不负责 提供原始数据 3年负荷Excel表格,2年作为训练,1年作为测试 数据提供全年365天,每天
- 前端分析-2023071100789
- comsol 5.6固态电池仿真,有参考文献,本模型为二维模型
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈