股票大数据挖掘实战——股票预测篇(txt+pdf+epub+mobi电子书下载)


发布时间:2020-06-29 23:42:55

点击下载

作者:吴梅红,洪志令

出版社:清华大学出版社

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

股票大数据挖掘实战——股票预测篇

股票大数据挖掘实战——股票预测篇试读:

前言

股票投资是为了获得更大的收益,然而由于股票市场具有较大的动态特性,股票投资的收益与风险往往成正比,投资收益越高,存在风险则越大。有效地进行股票价格的预测,最大程度地规避股票风险,增加投资收益,是股票投资者最关注的热点问题。

近年来,中国股市起起伏伏,熊冠全球,许多投资者伤痕累累,损失惨重,股市已成为大多数中国股民的伤心地。中国股市的现状是多方面因素共同作用的结果,作为普通的投资者无法改变这一现实,怨天尤人于事无补;要想在股市中博弈,立于不败之地,只能从现实出发,从自身做起。

在股票交易事务处理中,每天有大量的交易信息数据汇入数据仓库,这些数据无疑有益于股民了解股市的走势,做出正确的投资决策,然而从海量数据中提取有用的并最终可理解的模式才是投资者们最为关心的问题。

在大数据时代,数据挖掘无疑是最炙手可热的技术。数据挖掘的作用是从大量的、不完全的、有噪声的、模糊的、随机的数据中提取隐含在其中的、人们事先不知道的,但又是潜在有用的信息和知识的过程。数据挖掘技术刚好解决了数据利用的问题,所以数据挖掘与股票投资便很自然地结合在一起。但数据挖掘在国内也是一个新领域,加上较早之前计算能力的限制,尚未见关于股票投资与数据挖掘相结合的相关书籍,以及股票大数据领域的规模应用案例。虽然有一些量化投资方面的著作,但是量化投资和股票挖掘还是存在相当大的差别。在这样的背景下,本书将结合丰富的金融业数据资源,以及构建的股票大数据挖掘平台,介绍如何利用数据挖掘技术进行股票挖掘和投资实践。

首先需要学习数据挖掘技术。数据挖掘是一个交叉学科,融合了统计分析、模式识别、机器学习、信息检索、数据库、信息论和最优化算法等领域的学习思想,其基础理论比较多,但却很分散。其次要学习数据挖掘技术怎么应用到股票投资领域。对于有兴趣进行数据挖掘应用实践的读者来说,他们常有这样的困惑,如何将实际问题和已经学到的方法、原理联系起来,如何将数据挖掘技术有效地运用在实际应用中,给使用者带来价值。

本书以笔者团队的数据挖掘工作为基石,架设起研究和应用的桥梁,帮助读者从应用实例中学习数据挖掘和股票投资方法。具体而言,本书从不同的角度,以股票实际应用为导向,始终以实际案例讲解应用之下的技术和理论。本书对每个股票应用案例都有详细的解析,全面介绍了如何将一个实际问题抽象和转化为数据挖掘的问题,让读者明白来龙去脉。在过去的15年里,笔者一直从事数据挖掘和股票投资方面的学习和研究,本书也算是笔者本人过去多年学习和研究的总结。

为了早点写好本书,在写作期间,笔者将全部工作和生活之余的时间投入到写书中去,每天,每个晚上,每个周末。虽然看似很辛苦,但确实很有成就感,是这份成就感给了我执着的动力和快乐,最终完成了此书。我深切地希望,本书能够为中国的基金、公募、私募以及个人投资者提高股票挖掘和股票投资水平起到抛砖引玉的作用。读者对象(1)从事投资工作的专业人士,包括证券、基金、私募等领域的从业者;(2)从事数据挖掘、数据分析、数据管理工作的专业人士;(3)金融、经济、管理、统计、计算机、软件等专业的教师和学生;(4)从事量化投资、股票挖掘或数据挖掘方向研究的科研工作者。致专业人士

对于从事股票挖掘及投资的专业人士来说,书中的数据挖掘技术是值得借鉴的。书中的股票挖掘实例基本都具有实战的背景,含有一些从数据挖掘层面的策略,读者可以尝试将这些技术和策略融入自己的思想和策略中,使自己的策略更强大。另外,对于书中介绍的各个方法的理论,如果读者有很好的数学和或计算机背景,且有时间或感兴趣,可以认真看;否则,理论部分可以直接跳过。但是每种方法的思想、应用场景一定要领悟。

对于从事数据挖掘的专业人士来说,可以关注整个数据挖掘知识体系和数据挖掘的流程。书中的创新算法案例及应用是本书的特色,值得借鉴。致教师

本书以股票的挖掘应用为基线,系统地介绍了数据挖掘的理论、方法和应用案例,可以作为金融、经济、管理、统计、计算机等学科的本科专业教材或研究生教材。相比一般的数据挖掘教材,股票挖掘投资更容易激发学生的学习兴趣,兴趣是最好的老师,这对开展教学是非常有利的。

书中的内容虽然系统,但也相对独立,教师可以根据课程的学时安排和专业方向的侧重,选择合适的内容进行课堂教学,其他内容则可以作为参考章节。致学生

作为21世纪的大学生,无论是什么专业背景,都有必要学习数据挖掘和金融投资,原因如下:(1)21世纪的信息非常丰富,很多以数据形式存在,学习并掌握数据挖掘基础,有助于人们从更深层次了解社会,也更有助于人们从事的工作。(2)无论从事什么工作,具有一定的投资意识和投资能力都是一个近乎必备的技能。21世纪是和平而充满竞争的时代,失业对每个人来说都有可能发生,当失业时怎么办?如果懂得投资,那么至少让自己生活得很好是没有问题的。

所以,读者无论现在学习什么专业,都应好好读一下本书或同类的书籍。相信读者一定会因为曾学习过数据挖掘和股票挖掘投资而倍感欣慰。编者2018年9月第1章 数据挖掘基础1.1 数据挖掘概述

