我试图在MATLAB中使用神经网络nprtool
来分类对象。但是,加载数据(输入和输出)是我的问题。我已经阅读了文档中给出的示例,但无法自定义输入和输出。下面给出了部分数据集供您参考;假设数据已经标准化。如何使用MATLAB神经网络工具箱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 :(得分:0)
正如MATLAB documentation所述:
然后排列另一组Q目标向量,以便它们指示输入向量被分配到的类
在这里,我们需要一组Q=3
目标向量,如果训练样本属于该类,则为1
。在您的示例中,目标矩阵如下所示:
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
第一列对应小型,第二列对应中型,第三列对应大型车辆。您可以使用Y
从现有单元格数组cellfun
生成此矩阵,以将条目与字符串'smallvehicle'
进行比较,依此类推:
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矩阵,表示静态数据:18个4个元素的样本"。