首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Encog神经网络多输出

Encog神经网络多输出
EN

Data Science用户
提问于 2018-03-15 15:17:44
回答 1查看 257关注 0票数 0

我有点困惑于使用encog来创建一个神经网络。

我正在尝试一个基本的前馈网络文本分类。对于输入数据,我有200个独特的单词(特征/输入)输入到网络和100个不同的文本。所以我有一个100x230的矩阵,基本上是100个不同的训练项目,每个训练项目的频率为230个单词。然后,我有一个输出,它将数据分类为A、B、C、D或E,所以一列和5个不同的输出,因此这是一个序数列,是我读取的CSV数据集的一部分,因此我实际上有一个100X231的矩阵,其中231列是我希望分类的输出。

我可以训练和运行这个神经网络没有问题,但我对输出神经元的数量感到困惑。我原以为有5种不同的分类,所以我应该有5种不同的神经元,但是我不能像这样设置代码,因为它抱怨:

代码语言:javascript
复制
IMLDataSet trainingSet = new BasicMLDataSet(input, ideal);

我的输入变量是一个双100,理想的只是预期分类的列,所以双100。因为我只有一列数据是标准化的,A,B,C.值被转换为-1到1之间的数字,因此当我运行带有5个输出神经的神经网络时,它会抱怨应该只有1。

当我运行一个神经元输出的神经网络时,它给出的答案看起来是正确和准确的,但它给出的值介于-1和1之间。我假设激活级别与输出匹配?

因此,我的问题是,如何去修饰这个输出,以回到我实际的字母分类,或者如何使用输出上的5个神经元,以便网络选择适当的分类。

我的神经网络如下:

代码语言:javascript
复制
 BasicNetwork network = new BasicNetwork();
 network.AddLayer(new BasicLayer(null, true, 230));
 network.AddLayer(new BasicLayer(new ActivationTANH(), true, 16));
 network.AddLayer(new BasicLayer(new ActivationTANH(), false, 1));
 network.Structure.FinalizeStructure();
 network.Reset();
EN

回答 1

Data Science用户

回答已采纳

发布于 2018-03-19 14:51:36

需要对编码列的数据进行规范化,然后对输出进行变性,从而给出正确的分类。

票数 1
EN
页面原文内容由Data Science提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://datascience.stackexchange.com/questions/29122

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档