深度学习数据集预处理之打标签

本程序为Matlab程序(咱不耽误铁汁们时间)
在有监督深度学习中,数据集和标签集是缺一不可的,标签是啥呢,就是用来区分数据之间的分类命名,那么咱们开门见山,走起。
首先,确定数据集的维数,以m行1列的电机轴承数据集为例
需要做啥呢?
均值+归一化处理,ok不
咋整呢
给两个小程序,都能实现,效果一样

(1)

load Normal_3.mat                  %导入正常数据
x0 = X100_DE_time(1:480000,:);     %令x0赋值为驱动端数据,总共48万个
x0 = x0 - mean(x0);                % 去均值处理 ,mean为MATLAB自带求均值函数 
x0 = x0';                          %令x0重新赋值,为去均值之后的数
y0 = mapminmax(x0,0,1);            %归一化处理 归一化函数为[A1,PS]=mapminmax(A)
                                   A1为矩阵,ps为对应关系
                                   也可表示成y0=map(取值,下界,上界)
A0 = zeros(600,800);               %创建矩阵A0,zeros函数为创建矩阵函数,(行,列)
for i = 1:600                      之前数据为48万行,1列,每取600个数放入一列
    for j = 1:800
        A0(i,j) = y0(800*(i-1)+j);    %对新建矩阵进行赋值,新矩阵建成,600行800列
    end;
end;

下一步,各种故障类型矩阵建立成功,开始合并,加入标签

traindata = [A0;A1;A2;A3;A4;A5;A6;A7;A8;A9];     % 合并处理,[;]代表纵向拼接[,]为横向拼接,一共6000行数据
trainlabels=zeros(6000,10);                      %新建标签矩阵6000行,10列
for i=1:10       
  trainlabels(600*i-599:600*i,i)=1;              %每600行做一次赋值处理,赋值为1,一共十次,对应10类故障
end 

save('traindata','traindata');                   %保存文件
save('trainlabels','trainlabels');

一个不够?
再来一个!

(2)

Mt1f2=mt1f2(202:10201,:);             %每小时20个数据故障截取10-510小时的数据,即202行到10201行 ,共10000行
Mt1f4=mt1f4(202:10201,:);
Mt1f8=mt1f8(202:10201,:);

                                      增加随机打乱数据分布
Mt1f2=mt1f2(randperm(size(mtaf2,1)),:);      %随机打乱排序,mt1f2代表mt1f2的行数
Mt1f4=mt1f4(randperm(size(mtaf4,1)),:); 
Mt1f8=mt1f8(randperm(size(mtaf8,1)),:); 

Traindata=[mt1f2(1:8000,:);mt1f4(1:8000,:);mt1f8(1:8000,:);mt1f12(1:8000,:)mt1.......mtiff18(1:8000,:);];           
                    %每类取80%的数据为训练集,再合成一个训练集
testdata=[mt1f2(8001:10000,:);mt1f4(8001:10000,:);mt1f8(8001:10000,:);mt1f12(8001:10000,:)mt1.......mtiff18(8001:10000,:);];       
                    %每类取20%的数据合成测试集
Save进行保存 
T1=[1 0 0 0 0 0 0];
T2=[0 1 0 0 0 0 0];
T3=[0 0 1 0 0 0 0];
T4=[0 0 0 1 0 0 0];                    %对故障进行编码

Rt1=repmat(t1,400,1);
Rt2=repmat(t2,400,1);
Rt3=repmat(t3,400,1);
Rt4=repmat(t4,400,1);                  %对t重复400行,进行赋值
Te1=repmat(t1,100,1);
Te2=repmat(t2,400,1);
......

Trainlabels=[rt1;tr2;tr3;tr4;tr5;tr6;tr7;tr8];   %合成样本训练标签集
Testlabels=[te1;te2;te3;te4;....]                %合成样本测试标签集

欧不欧?!
好使!
整就完了!

PS:看好自己保存的位置,别找不到了,完犊子。

发布了6 篇原创文章 · 获赞 17 · 访问量 270

猜你喜欢

转载自blog.csdn.net/mndlgzzd/article/details/104321107
今日推荐