使用关联规则分析股票数据--数据来自tushare大数据社区

使用关联规则分析股票数据--数据来自tushare大数据社区

  • 一、开发环境
  • 二、目标
  • 三、关联规则(之前了解过直接跳到第四步)
    • 1.关联规则的定义
    • 2.啤酒尿布的例子
      • 2.1 支持度
      • 2.2置信度
      • 2.3 提升度
      • 2.4 关联规则
      • 2.5 啤酒和尿布
  • 四、股票关联规则分析
    • 1.使用的库
    • 2.获取数据
    • 3.数据分类
    • 4.关联规则(超简单)
  • 五、小结

Tushare运行三年多以来,数据从广度和深度都得到了提升,Pro版正是在此基础上做了更大的改进。
数据内容将扩大到包含股票、基金、期货、债券、外汇、行业大数据,同时包括了数字货币行情等区块链数据的全数据品类的金融大数据平台,为各类金融投资和研究人员提供适用的数据和工具。
在这里插入图片描述

一、开发环境

1.编程:python3.7+jupyter
2.算法:python自带的apriori算法
2.数据来源:tushare大数据社区

二、目标

使用关联规则分析在一段时间内,哪些股票是它涨我也涨的(关联)。

三、关联规则(之前了解过直接跳到第四步)

1.关联规则的定义

关联规则挖掘可以让我们从数据集中发现项与项(item 与 item)之间的关系,它在我们的生活中有很多应用场景,“啤酒尿布”就是一个常见的场景。

需要了解的概念:支持度、置信度、提升度;

2.啤酒尿布的例子

老师上课给的例子

2.1 支持度

支持度是个百分比,它指的是某个商品组合出现的次数与总次数之间的比例。支持度越高,代表这个组合出现的频率越大。

suopport(X)=集合X中的所有项同时出现在一条记录中出现的次数/数据记录的个数
在这里插入图片描述
例如:
support({啤酒})
=啤酒出现的次数/总记录数
=3/5=60%

在这个例子中,我们能看到“啤酒”出现了 3 次,那么这 5笔订单中“牛奶”的支持度就是 3/5=0.6。
同样“牛奶 + 面包”出现了 3 次,那么这 5 笔订单中"牛奶 + 面包”的支持度就是 3/5=0.6。

2.2置信度

置信度可以看作为一个条件概率,即当你购买了商品 A,会有多大的概率购买商品 B。置信度越高,代表若条件X成立,则Y出现的可能性越大。

confidence(X->Y)=集合X与集合Y中的项在一条记录中同时出现的次数/集合X出现的个数。
在这里插入图片描述

在上面这个例子中:

confidence(牛奶→啤酒)=牛奶和啤酒同时出现的次数/牛奶出现的次数=2/4=0.5,代表如果你购买了牛奶,有0.5的概率会购买啤酒。

confidence(啤酒→牛奶)=2/3=0.67,代表如果你购买了啤酒,有0.67的概率会购买牛奶。

2.3 提升度

我们在做商品推荐的时候,重点考虑的是提升度,因为提升度代表的是“商品 A 的出现,对商品 B 的出现概率提升的”程度。 lift是度量规则是否可用的指标,描述的是相对于不用规则,使用规则可以提高多少。

lift有三种可能:
(1)提升度大于1 ,代表有提升,规则有效;
(2)提升度等于1 ,代表没有提升,也没有下降;
(3)提升度小于1 ,代表有下降。

计算公式 lift(X->Y)=confidence(X->Y)/supper(Y)
在这里插入图片描述

例如: lift({牛奶}->{啤酒}) =confidence({牛奶}->{啤酒})/support(啤酒) =0.5/0.6=0.83

2.4 关联规则

用于从大量数据中挖掘出有价值的数据项之间的相关关系 协同过滤(Collaborative Filtering,简称CF)

两个不相交的非空集合X、Y,如果有X->Y,就说X->Y是一条关联规则。

