Модель двоичной классификации для сравнения двух временных рядов переменной длины - PullRequest
0 голосов
/ 20 апреля 2020

Существует ли модель машинного обучения (что-то вроде LSTM или 1D-CNN), которая принимает в качестве входных данных два временных ряда переменной длины и выдает двоичную классификацию (True / False, если временные ряды имеют одну и ту же метку)?

Таким образом, данные будут выглядеть примерно так:

date        value label
2020-01-01  2     0     # first input time series
2020-01-02  1     0     # first input time series
2020-01-03  1     0     # first input time series
2020-01-01  3     1     # second input time series
2020-01-03  1     1     # second input time series

Есть ли что-то подобное из коробки, и если нет, то как бы вы построили модель минимального рабочего примера в Keras?

Лучше всего использовать общий слой LSTM для обоих входов и Concatenate оба результирующих вектора перед подачей в последний слой Dense.

import tensorflow as tf
from tensorflow import keras
from tensorflow.keras import layers

n_lstm_blocks = 50

input_1 = keras.Input(shape=(None, 1)) # unknown timespan, fixed feature size 1
input_2 = keras.Input(shape=(None, 1))
shared_lstm = layers.LSTM(n_lstm_blocks)
encode_1 = shared_lstm(input_1)
encode_2 = shared_lstm(input_2)
concat = layers.concatenate([input_1,input_2])
output = layers.Dense(1, activation='sigmoid')(concat)
model = keras.Model(inputs=[input_1,input_2],outputs=output)
model.compile(optimizer='adam', loss='binary_crossentropy')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...