热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

6.机器学习sklearn上证指数涨跌预测

1.数据介绍:网易财经上获得的上证指数的历史数据,爬取了20年的上证指数数据。2. 实验目的: 根据给出当前时间前150天的历史数据,预测当天上证指数的涨跌。3.数据实例:中核科技

1.数据介绍:

网易财经上获得的上证指数的历史数据,爬取了20年的上证指数数据。

2. 实验目的: 

根据给出当前时间前150天的历史数据,预测当天上证指数的涨跌。

3.数据实例:中核科技1997年到2017年的股票数据部分截图,红框部分为选取的特征值数据实例

6.机器学习sklearn------上证指数涨跌预测

4.实验过程: 

数据格式

6.机器学习sklearn------上证指数涨跌预测

#用来加载CSV数据的工具包
import pandas as pd
#:支持高级大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库
import numpy as np
#sklearnsvmSVM算法
from sklearn import svm
# sklearncross_validation:交叉验证
from sklearn import model_selection
#parse_dates=0列解析为日期, index_col= 用作行索引的列编号)
data =pd.read_csv('000777.csv',encoding='gbk',parse_dates=[0],index_col=0)
#DataFrame.sort_index(axis=0 (0列排), ascending=True(升序),
#inplace=False(排序后是否覆盖原数据))data 按照时间升序排列
data.sort_index(0,ascending=True,inplace=True)

#选取5列数据作为特征:收盘价 最高价 最低价 开盘价 成交量
#dayfeature:选取150天的数据
#featurenum:选取的5个特征*天数
#x:记录150天的5个特征值 y:记录涨或者跌
dayfeature=150
featurenum =5*dayfeature
#data.shape[0]-dayfeature意思是因为我们要用150天数据做训练,
# 对于条目为200条的数据,只有50条数据是有前150天的数据来训练的,
# 所以测试集的大小就是200-150, 对于每一条数据,他的特征是前150天的所有特征数据,
# 150*5 +1是将当天的开盘价引入作为一条特征数据
x=np.zeros((data.shape[0]-dayfeature,featurenum+1))
y=np.zeros((data.shape[0]-dayfeature))

for i in range(0,data.shape[0]-dayfeature):
    #/将数据中的收盘价”“最高价”“开盘价”“成交量存入x数组中
    #u:unicode编码 reshape:转换成1行,featurenum    x[i,0:featurenum]=np.array(data[i:i+dayfeature]\
                               [[u'收盘价',u'最高价',
    u'最低价',u'开盘价',u'成交量']]).reshape((1,featurenum))
    x[i,featurenum]=data.ix[i+dayfeature][u'开盘价']
    #最后一列记录当日的开盘价              ix :索引
for i in range(0,data.shape[0]-dayfeature):
    if data.ix[i+dayfeature][u'收盘价']>=data.ix[i+dayfeature][u'开盘价']:
        y[i]=1
    else:
        y[i]=0
        #如果当天收盘价高于开盘价,y[i]=1代表涨,0代表跌
#创建SVM并进行交叉验证
clf =svm.SVC(kernel='rbf')
#调用svm函数,并设置kernel参数,默认是rbf,其它:‘linear’‘poly’‘sigmoid’
result =[]
for i in range(5):
    #xy的验证集和测试集,切分80 - 20 % 的测试集
    x_train,x_test,y_train,y_test =\
        model_selection.train_test_split(x,y,test_size=0.2)
    #训练数据进行训练
    clf.fit(x_train,y_train)
    #将预测数据和测试集的验证数据比对
    result.append(np.mean(y_test ==clf.predict(x_test)))
print("svm classifier accuacy:")
print(result)
svm classifier accuacy:
[0.5635179153094463,0.5754614549402823, 0.5266015200868621, 0.5450597176981542, 0.5407166123778502]

交叉验证:

交叉验证法先将数据集D划分为k个大小相似的互斥子集,每个自己都尽可能保持数据分布的一致性,即从D中通过分层采样得到。然后,每次用k-1个子集的并集作为 训练集,余下的那个子集作为测试集;这样就可获得k组训练/测试集,从而可进行k 次训练和测试,最终返回的是这个k个测试结果的均值。通常把交叉验证法称为“k者 交叉验证”, k最常用的取值是10,此时称为10折交叉验证。

6.机器学习sklearn------上证指数涨跌预测



