一.数据预处理

我们挑选了同一工况下的五种故障进行分类实验。故障类别如下:


因为该数据是一维的,所以我们要进行一些预处理。有以下步骤:

1.以400个采样点为一个样本,取300个样本(取120000个采样点)2.取200个作为训练集,100个作为测试集。
3.将六种类别数据堆叠称numpy数组
3.吧训练集和测试集样本变形为(1620,20,20,1),这样就可以喂入卷积神经网络里进行训练了。
4.打乱数据
5.将标签转化为one-hot
代码如下:

import numpy as np
def yuchuli(data,label):a = np.loadtxt(data)a = a[0:120000]a  = a.reshape(300,400)np.random.shuffle(a)train = a[:200,:]test = a[200:,:]label_test = np.array([label for i in range(0,100)])label_train = np.array([label for i in range(0, 200)])return train,test ,label_train ,label_test
def stackkk(a,b,c,d,e,f,g,h):aa = np.vstack((a, e))bb = np.vstack((b, f))cc = np.hstack((c, g))dd = np.hstack((d, h))return aa,bb,cc,dd
x_tra0,x_tes0,y_tra0,y_tes0 = yuchuli('G:\\Astudy\\数据预处理\\负载1五种\\nomal_x098_de.txt',0)
x_tra1,x_tes1,y_tra1,y_tes1 = yuchuli('G:\\Astudy\\数据预处理\\负载1五种\\b07_de.txt',1)
x_tra2,x_tes2,y_tra2,y_tes2 = yuchuli('G:\\Astudy\\数据预处理\\负载1五种\\ir07_de.txt',2)
x_tra3,x_tes3,y_tra3,y_tes3 = yuchuli('G:\\Astudy\\数据预处理\\负载1五种\\or07@3_de.txt',3)
x_tra4,x_tes4,y_tra4,y_tes4 = yuchuli('G:\\Astudy\\数据预处理\\负载1五种\\or07@6_de.txt',4)
x_tra5,x_tes5,y_tra5,y_tes5 = yuchuli('G:\\Astudy\\数据预处理\\负载1五种\\or07@12_de.txt',5)tr1,te1,yr1,ye1=stackkk(x_tra0,x_tes0,y_tra0,y_tes0 ,x_tra1,x_tes1,y_tra1,y_tes1)
tr2,te2,yr2,ye2=stackkk(tr1,te1,yr1,ye1,x_tra2,x_tes2,y_tra2,y_tes2)
tr3,te3,yr3,ye3=stackkk(tr2,te2,yr2,ye2,x_tra3,x_tes3,y_tra3,y_tes3)
tr4,te4,yr4,ye4=stackkk(tr3,te3,yr3,ye3,x_tra4,x_tes4,y_tra4,y_tes4)
tr5,te5,yr5,ye5=stackkk(tr4,te4,yr4,ye4,x_tra5,x_tes5,y_tra5,y_tes5)
print('测试标签:',ye5,'\n','训练标签:',yr5)y_train = yr5
y_test = ye5#转化为二维矩阵x_train = tr5.reshape(1200,20,20,1)
x_test = te5.reshape(600,20,20,1)state = np.random.get_state()
np.random.shuffle(x_train)
np.random.set_state(state)
np.random.shuffle(y_train)def to_one_hot(labels,dimension=6):results = np.zeros((len(labels),dimension))for i,label in enumerate(labels):results[i,label] = 1return results
one_hot_train_labels = to_one_hot(y_train)
one_hot_test_labels = to_one_hot(y_test)

构建网络

我们使用卷积神经网络,网络结构如下:

from keras import layers
from keras import modelsmodel = models.Sequential()
model.add(layers.Conv2D(4,(10,10),padding='same',activation='relu',input_shape=(20,20,1)))
model.add(layers.MaxPooling2D((3,3),strides=2))
model.add(layers.Conv2D(4,(5,5),padding='same',activation='relu'))
model.add(layers.MaxPooling2D((3,3),strides=2))
model.add(layers.Conv2D(8,(3,3),padding='same',activation='relu'))
model.add(layers.Conv2D(8,(3,3),padding='same',activation='relu'))
model.add(layers.Conv2D(8,(3,3),padding='same',activation='relu'))
model.add(layers.MaxPooling2D((3,3),strides=2))
model.add(layers.Flatten())
model.add(layers.Dense(64,activation='relu'))
model.add((layers.Dense(6,activation='softmax')))
model.compile(optimizer='rmsprop',loss='categorical_crossentropy',metrics=['accuracy'])

三.绘制图像观察结果

不多bb,代码如下:


from keras import layers
from keras import modelsmodel = models.Sequential()
model.add(layers.Conv2D(4,(10,10),padding='same',activation='relu',input_shape=(20,20,1)))
model.add(layers.MaxPooling2D((3,3),strides=2))
model.add(layers.Conv2D(4,(5,5),padding='same',activation='relu'))
model.add(layers.MaxPooling2D((3,3),strides=2))
model.add(layers.Conv2D(8,(3,3),padding='same',activation='relu'))
model.add(layers.Conv2D(8,(3,3),padding='same',activation='relu'))
model.add(layers.Conv2D(8,(3,3),padding='same',activation='relu'))
model.add(layers.MaxPooling2D((3,3),strides=2))
model.add(layers.Flatten())
model.add(layers.Dense(64,activation='relu'))
model.add((layers.Dense(6,activation='softmax')))
model.compile(optimizer='rmsprop',loss='categorical_crossentropy',metrics=['accuracy'])history = model.fit(x_train,one_hot_train_labels,epochs=20,batch_size=50)
#绘制训练过程中的损失曲线和精度曲线import matplotlib.pyplot as pltacc = history.history['accuracy']
loss = history.history['loss']
epochs = range(1,len(acc) + 1)
plt.plot(epochs,acc,'bo',label='Training acc')
plt.title('Training  accuracy')
plt.legend()
plt.figure()
plt.plot(epochs,loss,'bo',label='Training loss')
plt.title('Training  loss')
plt.legend()
plt.show()print(history.history.keys())
print(model.evaluate(x_test,one_hot_test_labels))



