- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这实际上是一个非常有用的问题的副本,其答案(部分)由提问者得出。原标题:《用于文本分析的 R 神经网络模型中超过 512 个字符的公式》。他最终解决了这个问题,尽管他给出的推理是不正确的,然后他删除了问题并使评论和他的解决方案不可见,从而使错误更加复杂。
我正在尝试拟合一个神经网络模型,用于将网站分类到 2 个桶中的一个。训练数据特征是网站上所有链接中的词,例如,一个网站可能具有“主页”、“关于”、“联系方式”、“产品”等特征。数据结构为带有类列的数据框,然后是训练中每个单词的列。每行都有类别(合格或不合格)以及出现在该网站上的每个单词的 0 和 1。
出现合理次数的单词总数约为 1000 个,我想将它们全部用作特征。但是,公式似乎有 225 个字符的限制,所以我无法这样做。
我没有好的数据集来提供可重现的输出,但这是我的代码和我遇到的错误。
如果我尝试做一个公式,它会被切断:
nn.model <- neuralnet(paste("class ~ ", paste(clean.features, collapse = "+", sep = "")), data = training.data,
hidden = num.nodes)
)
Error in parse(text = x, keep.source = FALSE) : :2:0: unexpected end of input 1: ranty+recipes+contract+just+inventory+types+working+wine+hampshire+suppliers+rise+body+selection+laurel+trek+arlington+cabinet+citrus+advertisers+rhode+highway+intl+province+jewelers+cycles+wy
如果我使用 as.formula,同样的事情会发生:
f <- as.formula(paste("class ~ ", paste(clean.features, collapse = "+", sep = "")))
Error in parse(text = x, keep.source = FALSE) : :2:0: unexpected end of input 1: ranty+recipes+contract+just+inventory+types+working+wine+hampshire+suppliers+rise+body+selection+laurel+trek+arlington+cabinet+citrus+advertisers+rhode+highway+intl+province+jewelers+cycles+wy
如果我尝试使用数据集中的所有特征,它会说没有“数据”参数(即使有):
nn.model <- neuralnet(class ~ . , data = training.data,
hidden = num.nodes, 0))
)
Error in terms.formula(formula) : '.' in formula and no 'data' argument
> sessionInfo()
R version 3.3.2 (2016-10-31) Platform: x86_64-w64-mingw32/x64 (64-bit) Running under: Windows >= 8 x64 (build 9200)
有什么变通办法吗?
最佳答案
我将建议一个可能的起点来隔离问题。如果公式本身的长度存在问题,那么应该可以通过创建公式本身来复制该问题。试试这个:
form <- reformulate( clean.features, quote(class) )
Ew,只是打字让我的内部 R 解析器感到畏缩。请将您的 LHS 变量重命名为不同于此类中央 R 函数的名称。也许是这样的:
names( training.data)[ names(training.data) %in% "class"] <- "myclass"
form <- reformulate( clean.features, quote(myclass) )
提问者对其他评论的回应,我在此不再赘述。我曾告诉他,他关于 512 个字符的字符限制的理论是不正确的,但他随后发布了:
So with a lot of manual review, it looks like the word "for" happened to be exactly at the character limit that was mentioned in other posts (512). But the actual problem was that "for" was being recognized as a function in the formula. Sorry for all the confusion.
那是不正确的。该问题与公式中的字符限制无关,而是与他的列名称为“for”有关。这是 R 中保留的控制函数,可能出现在公式中的任何位置。看这个演示(显示一些保留字,但不是全部)
f <- reformulate(c( paste(sep="","X",1:5), "for", paste(sep="","X",1:5)), quote(Y))
Error in parse(text = termtext, keep.source = FALSE) :
<text>:1:30: unexpected '+'
1: response ~ X1+X2+X3+X4+X5+for+
^
> f <- reformulate(c( paste(sep="","X",1:5), "class", paste(sep="","X",1:5)), quote(Y))
# no error ... OK perhaps not a reserved word
> f <- reformulate(c( paste(sep="","X",1:5), "in", paste(sep="","X",1:5)), quote(Y))
Error in parse(text = termtext, keep.source = FALSE) :
<text>:1:27: unexpected 'in'
1: response ~ X1+X2+X3+X4+X5+in
^
> f <- reformulate(c( paste(sep="","X",1:5), "TRUE", paste(sep="","X",1:5)), quote(Y))
# no error, so maybe "TRUE" is not reserved and quote(TRUE) is?
因此提出术语是否可以与函数共享名称的问题是正确的。答案并不完全如我所料。如果有人想提供更仔细的 CS 解释,我很乐意检查他们的努力。
出现此问题的另一个上下文是调用帮助页面的 prefix-?
运算符。尝试获取有关 ?for
的帮助。您只会得到一个续行 +
提示。解析器正在等待左括号。
关于r - 神经网络公式错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42238675/
我对为什么我的 Excel 工作簿中的 if 公式不起作用感到目瞪口呆。 像 =if(F2=0, TRUE, FALSE) 这样简单的事情会引发一般错误“这个公式有问题”。不知道在哪里可以解决这个问题
在链接的电子表格中,我试图总结从一月到单元格 B1 中的日期的列 R 类别的所有实例(对于这个例子,让我们说“CAM 收入”)。 在这种情况下,总和应该是 ( B7:F7 ) 和 ( B9:F9 )
这是一个两部分的问题。我想根据价格的生效日期查找商品的价格。我看过垂直生效日期的例子,但我的有点不同。我在第一列 (A) 中有项目。其余列包含带有价格生效日期的标题。希望我能够附上格式示例。我以这种方
我想从第一个单元格开始自动增加月份。 A1 = 2019-01 以下单元格中的公式应自动填充其余单元格。 A2 = 2019-02 : : A13 = 2020-01 有没有一种简单的方法可以做到这一
在 Excel 中,如果 2021 年是基准年(第 1 年),并且我正在以月份为单位进行财务模型(但仍想知道该月份对应于哪一年),我可以使用什么公式来表示月份 0- 12 是第 1 年,第 13-24
我有以下公式,但它不起作用,因为当我在名称周围添加加利福尼亚时它只是失败了,所以它只是告诉我一切都是英国。我怎样才能解决这个问题? =IF(OR(N10776="*California*",N1077
我有这个公式: =IF(AD491="In progress" OR AD491="Reopened"(ROUND($BW$1-AI491,0),($BW$1-BB491+1)) 它正在检查单元格 A
我想做一个总结表。 我创建了一个名称下拉列表:Bob、Jack、Beth 和一个包含两个选项的下拉列表:已完成或更正待定。 在任务旁边的 Sheet2 上,您将选择名称,然后选择两个选项之一。 在摘要
如果我在 A 列中有以下数据: A1 = 3.5.15 A2 = 2.6 A3 = 8.4.3.16.7 我想要一个公式,它可以在下一列 B 中返回以下内容: B1 = 3.5 B2 = 2 B3 =
我在 Excel 2013 中有一张水果表。 我想通过从当前行到顶部搜索直到第一次出现“::”来填充“类别”列,这是表中类别的关键字。 如果有某种方法可以反转范围,我可以执行类似 "=Match(":
我这里有 2 张 table : 我要填写Code表 1 中的列,引用表 2。值的条件是开始日期必须在 ProductionDate 之间。和 ExpiryDate表 2 的类型,表 1 中的类型必须
我有以下工作表: 网格填充有以下公式(此示例来自单元格 H4),该公式根据左侧表格中的输入填充网格,=IF($A4="","",IF(AND($E4="Daily",H$2>=$D4,H$2=$D4,
我在 A1 中有以下值。当我向下拖动时,它应该以如下所示的方式增加。 B 应该首先增加,保持 C 不变。一旦 B 达到最大值,即 2,则 C 应该增加。 C 的最大值实际上取决于行号,行号除以 2 或
我会尽我所能理解这一点。我很讨厌把事情说清楚。 :) 所以……就这样…… 我有一张电子表格,上面列出了我种植辣椒的种子。这是我的专栏,我会在后面解释更多。 裁剪 |颜色 |一代 |物种 |来源 |斯科
我在 Excel 电子表格中有两个列表。 第一个列表有字符串,例如 1234 blue 6 abc xyz blue/white 1234 abc yellow 123 另一个列表包含第一个列表的子字
我正在尝试创建一个 SumIf 公式,该公式根据一个标准将多个列添加在一起。 =sumif(F$8:F$58,F73,L$8:L$58+I$8:I$58) 这给了我一个错误,并且不会将两列加在一起。
你好我想知道是否有一个公式相当于每个语句。 我知道使用 VBA 可以做到这一点,但鉴于这是一份官方报告,我更愿意让它无宏。 基本上我有一个列(假设是 A),其中包含支付发票的时间 ` |------
任何用于计算频率表中数据平均值(众数、标准差、...)的简单 Excel 公式,如下所示: value frequency 5 3 8 5 4 1
例如:您希望在 Z# 年的每年年初以今天的美元收到 $X。假设 3% 的恒定通货膨胀率和 7% 的复合年返回率。 我知道计算通货膨胀调整后 yield 的公式;对于返回率,您必须使用以下公式: [[(
需要一些帮助来找出一个公式来计算一个值在列中列出的次数。我将尝试解释下面的要求。 下图显示了数据集的示例。 要求是列出每个客户的问题和行动。 如您所见,即使从单元格中聚集的值中,我们也需要找出各个唯一
我是一名优秀的程序员,十分优秀!