《Python股票量化交易从入门到实践》是一本关于Python相关的电子书资源,介绍了关于Python、股票量化交易方面的内容,本书是由人民邮电出版社出版,格式为PDF,资源大小96 MB,袁霄编写,目前豆瓣、亚马逊、当当、京东等综合评分为:9.2分,一起来看下具体内容。
量化交易是一种新兴的系统化的金融投资方法,它是以计算机强大的运算能力为基础,运用数据建模、统计学分析、程序设计等工具从历史数据中得到良好的交易策略,是计算机科学在金融领域的具体应用。Python语言凭借其简洁、高效的特性,以及其在大数据分析方面的强大性能,在量化交易领域得到了良好的应用。 本书以 A 股市场为交易标的物,引导读者从理解量化交易开始,逐步掌握行情数据的获取和管理、技术指标的可视化,并在熟练编程的基础上,构建出个性化的交易策略体系。 本书适合对股票的量化交易感兴趣的读者阅读,通过阅读本书,读者不仅能够了解 Python 数据分析和数据可视化的核心技能,更能够将 Python 作为常用工具,为股票技术指标分析和量化交易提供助力。
1.厘清概念,夯实技能 深入浅出揭示量化交易的本质和源起,手把手教你部署Python环境,跟随代码示例掌握基本的编程语法和模块调用。
2.立足A股,贴近实战 选择A股市场作为标的,囊括多渠道数据获取、技术指标的回测分析与可视化等,在边学边练中摸索股票量化技巧。
3.步骤详细,模型与代码并重 统计概率理论快速入门,ATR技术指标、蒙特卡洛法、凯利公式等经典策略与Python编码的完美融合。
4.大咖推荐,品质保证 畅销书《基于Python的金融分析与风险防控》作者斯文博士作序推荐,《快乐机器学习》作者王圣元倾情推荐。
Python文本特征抽取与向量化算法学习实例详解
假设我们刚看完诺兰的大片《星际穿越》,设想如何让机器来自动分析各位观众对电影的评价到底是“赞”(positive)还是“踩”(negative)呢?这类问题就属于情感分析问题。这类问题处理的第一步,就是将文本转换为特征。本文主要为大家详细介绍了Python文本特征抽取与向量化算法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能帮助到大家。
因此,这章我们只学习第一步,如何从文本中抽取特征,并将其向量化。
由于中文的处理涉及到分词问题,本文用一个简单的例子来说明如何使用Python的机器学习库,对英文进行特征提取。
1、数据准备
Python的sklearn.datasets支持从目录读取所有分类好的文本。不过目录必须按照一个文件夹一个标签名的规则放好。比如本文使用的数据集共有2个标签,一个为“net”,一个为“pos”,每个目录下面有6个文本文件。目录如下所示:
neg
1.txt
2.txt
......
pos
1.txt
2.txt
....
12个文件的内容汇总起来如下所示:
neg: shit. waste my money. waste of money. sb movie. waste of time. a shit movie. pos: nb! nb movie! nb! worth my money. I love this movie! a nb movie. worth it!
2、文本特征
如何从这些英文中抽取情感态度而进行分类呢?
最直观的做法就是抽取单词。通常认为,很多关键词能够反映说话者的态度。比如上面这个简单的数据集,很容易发现,凡是说了“shit”的,就一定属于neg类。
当然,上面数据集是为了方便描述而简单设计的。现实中一个词经常会有穆棱两可的态度。但是仍然有理由相信,某个单词在neg类中出现的越多,那么他表示neg态度的概率越大。
同样我们注意到有些单词对情感分类是毫无意义的。比如上述数据中的“of”,“I”之类的单词。这类词有个名字,叫“Stop_Word”(停用词)。这类词是可以完全忽略掉不做统计的。显然忽略掉这些词,词频记录的存储空间能够得到优化,而且构建速度也更快。
把每个单词的词频作为重要的特征也存在一个问题。比如上述数据中的”movie“,在12个样本中出现了5次,但是出现正反两边次数差不多,没有什么区分度。而”worth“出现了2次,但却只出现在pos类中,显然更具有强烈的刚晴色彩,即区分度很高。
因此,我们需要引入TF-IDF(Term Frequency-Inverse Document Frequency,词频和逆向文件频率)对每个单词做进一步考量。
TF(词频)的计算很简单,就是针对一个文件t,某个单词Nt 出现在该文档中的频率。比如文档“I love this movie”,单词“love”的TF为1/4。如果去掉停用词“I"和”it“,则为1/2。
IDF(逆向文件频率)的意义是,对于某个单词t,凡是出现了该单词的文档数Dt,占了全部测试文档D的比例,再求自然对数。
比如单词“movie“一共出现了5次,而文档总数为12,因此IDF为ln(5/12)。
很显然,IDF是为了凸显那种出现的少,但是占有强烈感情色彩的词语。比如“movie”这样的词的IDF=ln(12/5)=0.88,远小于“love”的IDF=ln(12/1)=2.48。
TF-IDF就是把二者简单的乘在一起即可。这样,求出每个文档中,每个单词的TF-IDF,就是我们提取得到的文本特征值。
3、向量化
有了上述基础,就能够将文档向量化了。我们先看代码,再来分析向量化的意义:
# -*- coding: utf-8 -*- import scipy as sp import numpy as np from sklearn.datasets import load_files from sklearn.cross_validation import train_test_split from sklearn.feature_extraction.text import TfidfVectorizer '''''加载数据集,切分数据集80%训练,20%测试''' movie_reviews = load_files('endata') doc_terms_train, doc_terms_test, y_train, y_test\ = train_test_split(movie_reviews.data, movie_reviews.target, test_size = 0.3) '''''BOOL型特征下的向量空间模型,注意,测试样本调用的是transform接口''' count_vec = TfidfVectorizer(binary = False, decode_error = 'ignore',\ stop_words = 'english') x_train = count_vec.fit_transform(doc_terms_train) x_test = count_vec.transform(doc_terms_test) x = count_vec.transform(movie_reviews.data) y = movie_reviews.target print(doc_terms_train) print(count_vec.get_feature_names()) print(x_train.toarray()) print(movie_reviews.target)
运行结果如下:
[b'waste of time.', b'a shit movie.', b'a nb movie.', b'I love this movie!', b'shit.', b'worth my money.', b'sb movie.', b'worth it!']
['love', 'money', 'movie', 'nb', 'sb', 'shit', 'time', 'waste', 'worth']
[[ 0. 0. 0. 0. 0. 0. 0.70710678 0.70710678 0. ]
[ 0. 0. 0.60335753 0. 0. 0.79747081 0. 0. 0. ]
[ 0. 0. 0.53550237 0.84453372 0. 0. 0. 0. 0. ]
[ 0.84453372 0. 0.53550237 0. 0. 0. 0. 0. 0. ]
[ 0. 0. 0. 0. 0. 1. 0. 0. 0. ]
[ 0. 0.76642984 0. 0. 0. 0. 0. 0. 0.64232803]
[ 0. 0. 0.53550237 0. 0.84453372 0. 0. 0. 0. ]
[ 0. 0. 0. 0. 0. 0. 0. 0. 1. ]]
[1 1 0 1 0 1 0 1 1 0 0 0]
python输出的比较混乱。我这里做了一个表格如下:
从上表可以发现如下几点:
1、停用词的过滤。
初始化count_vec的时候,我们在count_vec构造时传递了stop_words = 'english',表示使用默认的英文停用词。可以使用count_vec.get_stop_words()查看TfidfVectorizer内置的所有停用词。当然,在这里可以传递你自己的停用词list(比如这里的“movie”)
2、TF-IDF的计算。
这里词频的计算使用的是sklearn的TfidfVectorizer。这个类继承于CountVectorizer,在后者基本的词频统计基础上增加了如TF-IDF之类的功能。
我们会发现这里计算的结果跟我们之前计算不太一样。因为这里count_vec构造时默认传递了max_df=1,因此TF-IDF都做了规格化处理,以便将所有值约束在[0,1]之间。
3、count_vec.fit_transform的结果是一个巨大的矩阵。我们可以看到上表中有大量的0,因此sklearn在内部实现上使用了稀疏矩阵。本例子数据较小。如果读者有兴趣,可以试试机器学习科研工作者使用的真实数据,来自康奈尔大学:http://www.cs.cornell.edu/people/pabo/movie-review-data/。这个网站提供了很多数据集,其中有几个2M左右的数据库,正反例700个左右。这样的数据规模也不算大,1分钟内还是可以跑完的,建议大家试一试。不过要注意这些数据集可能存在非法字符问题。所以在构造count_vec时,传入了decode_error = 'ignore',以忽略这些非法字符。
上表的结果,就是训练8个样本的8个特征的一个结果。这个结果就可以使用各种分类算法进行分类了。
相关推荐:
分享Python文本生成二维码实例
Python文本相似性计算之编辑距离详解
实例详解Python实现简单网页图片抓取
以上就是Python文本特征抽取与向量化算法学习实例详解的详细内容,更多请关注码农之家其它相关文章!
以上就是本次介绍的Python电子书的全部相关内容,希望我们整理的资源能够帮助到大家,感谢大家对码农之家的支持。
下一篇:labuladong的算法小抄
大家在没有阅读本文之前先看下python的基本概念, Python是一种解释型、面向对象、动态数据类型的高级程序设计语言。 Python由Guido van Rossum于1989年底发明,第一个公开发行版发行于1991年。 像Perl语言一样, Python 源代码同样遵循 GPL(GNU General Public License)协议。 本文是小兵使用万能的Python写一个量化股票系统!下面是一个小马的迷你量化系统。 这个小迷小量化系统,麻雀虽小但是五脏俱全,我们今天先从实时提醒这个模块做起,提醒系统分下面几个部分: 实时获取股票数据 连接邮件服务器 预警配置管理 监控数据并发送邮件 希望通过实时提醒,来提高交易的收益率,试试看,万一有用呢,反正写代码对……
本文实例为大家分享了python比特币初始配置的具体代码,供大家参考,具体内容如下 # -*- coding: utf-8 -*- """ Created on Fri Jan 13 10:36:19 2017 @author: yunjinqi E-mail:yunjinqi@qq.com Differentiate yourself in the world from anyone else. """ #用于访问OKCOIN 现货REST API ##################################################### import http.client import urllib import json import hashlib import time def buildMySign(params,secretKey): sign = '' for key in sorted(params.keys()): sign += key + '=' + str(params[key]) +'symbol=' + symbol if params else 'symbol=' +symbol if contractType: params += 'symbol=' + symbol if params else 'symbol=' +symbol if contractType: params += 'size=' + size if params else 'size=' + size return httpGet(self.__url,FUTURE_DEPTH_RESOU……
宁怜云
Copyright 2018-2021 www.xz577.com 码农之家
版权投诉 / 书籍推广:520161757@qq.com
使用python批量化音乐文件格式转换的实例
最近在做声音文件数据处理,写了一个自动将m4a文件转化为wav的脚本。 import osm4a_path = "/Users/Downloads/start1/"m4a_file = os.listdir(m4a_path)for i, m4a in enumerate(m4a_file): os.system("ffmpeg -i "+ m4a_path + m4a + " " + m4a_path + str(i) + ".wav" )# ffmpeg 可以用来处理视频和音频文件,可 #以设置一些参数,如采样频率等 以上这篇使用python批量化音乐文件格式转换的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持码农之家。 ……