下文的是一些关键数据处理的实现代码,整体代码见我的Github
-----------------------------分割线---------------------------------
试验中发现对返回数据的shape进行如下改进会更好一些:
- 对iteror_raw_data()中的返回值data维度降为1维。从而使得data_augment()部分返回值X变为二维数据,进而使得可以对X进行数据标准化
- 修改标准化部分内容
- 其余内容见我的Github
1.内容
对CWRU轴承数据集中12kDriveEndBearingFaultData进行:
- 读取指定的.mat文件;
- 标签标注和数据提取;
- 数据增强处理;
- 标准化设计;
- 对标签为"normal"的数据进行降采样;
2.读取mat文件和数据标注
这部分的思路是,通过scipy.io.loadmat 载入指定的mat文件("FE"或者“DE”数据),然后设计一个(X,y)的生成器来返回数据和数据标签;其中,X表示数据data, y是数据标签label。
import os
from scipy.io import loadmat
def iteror_raw_data(data_path,data_mark):
"""
打标签,并返回数据的生成器:标签,样本数据。
:param data_path:.mat文件所在路径
:param data_mark:"FE" 或 "DE"
:return iteror:(标签,样本数据)
"""
# 标签数字编码
labels = {
"normal":0, "IR007":1, "IR014":2, "IR021":3, "OR007":4,
"OR014":5, "OR021":6}
# 列出所有文件
filenams = os.listdir(data_path)
# 逐个对mat文件进行打标签和数据提取
for single_mat in filenams:
single_mat_path = os.path.join(data_path, single_mat)
# 打标签
label = None
for key, _ in labels.items