У меня есть вопрос о предварительной обработке данных, чтобы ввести их в последовательную модель в кератах для 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, я хочу быть уверенным, что это ввод данных в виде 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)
)
IЯ не уверен, что это правильный ответ на вопрос, который я задаю.Одна вещь, в которой я не уверен, это то, каким должен быть «train_labels», и в результате я не могу запустить модель, это метаданные?или значение строки интереса?Будет ли этот код искать изменения от t1-t6 и определять шаблоны, в которые я мог бы затем передать тестовые данные?Бостонский набор данных предполагает, что, может быть, эта таблица, которую я имею, будет транспонирована?
Любая помощь или совет будут высоко оценены!
Большое спасибо!