强度:支持度(support)、置信度(confidence)。

效度:提升度(Lift) 。

2.5 啤酒和尿布

from efficient_apriori import aprioridata = [['牛奶','面包','尿布'],['可乐','面包', '尿布', '啤酒'],['牛奶','尿布', '啤酒', '鸡蛋'],['面包', '牛奶', '尿布', '啤酒'],['面包', '牛奶', '尿布', '可乐']]
import pandas as pd
pd.DataFrame()
itemsets, rules = apriori(data, min_support=0.5, min_confidence=1)
print(itemsets)
print(rules)

itemsets统计了每个元素出现了几次,这里只展示了一部分
在这里插入图片描述
设置支持度为0.5,置信度为1后,得到以下几个元素在一定参数下有关联关系
在这里插入图片描述

四、股票关联规则分析

1.使用的库

只是把股票数据导出成为csv文件,没用到数据库,用数据库的朋友自行把数据库加上(我懒得加了,毕竟这是很久之前做的作业了)。

主要是pandas、tushare还有efficient_apriori库

import pandas as pd
import tushare as ts
from efficient_apriori import apriori

2.获取数据

pro=ts.pro_api('e89ff146498d80dfcdc326dacbe6c397363b4a37cebadff0c81e8d23')

上面pro,就是tushare自带的一个接口token,接入后,即可获得海量股票数据。
在这里插入图片描述
下面就是获取数据了,这里用的是日线行情,选好股票代码,注明开始日期和结束日期即可

#获取数据
df = pro.daily(ts_code='000001.SZ,000002.SZ,000004.SZ,000005.SZ,000006.SZ,000007.SZ,000008.SZ,000009.SZ,000010.SZ,000011.SZ,000012.SZ,000014.SZ,000016.SZ,000017.SZ,000018.SZ,000019.SZ,000020.SZ,000021.SZ,000022.SZ',start_date='20180701',end_date='20180730')
df.to_csv("股票数据.csv")
print(df)

其实不整成csv文件也能用,主要就是方便以后可能还会用到数据,如图所示,开盘价,最高价,最低价,涨跌幅等等参数都有了。
在这里插入图片描述

3.数据分类

python的库功能非常强大,写起程序来也相对简单。

刚刚已经有了数据,但这是每只股票不同时间的数据,想要做关联规则分析就必须把同一天的数据放在一起,就像上面每天销售的啤酒尿布一样。

这里我用的是笨办法,先是对涨跌幅>=3%的数据进行筛选,完了再对照日期把同一天股票数据涨跌幅>=3%的放在一起,如有高招,请在评论区交流。

#数据整理
df=df[df['pct_chg']>=3]
print(df)
a1=list(df[df['trade_date']=='20180703']['ts_code'])
a2=list(df[df['trade_date']=='20180704']['ts_code'])
a3=list(df[df['trade_date']=='20180706']['ts_code'])
a4=list(df[df['trade_date']=='20180709']['ts_code'])
a5=list(df[df['trade_date']=='20180710']['ts_code'])
a6=list(df[df['trade_date']=='20180712']['ts_code'])
a7=list(df[df['trade_date']=='20180713']['ts_code'])
a8=list(df[df['trade_date']=='20180717']['ts_code'])
a9=list(df[df['trade_date']=='20180718']['ts_code'])
a10=list(df[df['trade_date']=='20180720']['ts_code'])
a11=list(df[df['trade_date']=='20180723']['ts_code'])
a12=list(df[df['trade_date']=='20180724']['ts_code'])
a13=list(df[df['trade_date']=='20180725']['ts_code'])
a14=list(df[df['trade_date']=='20180726']['ts_code'])
a15=list(df[df['trade_date']=='20180727']['ts_code'])
a16=list(df[df['trade_date']=='20180730']['ts_code'])
data=[a1,a2,a3,a4,a5,a6,a7,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16]
print(data)

