在聚数力平台上下载的股票数据为csv格式,内容为历史每日股票的基本数据,为了使数据能表现我们对股票预测因素的分析,我们需要对数据进行加工。

我们选择上证指数作为示例,原始数据如下图:

包括日期,前收盘价,开盘价,最高价,最低价,收盘价,成交量,成交金额,涨跌,涨跌幅。

1、首先读取数据,将数据从文件中读入至程序列表中:

def readData():'''数据读取,从csv文件中读取数据,转成列表形式'''data = []date = []with open('./stock_data\szzhzs.CSV') as file:file.readline()line = file.readline()while line:line = file.readline().strip('\n')data_i = line.split(',')i0 = data_i[0]data_i =[float(i) for i in data_i[1:]]#data_i.insert(0,i0)data.append(data_i)date.append(i0)data = data[:-1]date = date[:-1]return data,date

2、数据归一化

因为历史数据从100多到6000多,数值大小不能体现最近一段时间的涨跌趋势,需要对数据做归一化以减小数值本身大小的影响。

除了比率数据意外,其他所有数据都除以前百日均值做归一化。

def normalization(data):'''归一化处理,将所有数值参数与其百日均值比值作为当前数据,比例数据不变'''newData = []labels = []for i in range(len(data)):labels.append(data[i][-1])#最后一列为涨跌幅row = copy.deepcopy(data[i])forwardData = data[i-100 if i>100 else 0:i+1]#求前100日的数据矩阵fDataNumpy = np.array(forwardData)rankAvg = np.mean(fDataNumpy,axis=0)#前100日数据均值rankAvg[-1] = 1#最后一列为比率,不做归一化rowNumpy = np.array(row)rowNumpy = rowNumpy/rankAvg        
        row = rowNumpy.tolist()newData.append(row)

同时需要考虑前一段时间的数据对将来数据都会产生影响,因此选取前100天的收盘价加入特征中

    for i in range(100,len(newData)-1):for j in range(100):newData[i].append(newData[j][0])#当日数据加入前100日收盘价labels[i]=labels[i+1]#第二日涨跌幅为当日标签newData=newData[100:]#删掉前100日数据

选取涨跌幅作为数据标签,因为选择了softmax模式进行计算,需将标签转化为one_hot形式。

#labels变为one_hot形式newlabels = []for f in labels:f = round(f)one_hot = []for i in range(21):if i-10==f:one_hot.append(1)elif i==20 and f>10:one_hot.append(1)else:one_hot.append(0)newlabels.append(one_hot)     newlabels=newlabels[100:]

所有大于10%的涨跌幅都认为是10 ,小于-10的涨跌幅都认为是-10(程序未体现)。

选择所有数据的前4/5为训练数据,后1/5为测试数据

    testLine = int(len(newData)*4/5)#4/5的数据为训练数据,其余为测试数据#print (newData)train = newData[:testLine]trainLabels = newlabels[:testLine]test = newData[testLine:-1]testLabels = newlabels[testLine:-1]return train,test,trainLabels,testLabels

因数据总数有限,为使训练次数能更多,训练过程每次随机选取100天数据进行训练,随机选择函数如下:

def random_batch(train,trainLabels,num):ranList = random.sample([i for i in range(len(train))],num)train_batch = []trainLabels_batch = []for index in ranList:train_batch.append(train[index])trainLabels_batch.append(trainLabels[index])return train_batch,trainLabels_batch

以上为所有进行数据加工的操作,会有考虑不周的地方,也会有代码简陋的地方,欢迎探讨

