Как преобразовать данные временных рядов во входной вектор NN?

Например, у меня есть csv данные временных рядов для различных акций, и я хотел бы преобразовать данные в векторы, которые можно было бы передать в нейронную сеть.

Я не уверен, будет ли это иметь какое-то значение, но в конечном итоге я хотел бы спрогнозировать будущую цену акций на основе различных текущих фундаментальных показателей - TDebt, IntAssets, TAssets и EBITDA. Затем я сравниваю PriceToday и Price + 1Yr. Если значение PriceDiff положительное, данные помечаются как правильные, если отрицательные, данные помечаются как неправильные.

Дата, тикер, TDebt, IntAssets, TAssets, EBITDA, PriceToday, Price + 1Yr, PriceDiff, Label 1/1/10, AAPL, 6.73,3.05,41.16,11.06,179.26, 219.26,22.31, правильно 1/1/10, GOOGL, 3,19,12,54,24,08,2,63,1135,97,1115,97, -1,76, неверно 1/1/10, MSFT, 4,32,15,74,35,84,7,43,90,1,94,1,4,44, правильно 1/1/10, AMZN, 0,52 , 0,24,18,5,7,55,1293,32,1044,32, -19,25, неверно 1/1/10, FB, 3,32,7,79,15,05,0,63,179,8,156,8, -12,79, неверно 1/1/10, BABA, 13,61,18,02 , 122,56,25,31,184,4,205,4,11,39, правильно 1/1/10, JNJ, 5,18,2,54,39,44,8,06 146,92,185,92,26,55, правильно 1/1/10, XOM, 2,23, -2,17,94,32, 14,52,87,43,48,43, -44,61, неверно 1/1/11, AAPL, 7,27,3,35,42,9,12,04,219,26,230,26,5,02, правильно 1/1/11, GOOGL, 4,01,12,8,24,87,2,34,1115,97 , 1135.97,1.79, правильно 1/1/11, MSFT, 5.4,14.04,33.84,5.04,94.1,88.1, -6.38, неверно 1/1 / 11, AMZN, 0.59,0.31,19.04, 9.31, 1044.32, 1396.32, 33,71, правильно 1/1/11, FB, 2,8,9,08,16,04,0,74,156,8,151,8, -3,19, неверно 1/1/11, BABA, 12,68,19,03,124,05,24,03,205,4,216,4,5,36, правильно 1/1/11, JNJ, 6.01,2.7,37.04,10.02,185.92,174 .92, -5.92, неверно 1/1 / 11, XOM, 2.8, -2.9, 93.1, 13.23, 48.43, 78.43,61.95, правильно 1/1 / 12, AAPL, 7.18, -4.88, 67.78, 26.03, 230.26, 209,26, -9,12, неверно 1/1/12, GOOGL, 1.05,0.47,102.09,11.29,1135.97,1145.97,0.88, правильно 1/1 / 12, MSFT, 6.45, -5.68,59.01,21.42,88.1,58.1, -34.05, неверно 1/1/12, AMZN, 6.23,1.59,19.44,6.91, 1396.32,1276.32, -8.59, неверно 1/1 / 12, FB, 6.08, -1.15,53.7,13.43,151.8, 156.8,3.29 , Правильно 1/1/12, BABA, 10,89,12,57,194,62,20,91,216,4,204,4, -5,55, неверно 1/1/12, JNJ, 5,88,5,48,78,08,12,8,174,92,184,92,5,72, правильно 1 /1/12,XOM,14.57,0.92,121.11,13.76,78.43,66.43,-15.3, Неправильно

Спасибо за помощь.


person michael0196    schedule 09.03.2018    source источник
comment
прочтите его с помощью панд, а затем конвертируйте в любой нужный вам формат, используя их преобразования. Pandas хранит данные в виде массивов numpy, так что вы в основном закончили   -  person evamicur    schedule 09.03.2018
comment
Не могли бы вы привести пример кода, который вы бы использовали для этого? Спасибо.   -  person michael0196    schedule 09.03.2018


Ответы (1)


Как объясняет @evamicur, вы должны использовать библиотеку pandas для преобразования даты. Я бы сделал что-то вроде, но вы должны отредактировать по своему усмотрению:

import pandas as pd

df = pd.read_csv('my.csv')

df['Date'] = pd.to_datetime(df['Date'])

df.set_index('Date', inplace=True)

Обратите внимание: я бы также изменил свой ярлык на 0 или 1 вместо «Правильно» и «Неправильно» для вашей NN.

df[' Label '] = df[' Label '].map({'Correct ': 1, 'Incorrect ': 0})

Вам также следует избавиться от всех пробелов в вашем CSV-файле. Надеюсь на эту помощь.

person Joesmaker    schedule 19.03.2018