




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
一、WEKA软件简介在我所从事的证券行业中,存在着海量的信息和数据,但是这些数据日常知识发挥了一小部分的作用,其包含了大量的隐性的信息并不为所用,但是却可以为一些公司的决策和对客户的服务提供不小的价值。因此,我们可以通过一些数据采集、数据挖掘来获得潜在的有价值的信息。WEKA是由新西兰怀卡托大学开发的开源项目,全名是怀卡托智能分(WaikatoEnvironmentforKnowledgeAnalysis)WEKAJAVA编写的,它的源代码可通过http://www.cs.waikato.ac.nz/ml/WEKA得到,并且限制在GBU通用公众证书的条件下发布,可以运行在所有的操作系统中。是一款免费的,非商业化的机器学习以及数据挖掘软件WEKA作为一个公开的数据挖掘工作平台,集合了大量能承担数据挖掘任务的机器学习算法,包括对数据进行预处理,分类,回归、聚类、关联规则以及在新的交互式界面上的可视化。如果想自己实现数据挖掘算法的话,可以看一看WEKA的接口文档。在WEKA中集成自己的算法甚至借鉴它的方法自己实现可视化工具并不是件很困难的事情。安装WEKA也十分简单,首相要下载安装JDK环境,JDK在这个页面可以找到它的下载/javase/downloads/index.jsp。点击JDK6之后的Download按钮,转到下载页面。选择Accepct,过一会儿页面会刷新。我们需要的是这个 jdk-6-windows-i586.exe53.16MB点击它下载也可以右键点击它上面的链接,在Flashget等工具中下载。安装它和一般软件没什么区别。不过中间会中断一下提示你安装JRE,一并装上即可。之后就是安装WEKA软件,这个在网上很多点击启动运行WEKA软件后,我门发现WEKA存储数据的格式是ARFF(Attribute-RelationFileFormat)文件,这是一种ASCII文本文件。我们如图1通过软件的Tools菜单进入ArffViewer可以在安装目录下查看软件自带的几个ARFF文件。2data所示的二维表格存储在如下的ARFF文件中。这也就是WEKA自带的“contact-lenses.arff”文件。这里我们要介绍一下WEKA中的术语。表格里的一(Instance(AttrbuteWEKA看来,呈现了属性之间的一种关系(Relation)122个实例,5个属性,关系名称为ARFF格式,WEKA还支持另外一种常见格式,CSV格式。CSV同样WEKA中直接打开CSV格式的文件,ARFFARFF格式的ExcelCSV格式,进而保存ARFFfilter对数据进行相应的预处理。而对MatlabcsvwriteCSV格式的文ARFF格式文件。对于海量数据,一般保存在数据库中,WEKAJDBC访问数据库。句呢,不过稍等一秒,WEKAGUIChooser的出现了。这是一个很简单的窗体,下的数据挖掘工具;ExperimenterKnowledgeFlow的使用有待进一步摸索图WEKAWEKA提供了数据的预处理,和对部分结果的可视化,并且我们可以通过属性选择工具(SelectAttribute),通过(schemes,然Explore这个环境本质上和Exploreentallarning。KnowledgeFlow为WEKA提供了一个"数据流"形式的界面。用户可以从成一个"知识流"(knowledgeflow)来处理和分析数据。目前,所有的WEKA(classifir(filter(clusterer(loader存器(saver,以及一些其他的功能可以在KnowledgeFlow中使用。KnowledgeFlow可以使用增量模式(incrementally)(inbatches)来处理数据(Explorer只能使用批量模式。当然对数据进行增量学习要求分类器能够根据各实例逐个逐个的更新.现在WEKA还有一个meta分类器RacedIncrementalLogitBoost可以使用任意基于回归的学习WEKA命令。二、实验案例介绍本文用WEKAdate(numeric),交易发生日期;fund_code(numeric)fund_name(character),基金名称;company_code(numeric),用于报送的基金公司代码;company(character),所属的基金公司;business_code(numeric),交易业务代码;business_name(character),交易业务名称;shares(numeric),基金交易份额;balance(numeric),资金交易金额;fares(numeric),交易手续费;fares_type(enum),手续费类型,取值范围“全额结算”/“净额结算internet_shares(numeric)internet_balance(numeric)remark(character),备注;三、数据分析我们给出一个CSV文件的例子(Fund-data.csv)。用UltraEdit打开它可以看到,这种格式也是一种逗号分割数据的文本文件,储存了一个二维表格。ExcelXLS文件可以让多个二维表格放到不同的工作表(Sheet)中,我们只能把每个工作表存成不同的CSV文件。打开一个XLS文件并切换到需要转换的工作表,另存为CSV类型,点“确定”、“是”忽略提示即可完成操作。需要注意的是,Matllab给出的CSV文件往往没有属性名(Excel给出的也有可能没有)WEKA必须从CSV文件的第一行读取属性名,否则就会把第一行的各属性值读成变量名。因此我们对于Matllab给出的CSV文件需要用UltraEdit打开,手工添加一行属性名。注意属性名的个数要跟数据属性的个数一致,仍用逗号隔开。1、.csv->.CSV转换为ARFF最迅捷的办法是使用WEKA所带的命令行工具。WEKAGUI后可以点击下方按钮进入相应的模块。我们点击进入“SimpleCLI”模块提供的命令行功能。由于weka暂不支持中文输入,所以挑选了在D盘下进行转换,在新窗口的最下方(上方是不能写字的)输入框写上 即可完成转换,生成文件“D:/Fund-data.csv.arff”。见下图进入“Exploer”模块,从上方的按钮中打开CSV文件然后另存为ARFF文件亦可。我们应该注意到,“Exploer”还提供了很多功能,实际上可以说WEKA使用最多的模块。现在我们先来熟悉它的界面,然后利用它对数据进行预处理。界面展现见下图6:图中显示的是使用“Exploer”打开“Fund-data.csv.csv”的情况。2、预处理通常对于WEKA来说并不支持中文,所以我们将一些涉及中文的字段删除。勾选属性“fund_nam”、“company”、“business_name”、“remark”,并点击“Remove”。将新的数据集保存一次。其中“fares_type”2个取值:全额结算和净额结算。这时我们在UltraEdit中直接修改ARFF文件,把@attributefares_type{全额结算,净额结算改为@attributefares_type{Full,Net}@attributedate{numeric}改为date{2009/8/24,2009/8/25,2009/8/26,2009/8/27,2009/8/28就可以了。在“Explorer”中重新打开“fund-data.arff”,选中“date”和“fund_type”到属性已经变成“Nominal”了。WEKA<datatype>numeric--<nominal-specification>--(nominal)string--datenemericnominal两种类型,数值属性(nemeric)数值型属性可以是整数或者实数,但WEKA把它们都当作实数看待。分类属性(nominal)<nominal-specification>列出一系列可能的类别名称并放在花括号中:{<nominalname1>,<nominal-name2>,...}。数据集中该属性的值“shares”“banlance”“fares”“internet_shares”WEKA中名为“Discretize”Filter2中点“Choose”,出现一棵“Filter树”,逐级找到“weka.filters.unsupervised.attribute.Discretize”,点现在“Choose”旁边的文本框应该显示“DiscretizeB10M0.1Rfirst-last”我们不打算对所有的属性离散化,只是针对对第4,5,6,8,9个,故把attributeIndices右边改成“4,5,6,8,9”10段,于是把“bins”改成“10”。其它不变。点“OK”回到“Explorer”,可以看到“shares”,“banlance”“fares”“internet_shares”的属性。同时我们可以用UltraEdit打开保存后的ARFF文件,把所有的类似经删减后,保留date、shares、balance、fares、fares_type、internet_shares、internet_balance773、分类与回归WEKA中的“Classify”选项卡中包含了分类(Classification)和回归(Regression),在这两个任务中,都有一个共同的目标属性(输出变量)。可以根据一个样本(WEKA中称作实例)的一组特征(输入变量),对目标进行预测。为了实现这一目的,我们需要有一个训练数据集,这个数据集中每个实例的输入和输出都是已知的。观察训练集中的实例,可以建立起预测的模型。有了这个模型,我们就可以新的输出未知的实例进行预测了。衡量模型的好坏就在于预测的准确程度。在WEKA中,待预测的目标(输出)被称作Class属性,这应该是来自分类任务的“类”。一般的,若Class属性是分类型时我们的任务才叫分类,Class属性是数值型时我们的任务叫回归。而我们使用决策树算法C4.5Fund-data-normal建立起分类模型。因此我们制作分类不做回归。我们用Explorer打开训练集Fund-data-normal.arff“Classify”选项卡,点击“Choose”按钮后可以看到很多分类或者回归的算法分门别类的列在一个树型框里。树型框下方有一个“Filter...”按钮,点击后勾选“Binaryattributes”“Numericattributes”和“Binaryclass”。点“OK”后回到树形图,可以发现一些算法名称变灰了,说明它们不能用。选择“trees”下的“J48”,这就是我们需要的C4.5算法。点击Choose”右边的文本框,弹出新窗口为该算法设置各种参数。我们把参数保持默认。选上“Cross-validation”并在“Folds”框填上“10”。点“Start”按钮开始让算法生成决策树模型。很快,用文本表示的一棵决策树以及对这个决策树的误差分析结果出现在右边“Classifieroutput”中。见图8。4聚类的任务是把所有的实例分配到若干的簇,使得同一个簇的实例聚集在一个簇中心的周围,它们之间距离的比较近;而不同簇实例之间的距离比较远。现在我们对前面的“Fund-data-normal”作聚类分析,使用最常见的K均值(K-means)算法。用“Explorer”打开刚才得到的“Fund-data-normal.arff”,并切换到“Cluster”。点“Choose”按钮选择“SimpleKMeans”,这是WEKA中实现K均值的算法。点击旁边的文本框,修改numClusters为6,说明我们希望把734条实例聚成6K=5“seed”参数是要设置一个随机种子,依此产生一个随机数,用来得到K均值算法中第一次给出的K个簇中心的位置。我们不妨暂时让它就为10。选中“ClusterMode”的“Usetrainingset”,点击“Start”按钮,观察右边“Clustereroutput”给出的聚类结果。见下图9:5、关联规则我们打算对前面的“Fund-data-normal数据作关联规则的分析。用“Explorer”打开“Fund-data-normal.arff”后,切换到“Associate”选项卡。默认关联规则分析是用Apriori算法,我们就用这个算法,但是点“Choose”右边的文本框修改默认的参数。从网上获得的Apriori有关知识:对于一条关联规则L->R,我们常用支持度(Support)和置信度(Confidence)来衡量它的重要性。规则的支持度是用来估计在一个购物篮中同时观察到LR的概率P(L,R),而规则的置信度是估计购物栏中出现了L时也出会现R的条件概率P(R|L)。关联规则的目标一般是产生支持度和置信度都较高的规则。有几个类似的度量代替置信度来衡量规则的关联程度,它们分别是Lift(提升度?):Lift=1时表示LR独立。这个数越大,越表明LR存在在一个购物篮中不是偶然现象。Leverage(不知道怎么翻译):P(L,R)-Lift的含义差不多。Leverage=0LR独立,LeverageR的关系越密切。Conviction(更不知道译了):P(L)P(!R)/P(L,!R)(!R表示R没有发生)Conviction也是用来衡量LR的独立性。从它和lift的关系(R取反,代入Lift公式后求倒数)可以看出,我们也希望这个值越大越好。值得注意的是,用LiftLeverage作标准时,LR是对称的,Confidence和Conviction则不然。现在我们计划挖掘出支持度在10%100%之间,并且lift值超过1.5且lift值排在前100位的那些关联规则。我们把“lowerBoundMinSupport”和upperBoundMinSupport0.1和1“metricType”lift,minMetric1.5,numRules10,其他参数不变。点击start见10我们也可以利用命令行来完成挖掘任务,在“SimlpeCLI”模块中输入如下格式的javaweka.associations.AprioriN100T1C1.5D0.05U1.0M0.1S-Itd:\fund-data-normal.arff116用“Explorer”打开刚才得到的“Fund-data-normal.arff”,并切换到“Selectattributes”“AttributeEvaluator”“Choose”“ClassifierSubsetEval”“SearchMethod”“Choose”RaceSearch”。在AttributeSelection中选中Cross-validation项,参数默认Folds=10和Seed=1。点击“start”见图127
用“Explorer”打开刚才得到的“Fund-data-normal.arff”,并切换到“Visualize”。见图131、分类与回归我们看到“J48”算法交叉验证的结果之一为C
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025河北省安全员《A证》考试题库及答案
- 二零二五年度智能制造入股合同协议书
- 2025年度农业科技企业员工借调与农业技术推广合同
- 2025年度个体工商户合伙协议范文与投资融资及财务规划协议
- 2025年度征收城市老旧危房房屋拆迁补偿协议
- 2025年度人事专员劳动合同(附员工培训服务内容)
- 2025年度文化产业发展劳动合同法规范与创意人才合同
- 2025年度个人租赁市场租赁合同电子签名合同
- 2025年度健康养生馆店铺承包合作协议
- 2025年度太阳能光伏发电站机电安装服务协议
- WTE朗文英语2B 单词卡片
- 初三物理复习计划详细计划
- 汽车悬架概述
- 中药饮片处方审核培训课件
- 心房颤动的教学查房课件
- 周围静脉输液操作并发症的预防及处理
- 重大紧急情况的报告模板
- 二人合伙开宠物店协议书(5篇)
- 十字相乘法解一元二次方程专题练习
- 汽车维修竞标报价表格范本
- 2023年3月普通高等学校招生全国统一考试英语听力天津卷A(听力音频+试题+答案+听力原文)
评论
0/150
提交评论