数据挖掘出现于20世纪80年代后期,是数据库研究中很有应用价值的新领域。数据挖掘是一门交叉性学科,融合了人工智能、数据库技术、模式识别、机器学习、统计学和数据可视化等多个领域的理论和技术。

数据挖掘(data mining),又称数据库中的知识发现(Knowledge Discovery in Database, KDD)。从技术角度看,就是从大量的、不完全的、有噪声的、模糊的、随机的实际应用数据中,提取隐藏在其中的人们事先不知道的,但又是潜在有用的信息和知识的过程。数据挖掘把人们对数据的应用从低层次的简单查询,提升到从数据中挖掘知识,提供决策支持。典型的数据挖掘系统结构如图1-1所示。图1-1 典型的数据挖掘系统结构

数据挖掘基于的数据库类型主要有关系型数据库、面向对象数据库、事务数据库、演绎数据库、时态数据库、多媒体数据库、主动数据库、空间数据库、文本型、Internet信息库及数据仓库等。数据挖掘后获得的知识包括关联规则、特征规则、区分规则、分类规则、总结规则、偏差规则、聚类规则、模式分析及趋势分析等。

数据挖掘与传统的数据分析(如查询、报表、联机应用分析)的本质区别是数据挖掘是在没有明确假设的前提下挖掘信息、发现知识。数据挖掘是要发现那些不能靠直觉发现的信息或知识,甚至是违背直觉的信息或知识,挖掘出的信息越是出乎意料就越可能有价值。在投资领域,能够比市场提前知道这种信息,提前做出决策,就能够获得超额的利润。1.1.1 数据挖掘的过程

数据挖掘的过程会随所应用的专业领域的不同而有所变化。每一种数据挖掘技术都有各自的特性以及使用步骤,因此针对不同需求所发展出的数据挖掘过程也就存在着差异。

一般而言,常见的数据挖掘过程可以分为三个主要阶段:数据准备、数据挖掘及结果表达和解释,如图1-2所示。图1-2 数据挖掘过程1.数据准备(1)数据集成。将多文件或多数据库运行环境中的数据进行合并处理,主要解决语义模糊性,处理数据中的遗漏和清洗脏数据等。(2)数据选择。从原始数据库中选取相关数据或样本。数据选择的目的是辨别出需要分析的数据集合,缩小处理范围,提高数据挖掘的质量。(3)预处理。检查数据的完整性及一致性,消除噪声等。2.数据挖掘

此阶段进行实际的挖掘操作,利用机器学习、统计分析等方法,从数据库中发现有用的模式或知识。数据挖掘阶段的主要步骤如下:(1)确定挖掘目标。确定要发现的知识类型。(2)选择算法。根据确定的目标,选择合适的数据挖掘算法。(3)数据挖掘。应用所选算法,提取相关知识并以一定的方式进行表示。3.结果评价

此阶段对挖掘结果进行表达与解释。根据最终用户的决策目的,对提取的信息进行分析,把最有价值的信息区分出来,并且通过决策支持工具提交给决策者。该步骤的主要任务有如下两项:(1)模式评估。对在数据挖掘步骤中发现的模式或知识进行评估。(2)知识表示。使用可视化和知识表示相关技术,呈现所挖掘的知识。1.1.2 数据挖掘的任务

数据挖掘的主要任务有6项:关联分析、时序模式、聚类、分类、偏差检测和预测。1.关联分析

关联分析是从数据中发现知识的一类重要方法。若两个或多个数据项的取值之间重复出现且概率很高时,就存在某种关联,可以建立起这些数据项的关联规则。关联分析的目的在于生成部分数据的概要,例如寻找数据子集间的关联关系或者一些数据与数据之间的派生关系。关联规则的计算依赖于识别在相关数据中频繁出现的数据集。

例如,买面包的顾客中90%的人还买牛奶,这是一条关联规则。若商店中将面包和牛奶放在一起销售,将会提高销量。在大型数据库中,这种关联规则很多,需要进行筛选,一般用“支持度”和“可信度”两个阈值淘汰那些无用的关联规则。支持度表示该规则所代表的事例占全部事例的百分比。如买面包又买牛奶的顾客占全部顾客的百分比。可信度表示该规则所代表事例占满足前提条件事例的百分比。如买面包又买牛奶的顾客占买面包顾客中的90%,即可信度为90%。2.时序模式

通过时间序列搜索出重复发生概率较高的模式,这里强调时间序列的影响。例如,在所有购买了激光打印机的人中,80%的人半年后再购买新硒鼓,20%的人用旧硒鼓装碳粉;在所有购买了彩色电视机的人中,有60%的人会再购买VCD产品。

在时序模式中,需要找出在某个最小时间内出现比率一直高于某一最小百分比(阈值)的规则。这些规则会随着形式的变化做适当的调整。时序模式中,一个有重要影响的方法是“相似时序”。用相似时序方法,按时间顺序查看时间事件数据库,从中找出另一个或多个相似的时序事件。例如,在零售市场上找到另一个有相似销售的部门;在股市中找到有相似波动的股票。3.聚类

数据库中的数据可以划分为一系列有意义的子集,即类。在同一类别中,个体之间的距离较小,而不同类别上的个体之间的距离较大。聚类用于从数据集中找出相似的数据,并组成不同的组。聚类增强了人们对客观现实的认识,即通过聚类建立宏观概念,例如鸡、鸭、鹅等都属于家禽。与预测模型不同,聚类中没有明显的目标变量作为数据的属性存在。

聚类方法包括统计分析方法、机器学习方法、神经网络方法等。

在统计分析方法中,聚类分析是基于距离的聚类,如欧几里得距离、海明距离等。这种聚类分析方法是一种基于全局比较的聚类,它需要考察所有的个体才能决定类的划分。常用的统计分析聚类算法很多,包括K-Means算法、分层凝聚法、期望极大值法等。

在机器学习方法中,聚类是无导师的学习。在这里距离是根据概念的描述确定的,故聚类也称为概念聚类。当聚类对象动态增加时,概念聚类则称为概念形成。

