gpt4 book ai didi

c# - Encog 框架没有给出可接受的错误率

转载 作者:太空宇宙 更新时间:2023-11-03 13:28:00 25 4
gpt4 key购买 nike

我有一个非常小的数据集,只有 200 行。我只有 3 列;前两个是数字(负数和正数),最后一个是字母。

我正在尝试根据前两列数字对最后一列进行分类。

我的逗号分隔数据看起来与此类似(规范化之前):

Home Team Line,Away Team Line,Winner
-6,0,H
-8,0,H
0,-21,A
etc...

标准化后的示例数据:

HomeTeamLine,AwayTeamLine,Winner-p0,Winner-p1
-0.40493939,1,-1,0
-0.22929292,1,-1,0
-1,-0.9233003,0,-1

我已经尝试了所有我能想到的方法,包括传播和模拟神经退火,但 Encog 框架仍然找不到模式。

我的代码看起来与此类似(凭内存编写):

// build network
BasicNetwork network = new BasicNetwork();

network.AddLayer(new BasicLayer(new ActivationTANH(), true, 2));
network.AddLayer(new BasicLayer(new ActivationTANH(), true, 14));
network.AddLayer(new BasicLayer(new ActivationTANH(), true, 2));
network.Structure.FinalizeStructure();

network.Reset();

// train network
var trainingSet = // load training CSV
ITrain train = new ResilientPropagation(network, trainingSet);

do
{
train.Iteration();
Console.WriteLine("Epoch #" + epoch + " Error:" + train.Error);
epoch++;
} while (train.Error > 0.001);

我的错误率永远不会低于 74%。

我假设问题是我没有使用足够的数据行,或者我没有使用足够的特征(列),或者数据中根本没有模式。

要达到可接受的错误率,推荐的方法是什么?

最佳答案

我还有一个澄清。你有两个来自神经网络的输出,但在任务描述中你说“我正在尝试根据前两个数字列对最后一列进行分类”,这对我来说听起来你有两个输入和一个输出。为什么你有另一个输出?另一个建议是再添加一个隐藏层。我不建议添加超过两个隐藏层,因为那样的话错误函数

As errors propagate from layer to layer, they shrink exponentially with the number of layers. As mentioned http://en.wikipedia.org/wiki/Deep_learning

关于c# - Encog 框架没有给出可接受的错误率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21685066/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com