Как использовать LSTM для прогнозирования предложений, но с числовыми функциями в качестве предикторов? - PullRequest
0 голосов
/ 07 мая 2019

Я знаю, что LSTM подходят для прогнозирования значений во временных рядах.Тем не менее, я использую временные ряды, которые по существу представлены в табличном формате, с 21392 строками, каждая строка является экземпляром, как правило, с интервалом в 10 минут.
Итак, каждая строка содержит около 1973 объектов, которые являются измерениями для различных объектовв этот конкретный момент времени.Я хотел бы предсказать предложения (цели - это предложения, поэтому в каждом ряду последний столбец является определенным предложением, например, «Кошка сидела» и т. Д.).
Таким образом, в принципе, мы можем рассматривать это как последовательность для последовательностисценарий, в котором каждая строка моих данных представляет собой последовательность, которую я хотел бы использовать для прогнозирования целевой последовательности (которая в данном случае является предложением).

Поскольку масштабы всех моих функций меняются, я чувствуючто важно масштабировать то же самое, что я делаю в данный момент.Я однозначно закодировал цели (предложения), чтобы облегчить их использование в потенциальной сети.Однако я очень озадачен тем, как на самом деле я могу использовать входы и выходы в соответствии со своим сценарием.
Я проверил документацию LSTM от Keras и блогов, таких как Machine Learning Mastery, но я не смог найти какой-либо ресурс, касающийся использования числовых функций.предсказывать предложения.Вот код, который я использую в данный момент: -

df = pd.read_pickle('all_data_witheventdescription.pkl') # read data frame
df.head()
df_features = df.iloc[:,:-3] #these are the predictors (numeric inputs)
outputs_df = df.iloc[:,-1] # these are basically sentences
outputs_df = outputs_df.values # converting the sentences to an array

# center and scale
print("Center and Scaling taking place....")
scaler = MinMaxScaler(feature_range=(0, 1))
df_features = scaler.fit_transform(df_features)

# # one-hot encode the outputs
print("One hot encoding the outputs for training....")
onehot_encoder = OneHotEncoder()
encode_categorical = outputs_df.reshape(len((outputs_df)), 1)
outputs_encoded = onehot_encoder.fit_transform(encode_categorical).toarray()
print('outputs_encoded.shape after One Hot Encode:', outputs_encoded.shape)

Если кто-нибудь может подсказать мне минимально работоспособный пример для такого сценария, в котором LSTM могут использоваться для предсказания предложений, это было бы весьмаоценили.

...