在神经网络中,自组织神经网络方法用于聚类,如ART模型、Kohonen模型等,这是一种无监督学习方法。当给定距离阈值后,各样本按阈值进行聚类。4.分类

分类是数据挖掘中应用最多的任务。分类是找出一个类别的概念描述,它代表了这类数据的整体信息,即该类的内涵描述,一般用规则或决策树模式表示。该模式能把数据库中的元组影射到给定类别中的某一个。

一个类的内涵描述分为特征描述和辨别性描述。特征描述是对类中对象的共同特征的描述。辨别性描述是对两个或多个类之间的区别描述。特征描述允许在不同类中具有共同特征;而辨别性描述对不同的类不能有相同特征。辨别性描述用得更多。

分类是利用训练样本集通过有关算法求得的。分类一直为人们所关注,广泛使用的方法有决策树、朴素贝叶斯、逻辑回归、神经网络等。

目前,分类方法的研究成果较多,判别方法的好坏可以从三个方面进行:①预测准确度(对非样本数据的判别准确度);②计算复杂度(方法实现对时间和空间的复杂度);③模式的简洁度(如在同样效果情况下,希望决策树小或者规则少)。5.偏差检测

数据库中的数据存在很多异常情况,从数据分析中发现这些异常情况也是很重要的,以引起人们对它更多的注意。

偏差包括很多有用的知识,如分类中的反常实例、模式的例外、观察结果对模型预测的偏差量值等。偏差检测的基本方法是寻找观察结果与参照之间的差别。观察常常是某一个域的值或多个域值的汇总。参照是给定模型的预测、外界提供的标准或另一个观察。6.预测

预测是利用历史数据找出变化规律、建立模型,并用此模型预测未来数据的种类、特征等。典型的方法是回归分析,即利用大量的历史数据,以时间为变量建立线性或非线性回归方程。预测时,只要输入任意的时间值,通过回归方程就可求出该时间的状态。

近年来发展起来的神经网络方法,如BP模型,实现了非线性样本的学习,能进行非线性函数的判别。分类也能进行预测,但分类一般用于离散数值。回归预测用于连续数值。神经网络预测方法既可用于连续数值,也可以用于离散数值。1.1.3 数据挖掘的应用

数据挖掘是从海量数据中提取知识的信息技术。数据挖掘使数据处理技术进入了一个更高级的阶段,不仅能对过去的数据进行查询和遍历,还能够找出以往数据间潜在的联系,促进信息的传播。目前,数据挖掘在国内外都受到了前所未有的重视,并广泛应用于各个领域,如银行、电信、保险、交通、零售等商业领域。数据挖掘所能解决的典型商业问题包括数据库营销(database marketing)、客户群体划分(customer segmentation & classification)、背景分析(profile analysis)、交叉销售(cross selling)等市场分析行为,以及客户流失性分析(churn analysis)、客户信用记分(credit scoring)、欺诈发现(fraud detection)等。

近年来,计算技术和存储技术的飞速发展为数据挖掘技术的日臻完善提供了条件。数据挖掘技术在商业领域的应用已经比比皆是,例如:● 互联网巨头谷歌和百度等公司通过复杂的挖掘算法,评估网页对用户搜索关键词的相关度,对广告单击率进行预测等;● 电子商务巨头亚马逊和eBay等公司,通过数据挖掘预测用户购买某一商品的可能性,以及推荐相关商品和个性化商品等;● 零售巨头沃尔玛公司,很早就通过分析顾客购买记录寻找不同商品之间的关联性,从而做到更合理上架不同品类商品;● 商业银行通过分析历史存贷款及还款记录预测客户的贷款风险;● 对冲基金依赖于数据挖掘技术预测证券的价格走势和寻找投资机会;● 证券交易监管部门通过分析证券交易数据发现内线交易。1.1.4 数据挖掘的存在问题、未来发展和挑战