结果就是这样了
在这里插入图片描述
可以看到虽然我们之前选了很多只股票,其实涨的也没几只,这对于数据分析来说是不太有利的,感兴趣可以多选一点。

4.关联规则(超简单)

python的库特别多,很多东西不用自己编,它都是有的。

#关联规则
results = list(apriori(data, min_support=0.1,min_confidence=1))
print(results)

可以看到我选择的支持度特别低,因为一直涨的或者说大部分时间都在涨的股票真的是太少了(也可能是股票样本太小或者样本选得不好)。
在这里插入图片描述
前面统计了次数,后面就是关联规则分析结果。结果并不是很好,这里仅仅给大家提供一个思路。

五、小结

本次用关联规则分析股票数据,为股票选择提供了一种参考,编程的思路大概就是这样。

根据结果是可以作为股票选择的一个参考,比如谁和谁总是一起涨,这个我们是可以通过关联规则分析得出结论的。

当然,股票样本选择、支持度、置信度的选择是看大家自己的需求慢慢调整了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/31358.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Twitter部分源代码泄漏、疑遭离职员工报复:马斯克要求GitHub交出所有上传、下载人员名单...

点击“开发者技术前线”,选择“星标” 让一部分开发者看到未来 作者 | Tina 来自:AI前线 最近的法律文件显示,Twitter 的部分源代码已经在网上泄露。这是一次罕见的、严重的知识产权泄露事件。为防止该事件对其服务产生潜在的破坏…

马斯克刚说要开源,没几天Twitter源代码就泄漏了...

出品 | OSC开源社区(ID:oschina2013) 根据《纽约时报》的报道,一份法律文件显示,Twitter 称其部分源代码在网上被泄露,该公司已于上周五采取行动,它通过向托管代码的 GitHub 发送版权侵权通知,删…

文心一言员工跳槽工资翻倍, AI 人才备受追捧;推特称其部分源代码遭泄露;Docker 撤回受争议的收费方案|极客头条...

「极客头条」—— 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注的重要新闻吧。 整理 | 梦依丹 出品 | CSDN(ID:CSDNnews) 一分钟速览新闻点&#…

有道智云翻译API + retrofit实现在线翻译Android app

目录 1.进入有道智云主页,注册自己的账号(手机号验证码),完善信息随意填 2.登录进来后,创建应用。根据需要选择语言翻译服务。 3. 打开Android Studio,新建空的Activity项目 1. 新建项目,在build.gradle(app)添加re…

STRAIGHT声码器详解

转载请注明出处。 STRAIGHT自适应加权谱内插的语音转换与重构 STRAIGHT( Speech Transformation and Representation using Adaptive Interpolation of weighted spectrum)算法(Kawahara,1998),是一种语音信号分析、合成、修改的…

chatgpt赋能python:如何用Python挣钱:从小白到大佬的必备指南

如何用Python挣钱:从小白到大佬的必备指南 作为一名有10年Python编程经验的工程师,我深知Python的应用范围非常广泛,它可以为各种行业带来巨大的价值。当然,对于许多人来说,如果你是一名SEO从业者,也完全可…

chatgpt赋能python:如何利用Python在网上赚钱:一份SEO指南

如何利用Python在网上赚钱:一份SEO指南 随着互联网的快速发展和Python成为一种越来越受欢迎的编程语言,越来越多的人开始利用Python在网上赚取额外的收入。本篇文章将介绍一些Python工具和技术,以及SEO最佳实践,帮助你利用Python…

PHP短信验证功能

PHP阿里大鱼短信验证 第一步 登陆阿里大于注册账号,在用户管理中心创建应用,确定AppKEY和App Secret还有配置签名 第二步 在应用管理中选择SDK下载,或者直接点击http://download.csdn.net/detail/s371795639/9695983下载,免费的…

发送短信验证码 API数据接口

1.前言 此接口发送短信验证码 短信模板 参数说明: 1449978 验证码为:{1}为您的登录验证码,请于{2}分钟内填写,如非本人操作,请忽略本短信。 1449979 验证码为:{1},您正在登录,若非本人操作&…

