友:你要不要一起参加铁人赛?
我:好啊!
(几天后)
我:乾我不小心忘了报名......
--------------------------------------> 2021.09.17
本系列的目标如下
陪我同事参赛,一起写文。带大家使用不同的模型来预测涨跌。带大家使用不同的特徵来预测涨跌。总目标是发大财。今天先来跟大家快速的把所需的资料整理好,以下是会使用到的工具,因为网路上的教学很多,所以就不教大家怎么设定一些有的没有的了XDD,那我们...累狗!
工具: Google Colaboratory资料: Kaggle 上的虚拟货币资料 Cryptocurrency Historical Prices範例程式Step 0. 了解资料。
大家从kaggle把资料下载下来之后,别忘了先去看看有哪些栏位喔。一般来说,金融预测会使用Open, High, Low, Close这四项数据来做。Step 1. 汇入使用的套件。
import numpy as npimport pandas as pdimport tensorflow as tf
Step 2. 使用pandas读取资料,以下以比特币为例。
coin_data = pd.read_csv('coin_Bitcoin.csv')coin_data.head() # 显示前面几笔资料,预设五笔。
Step 3. 资料清洗。
我们现在只会使用到四种数据,开盘价,最高价,最低价,收盘价。我们使用drop()来丢掉不必要的栏位,丢完之后应该只会剩下四项,一样使用head()来检查看看。data = coin_data.drop(['SNo', 'Name', 'Symbol', 'Date', 'Volume', 'Marketcap'], axis=1)data.head()
Step 4. 产生训练资料与标注资料。
时间序列的预测任务所使用的资料很多变,我们会使用前七天的四项数据,来预测第八天的涨跌。我们的预测结果是第八天的收盘价减去第七天的收盘价,如果涨,就是1,反之为0。简单来说,我们的逻辑就是,我使用到今天为止七天前的资料来预测明天会不会涨。train_data = []for idx in range(len(data)-7): train_data.append(data.values[idx:idx+7].tolist())train_label = []for idx in range(7, len(data)): rise_or_fall = data['Close'][idx] - data['Close'][idx-1] if rise_or_fall >= 0: rise_or_fall = 1 else: rise_or_fall = 0 train_label.append(rise_or_fall)
稍微检查一下data跟label长度有没有一样。
print(np.array(train_data).shape)print(np.array(train_label).shape)# (2984, 7, 4)# (2984,)
小结
好的,今天我们把会训练模型需要的资料整理好了,明天将会带大家来训练不同的模型啰!