数据挖掘的存在问题、未来发展和挑战主要体现在以下三个方面。1.数据挖掘技术和用户交互的问题(1)挖掘数据库中不同类型的知识。由于不同的用户可能对不同类型的知识感兴趣,数据挖掘应当能涵盖范围很广的数据分析和知识发现任务,包括数据特征化、区分、关联与相关分析、分类、预测、聚类、离群点分析和演变分析等。这些任务可能以不同的方式使用相同的数据库,并需要开发大量的数据挖掘技术。(2)多个抽象层的交互知识挖掘。由于很难准确地知道能够在数据库中发现什么,数据挖掘过程应当是交互的。对于包含海量数据的数据库,首先应当使用适当的抽样技术,进行交互式数据探查。交互式挖掘允许用户聚焦搜索模式,根据返回的结果提取和精练数据挖掘请求。类似于联机分析处理对数据立方体所做的那样,应当能通过交互地在数据空间和知识空间下钻、上卷和旋转挖掘知识。用这种方法用户可以与数据挖掘系统交互,以不同的粒度从不同的角度观察数据和发现模式。(3)结合背景知识。可以使用背景知识或关于所研究领域的信息指导发现过程,并使得发现的模式以简洁的形式在不同的抽象层表示。关于数据库的领域知识,如完整性约束和演绎规则,可以帮助聚焦和加快数据挖掘过程,或评估发现模式的兴趣度。(4)数据挖掘查询语言和特定的数据挖掘。关系查询语言(如SQL)允许用户提出特定的数据检索查询。类似地,需要开发高级数据挖掘查询语言,使得用户可以通过说明分析任务的相关数据集、领域知识、所挖掘的知识类型、被发现的模式必须满足的条件和约束,描述特定的数据挖掘任务。这种语言应当与数据库或数据仓库查询语言集成,并且对于有效的、灵活的数据挖掘是优化的。(5)数据挖掘结果的表示和可视化。发现的知识应当用高级语言、可视化表示或其他形式进行表示,使得知识易于理解,能够直接被人们使用。如果数据挖掘系统是交互的,这一点尤其重要。这要求系统采用有表达能力的知识表示技术,如树、表、规则、图、图表、交叉表、矩阵或曲线等。(6)处理噪声和不完全数据。存放在数据库中的数据可能反映噪声、异常情况或不完全的数据对象。在挖掘数据规律时,这些对象可能扰乱分析过程,导致所构造的知识模型过分拟合数据。其结果是所发现的模式的准确性可能很差。需要处理数据噪声的数据清理方法和数据分析方法,以及发现和分析异常情况的离群点挖掘方法。(7)模式评估即兴趣度问题。数据挖掘系统可能发现数以千计的模式。对于给定的用户,所发现的许多模式都不是有趣的,因为它们表示的是一些常识或缺乏新颖性的东西。关于开发模式兴趣度的评估技术,特别是关于给定用户类,基于用户的信念或期望,评估模式价值的主观度量仍然存在挑战。使用兴趣度度量或用户指定的约束指导发现过程和压缩搜索空间是又一个活跃的研究领域。2.数据挖掘算法的性能问题(1)数据挖掘算法的有效性和可伸缩性。为了有效地从数据库的海量数据中提取信息,数据挖掘算法必须是有效的和可伸缩的。也就是说,数据挖掘算法在大型数据库中的运行时间必须是可预计的和可接受的。从数据库的知识发现角度,有效性和可伸缩性是数据挖掘系统实现的关键问题。(2)并行、分布和增量挖掘的算法。许多数据库的巨大规模、数据的广泛分布和一些数据挖掘算法的计算复杂性是促使开发并行和分布式数据挖掘算法的因素。这种算法将数据划分成若干部分,并行处理,最后合并每个部分的结果。此外,有些数据挖掘过程的高开销导致了对增量数据挖掘算法的需要。增量算法与数据库更新结合在一起,而不必“从头开始”挖掘全部数据,这种算法增量地进行知识修改、修正和加强业已发现的知识。3.数据库类型的多样性问题(1)复杂数据类型的处理。由于关系数据库和数据仓库已经广泛使用,为这样的数据开发有效的数据挖掘系统是重要的。然而其他数据库可能包含复杂的数据对象、超文本和多媒体数据、空间数据、时间数据或事务数据等。由于数据类型的多样性和数据挖掘目标不同,指望一个系统挖掘所有类型的数据是不现实的。因此,为挖掘特定类型的数据应当构造特定的数据挖掘系统。(2)从异构数据库和全球信息系统挖掘信息。局域网和广域网连接了许多数据源,形成了庞大的分布和异构数据库。从具有不同数据语义的结构化、半结构化和非结构化的不同数据源发现知识,对数据挖掘提出了巨大挑战。数据挖掘可以帮助发现多个异构数据库中的高层数据规律,这些规律多半难以被简单的查询系统发现,并可以改进异构数据库信息交换和互操作性能。

以上问题是数据挖掘技术未来发展的主要需求和挑战。在近年来的数据挖掘研究和开发中,一些挑战已经在一定程度上受到关注,并且现在认为是必需的,而另一些仍处于研究阶段。1.2 常用的数据挖掘算法

广义的数据挖掘是知识发现的全过程;狭义的数据挖掘是指统计分析、机器学习等发现数据模式的智能方法,即偏重于模型和算法。算法是数据挖掘的核心和精髓。

国际权威的学术组织IEEE International Conference on Data Mining(ICDM)2006年12月评选出了数据挖掘领域的十大经典算法:C4.5、K-Means、SVM、Apriori、EM、PageRank、AdaBoost、KNN、Naive Bayes和CART。1.C4.5算法

C4.5算法是机器学习算法中的一种分类决策树算法,它是决策树核心算法ID3的改进算法。

数据挖掘技术中的决策树算法建立在信息论的基础上,是一种常用于预测模型的算法,它通过将大量数据有目的的分类,从中找到一些有价值的、潜在的信息。决策树算法在树的每个节点上,使用信息增益度量选择测试属性。决策树的根节点是所有样本中信息量最大的属性;树的中间节点是根的子树所包含的样本子集中信息量最大的属性。决策树算法的理论依据充分,具有较高的精度和效率,是一种知识获取的有用工具。

决策树算法起源于概念学习系统CLS,随后ID3算法成为一个里程碑,之后又演化为能处理连续属性的C4.5和C5.0算法。C4.5算法继承了ID3算法的优点,并在以下方面对ID3算法进行了改进:(1)用信息增益率选择属性,克服了用信息增益选择属性时偏向选择取值多的属性的不足;(2)在树构造过程中进行剪枝;(3)能够完成对连续属性的离散化处理;(4)能够对不完整数据进行处理。

C4.5算法的优点是:产生的分类规则易于理解,准确率较高;缺点是:在构造树的过程中,需要对数据集进行多次顺序扫描和排序,因而导致算法的低效。2.K-Means算法

K-Means(K均值)算法是数据挖掘技术中基于分裂法的一个经典的聚类算法,因为该算法的理论可靠、算法简单、收敛迅速而被广泛应用。

K-Means算法是一种常用的基于划分的聚类算法。K-Means算法是以k(k<n)为参数,把n个对象分成k个簇,使簇内具有较高的相似度,而簇间的相似度较低。

K-Means算法的处理过程为:首先随机选择k个对象作为初始的k个簇的质心;然后将其余对象根据其与各个簇的质心的距离分配到最近的簇;最后重新计算各个簇的质心。不断重复此过程,直到目标函数最小为止。3.SVM算法

支持向量机(Support Vector Machine, SVM)算法是一种监督式学习的方法,广泛应用于统计分析及回归分析中。

SVM算法将向量映射到一个更高维的空间里,在这个空间里建立有一个最大间隔超平面。在分开数据的超平面的两边建有两个相互平行的超平面,分隔超平面使两个平行超平面的距离最大化。假定平行超平面间的距离或差距越大,分类器的总误差越小。4.Apriori算法

Apriori算法是一种最有影响的挖掘布尔关联规则频繁项集的算法。