推荐阅读
  • 本文介绍了贝叶斯垃圾邮件分类的机器学习代码,代码来源于https://www.cnblogs.com/huangyc/p/10327209.html,并对代码进行了简介。朴素贝叶斯分类器训练函数包括求p(Ci)和基于词汇表的p(w|Ci)。 ... [详细]
  • 本文由编程笔记#小编为大家整理,主要介绍了logistic回归(线性和非线性)相关的知识,包括线性logistic回归的代码和数据集的分布情况。希望对你有一定的参考价值。 ... [详细]
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
  • Opencv提供了几种分类器,例程里通过字符识别来进行说明的1、支持向量机(SVM):给定训练样本,支持向量机建立一个超平面作为决策平面,使得正例和反例之间的隔离边缘被最大化。函数原型:训练原型cv ... [详细]
  • plt python 画直线_机器学习干货,一步一步通过Python实现梯度下降的学习
    GradientDescent-梯度下降梯度下降法(英语:Gradientdescent)是一个一阶最优化算法,通常也称为最速下降法。要使用梯度下降法找 ... [详细]
  • 本文介绍了在Python3中如何使用选择文件对话框的格式打开和保存图片的方法。通过使用tkinter库中的filedialog模块的asksaveasfilename和askopenfilename函数,可以方便地选择要打开或保存的图片文件,并进行相关操作。具体的代码示例和操作步骤也被提供。 ... [详细]
  • 本文介绍了使用Java实现大数乘法的分治算法,包括输入数据的处理、普通大数乘法的结果和Karatsuba大数乘法的结果。通过改变long类型可以适应不同范围的大数乘法计算。 ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • Oracle分析函数first_value()和last_value()的用法及原理
    本文介绍了Oracle分析函数first_value()和last_value()的用法和原理,以及在查询销售记录日期和部门中的应用。通过示例和解释,详细说明了first_value()和last_value()的功能和不同之处。同时,对于last_value()的结果出现不一样的情况进行了解释,并提供了理解last_value()默认统计范围的方法。该文对于使用Oracle分析函数的开发人员和数据库管理员具有参考价值。 ... [详细]
  • 本文介绍了机器学习手册中关于日期和时区操作的重要性以及其在实际应用中的作用。文章以一个故事为背景,描述了学童们面对老先生的教导时的反应,以及上官如在这个过程中的表现。同时,文章也提到了顾慎为对上官如的恨意以及他们之间的矛盾源于早年的结局。最后,文章强调了日期和时区操作在机器学习中的重要性,并指出了其在实际应用中的作用和意义。 ... [详细]
  • 浏览器中的异常检测算法及其在深度学习中的应用
    本文介绍了在浏览器中进行异常检测的算法,包括统计学方法和机器学习方法,并探讨了异常检测在深度学习中的应用。异常检测在金融领域的信用卡欺诈、企业安全领域的非法入侵、IT运维中的设备维护时间点预测等方面具有广泛的应用。通过使用TensorFlow.js进行异常检测,可以实现对单变量和多变量异常的检测。统计学方法通过估计数据的分布概率来计算数据点的异常概率,而机器学习方法则通过训练数据来建立异常检测模型。 ... [详细]
  • Day2列表、字典、集合操作详解
    本文详细介绍了列表、字典、集合的操作方法,包括定义列表、访问列表元素、字符串操作、字典操作、集合操作、文件操作、字符编码与转码等内容。内容详实,适合初学者参考。 ... [详细]
  • EzPP 0.2发布,新增YAML布局渲染功能
    EzPP发布了0.2.1版本,新增了YAML布局渲染功能,可以将YAML文件渲染为图片,并且可以复用YAML作为模版,通过传递不同参数生成不同的图片。这个功能可以用于绘制Logo、封面或其他图片,让用户不需要安装或卸载Photoshop。文章还提供了一个入门例子,介绍了使用ezpp的基本渲染方法,以及如何使用canvas、text类元素、自定义字体等。 ... [详细]
  • EPPlus绘制刻度线的方法及示例代码
    本文介绍了使用EPPlus绘制刻度线的方法,并提供了示例代码。通过ExcelPackage类和List对象,可以实现在Excel中绘制刻度线的功能。具体的方法和示例代码在文章中进行了详细的介绍和演示。 ... [详细]
  • 十大经典排序算法动图演示+Python实现
    本文介绍了十大经典排序算法的原理、演示和Python实现。排序算法分为内部排序和外部排序,常见的内部排序算法有插入排序、希尔排序、选择排序、冒泡排序、归并排序、快速排序、堆排序、基数排序等。文章还解释了时间复杂度和稳定性的概念,并提供了相关的名词解释。 ... [详细]
author-avatar
花颖年华
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有