在 R 中使用带有阶乘输入变量的 RNN

Posted

技术标签:

【中文标题】在 R 中使用带有阶乘输入变量的 RNN【英文标题】:Using RNN in R with factorial input variables 【发布时间】:2016-11-15 00:03:15 【问题描述】:

在 R 的 rnn 包中,该示例展示了如何使用数字输入变量训练 RNN。

示例代码为:

library('rnn')

# create training numbers
set.seed(1)
X1 = sample(0:127, 7000, replace=TRUE)
X2 = sample(0:127, 7000, replace=TRUE)

# create training response numbers
Y <- X1 + X2

# convert to binary
X1 <- int2bin(X1, length=8)
X2 <- int2bin(X2, length=8)
Y  <- int2bin(Y,  length=8)

# create 3d array: dim 1: samples; dim 2: time; dim 3: variables
X <- array( c(X1,X2), dim=c(dim(X1),2) )

# train the model
model <- trainr(Y=Y,
                X=X,
                learningrate   =  0.1,
                hidden_dim     = 10,
                start_from_end = TRUE )

在上面的例子中,X1X2 是数值变量。

如果输入变量是因子,我如何在 R 中训练 RNN 模型?

非常感谢,

【问题讨论】:

【参考方案1】:

您是否尝试将因子强制转换为数字:

Y <- as.numeric(Y)

对于预测值,您可能希望对其进行四舍五入,然后再次应用级别:

pred <- round(pred)

pred <- as.factor(pred, labels = c(...))

【讨论】:

其实我没试过,但是从一些外部资源来看,好像有问题:-( ***.com/questions/17469835/… rnn 不是一个热点,这只是一个例子 one-hot 是下一步。我在上面发布的链接中的答案是关于将因子转换为数字变量及其影响。 无论如何,我会尝试在这里发布结果。 嗨,我这样做并观察到一个有趣的事情:RNN 现在倾向于预测极端不平衡的输出,即对于二元分类,RNN 倾向于将所有内容预测为正(或负),但很少它给出了一个混合的预测。

以上是关于在 R 中使用带有阶乘输入变量的 RNN的主要内容,如果未能解决你的问题,请参考以下文章

C语言 求n的阶乘及阶乘和

闭包封装变量之封装一个阶乘

leetcode 简单第四十一题 阶乘后的零

R语言递归函数示例(Recursive Functions):使用递归函数计算阶乘使用递归函数计算数据序列的平方和

算法训练 阶乘

用c语言for循环求1到10阶乘