Apriori算法使用频繁项集的先验知识,使用一种称为逐层搜索的迭代算法,通过k项集探索k+1项集。首先通过扫描事务记录,找出所有的频繁1项集,该集合记作L,然后利用L找频繁2项集的集合L,112再由L找L,如此下去,直到不能再找到任何频繁k项集。最后在所23有频繁项集中找出强规则,即产生用户感兴趣的关联规则。5.EM算法

在统计计算中,最大期望(Expectation-Maximization, EM)算法是在概率模型中寻找参数最大似然估计的算法,其中概率模型依赖于无法观测的隐藏变量。

EM算法是一种迭代算法,每一次迭代都能保证似然函数值增加,并且收敛到一个局部极大值。EM算法的每一次迭代包括两步:第一步求期望值(expectation step),称为E步;第二步求极大值(maximization step),称为M步。EM算法主要用来计算基于不完全数据的极大似然估计,经常用在机器学习和计算机视觉的数据集领域。6.PageRank算法

PageRank算法是Google算法的重要内容。2001年9月被授予美国专利,专利人是Google公司创始人之一拉里·佩奇(Larry Page)。因此,PageRank里的Page不是指网页,而是指佩奇,即这个等级方法是以佩奇命名的。

PageRank算法根据网站的外部链接和内部链接的数量和质量衡量网站的价值。PageRank算法背后的概念是:每个到页面的链接都是对该页面的一次投票,被链接的越多,意味着被其他网站投票越多。这就是所谓的“链接流行度”,即衡量多少人愿意将他们的网站与你的网站挂钩。PageRank算法的概念来自学术中一篇论文的被引频次,即被别人引用的次数越多,一般判断这篇论文的权威性就越高。7.AdaBoost算法

AdaBoost是一种迭代算法,其核心思想是针对同一个训练集训练不同的分类器(弱分类器),然后把这些弱分类器集合起来,构成一个更强的最终分类器(强分类器)。

AdaBoost算法本身是通过改变数据分布实现的,它根据每次训练集之中每个样本的分类是否正确,以及上次的总体分类的准确率,确定每个样本的权值。将修改过权值的新数据集送给下层分类器进行训练,最后将每次训练得到的分类器融合起来,作为最后的决策分类器。8.KNN算法

K最近邻(k-Nearest Neighbor, KNN)分类算法,是著名的模式识别统计学方法,理论上比较成熟。它是最好的文本分类算法之一,也是最简单的机器学习算法之一。

KNN算法的思路是:如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别。9.朴素贝叶斯算法

朴素贝叶斯分类器(Naive Bayesian Classifier, NBC)模型发源于古典数学理论,有着坚实的数学基础,以及稳定的分类效率。在众多的分类模型中,决策树模型和NBC模型是应用最为广泛的两种分类模型。

朴素贝叶斯分类器是一种基于贝叶斯理论的分类器。它的特点是以概率形式表达所有形式的不确定,学习和推理都由概率规则实现,学习的结果可以解释为对不同可能的信任程度。

NBC模型所需估计的参数很少,对缺失数据不太敏感,算法也比较简单。理论上,NBC模型与其他分类方法相比误差率最小,但是实际上并非总是如此,这是因为NBC模型假设属性之间相互独立,这个假设在实际应用中往往是不成立的,这给NBC模型的正确分类带来一定影响。在属性个数比较多或者属性之间相关性较大时,NBC模型的分类效率比不上决策树模型;而在属性相关性较小时,NBC模型的性能最为良好。10.CART算法

分类与回归树(Classification and Regression Trees, CART)算法是一种有效的非参数分类和回归方法,它通过构建二叉树达到预测的目的。

CART模型最早由Breiman等提出,已经在统计领域和数据挖掘技术中普遍使用。它采用与传统统计学完全不同的方式构建预测准则,并以二叉树的形式给出,易于理解、使用和解释。由CART模型构建的预测树,在很多情况下比常用的统计方法构建的代数学预测准则更加准确,且数据越复杂、变量越多,算法的优越性就越显著。CART模型的关键是预测准则的构建。1.3 数据挖掘工具1.3.1 MATLAB

MATLAB是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。

MATLAB是矩阵实验室(Matrix Laboratory)的简称,与Mathematica、Maple并称为三大数学软件。MATLAB的操作界面如图1-3所示,MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通信、图像处理、信号检测、金融建模设计与分析等领域。图1-3 MATLAB操作界面

MATLAB拥有数百个内部函数和30几种工具箱。工具箱又可以分为功能性工具箱和学科工具箱。功能性工具箱用来扩充MATLAB的符号计算、可视化建模仿真、文字处理及实时控制等功能。学科工具箱是专业性比较强的工具箱,控制工具箱、信号处理工具箱、通信工具箱等都属于此类。

MATLAB在数据挖掘中主要用到的工具是它的统计工具箱(Statistics Toolbox),该工具箱不仅包含了常用的数据分析功能,如数据常规统计、数据探索、假设检验、因子分析、回归等,还包含了机器学习功能。1.3.2 SAS

SAS(Statistical Analysis System)是世界上最著名的统计分析系统之一,具有完备的数据访问、管理、分析和呈现功能,被誉为国际标准统计分析系统。1966年,它最初由美国北卡罗来纳州立大学(North Carolina State University)的两位生物统计学专业的研究生编制而成。1976年正式成立了SAS软件研究所,开始SAS系统的开发、维护、销售和培训工作,真正实现了这一软件的商业化。

SAS是一个模块化、集成化的大型应用软件系统。SAS系统基本上可以分为四大部分:SAS数据库、SAS分析核心、SAS开发呈现工具、SAS对分布处理模式的支持及其数据仓库设计。

一般统计软件是把各个统计分析过程整合为一个“包”,用户可根据资料特点和分析目的,利用软件提供的各种固定分析过程完成统计分析任务。而SAS系统除具有这些功能以外,还提供自己的母体编程语言,用户可以灵活调用、组合SAS系统语句自定义宏函数,完成特定的统计分析任务,甚至开发新的算法。这种自由的母体编程语言所调用的单元称为模块,这些单独的模块功能有所侧重,而又可以相互整合,因而大大提高了SAS的灵活性、多样性,丰富并扩展了SAS系统的功能;当然这也增加了掌握它的难度。正因为如此,相对SPSS等软件来说,一般认为SAS更适合专业人员使用。SAS的操作界面如图1-4所示。图1-4 SAS操作界面1.3.3 SPSS

