Превратите Pandas Dataframe во входной тензор LSTM - PullRequest
0 голосов
/ 28 декабря 2018

Я хочу превратить мой массив данных pandas во входной тензор, который затем будет передаваться в сеть LSTM.

Последовательность находится внутри одного из столбцов в кадре данных в виде списка.Кроме того, есть два значения, которые связаны с последовательностью, а именно длительность и user_cluster_id.

Фрейм данных выглядит следующим образом: Фрейм данных

Мне удалось извлечь отдельные значенияпоследовательности на каждом временном шаге и превратить каждый из них во входной тензор, но я предполагаю, что это неправильно, так как я нарушаю последовательность.

Имя фрейма данных pandas ниже: travel_history - это то, что я сделал:

input_seqs = []
output_seqs = []
for i in range(travel_history.shape[0]):
    user_cluster = travel_history.iloc[i,:]
    cluster_id = user_cluster['sequence'].tolist()
    user_class = user_cluster['user_cluster_id']
    duration = int(user_cluster['duration'])

    for i,cluster in enumerate(cluster_id):
        if i < len(cluster_id)-1:
            input_seqs.append([user_class,i, duration,cluster])
            output_seqs.append([cluster_id[i+1]])

Я ожидаю, что вывод будет выглядеть примерно так: [sequence # 1 [cluster, duration, user_cluster_id].

Вместо этого фактический вывод выглядит следующим образом [2, 0, 8, 87], где каждое значение соответствует [user_cluster_id, timestep, duration, cluster]

...