使用neuralnet软件包查找模式时获得恒定答案

使用neuralnet软件包查找模式时获得恒定答案,r,neural-network,R,Neural Network,我正在尝试使用neuralnet包在大型数据集中查找模式 我的数据文件如下所示(30204447行): 我已经将这个初始文件拆分为四个新文件,用于年度/季度销售/EPS,我想在这些文件上使用神经网络,看看我是否可以使用下面案例中的变量id.company、fiscal和date来预测年度销售结果 为此,我编写了以下代码: dataset <- read.table("fy_sal_data.txt",header=T, sep="\t") #my file doesn't actually

我正在尝试使用neuralnet包在大型数据集中查找模式

我的数据文件如下所示(30204447行):

我已经将这个初始文件拆分为四个新文件,用于年度/季度销售/EPS,我想在这些文件上使用神经网络,看看我是否可以使用下面案例中的变量id.company、fiscal和date来预测年度销售结果

为此,我编写了以下代码:

dataset <- read.table("fy_sal_data.txt",header=T, sep="\t") #my file doesn't actually use comas as separators

#extract training set and testing set
trainset <- dataset[1:1000, ]
testset <- dataset[1001:2000, ]

#building the NN
ann <- neuralnet(value ~ id.company + fiscal + date, trainset, hidden = 3,
             lifesign="minimal", threshold=0.01)

#testing the output
temp_test <- subset(testset, select=c("id.company", "fiscal", "date"))
ann.results <- compute(ann, temp_test)

#display the results
cleanoutput <- cbind(testset$value, as.data.frame(ann.results$net.result))
colnames(cleanoutput) <- c("Expected Output", "NN Output")

head(cleanoutput, 30)

我对R及其神经网络软件包非常陌生,但我在网上发现,产生这种结果的一些原因可能是:

  • 培训示例数量不足(这里我使用了1000个,但我也尝试使用了100万行,结果都是一样的,只是培训需要4小时)

  • 或者是公式中的错误


我确信我做错了什么,但我似乎不知道是什么。

您可以尝试使用
compute()
neuralnet()
中的
rep
参数和拟合值。我尝试将其设置为3,但结果和错误保持不变。有人知道吗?我在网上找不到任何可以帮助我的东西,所以我已经被困在这个问题上两天了。我不能提供具体的帮助,因为我对R不太熟悉。但是当我被困时,尝试简化你的数据。这确实有助于确定问题。从XOR或其他定义良好的东西开始我尝试使用三个包含随机值的数据帧作为输入,让网络给出这些变量的总和,但这里,它给了我一个常量值,所以我的代码肯定有问题。。。只是不知道是什么(尽管我怀疑这与我在neuralnet()中编写公式参数的方式有关)。谢谢你的帮助!您可以尝试在
compute()
neuralnet()
中使用带有拟合值的
rep
参数。我已尝试将其设置为3,但结果和错误保持不变。有人吗?我在网上找不到任何可以帮助我的东西,所以我已经被困在这个问题上两天了。我不能提供具体的帮助,因为我对R不太熟悉。但是当我被困时,尝试简化你的数据。这确实有助于确定问题。从XOR或其他定义良好的东西开始我尝试使用三个包含随机值的数据帧作为输入,让网络给出这些变量的总和,但这里,它给了我一个常量值,所以我的代码肯定有问题。。。只是不知道是什么(尽管我怀疑这与我在neuralnet()中编写公式参数的方式有关)。谢谢你的帮助!您可以尝试在
compute()
neuralnet()
中使用带有拟合值的
rep
参数。我已尝试将其设置为3,但结果和错误保持不变。有人吗?我在网上找不到任何可以帮助我的东西,所以我已经被困在这个问题上两天了。我不能提供具体的帮助,因为我对R不太熟悉。但是当我被困时,尝试简化你的数据。这确实有助于确定问题。从XOR或其他定义良好的东西开始我尝试使用三个包含随机值的数据帧作为输入,让网络给出这些变量的总和,但这里,它给了我一个常量值,所以我的代码肯定有问题。。。只是不知道是什么(尽管我怀疑这与我在neuralnet()中编写公式参数的方式有关)。谢谢你的帮助!
dataset <- read.table("fy_sal_data.txt",header=T, sep="\t") #my file doesn't actually use comas as separators

#extract training set and testing set
trainset <- dataset[1:1000, ]
testset <- dataset[1001:2000, ]

#building the NN
ann <- neuralnet(value ~ id.company + fiscal + date, trainset, hidden = 3,
             lifesign="minimal", threshold=0.01)

#testing the output
temp_test <- subset(testset, select=c("id.company", "fiscal", "date"))
ann.results <- compute(ann, temp_test)

#display the results
cleanoutput <- cbind(testset$value, as.data.frame(ann.results$net.result))
colnames(cleanoutput) <- c("Expected Output", "NN Output")

head(cleanoutput, 30)
     Expected Output   NN Output
1001     2006.500000 1417.796651
1002     2009.000000 1417.796651
1003     2006.500000 1417.796651
1004     2002.500000 1417.796651