重新计算预测

问题描述:

我在R中的下面的代码使用所述NNET包来获得权重值和预测值的神经网络的值:重新计算预测

test <- read.csv('ScaledData.csv',header=TRUE,sep = ",") 

ANNtrain <- nnet(Price ~ Sqft + Bedrooms + Bathrooms,test[1:650,],size=2, maxit=5000, linout=TRUE) 

ANNtrain$wts 

ANNtrain$fitted.values 

所以我结束了这些权重:

b->h1 2.3681687 
i1->h1 -0.3898256 
i2->h1 1.3565967 
i3->h1 -1.8423163 
b->h2 1.4826518 
i1->h2 0.6584391 
i2->h2 0.8964167 
i3->h2 -1.3290192 
b->o 1.0835755 
h1->o -4.977095 
h2->o 4.2466241 

我试图重新计算拟合值,例如第一笔交易的拟合值是.025014924。

我在每个隐藏节点上使用sigmoid函数,我知道它是1 /(1 + exp(-a)),其中a =每个输入变量的加权值之和。

我一直在玩这个几个小时,现在我很难过。无论我做什么,我都无法重新计算拟合的值。有任何想法吗? linout参数是否改变了计算?

A sigmoid function不是一个特定的功能。它是一类功能。这个类的实例是e。 G。 logistic function1/(1+exp(-a))hyperbolic tangent

当您设置linout=TRUE时,您可以选择身份函数(f(a) = a)作为输出图层的激活函数,即i。即你实际上在输出层没有激活功能。

+0

好的,我明白了。而且我已经在我的OP中更正了我的公式,以反映逻辑函数,因为我输错了它。 – ChrisArmstrong 2012-07-23 00:53:42

+0

顺便说一句。当你设置linout = TRUE时,输出层的激活函数将是身份,是吗? – alfa 2012-07-23 05:58:33

+0

这就是我想知道的;我没有数学背景,所以我不确定你的身份是什么意思,但看起来好像计算线性输出会有所不同。 – ChrisArmstrong 2012-07-23 12:48:37