SPSS(Statistical Product and Service Solutions)是世界上最早的统计分析软件,由美国斯坦福大学的三位研究生Norman H. Nie、C. Hadlai Hull和Dale H.Bent于1968年研究开发成功,于2009年被IBM公司以12亿美元现金收购。

SPSS是最早采用图形菜单驱动界面的统计软件,它最突出的特点是操作界面极为友好,输出结果美观漂亮。用户只要掌握一定的Windows操作技能,精通统计分析原理,就可以使用该软件为特定的科研工作服务。SPSS采用类似Excel表格的方式输入与管理数据,数据接口较为通用,能方便地从其他数据库中读入数据。其统计过程包括了常用的、较为成熟的统计过程,完全可以满足非统计专业人士的工作需要。

SPSS的基本功能包括数据管理、统计分析、图表分析、输出管理等。SPSS的统计分析过程包括描述性统计、均值比较、一般线性模型、相关分析、回归分析、对数线性模型、聚类分析、数据简化、生存分析、时间序列分析、多重响应等几大类,每类中又分多个统计过程,例如回归分析中又分线性回归分析、曲线估计、Logistic回归、加权估计、两阶段最小二乘法、非线性回归等多个统计过程,而且每个过程中又允许用户选择不同的方法及参数。SPSS也有专门的绘图系统,可以根据数据绘制各种图形。

SPSS Modeler是一组数据挖掘工具,如图1-5所示,通过这些工具可以采用商业技术快速建立预测性模型,并将其应用于商业活动,从而改进决策过程。图1-5 SPSS Modeler操作界面1.3.4 WEKA

WEKA的全名是怀卡托智能分析环境(Waikato Environment for Knowledge Analysis),缩写WEKA是新西兰独有的一种鸟名。WEKA的主要开发者来自于新西兰的University of Waikato。

WEKA是一个公开的数据挖掘工作平台,集合了大量能承担数据挖掘任务的机器学习算法,包括对数据进行预处理、分类、回归、聚类、关联规则以及在新的交互式界面上的可视化等。

WEKA以Java语言编写并包含了一个GUI与数据文件交互并生成可视结果,如图1-6所示。通过WEKA提供的API接口,可在其基础上实现自己的数据挖掘算法,同时还可以像嵌入其他的库一样将WEKA嵌入到自己的应用程序中,以完成诸如服务端自动数据挖掘这样的任务。图1-6 WEKA操作界面1.3.5 R

R是用于统计分析、绘图的语言和操作环境。R本来由来自于新西兰奥克兰大学的Robert Gentleman和Ross Ihaka开发,现在由“R开发核心团队”负责开发。R是基于S语言的一个GNU项目,可以认为是S语言的一种实现,通常用S语言编写的代码都可以不做修改地在R环境上运行。

R是一套完整的数据处理、计算和制图软件系统,主要包括数据存储和处理系统、数组运算工具、统计分析工具、统计制图功能、简便而强大的编程语言环境。

与其说R是一种统计软件,还不如说R是一种数学计算环境,因为R并不是仅仅提供若干统计程序。R的思想是:它可以提供一些集成的统计工具,但更大量的是它提供各种数学计算、统计计算的函数,从而使用户能够灵活机动地进行数据分析,甚至创造出符合需要的新的统计计算方法。

R是一款免费软件,它有UNIX、Linux、MacOS和Windows版本,都是可以免费下载和使用的。R软件自带的环境操作起来不太方便,RStudio是用于R语言开发的一个简单且功能强大的图形界面工具,如图1-7所示。图1-7 RStudio操作界面1.3.6 工具的比较与选择

上述五种数据挖掘工具都具有自己独特的特点,也有一定的适用条件。MATLAB擅长矩阵计算,有众多的行业运用工具箱,适合于学习算法、研究算法。SAS是功能极其强大的统计分析软件,支持二次开发,适合于工业应用。SPSS侧重于统计分析,界面友好、使用简单,能解决绝大部分统计学问题,适合于初学者。WEKA是Java开发的开源数据分析工具,适合于用Java进行二次开发的工程师。R是开源的,也支持二次开发,适合于算法学习、产品研发和小项目的开发。

除了以上介绍的五种工具,还可以使用一些常用的编程工具,如Java、C#、Python等实现数据挖掘领域相关的算法。使用这些工具进行编程实现可以对算法的内部进行细致的改造,灵活度也更高,但同时也需要对算法有深刻的理解,需要更高的编程技巧等。本书后续章节中针对股票的各种数据挖掘算法的改进和实现将主要以自我编程为主。1.4 数据挖掘与云计算1.云计算的提出和概念

云计算的思想可以追溯到1961年图灵奖得主John McCarthy提出计算能力将作为一种像水、电一样的公用事业提供给用户。2001年,Google CEO在搜索引擎大会上首次提出“云计算”的概念:用户可以利用终端设备接入互联网,透明地访问“云端”的服务,“云”负责管理一切计算资源,快速响应用户的各种请求、提供服务,所需费用则根据享受的服务进行计算。

目前,对于云计算的认识在不断地发展变化,从一般应用的观点看,云计算是基于互联网的超级计算模式,包含互联网上的应用服务及在数据中心提供这些服务的软硬件设施,进行统一的管理和协同合作。云计算将IT相关的能力以服务的方式提供给用户,允许用户在不了解提供服务的技术、没有相关知识以及设备操作能力的情况下,通过互联网获取需要的服务。2.云计算的发展

未来云计算发展的首要问题是标准化问题。云计算的标准化关乎云计算的规模应用和普及,例如云系统之间的互操作问题,用户需要将云计算应用程序迁移到另一家公司的云计算平台上,等等,都需要统一的云计算公共标准,但由于云计算涉及IT领域较多,例如基础设施、平台、应用和服务,很难在短期内形成统一的标准。

