Я хочу предсказать двоичный классификатор, используя две части данных с различной структурой (смешанные данные), используя керас / тензорный поток в R.
Я наткнулся на интересный урок, который использует keras в python:
https://www.pyimagesearch.com/2019/02/04/keras-multiple-inputs-and-mixed-data/
Я хотел бы сделать что-то похожее в моем вопросе: использовать два разных аспекта в качестве двух ветвей модели, которая затем объединяется и с тех пор обучается вместе. Поскольку раньше я работал только с последовательными моделями в keras, я не знаю, как это сделать.
Моя первая ветвь содержит измерения для пациентов в диапазоне от 0 до 1 (нормализовано).
Размеры этих данных могут быть, например, быть 200x100 для 200 измерений у 100 пациентов.
Моя вторая ветвь содержит своего рода сетевую информацию / (ближайшего) соседа для тех же измерений и пациентов. Эта информация сохраняется как вектор соседей.
Размеры этих данных могут быть, например, быть 200x100x4 для 4 ближайших соседей из 200 измерений у этих 100 пациентов.
Как мне построить мои ветви и мою модель в R? Я хотел бы начать с самого простого пути, а затем попытаться его расширить.
Первая часть может, например, выглядит так и работает нормально:
model <- keras_model_sequential()
model %>%
layer_dense(units = FLAGS$dense_units1, input_shape = c(measurements)) %>%
layer_dense(units = 2, activation = 'softmax')
adadelta <- optimizer_adadelta(lr = FLAGS$learning_rate)
early_stopping <- callback_early_stopping(monitor = 'val_loss', patience = 20)
model %>% compile(loss = 'binary_crossentropy', optimizer = adadelta, metrics = c("accuracy"))
model %>% fit(data.training, data.trainLabels, epochs = FLAGS$epochs, view_metrics = FALSE,
validation_split = 0.2, shuffle = TRUE
, callbacks = early_stopping
)