基于极限学习机的轴承故障分类(西储大学数据)

这篇博客介绍了一种基于极限学习机的轴承故障分类方法,利用西储大学提供的轴承故障数据集,通过Python进行数据预处理,然后使用MATLAB提取特征并进行训练与预测。开发工具包括matlab2018和pycharm2020,Python环境为3.7。程序链接和数据预处理步骤均有提供。
摘要由CSDN通过智能技术生成

一概述

1.1说明

极限学习机的实现程序。
处理的数据为西储大学的不同故障类型的轴承数据。
程序包括:预处理数据和matlab训练预测部分
原理:参考博客

1.2开发工具

matlab2018
pycharm2020
python版本:python3.7(重要)

二.程序实现

用python分段截取西储大学的原始数据,再用matlab提取为特征值,通过极限学习机训练和预测。
PS:程序中涉及的路径请改为自己的西储大学轴承数据文件的路径。

(1)数据预处理一(python)

请先下载数据
西储大学数据
PS:如果python运行有问题,请将python更新到3.7版本
python分段截取西储大学的原始数据

import numpy as np
import scipy.io as scio
from random import shuffle


def normalize(data):
    '''(0,1)normalization
    :param data : the object which is a 1*2048 vector to be normalized
    '''
    s= (data-min(data)) / (max(data)-min(data))

    return  s


def cut_samples(org_signals):
    ''' get original signals to 10*120*2048 samples, meanwhile normalize these samples
    :param org_signals :a 10* 121048 matrix of ten original signals
    '''

    results=np.zeros(shape=(10,120,2048))
    temporary_s=np.zeros(shape=(120,2048))

    for i in range(10):  #对应十类故障数据
        s=org_signals[i]
        for x in range(120):  #每类数据120段样本
            temporary_s[x]=s[1000*x:2048+1000*x]  #每个样本信号长度1000
           # temporary_s[x]=normalize(temporary_s[x])     #顺便对每个样本归一化
        results[i]=temporary_s


    return results


def make_datasets(org_samples):
    '''输入10*120*2048的原始样本,输出带标签的训练集(占75%)和测试集(占25%)'''

    train_x=np.zeros(shape=(10,90,2048))
    train_y=np.zeros(shape=(10,90,10))
    test_x=np.zeros(shape=(10,30,2048))
    test_y=np.zeros(shape=(10,30,10))
    for i in range(10):
        s=org_samples[i]
        #
        index_s = [a for a in range(len(s))]
        #shuffle(index_s) #打乱顺序
        s=s[index_s]
        # 对每种类型都划分训练集和测试集
        train_x[i]=s[:90]
        test_x[i]=s[90:120]
        # 填写标签
        label = np.zeros(shape=(10,))
        label[i] = 1
        train_y[i, :] = label
        test_y[i, :] = label

    #将十种类型的训练集和测试集分别合并并打乱
    x1 = train_x[0]
    y1 = train_y[0]
    x2 = test_x[0]
    y2 =
  • 1
    点赞
  • 45
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值