3

我是机器学习的新手(也是stackoverflow),我想做一些分类任务。我使用神经网络工具箱中的 LIBSVM 和 Matlab 的模式识别工具对我的数据集(语音声学领域)进行了两组分类,以创建一个具有一个隐藏层的简单网络。为了获得更高的分类结果,我想尝试深度神经网络,我发现了这段代码: http: //www.mathworks.com/matlabcentral/fileexchange/42853-deep-neural-network

我有些难以理解。

我的数据由 19 个参数的 127 个样本构成,所以我的输入数是 19。我想将它们分为两组:0 和 1,所以我的输出数是 1。我的数据集中的值在 0 和 1 之间进行归一化.

我的代码如下:

clear all
clc

addpath('..');
load('data.mat')

inputdata = inputs;
outputdata = outputs;

datanum = 127;
outputnum = 1;
hiddennum = 3;
inputnum = 19;

% rbm = randRBM(inputnum, outputnum);
% rbm = pretrainRBM( rbm, inputdata );

dbn = randDBN([inputnum, hiddennum, outputnum]);
dbn = pretrainDBN( dbn, inputdata );
dbn = SetLinearMapping( dbn, inputdata, outputdata );
dbn = trainDBN( dbn, inputdata, outputdata );

estimate = v2h( dbn, inputdata )
[rmse AveErrNum] = CalcRmse(dbn, inputdata, outputdata)

代码运行。rmse 为 0.4183,AveErrNum 为 0.1969。我需要的是我的目标(存储在输出数据中)和网络预测之间的分类准确度(准确度 = 正确分类的数据/所有数据)。二值化后我在哪里可以找到网络预测?

我是否使用正确类型的网络进行分类?我不需要将我的数据划分为训练、验证和测试样本吗(就像在一个具有一个隐藏层的简单神经网络的情况下一样)?

提前感谢您的帮助!

4

0 回答 0