此外,云计算的推广还依赖于有效的并行计算的解决方案,涉及编程模型、开发语言和开发工具等方面。大规模的集群计算系统支撑大容量计算和云存储,有效地进行系统配置、监控、管理、调度等需要可靠的系统技术。3.基于云计算的数据挖掘分析

云计算的动态性和可伸缩性为高效实现海量数据挖掘创造了可能性;云计算环境下云用户的参与为基于群体决策的数据挖掘方案研究提供了条件;云计算使面向大众的数据挖掘成为可能。

云计算的海量数据挖掘能力更加高效,但也带来了两个问题:首先,云环境下从海量数据中获取用户满意的信息,这一核心目标直接导致云环境下用户对数据挖掘功能的需求产生变更,用户对海量数据挖掘的需求主要体现为个性化需求与多样性需求的增加;其次,海量数据的挖掘除了要处置其数量级,还要处理高维、动态的数据。1.5 Mahout分布式框架1.5.1 Mahout简介

Apache Mahout是Apache软件基金会(Apache Software Foundation, ASF)旗下的一个开源项目,提供一些可扩展的机器学习领域经典算法的实现,旨在帮助开发人员更加方便快捷地创建智能应用程序。Mahout是机器学习和数据挖掘的分布式框架,区别于其他开源数据挖掘软件,它是基于Hadoop之上的,所以Hadoop的优势就是Mahout的优势。Mahout用Map-Reduce实现了部分数据挖掘算法,不过还有很多算法仍无法用Map-Reduce的并行方式实现。1.5.2 Mahout算法集

Mahout包含四种典型使用场景的算法,具体如下。(1)推荐引擎算法。通过分析用户的使用行为的历史记录来推算用户最可能喜欢的商品、服务等相关物品。实现时可以基于用户的推荐(通过查找相似的用户来推荐项目)或基于项目的推荐(计算项目之间的相似度并做出推荐)。(2)聚类算法。通过分析将一系列相关的物品划分为相关性相近的群组。(3)分类算法。通过分析一组已经分类的物品,将其他未分类的物品按同样的规则归入相应的分类。(4)相关物品分析算法。相关分析算法识别出一系列经常一起出现的物品组(经常一起查询、放入购物车等)。

Mahout相关的算法集如表1-1所示。表1-1 Mahout相关的算法集1.5.3 Mahout系统架构

利用开放源码项目并竭力使项目的代码与自己的代码协同工作的人越多,其基础架构就越充实。对于Mahout来说,这种演进方式促成了多项的改进。最显著的一项就是经过重大改进的一致的命令行界面,它使得在本地和Apache Hadoop上提交和运行任务更加轻松。

任何机器学习库都有两个关键组件,即可靠的数学库和一个有效的集合包。数学库提供了多种功能:范围从表示向量、矩阵的数据结构、操作这些数据结构的相关操作符,直到生成随机数的工具和对数似然值等统计数据等。Mahout的集合库包含的数据结构与Java集合提供的数据结构相似(包括Map、List等),不同之处在于它们原生地支持Java原语,例如int、float和double,而非其Object对应部分Integer、Float和Double。这一点非常重要,因为在处理拥有数百万项特征的数据集时,需要精打细算地考虑每一位。

Mahout还引入了一种新的集成模块,其中包含的代码旨在补充或扩展Mahout的核心功能。例如,推荐机制(协同过滤)代码现在支持将其模型存储在数据库MongoDB或Apache Cassandra中。集成模块还包含多种将数据转为Mahout格式的机制,以及评估所得到的结果的机制。

最后,Mahout提供了大量的新示例,包括通过Netflix数据集计算推荐内容、聚类Last.fm音乐以及其他许多示例等。通过将Mahout算法构建于Map-Reduce框架之上,将算法的输入、输出和中间结果构建于HDFS分布式文件系统之上,使得Mahout具有高吞吐、高并发、高可靠性的特点。最终使得业务系统可以高效快速地得到分析结果。1.5.4 Mahout的优缺点

Mahout的优缺点如表1-2所示。Mahout从设计开始就旨在建立可扩展的机器学习软件包,用于处理大数据机器学习的问题,当正在研究的数据量大到不能在一台机器上运行时,就可以选择使用Mahout,让数据在Hadoop集群上进行分析。Mahout某些部分的实现直接创建在Hadoop之上,这就使得其具有进行大数据处理的能力,这也是Mahout最大的优势所在。相比其他图形化的机器学习软件,Mahout只提供机器学习的程序包,不提供用户图形界面,并且Mahout并不包含所有机器学习算法的实现,这一点可以算得上是它的一个劣势。但Mahout并不是“又一个机器学习软件”,而是要成为一个“可扩展的用于处理大数据的机器学习软件”,相信会有越来越多的机器学习算法将在Mahout上面实现。表1-2 Mahout的优缺点第2章 股票大数据挖掘2.1 股票大数据2.1.1 大数据概述1.大数据的概念

随着信息技术的高速发展、数据库管理系统的广泛应用,人们积累的数据量急剧增长,大量的信息给人们带来方便的同时,也带来了诸如信息过量难以消化、信息真假难以辨识、信息安全难以保证、信息形式不一致难以统一处理等问题。

大数据(Big Data),最早出现于20世纪90年代。近年来,大数据成为信息技术学术界与产业界热论的焦点。如何对大数据进行充分和有效的分析和挖掘,使之转换为有价值的信息和知识,用于解决各种科学和应用问题,成为大数据时代信息技术发展的重大挑战,同时也是信息技术创新的新制高点。

狭义的大数据概念,主要是指大数据技术及其应用,是指从各种类型的数据中快速获得有价值信息的能力。一方面,强调从海量数据、多样数据里提取微价值,即具有价值特征;另一方面,强调数据获取、数据传递、数据处理、数据利用等层面的高速和高效,即具有快速处理特征。

广义的大数据概念,除了大数据技术及其应用之外,还包括大数据工程和大数据科学。大数据工程,是指大数据的规划建设运营管理的系统工程。大数据科学,主要关注大数据网络发展和运营过程中发现和验证大数据的规律及其与自然和社会活动之间的关系。2.大数据的特征

