700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 深度学习100例-循环神经网络(RNN)实现股票预测第9天之二

深度学习100例-循环神经网络(RNN)实现股票预测第9天之二

时间:2022-03-06 10:55:27

相关推荐

深度学习100例-循环神经网络(RNN)实现股票预测第9天之二

​训练集,就是用来训练参数的,更新模型的参数。测试集,就是在模型最终训练完成后,用来测试一下最后的准确率。对最终筛选出来的模型的泛化能力进行评价,测试集最重要的就是未知,用一个学习集之外的数据集来对模型的效果进行评估,看看模型能否给出合适的输出。如果测试集准确率很差,那么我们还是回去调整模型的各种参数,这时候测试集其实也参与了训练。就是这样反复循环。

x_train = []y_train = []x_test = []y_test = []"""使用前60天的开盘价作为输入特征x_train第61天的开盘价作为输入标签y_train"""for i in range(60, len(training_set)):x_train.append(training_set[i - 60:i, 0])y_train.append(training_set[i, 0])for i in range(60, len(test_set)):x_test.append(test_set[i - 60:i, 0])y_test.append(test_set[i, 0])

输入特征和输入标签的意义,以周志华老师在《机器学习》中判断好瓜的问题为例——给你一个西瓜,如何判断出一个它是不是正熟的好瓜?对于人类来说,根据以前的经验,我们首先会从西瓜这个具体的事物中抽取一些有用的信息,比如西瓜的颜色、瓜蒂的形状、敲击的声音等,然后根据一定的规则在这些信息的基础上进行判断————一般情况下我们认为颜色青绿、根蒂蜷缩、敲击浊响的西瓜是好瓜。

上述问题中,西瓜的颜色、瓜蒂的形状、敲击的声音就是特征,而“好瓜”和“坏瓜”这两个判断就是标签。更抽象一点,特征是做出某个判断的证据,标签是结论。

机器学习主要的工作就是提取出有用的特征(比如卖西瓜的人的性别这个特征对判断西瓜是否是好瓜基本是没有用的,就不是一个好的特征),然后根据已有的实例(例如有一堆瓜,里面有好瓜也有坏瓜,并且已经标注(已有标签),也知道这些瓜的颜色、根蒂形状和敲击声音),构造从特征到标签的映射。

# 对训练集进行打乱np.random.seed(7)np.random.shuffle(x_train)np.random.seed(7)np.random.shuffle(y_train)tf.random.set_seed(7)

对训练集数据进行打乱是为了防止数据按一定规律排列,这样神经网络学习时会把这种规律当做一种特征学习,从而过拟合。

理解seed是什么,首先得了解随机数产生机制。在numpy中,seed函数的作用为 Seed the random number generator(为随机生成函数生成种子),而seed函数中的参数seed可以理解成为了获取每次产生随机数时的 “开始位置”的数值。我们可以把seed看作一个映射函数的输入,输入不同的值,都会有唯一对应的数值( “开始位置”)。至于随机数,是一些顺序已经固定的序列。通过seed得到的 “开始位置”,就能在固定随机序列中找到位置,进行输出。

np.random.seed()函数可以保证生成的随机数具有可预测性。这里的可预测性是指相同的种子(seed值)所产生的随机数是相同的。如果不设置seed值,则系统根据时间来自己选择这个值,此时每次生成的随机数因时间差异而不同。为什么是7,这个我也不太清楚。

Random.shuffle方法,对元素进行重新排序,打乱原有的顺序,返回一个随机序列(当然此处随机序列属于伪随机,即可重现),该方法的作用类似洗牌。

f.random.set_seed:设置全局随机种子

活动地址:CSDN21天学习挑战赛

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。