深度學習數據集預處理之打標籤

本程序爲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:看好自己保存的位置,別找不到了,完犢子。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章