从零开始用人工智能预测股票(二、数据加工)相关推荐

  1. 从零开始用人工智能预测股票(四、方案优化)

    根据之前方案呈现的结果,当前存在以下问题: 1.大盘数据较少,共6000多条数据,还需要留一部分做测试集 2.大盘指数波动幅度较小,因此程序自动预测为0时撞上的几率较大 3.网络形式简单,未考虑LST ...

  2. 从零开始用人工智能预测股票(一、特征选取)

    随着人工智能的崛起,越来越多的学科正在被人工智能改造,包括金融领域的很多分析决策工作.而神经网络是目前最火的人工智能技术,在我的理解中,神经网络适合处理拥有大量实践数据,数据内部存在某种关系的问题,正 ...

  3. 从零开始用人工智能预测股票(三、初步实现)

    在数据加工好以后,我们用TensorFlow做简单的预测. 按之前的做法去读取并加载数据 data,date= dp.readData()train,test,trainLables,testLabe ...

  4. 如何用人工智能预测股票(完整答案)

    前言 十分钟实现人工智能股价预测,是一个深度学习的练习项目.其通过机器学习算法,根据过去几年与某只股票相关的K线走势.公司相关报道的情感分析作为数据集,通过训练来得到可以预测股价的机器学习模型,并用该 ...

  5. 如何用人工智能预测股票(完整项目)

    本文由 沈庆阳 所有,转载请与作者取得联系! 前言 十分钟实现人工智能股价预测,是一个深度学习的练习项目.其通过机器学习算法,根据过去几年与某只股票相关的K线走势.公司相关报道的情感分析作为数据集,通 ...

  6. 人工智能预测股票涨停?靠谱吗?好像行哦,那不发财了?

    背景 人工智能很火,各种秀.股票让人欢喜让人忧.它们结合能擦出什么样的火花? 我从去年5月学编程,树立目标:数据分析股市,做快乐盈利股民.达成阶段目标:预测股票涨停.特写文章记录和分享,也看能不能&q ...

  7. 基于分析师预测股票eps数据生成仓位因子构建投资组合

    基于加权股票eps数据构建仓位因子的指数增强策略 核心思想 eps仓位因子的构建 eps因子在个股上的测试: eps在上证50股票池测试 核心思想 每股收益即每股盈利(EPS),又称每股税后利润.每股 ...

  8. 从零开始的人工智能学习(二)

    终于放假了...上个星期一直在考试和备考,所以就托更啦.接下来的文本里面的东西,到后面还是比较难懂的,所以也花了比较久的时间.后面两章基本上没看懂,所以暂且放一放,先把书上的语法给看完.这一周主要看的 ...

  9. python k线 形态识别 人工智能_用Python结合人工智能尝试预测股票,下一个股神就是你...

    股票市场涨涨跌跌,好像毫无规律,但有一些人却凭借自己的直觉掌握了一些特殊规律,从而实现在股票上的实现斩获.现在在人工智能时代,Python+AI框架,无疑会利用人工智能优势可以对股票市场进行特征学习, ...

  10. 用人工智能预测彩票,利用大数据预测彩票

    机器学习可以预测股票走向,靠谱么 谷歌人工智能写作项目:小发猫 有没有大佬能利用机器学习预测30天后股票涨跌情况啊,我实现不出来,头都大了? 考虑两个最简单的模型,第一个是趋势跟随,也就是正在上涨的股 ...

最新文章

  1. js的变量作用域 ,变量提升
  2. windows内存管理和API函数
  3. Linux基础优化之SElinux和iptables项
  4. 【Java】5.3 成员变量和局部变量
  5. 04-String课后动手动脑
  6. IO流(五)__文件的递归、Properties、打印流PrintStream与PrintWriter、序列流SequenceInputStream...
  7. 弗吉尼亚理工大学(Virginia Tech)NCR校区招收计算机硕士学位研究生
  8. 从零构建vue+webpack (一)
  9. Spring Boot 集成 Druid 监控数据源
  10. 工作38:实现分页秀呀
  11. matlab 排课代码,matlab遗传算法排课问题,程序一直有错,求解答
  12. 台积电预计5nm芯片四季度出货量将超过15万片晶圆,9成供应苹果
  13. <读书笔记> Thinking in python (Python 设计模式) 3. Proxy and State模式
  14. wordpress入门基本操作,网站安全防护及常用插件(建站必看教程)
  15. python excel操作 bom_Python Pandas比较BOM表数据
  16. 车型代号对照表_2017年最新主机厂OEM车型代号对照表
  17. 20155305《网络对抗》信息搜集与漏洞扫描
  18. python函数定义以及调用
  19. FinTech4Good创始人张晓晨:全球区块链的产业应用趋势
  20. TensorFlow 2.10 Unable to register cuBLAS factory Attempting to register factory for plugin cuBLAS方案

热门文章

  1. C# 实现蓝牙检测及蓝牙设备信息获取代码
  2. 海康 linux java demo_Java 实现 海康摄像头抓拍图像 Windows、Linux
  3. 【线代】行/列分块矩阵中向量正交有什么用?如何表述?向量正交和线性无关有什么关系?
  4. 外来工作人员如何提取上海住房公积金
  5. 我们走在一起——走进京杭大运河漕运码头
  6. IPC技术与评分卡技术区别
  7. [Linux 驱动] -- 电源管理芯片之 Regulator 用法 与具体使用实例
  8. 常见光纤接头LC、FC、SC、ST
  9. python彩色螺旋线_python绘制彩色螺旋线
  10. 10827 - Maximum sum on a torus