住房建設廳官方網(wǎng)站成人短期技能培訓
目錄
一、程序及算法內(nèi)容介紹:
基本內(nèi)容:
亮點與優(yōu)勢:
二、實際運行效果:
?三、部分程序:
四、完整程序下載:
一、程序及算法內(nèi)容介紹:
基本內(nèi)容:
-
本代碼基于Matlab平臺編譯,使用長短期記憶神經(jīng)網(wǎng)絡(LSTM),進行數(shù)據(jù)分類預測
-
輸入訓練的數(shù)據(jù)包含12個特征,1個響應值,即通過12個輸入值預測1個輸出值(多變量分類)
-
歸一化訓練數(shù)據(jù),提升網(wǎng)絡泛化性
-
自動輸出多種多樣的的誤差評價指標,自動輸出大量實驗效果圖片
亮點與優(yōu)勢:
-
注釋詳細,幾乎每一關(guān)鍵行都有注釋說明,適合小白起步學習
-
直接運行Main函數(shù)即可看到所有結(jié)果,使用便捷
-
編程習慣良好,程序主體標準化,邏輯清晰,方便閱讀代碼
-
所有數(shù)據(jù)均采用Excel格式輸入,替換數(shù)據(jù)方便,適合懶人選手
-
出圖詳細、豐富、美觀,可直觀查看運行效果
-
附帶詳細的說明文檔,其內(nèi)容包括:算法原理+使用方法說明
二、實際運行效果:
?三、部分程序:
clc;
clear;
warning off;
%% 導入數(shù)據(jù)
Data = table2array(readtable("數(shù)據(jù)集.xlsx"));
% 本例數(shù)據(jù)集中包含:
% 1. 總共357個樣本(每一行表示一個樣本)
% 2. 每個樣本12個特征值(即前12列每一列表示樣本的一個特征,即輸入的變量)
% 3. 每個樣本1個響應值(第13列為表示樣本的響應值,即被預測的變量)%% 劃分訓練集和測試集
Temp = randperm(size(Data,1)); % 打亂數(shù)據(jù)的順序,提升模型的泛化性。
InPut_num = 1:1:12; % 輸入特征的列數(shù),數(shù)據(jù)表格中前12列為輸入值,因此設置為1:1:12,若前5個為輸入則設置為1:1:5
OutPut_num = 13; % 輸出響應列數(shù),本例僅一個響應值,為數(shù)據(jù)表格中第13列,若多個響應值參照上行數(shù)據(jù)格式設置為x:1:y% 選取前327個樣本作為訓練集,后30個樣本作為測試集,即(1:327),和(328:end)
Train_InPut = Data(Temp(1:327),InPut_num); % 訓練輸入
Train_OutPut = Data(Temp(1:327),OutPut_num); % 訓練輸出
Test_InPut = Data(Temp(328:end),InPut_num); % 測試輸入
Test_OutPut = Data(Temp(328:end),OutPut_num); % 測試輸出%% 數(shù)據(jù)歸一化
% 將輸入特征數(shù)據(jù)歸一化到0-1之間
[~, Ps] = mapminmax([Train_InPut;Test_InPut]',0,1);
Train_InPut = mapminmax('apply',Train_InPut',Ps);
Test_InPut = mapminmax('apply',Test_InPut',Ps);Temp_TrI = cell(size(Train_InPut,2),1);
Temp_TeI = cell(size(Test_InPut,2),1);
% 轉(zhuǎn)為cell格式
for i = 1:size(Train_InPut,2)Temp_TrI{i} = Train_InPut(:,i);
end
Train_InPut = Temp_TrI;for i = 1:size(Test_InPut,2)Temp_TeI{i} = Test_InPut(:,i);
end
Test_InPut = Temp_TeI;
% 轉(zhuǎn)為標簽格式
Train_OutPut = categorical(Train_OutPut);
Test_OutPut = categorical(Test_OutPut);