数据挖掘及其在金融中的应用 - hhqiu的日志 - 网易博客
http://hengqiu0417.blog.163.com/blog/static/14230403120134133440110/
一个形象的比喻,数据挖掘就好比企业的诊断医生和指南针,能从企业的业务数据中发现企业的问题所在,并辅助决策者指明决策的方向。
一、数据挖掘认识
1、数据挖掘的由来
我们今天面对的数据量已足够大,数据类型也多种多样,并且还在不增地增长,这点应该已经形成共识。比如高度结构化的关系数据库、面向特定应用的事务数据库和时间序列数据库、半结构化或无结构的网络数据……
如何去理解、去分析这些数据呢?传统的人工整理与分析,或者是借助简单地借助相关的数据软件,都很难满足实际需要。一个想法很自然地产生:能不能自动地或半自动地分析这些数据,提取出有用的知识呢?答案是肯定的,数据挖掘就是为此而生的
数据挖掘及其在金融中的应用 - hhqiu - 叶子无边
2、数据挖掘的定义
数据挖掘(Data Mining)就是从大量的、不完全的、有噪声的、模糊的、随机的实际应用数据中,提取隐含在其中的、人们事先不知道的、但又是潜在有用的信息和知识的过程。这个定义包括好几层含义:数据源必须是真实的、大量的、含噪声的;发现的是用户感兴趣的知识;发现的知识要可接受、可理解、可运用;并不要求发现放之四海皆准的知识,仅支持特定的发现问题。
简单的讲就是从大量实际的数据中挖掘非平凡知识的过程。平凡知识通常就是指哪些常识或大多数人都清楚的知识。一个形象的比喻,数据挖掘就好比企业的诊断医生和指南针,能从企业的业务数据中发现企业的问题所在,并辅助决策者指明决策的方向。
数据挖掘的其他称谓:从数据中挖掘知识、知识提取、数据库中知识发现、数据/模式分析、商业智能
3、数据挖掘的知识类型
从定义我们看出,数据挖掘就是从大量的实际数据中挖掘出非平凡的有用的知识,哪些知识是非平凡的呢?哪些知识有用的呢?人见仁智,通常像三角形、勾股定理、北京上海是中国人口最多的两个城市等一些常识或公认的知识是平凡的知识,没有必要去挖掘。而能从数据中通过归纳等手段发现事物的本质特性、运动趋势、变化规律、异常情况等,则被认为是非平凡的知识,是对决策有用的知识。数据挖掘就是要从数据中发现非平凡的对决策有用的知识,前辈们归纳起来,数据挖掘主要考虑以下两种类型的知识:描述类和预测类
数据挖掘及其在金融中的应用 - hhqiu - 叶子无边无论是挖掘数据中的描述类知识还是预测类知识,都是基于样本数据的特征或指标作分析的,因此需要对数据作特征化或指标化处理。所谓特征化或指标化,就是根据分析的目标,用样本所表现出来的特征或指标来表示对应的样本,以供分析,比如要分析某只股票的收益情况,其利润率、现金利润率、毛利率等,可能是一些有用的特征或指标,其样本格式如下:
股票id 利润率 现金利润率 毛利率,……
000001 10% 70% 20% ……
000002 20% 80% 40% ……
000003 5% 70% 30% ……
可视化
主要是对所考察的特征或指标,通过各种图形来展示;
聚类
主要是根据所考察的特征或指标,对样本进行类别划分,使得同类样本的特征差异尽可能小,不同类的差异尽可能大;
关联规则
主要根据所考察的特征或指标,考虑不同样本之间的并发频率(概率),频率(概率)越大,关联性越强。
汇总
主要是根据所考察的特征或指标,对样本作不同粒度(层次)的汇总。
分类
主要是从已知的不同类别样本中提取特征或指标,训练分类模型,从而对未知类别的样本,根据提取的特征或指标自动归类,属于离散预测。
统计回归预测
主要是确定某个考察的数值指标,寻找解释特征或指标(自变量),构建统计预测模型,主要是一连续函数,以反映它们之间的统计相关关系,属于数值预测。
统计时间序列预测
与统计回归类似,也是确定某个考察的数值指标,寻找解释变量,构建它们随时间变化的统计函数,也属于数值预测。
智能预测
主要是采用人工智能相关方法作出预测,它能够实现统计回归预测和统计时间序列预测的功能,并且假设条件要比统计预测要宽松得多,甚至有些没有什么假设条件,精度上也与他们相当甚至比它们要好。
数据挖掘的类型,可能还不止这些,以上仅是一般的界定,正因为我们对数据挖掘的类型作出了界定,不同的类型也有对应的挖掘模型与算法,使得从海量的数据中自动地或半自动的挖掘知识成为了现实
4、数据挖掘原则
业务第一、技术第二
以商业目标为驱动,以获取有用的决策知识为最终目的,以知识或模型的可解释性至上
算法与模型的高效性与实用性为指导原则。
二、数据挖掘在金融领域的一些例子探讨
1、描述类知识(聚类、关联规则、异常检测)
聚类分析
从收益方面对过去一年的股票作聚类分析。作为一个简单的例子,我们选择三个指标,如年收益率、年利润率、年现金利润率作为分析特征或指标,样本格式如下:
股票代码 年收益率 年利润率 年现金利润率
000001 10% 30% 80%
000002 12% 20% 60%
000003 8% 35% 90%
…… …… …… ……
最简单的方法,就是以欧式距离为判断标准,把它们聚为三类,使得每一类的股票,它们的欧式距离尽可能小,而每两类之间的欧式距离尽可能大。取每类的中心,以权重0.5、0.2、0.3加权求和,按值的大小分别命名为“优秀”、“良好”、“一般”以区分不同类别。
数据挖掘及其在金融中的应用 - hhqiu - 叶子无边 关联规则
分析我们考察两只股票之间,它们的涨跌趋势是否在短期内关联紧密,比如“工商银行涨后,其三天内浦发银行也跟着涨”,就是考察是否存在这样或其他股票之间的联动模式,样本格式如下(生成3天关联规则挖掘数据样本,向后滚动地以3天间隔为基准,截取数据)
交易日期1 交易日期2 工商银行 浦发银行,……
1999-01-01 1999-01-02 涨 涨
1999-01-01 1999-01-03 涨 涨
1999-01-01 1999-01-04 涨 涨
1999-01-02 1999-01-03 跌 涨
1999-01-02 1999-01-04 跌 涨
1999-01-02 1999-01-05 跌 跌
……
以交易日期1作汇总统计,如果是标红(即全涨),记1,否则,记0。从1999年到2012年这十多年来的记录中,如果某两只股票汇总得到的1占比达到90%,则说明他们的关联性很强,具有非常好的投资指导意义。
数据挖掘及其在金融中的应用 - hhqiu - 叶子无边异常检测
关联交易往往表现为母公司或控股公司为制造上市公司漂亮的利润而输送利益,直接的表现为低卖高买。通过同行业上市公司的毛利率指标作散点图,作横向和纵向对比,如果该指标突然提高,就可以将其作为疑似关联交易公司,进一步考察
2、预测类知识(分类、智能预测)
分类识别
中国的证券市场上有ST股和非ST股,股票一旦被冠以ST,将会产生重大不利影响。虽然被冠以ST的原因有多种,但绝大部分是由于财务困境。公司财务在走向困境之前,一般都会有征兆,是一个从量变到质变的过程,取被冠以ST前一年或两年或三年的财务指标、公司治理指标,并取非ST公司相对应的指标,作为分析指标。并以此为样本,训练分类模型,以便识别出未来可能被冠以ST的公司,提前预防风险,样本格式如下
股票代码 资产负债率 毛利率,……,对外担保 独立董事规模,……,公司标识
000001 60% 20% …… 有 8 非ST
000504 80% 5% 无 4 ST
……
一般地,ST公司与非ST公司,在财务指标与公司治理指标中,有部分指标是有显著差别的,这为分析的意义提供了保障,以两类样本训练分类模型,用训练好的模型就可以对未识别的样本作分类识别了
数据挖掘及其在金融中的应用 - hhqiu - 叶子无边智能预测
大盘的走势与涨跌幅度的影响因素非常广泛,在数学上讲更是一个复杂的非线性系统,预测难度大。智能预测方法,类似于模拟人的思维,也是一个复杂的非线性系统,并且不像统计方法那样有诸多的假设,不失为一个好的预测方法。作为一个简单的例子,比如选取标准普尔指数(X1)、大宗商品期货指数(X2)、前期行情(X3)、国债债券指数(X4)指标为解释变量,目标变量为大盘指数(Y),采用人工智能的方法。
首先,对输入信息作加权处理
数据挖掘及其在金融中的应用 - hhqiu - 叶子无边其次,加权处理的信息I,如果能触发,则产生输出,否则不输出。I>W0,则触发,否则不触发
最后,若触发成功,输出
Y1=f(I-W0),f为一触发输出函数
求解目标为:通过min E[(Y-Y1)2]求参数W0-W4,求得参数后,代入模型,输出值Y1便为Y的预测值
三、数据挖掘模型与算法
以上提到的基本都是一些分析思路或者分析目标,要自动地实现该思路或目标,有赖于数据挖掘的模型与算法。数据挖掘的模型与算法有来自人工智能学科的、有来自模式识别的、有来自统计学的、有来自决策与最优化领域的,也有它自己的特色的,如关联分析。数据挖掘,强调从海量的、实际的数据中挖掘知识,为了实现这个目标,它当然需要吸收来自各个学科的理论知识,但并不是照搬过来就能用的,一来是数据海量,需要提高他们的效率,改进算法,二来是放松或去掉相关的理论假设,以提高适应性。
数据挖掘的模型与算法,一个最大的特点是以人工智能的模拟人的思维去解决问题,理论上可以说是海纳百川,更像是一个实验性的学科。常用的模型与算法有:
数据挖掘及其在金融中的应用 - hhqiu - 叶子无边四、数据挖掘与统计分析的区别与联系
区别:数据挖掘基于数据,其模型与算法以人工智能思维为主,重在归纳,很少假设条件,数据不同,结果不同。统计分析基于数学模型,有严密的论证与推导,存在较强的假设,基本是基于正态分布、T分布、F分布等假设基础上构建的模型
比如预测某只股票日内某个时刻的成交量(Y),假设它与前一个时刻的成交量(X1)、前两个时刻成交量的改变量(X2)、前一个时刻的交易价格(X3)、前两个时刻交易价格的改变量(X4)、大盘前两个时刻成交量的改变量(X5)、大盘前两个时刻的交易价格的改变量(X6)、大盘前一个时刻的交易量(X7)、大盘前一个时刻的交易价格(X8)有关,构建预测模型可能有多种,以下选择比较经典的两种:一种是基于统计学的多元线性回归预测,一种是智能预测。
多元线性回归预测
数据挖掘及其在金融中的应用 - hhqiu - 叶子无边其中,X1-X8为自变量, 为服从标准正态分布的随机变量,Y是随机变量
智能预测方法(BP神经网络)
数据挖掘及其在金融中的应用 - hhqiu - 叶子无边通过极小化所有样本的期望误差 为目标,通过一些数学手段求取相应的参数,这里并不需要什么假设条件,但样本量应该足够大(在2000以上为好)
联系:数据探索与评估,比如,前期的数据预处理、特征选择、特征检验、模型评估等都需要用一些统计的方法作处理。如上例,无论是线性回归还是智能预测,变量越多,模型越复杂。然而,不同的变量它们的解释能力或重要性是不同的,甚至有些是多余的,多余的或不重要的变量不仅会影响预测的精度,还会增加复杂性。可以通过主成分分析或因子分析,使得它们综合为几个少数的变量,也可以通过显著性统计检验剔除不重要的变量……
五、数据挖掘与数据仓库的区别与联系
区别:数据挖掘主要是一些模型与算法,更准确的说,它是一个数据的分析探索过程。数据仓库是一个软件系统,是基于多维数据模型设计的一个面向主题的数据集成与清洗系统。
股票交易行情主题数据仓库模型(仅考虑成交量与成交金额两个度量指标)
数据挖掘及其在金融中的应用 - hhqiu - 叶子无边注意:这里的事实表与一般的数据表不同,它存放不同粒度(层次)的数据,数据仓库中的数据立方体,其实际的数据及相关的数据展现就来自这张表。这张表的规模通常都很庞大,为了应付频繁的查询分析,其中的数据很多都是预先计算或预处理后直接存进去的。
联系:数据仓库,一是可以做多维分析,从不同角度去分析数据仓库中的数据,以不同的层次与粒度作数据的聚集汇总,属于描述性数据挖掘,一是可以作为进一步挖掘的数据源,在此基础上,开发更高层次的数据挖掘模型。
对于描述性数据挖掘,比如多维分析及不同层次的聚集汇总,如果所有的维度及不同层次的度量值都能预计算好,并存入事实表,则相关的分析是极其容易与快捷的,因为那只需查询该事实表并返回结果即可。然而,要全部预计算是不太现实的,一来计算量极大,二来可能用户真正感兴趣的仅是极少部分。例如,计算上例,固定品种维(A股),固定行业维(假设只选一个行业,并且该行业仅有一只股票),计算一个年度的所有时间维的度量值,需要141225025046025046060*2个存储单元存储度量值。(假设每年有250个交易日,一天交易4个小时,平均每秒都产生一笔交易)。
对于在数据仓库的基础是开发数据挖掘模型,则是更为有利的,因为数据仓库中的数据经过了集成和预处理,数据质量高、信息更全面,不惜为一个理想的数据源。
数据挖掘及其在金融中的应用 - hhqiu - 叶子无边六、数据挖掘方法论
1、CRISP-DM (cross-industry standard process for data mining)—"跨行业数据挖掘过程标准",于1999年欧盟机构联合起草. 通过近几年的发展,CRISP-DM 模型在各种KDD过程模型中占据领先位置,采用量达到近60%,
该过程由六个步骤组成:
1)商业理解:确定商业目标、评析环境、确定数据挖掘目标、制定项目计划
2)数据理解:收集原始数据、描述数据、探索数据、检验数据质量
3)数据准备:选择数据、清洗数据、构造数据、整合数据、格式化数据
4)模型:选择建模技术、生成测试计划、构建模型、评估模型(参数设置等技术角度)
5)评估:评价结果、重审过程、确定下一步。
6)部署发布:规划部署、规划监控与维护、产生最终报告、回顾项目
2、SEMMA
1)Sample──数据取样
2)Explore──数据特征探索、分析和予处理
3)Modify──问题明确化、数据调整和技术选择
4)Model──模型的研发、知识的发现
5)Assess──模型和知识的综合解释和评价
区别与联系:
CRISP-DM是从一个数据挖掘项目执行的角度谈方法论,SEMMA 则是从对具体某个数据集的一次探测和挖掘的角度来谈方法论, CRISP- DM的考虑的范围比SEMMA 要大。CRISP-DM关注商业目标、数据的获取和管理, 以及模型在商业背景下的有效性。CRISP- DM认为数据挖掘是由商业目标驱动的,同时重视数据的获取、净化和管理; SEMMA 不否认商业目标,但更强调数据挖掘是一个探索的过程, 在最终确定模式和模型前, 要经过充分的探索和比较。在数据挖掘的各个阶段中, 数据挖掘的产品都要使所使用的数据和所将建立模型处于十分易于调整、修改和变动的状态, 这才能保证数据挖掘有效的进行。SAS在同类产品中这一方面尤其强大。SEMMA 是一个特别贴近算法的视角, SAS 将不同的数据挖掘算法放到了这个挖掘过程的不同阶段( Explore, Modify,Model) , 而CRISP- DM是一个不依赖于具体算法的过程框架,CRISP-DM将所有算法放到过程的相同位置( Phase) 。SEMMA的体现了不同算法在项目过程的不同阶段有不同的重要性。SAS 在技术上的另个特征是强调取样( Sampling)。SEMMA 强调了SAS 本身产品的优势, SEMMA 没有如同CRISP-DM一样详细而规范的文本, 作为项目管理的需要来看CRISP-DM更适用一些。由于CRISP- DM在阶段间可以反馈,整个流程又是循环的, 在逻辑上CRISP- DM是可以实现SEMMA的, 它们互不矛盾。但由于强调的重点不同, 在实践上则会有明显的区别。(参见:http://blog.csdn.net/lpxuan151009/article/details/5274202
)
七、一些软件介绍及参考资料
SPSS Clementine(CRISP-DM)
http://www.verycd.com/topics/2768317/
SAS EM(SEMMA)
SSAS(基于数据仓库的多维分析与数据挖掘)
参考的网络资料:
http://www.sas.com/offices/asiapacific/china/success/indexByIndustry.html#1000
http://wenku.baidu.com/view/e550f3ef5ef7ba0d4a733bc6.html
http://blog.csdn.net/lpxuan151009/article/details/5274202
八、国内数据挖掘进展
数据挖掘在国外较为成熟,而在国内还处于起步阶段,可能由于认识的重要性或人才的力量还不够。国内可能还主要是以数据库为着眼点,主要还在数据仓库的大量建设阶段,真正深入去挖掘的可能还比较少。也许是由于公布的成功案例较少,或者是成功的案例有些不愿意公布,但是从收集的资料来看,目前国内的数据挖掘还主要是在建设数据仓库阶段。
网友评论