【问题标题】:Using RNN in R with factorial input variables在 R 中使用带有阶乘输入变量的 RNN
【发布时间】: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 模型?

非常感谢,

【问题讨论】:

    标签: r recurrent-neural-network


    【解决方案1】:

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

    Y <- as.numeric(Y)
    

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

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

    【讨论】:

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