%% 数据预处理(训练集 验证集 测试集划分)
clc;clear;close all
%% 加载原始数据
% load 0HP/48k_Drive_End_B007_0_122; a1=X122_DE_time'; %1
% load 0HP/48k_Drive_End_B014_0_189; a2=X189_DE_time'; %2
% load 0HP/48k_Drive_End_B021_0_226; a3=X226_DE_time'; %3
% load 0HP/48k_Drive_End_IR007_0_109; a4=X109_DE_time'; %4
% load 0HP/48k_Drive_End_IR014_0_174 ; a5=X173_DE_time';%5
% load 0HP/48k_Drive_End_IR021_0_213 ; a6=X213_DE_time';%6
% load 0HP/48k_Drive_End_OR007@6_0_135 ;a7=X135_DE_time';%7
% load 0HP/48k_Drive_End_OR014@6_0_201 ;a8=X201_DE_time';%8
% load 0HP/48k_Drive_End_OR021@6_0_238 ;a9=X238_DE_time';%9
% load 0HP/normal_0_97 ;a10=X097_DE_time';%10
% save original_data a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 %保存下来 下次直接调用
% clear
load original_data
%%
N=100;
L=864;% 每种状态取N个样本 每个样本长度为L
data=[];label=[];
for i=1:10
if i==1;ori_data=a1;end
if i==2;ori_data=a2;end
if i==3;ori_data=a3;end
if i==4;ori_data=a4;end
if i==5;ori_data=a5;end
if i==6;ori_data=a6;end
if i==7;ori_data=a7;end
if i==8;ori_data=a8;end
if i==9;ori_data=a9;end
if i==10;ori_data=a10;end
for j=1:N
start_point=randi(length(ori_data)-L);%随机取一个起点
end_point=start_point+L+1;
data=[data ;ori_data(start_point:end_point)];
label=[label;i];
end
end
%% 标签转换 onehot编码
output=zeros(10*N,10);
for i = 1:10*N
output(i,label(i))=1;
end
%% 划分训练集 验证集与测试集 7:2:1比例
n=randperm(10*N);
m1=round(0.7*10*N);
m2=round(0.9*10*N);
train_X=data(n(1:m1),:);
train_Y=output(n(1:m1),:);
valid_X=data(n(m1+1:m2),:);
valid_Y=output(n(m1+1:m2),:);
test_X=data(n(m2+1:end),:);
test_Y=output(n(m2+1:end),:);
save data_process train_X train_Y valid_X valid_Y test_X test_Y