为何语言学家乔姆斯基对ChatGPT持否定态度?

本文比较了乔姆斯基关于语言知识的本质、来源和使用的理论与 GPT 的不同, 说明了GPT没有可解释性。 2023年3月8日著名语言学家乔姆斯基与罗伯茨(Ian Roberts)、瓦图穆尔(Jeffrey Watmull)共同在《纽约时报》发表了题为…

如何更换您的Gmail地址

在许多情况下,您可能需要更改您的 Gmail 地址:您换了工作、结婚并改了名字,或者您在 2003 年设置的电子邮件地址突然看起来有点累了。无论出于何种原因,以下是更改 Gmail 地址并确保您在此过程中不会丢失任何重要数据的方法。 创…

将163邮箱改为使用outlook软件登录的切换步骤

效果图: 实际操作步骤如下: 1. 登录163.邮箱,如下是使用网页版登录;按照下面要求,扫描二维码 2. 找个txt文件,保存此 一次性密码,后面步骤有用。 3.检查当前状态; 两个都是“已开…

Becky!客户端Hotmail/outlook邮箱设置方法

Becky!邮箱客户端是一款非常简洁好用的邮件接收发送软件。最近本软件菜单增加了对中的支持,感谢作者的不懈努力。 日语版本下载地址: http://www.rimarts.co.jp/becky-j.htm 中文菜单版本: http://www.zhcn.org/wp-content/plugins/download…

Gmail,qq,hotmail,163,sina等邮箱的Smtp设置

Gmail SMTP 服务器:smtp.gmail.com, SSL:是,服务器端口:587,见下图: Hotmail SMTP 服务器:smtp.live.com, SSL:是,服务器端口:587&…

凭实力破圈的狄耐克,究竟藏了多少惊喜?

你是否曾经想象这样一个场景: 进入社区时,自动识别业主身份,精准放行并联动家中智能场景模式。人未到,智先行,提前营造极度舒适便捷的人居环境。 进入单元楼时,联动电梯等候,无需触碰按键&…

点燃创作灵感:Prompt 实践指南揭秘!让 ChatGPT 更智能的六种策略(上)

在和 ChatGPT 对话中,Prompt 提示词的选择,如果遵循以下六种策略,我们将获得更好、更符合要求的回答。 这些策略,后几种更适合在编程调用 ChatGPT API 时使用,不过也适用直接和 ChatGPT 对话,让它更好的理解…

英伟达EditGAN:为高精度百变而生

点击上方“机器学习与生成对抗网络”,关注星标 获取有趣、好玩的前沿干货! 来源 机器之心报道 编辑 杜伟 在实现复杂且高精度图像编辑效果的同时,EditGAN 还能保持较高的图像质量和对象身份,英伟达在图像处理领域果然「出手不凡」…

英伟达把P图软件GAN了

晓查 发自 凹非寺量子位 报道 | 公众号 QbitAI 英伟达的最新AI工具又让网友用户们激动了。 “我已经等不及了!” 一位网友在看完演示视频后表示。 对于“手残党”来说,英伟达的EditGAN简直就是零基础P图神器。 能够高质量、高精细度地对图像进行修改&…

英伟达NVIDIA GPU 架构介绍

一、NVIDIA GPU的架构演变历史和基本概念 截止2021年,发布时间离我们最近的8种NVIDIA GPU微架构是: Tesla (特斯拉) Fermi(费米) Kepler(开普勒) Maxwell(麦克斯韦) Pascal&#x…

英伟达 GPU 架构简史

英伟达 GPU 架构简史 尽管近年来 Nvidia GPU 确实更频繁地成为新闻,但它们绝不是新事物。事实上,多年来,Nvidia GPU 已经进行了多次迭代,GPU 架构也取得了进步。因此,让我们回顾一下最近的历史,以了解 GPU…