大数据具有4V的特征,具体为:(1)规模性(volume)。规模性指的是数据巨大的数据量及其规模的完整性。数据的存储由TB扩大到ZB。数据加工处理技术的提高,网络宽带的成倍增加,以及社交网络技术的迅速发展,使得数据产生量和存储量成倍增长。实质上,在某种程度上说,数据的数量级大小并不重要,重要的是数据的完整性。(2)高速性(velocity)。高速性主要表现为数据流和大数据的移动性,可以理解为更快地满足实时性的需求。随着移动网络的发展,人们对数据的实时应用需求更加普遍,例如通过手持终端设备关注天气、交通、物流等信息。高速性要求具有时间敏感性和决策性的分析,能在第一时间抓住重要事件发生的信息。(3)多样性(variety)。多样性指有多种途径来源的关系型和非关系型数据,这也意味着要在海量、种类繁多的数据间发现其内在关联。在互联网时代,各种设备连成一个整体,个人在这个整体中既是信息的收集者也是信息的传播者,加速了数据量的爆炸式增长和信息的多样性。这就必然促使人们要在各种各样的数据中发现数据信息之间的相互关联,把看似无用的信息转变为有用的信息,从而做出正确的判断。(4)价值性(value)。价值性体现出的是大数据运用的真实意义所在,其价值具有稀缺性、不确定性和多样性等特点。大数据时代数据的价值就像沙子淘金,数据量越大,里面真正有价值的东西就越少。现在的任务就是利用云计算、智能化开源实现平台等技术,在这些ZB、PB级的数据中提取出有价值的信息,将信息转化为知识,发现规律,最终用知识促成正确的决策和行动。3.大数据的应用

发展大数据产业将推动世界经济的发展方式由粗放型到集约型的转变,对于提升企业综合竞争力和政府的管制能力都具有深远意义的影响。将大量的原始数据汇集在一起,通过智能分析、数据挖掘等技术,分析数据中潜在的规律,预测事物后续的发展趋势,有助于人们做出正确的决策,从而提高各个领域的运行效率,取得更大的收益。下面介绍一些典型应用。

1)商业领域的应用

商业是大数据应用最广泛的领域。例如,沃尔玛公司通过对消费者购物行为等各种数据进行分析,了解顾客购物习惯,从销售数据分析适合搭配在一起购买的商品,创造了“啤酒+尿布”的经典商业案例;淘宝服务于卖家的大数据平台“淘宝数据魔方”通过收集分析买家的购物行为,找出问题的先兆以避免“恶拍”事件发生,同时还针对买家设置大数据平台,为买家量身打造完善的网购体验的产品。

2)金融领域的应用

大数据在金融业也有着相当重要的作用。华尔街某公司分析全球3.4亿微博账户的留言,判断民众情绪,依此决定公司股票的买入或卖出;美国某征信公司其存储的财务数据覆盖了所有的美国成年人,包括全球5亿个消费者和8100万家企业。在它的数据库中与财务有关的记录包括贷款申请、租赁、房地产、购买零售商品、纳税申报、费用缴付、报纸与杂志订阅等,看似杂乱无章的26PB的数据,经过交叉分享和索引处理,得出消费者的个人信用评分,从而推断客户支付意向与支付能力,发现潜在的欺诈。

3)医疗领域的应用

随着大数据在医疗与生命科学研究过程中广泛应用和不断扩展,产生的数据之大、种类之多令人难以置信。例如医院中的B超、PACS影像、病理分析等业务会产生大量非结构化数据。一幅CT图像的存储量大约500MB,一个基因组序列文件约为750MB,一个标准病理图的数据量则接近5GB。如果将这些数据量乘以人口数量和平均寿命,仅一个社区医院就可以累积达数TB甚至PB级的结构化和非结构化数据。为了实现医院之间对病患信息的共享,各级医院加大了在大数据平台、医疗信息仓库等领域的投入,医疗信息存储越来越受到重视。

4)制造业领域的应用

中国制造业的相关企业随着ERP、PLM等信息化系统的部署完成,管理方式由粗放式管理逐步走向精细化管理,新产品的研发速度和设计效率有了大幅提升,企业在实现对业务数据进行有效管理的同时,积累了大量的数据信息,产生了利用现代信息技术收集、管理和展示分析结构化和非结构化的数据和信息的诉求,企业需要信息化技术帮助决策者在存储的海量信息中挖掘出需要的信息,并且对这些信息进行分析,通过分析工具加快报表进程从而推动决策、规避风险。4.大数据的挑战

随着近年来大数据热潮的不断升温,人们认识到“大数据”并非是指“大规模的数据”,更加代表了其本质含义:思维、商业和管理领域前所未有的大变革。在这次变革中,大数据的出现,对产业界、学术界和教育界都正在产生巨大影响。随着科学家们对大数据研究的不断深入,人们越来越意识到,对数据的利用为其生产生活带来巨大便利的同时,也带来了不小的挑战。

1)大数据的安全与隐私问题

随着大数据的发展,数据的来源和应用领域越来越广泛:在互联网上随意浏览网页,就会留下一连串浏览痕迹;在网络中登录相关网站需要输入个人的重要信息,例如用户名密码、身份证号、手机号、住址、银行卡密码等;随处可见的摄像头和传感器会记录下个人的行为和位置信息,等等。通过相关的数据分析,数据专家就可以轻易挖掘出人们的行为习惯和个人重要信息。如果这些信息运用得当,可以帮助相关领域的企业随时了解客户的需求和习惯,便于企业调整相应的产品生产计划,取得更大的经济效益;但若是这些重要的信息被不良分子窃取,随之而来的就是个人信息、财产等的安全性问题。

此外,大数据时代数据的更新变化速度加快,而一般的数据隐私保护技术大都基于静态数据保护,这就给隐私保护带来了新的挑战。在复杂变化的条件下如何实现数据隐私安全的保护,将是未来大数据

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载