2015-10-05 90 views
-1

我試圖在MATLAB中使用神經網絡'nprtool分類對象。但是,加載數據(輸入和輸出)是我的問題。我已經通過文檔中的給定示例,但無法定製輸入和輸出。部分數據集在下面給出供您參考;假定數據已經正常化。如何使用MATLAB神經網絡工具箱nprtool和這些自定義數據?使用nprtool自定義數據集

% Small vehicles 
XS1 = 1.0e+03 *[3.2730 0.0712 0.0614  5.1480]; % frame 167 
XS2 = 1.0e+03 *[4.4680 0.0869 0.0668  6.2370];% frame 555 
XS3 = 1.0e+03 *[2.5450 0.0742 0.0659  4.6900]; % frame 780 
XS4 = 1.0e+03 *[1.9830 0.0617 0.0477  2.9680]; % frame 826 
XS5 = 1.0e+03 *[2.9090 0.0630 0.0610  4.1600]; % frame 880 
XS6 = 1.0e+03 *[3.8460 0.0797 0.0640  5.6700]; % frame 1283 

% Medium vehicles 
XM1 = 1.0e+03 *[4.7770 0.0981 0.0663  6.9560]; % frame 167 
XM2 = 1.0e+03 *[5.1050 0.0997 0.0678  7.4460]; % frame 430 
XM3 = 1.0e+03 *[4.0240 0.0846 0.0619  5.4780]; % frame 2020 
XM4 = 1.0e+03 *[6.9750 0.1165 0.0794  9.6280]; % frame 2982 
XM5 = 1.0e+03 *[5.2040 0.1063 0.0652  7.0810]; % frame 3081 
XM6 = 1.0e+03 *[3.2830 0.0733 0.0645  4.6080]; % frame 4314 

% Large vehicles 
XL1 = 1.0e+04 *[1.0092 0.0148 0.0089  1.4948]; % frame 1340 
XL2 = 1.0e+04 *[0.9351 0.0129 0.0096  1.2444]; % frame 1375 
XL3 = 1.0e+04 *[0.6021 0.0141 0.0095  1.5096]; % frame 1625 
XL4 = 1.0e+04 *[0.8734 0.0143 0.0086  1.1868]; % frame 1679 
XL5 = 1.0e+04 *[1.0773 0.0141 0.0100  1.4933]; % frame 2204 
XL6 = 1.0e+04 *[0.8491 0.0118 0.0097  1.0556]; % frame 3535 

% CONCATANATING THE OBJECT FEATURES 
XS = [XS1;XS2;XS3;XS4;XS5;XS6]; 
XM = [XM1;XM2;XM3;XM4;XM5;XM6]; 
XL = [XL1;XL2;XL3;XL4;XL5;XL6]; 

% inputs matrix 
X = [XS;XM;XL]; 

%% OUTPUTS 
YS ={'smallvehicle';'smallvehicle';'smallvehicle';'smallvehicle';'smallvehicle';'smallvehicle'}; 
YM ={'mediumvehicle';'mediumvehicle';'mediumvehicle';'mediumvehicle';'mediumvehicle';'mediumvehicle'}; 
YL ={'largevehicle';'largevehicle';'largevehicle';'largevehicle';'largevehicle';'largevehicle'}; 

% outputs matrix 
Y = [YS;YM;YL]; 

回答

0

由於MATLAB documentation狀態:

然後讓他們指示其輸入向量分配

這裏班安排另一組Q個目標矢量的,我們需要一個如果訓練樣本屬於那個類別,則目標向量是的集合Q=3。在你的例子中,目標矩陣看起來像這樣:

T = 

    1  0  0 
    1  0  0 
    1  0  0 
    1  0  0 
    1  0  0 
    1  0  0 
    0  1  0 
    0  1  0 
    0  1  0 
    0  1  0 
    0  1  0 
    0  1  0 
    0  0  1 
    0  0  1 
    0  0  1 
    0  0  1 
    0  0  1 
    0  0  1 

第一列對應於小型,第二到中型和第三到大型車輛。您可以通過使用cellfun比較條目到字符串'smallvehicle'等產生,從現有的單元陣列Y這個矩陣:

T = [ cellfun(@(x)strcmp(x,'smallvehicle'),Y) , ... 
     cellfun(@(x)strcmp(x,'mediumvehicle'),Y) , ... 
     cellfun(@(x)strcmp(x,'largevehicle'),Y) ]; 

然後就可以開始

nprtool 

,並使用X作爲輸入,作爲目標爲T。請記住選擇Matrix Rows而不是Matrix columns。右邊的摘要有助於:「輸入'X'是一個18x4矩陣,代表靜態數據:4個元素的18個樣本」。

+0

感謝您的洞察。現在,如何通過陳述車輛的類別來使用訓練的網絡來預測未見的數據。它正在返回一個矩陣,而我不明白。 –

+0

'y = sim(net,someNewInput)'的輸出應該是一個3x1向量,它包含這個輸入的網絡輸出。最高值將是你的班級(例如'[0.99 0.01 0]'將是一輛小型車輛)。如果這沒有幫助,請提出一個新問題,詳細說明您打電話的功能,您的輸入是什麼以及淨收益(以及您的期望)。 – hbaderts

+0

感謝您的迴應和幫助。在一輛新車上使用訓練有素的網絡XL,給出了以下矩陣。首先XL = [4.3569 3.3396 4.5793 6.1457],那麼,sim(net,XL)= [0.0000 0.0000 0.0000 0.0000; 0.0845 0.1116 0.0773 0.0288; 0.9155 0.8884 0.9227 0.9712]。這個矩陣是什麼意思?非常感謝您的幫助。 –

相關問題