可以看到我们训练的非常拟合,
再看它在测试集的表现:

近乎完美!

凯斯西储大学轴承数据故障分类(使用卷积神经网络)相关推荐

  1. tensorflow自编码器+softmax对凯斯西储大学轴承数据进行故障分类

    先放参考链接,感谢大神们带来的启发: 凯斯西储大学轴承数据故障分类(使用卷积神经网络) TensorFlow实现MNIST识别(softmax) 前情回顾: tensorflow 自编码器+softm ...

  2. tensorflow 堆叠自编码器SDAE对凯斯西储大学轴承数据进行故障分类

    之前的一些介绍:tensorflow自编码器+softmax对凯斯西储大学轴承数据进行故障分类 前面研究了一下自编码器,并顺利利用自编码器对轴承数据进行了故障分类,但我们在实际应用时,应用更多的还是堆 ...

  3. Tensorflow2.0:CNN 解决凯斯西储大学轴承数据集的分类问题

    文章目录 项目介绍 代码实现 1.导入需要的库 2.参数设置 3.归一化 4.定义滑窗函数 5.取样本 6.划分训练集和测试集 7.得到 Dataset 类型数据集 8.建立模型 9.初始化优化器 1 ...

  4. CWRU(凯斯西储大学轴承数据中心)数据集获取

    CWRU(凯斯西储大学轴承数据中心)数据集获取网址 https://engineering.case.edu/bearingdatacenter/apparatus-and-procedures 数据 ...

  5. 凯斯西储大学轴承数据的疑问

    这里有两个问题: ①在使用凯斯西储大学轴承数据进行CNN故障分类时, 训练的准确率从开始的慢慢增长,一直到训练几百次之后,准确率会骤降,突然降低到0.1左右,然后一直保持很低的状态,大概是训练模型不起 ...

  6. 凯斯西储大学轴承数据具体处理过程(用作CNN输入)

    凯斯西储大学轴承数据具体处理过程 本文阐述处理类似凯斯西储大学的轴承数据(一维时间序列信号)的一种方法(结合CNN使用). 原信号在数据文件中是以mat文件呈现,如果想具体查看文件里面放的什么数据,可 ...

  7. 凯斯西储大学轴承数据介绍及处理

    轴承故障诊断一般使用美国凯斯西储大学的数据集进行标准化检测算法的优劣.以下几种实验数据提取和使用方法为我在论文中所看到的.进行以下陈述 一.基于 RA-LSTM 的轴承故障诊断方法 实验数据采用美国凯 ...

  8. 凯斯西储大学轴承故障诊断数据集详解

    目录 前言 一.凯斯西储大学数据集的来源与历史 二.凯斯西储大学数据集的结构与特点 三.凯斯西储大学数据集的实验环境 四.凯斯西储大学数据集在轴承故障诊断研究中的应用 五.凯斯西储大学数据集的局限性 ...

  9. 美国西储大学轴承数据

    如图所示,实验平台包括一个2马力的电机(左侧)(1hp=746W),一个转矩传感器(中间),一个功率计(右侧)和电子控制设备(没有显示).被测试轴承支承电机轴.使用电火花加工技术在轴承上布置了单点故障 ...

最新文章

  1. 2022-2028年中国互联网+不良资产处置行业深度调研及投资前景预测报告
  2. 史上最伟大的五位计算机罪犯
  3. Android中从assets资源中读取图片文件并保存到内部存储器并加载显示在ImageView中
  4. 【Linux】一步一步学Linux——login命令(210)
  5. windows10 下安装、配置、启动mysql
  6. 2020年已裸辞5个月(软文)
  7. Kafka 设计与原理详解(二)
  8. gcc编译时传递宏定义
  9. 【Morgan Stanley IKM在线测试】C++
  10. Git教程(一)Git简介——廖雪峰的官方网站
  11. 多Excel合并成一个Excel的多sheet
  12. MSB3644 找不到 .NETFramework,Version=v4.7 的引用程序集。要解决此问题,请为此框架版本安装......
  13. The Fool 傻子
  14. 学生个人html静态网页制作 基于HTML+CSS+JavaScript+jquery仿苏宁易购官网商城模板
  15. 无法重命名文件夹,错误0x80004005 未指定的错误
  16. php操作redis方法详解
  17. thegraph subgraph 踩坑之入门青铜
  18. 个人简历介绍自己怎么写? 我的优势如何表达
  19. 辽宁大学计算机测控技术专业排名,测控技术与仪器专业大学排名
  20. 【Python】Python生成个性二维码

热门文章

  1. python画熊猫论文_3D建模技术-讲稿-9-参考熊猫图片
  2. 大数据在家纺行业四大创新性应用
  3. 51智能小车小车之蓝牙遥控(二)
  4. viewstate解析
  5. three.js进阶之骨骼绑定
  6. 作为一个Java开发者连Spring三剑客都没吃透,你拿什么和老板谈涨薪?
  7. python爬取斗鱼当前英雄联盟主播排名
  8. [转载]android 休眠
  9. html排版标记应用,HTML的排版标记_html
  10. 字节分享的软件测试《面试笔记》文档,让我直呼卧槽卧槽