我有一个关于预处理数据的问题,以便将其输入到keras中用于R的顺序模型中。我需要确保输入对于该模型是正确的。顺序模型的目标是识别时程数据中的模式。这是基因组数据。看起来像这样:
t1 t2 t3 t4
ENSMUSG00000001525 3394.482292 1351.0510 302.62711 307.84582
ENSMUSG00000026211 195.055564 178.6283 117.26381 77.10679
ENSMUSG00000055653 110.148598 191.6431 45.99859 49.03902
ENSMUSG00000003038 2455.830408 1390.8977 1090.54737 1107.03441
ENSMUSG00000046434 1093.010618 796.3317 612.57043 710.67373
ENSMUSG00000026417 8.186694 130.4103 193.60001 317.17856
再加上2个时间点,等等...行是基因。列是时间点。除此矩阵外,我还具有该矩阵的元数据,即有关此特定细胞类型的活跃程度的详细信息……原因是这是一个器官,我还有9个类似的数据框希望将其纳入模型并了解不同器官之间的关系,以及诸如细胞活性之类的因素如何在决定器官之间的共同变化中发挥作用(或没有)...我的顺序模型代码如下,我是按照在R中使用keras的顺序模型的教程进行操作,不过,我想确保将输入的数据作为20,000行(基因)和'从t1-t6查找模式...
countsorgan1
column_names <- colnames(countsorgan1)
train_df <- as_tibble(countsorgan1)
colnames(train_df) <- column_names
train_data <- scale(train_data)
build_model <- function() {
model <- keras_model_sequential() %>%
layer_dense(units = 64, activation = "relu",
input_shape = dim(test_data)[2]) %>%
layer_dense(units = 64, activation = "relu") %>%
layer_dense(units = 1)
model %>% compile(
loss = "mse",
optimizer = optimizer_rmsprop(),
metrics = list("mean_absolute_error")
)
model
}
model <- build_model()
model %>% summary()
print_dot_callback <- callback_lambda(
on_epoch_end = function(epoch, logs) {
if (epoch %% 80 == 0) cat("\n")
cat(".")
}
)
epochs <- 500
history <- model %>% fit(
train1,
epochs = epochs,
validation_split = 0.2,
verbose = 0,
callbacks = list(print_dot_callback)
)
early_stop <- callback_early_stopping(monitor = "val_loss", patience = 20)
model <- build_model()
history <- model %>% fit(
train_data,
train_labels,
epochs = epochs,
validation_split = 0.2,
verbose = 0,
callbacks = list(early_stop, print_dot_callback)
)
我不确定这是否是我所问问题的正确输入。我不确定的一件事是“ train_labels”应该是什么,因此我无法运行模型,这是元数据吗?或感兴趣的行值?这段代码是否会寻找t1-t6的变化并确定可将测试数据传递给的模式?波士顿的数据集表明,也许我应该对这张桌子进行换位?
任何帮助或建议将不胜感激!
非常感谢!